圖資料庫(專業術語)

圖資料庫(專業術語)

本詞條是多義詞,共3個義項
更多義項 ▼ 收起列表 ▲

圖資料庫是以點、邊為基礎存儲單元,以高效存儲、查詢圖數據為設計原理的數據管理系統

圖概念對於圖資料庫的理解至關重要。圖是一組點和邊的集合,“點”表示實體,“邊”表示實體間的關係。在圖資料庫中,數據間的關係和數據本身同樣重要,它們被作為數據的一部分存儲起來。這樣的架構使圖資料庫能夠快速回響複雜關聯查詢,因為實體間的關係已經提前存儲到了資料庫中。圖資料庫可以直觀地可視化關係,是存儲、查詢、分析高度互聯數據的最優辦法。

圖資料庫屬於非關係型資料庫NoSQL)。圖資料庫對數據的存儲、查詢以及數據結構都和關係型資料庫有很大的不同。圖數據結構直接存儲了節點之間的依賴關係,而關係型資料庫和其他類型的非關係型資料庫則以非直接的方式來表示數據之間的關係。圖資料庫把數據間的關聯作為數據的一部分進行存儲,關聯上可添加標籤、方向以及屬性,而其他資料庫針對關係的查詢必須在運行時進行具體化操作,這也是圖資料庫在關係查詢上相比其他類型資料庫有巨大性能優勢的原因。

資料庫graph database)不同於圖引擎(graph engine)。圖資料庫主要套用為在線上事務處理OLTP(on-line transaction processing),針對數據做事務(ACID)處理。圖引擎用於在線上分析處理OLAP(On-Line Analytical Processing),進行數據的批量分析。

基本介紹

  • 中文名:圖資料庫 
  • 外文名:Graph Database 
  • 類型:非關係型資料庫 
  • 工具:Neo4j、Galaxybase、Tigergraph、TuGraph、JanusGraph、Huge Graph  
  • 組成:結點集、連線結點的關係 
  • 優勢:豐富的關係和展現方式 
發展歷史,組成,圖模型,特性,圖資料庫特點,存儲,免索引鄰接,與關係型資料庫的對比,套用,常見圖形資料庫,Galaxybase,AllegroGrap,GraphDB,InfiniteGraph,HugeGraph,Neo4j,StellarDB,研究現狀,

發展歷史

圖資料庫發展有著非常長的歷史。早在1960年代,IBMIMS導航型資料庫已經支持了層次模型以及樹狀結構,這些都是特殊形式的圖。在1960年代後期的網路模型資料庫(Network model Databases)已經可以支持圖結構,CODASYL (Conference/Committee on Data SystemsLanguages)於 1959 年定義了 COBOL,1969 年定義了網路資料庫語言。由於當時的硬體的性能無法支持複雜的查詢需求,沒有大範圍的推廣使用。期間圖資料庫一直不斷的進化發展,到了2000年代,隨著網際網路時代大量關聯數據的產生、RDF資源描述框架在網路交換資源中的普遍套用、以及具備ACID事務保證的圖資料庫的出現,讓圖數據再次回到了歷史舞台中央。
以屬性圖為核心數據模型的現代圖資料庫從誕生到大規模套用分為三個階段
Graph 1.0:單機原生圖資料庫
2002-2010年,圖資料庫的使用開始興起。這個階段的圖資料庫採用小規模原生圖存儲,與傳統資料庫相比,原生圖資料庫遍歷查詢時無需索引,能夠極大減少系統開銷、提升查詢效率。但基於單機的小規模原生圖資料庫擴展性較差,受制於單機性能的瓶頸,無法支持大規模數據的分散式存儲查詢以及並行計算。典型代表如:Neo4j
Graph 2.0:分散式非原生圖資料庫
2010-2016年,隨著大數據時代的到來和物聯網行業的蓬勃發展,數據本身的豐富程度增加,數據之間的關聯性增多,擴展性成為資料庫行業共同的痛點。由於底層基於分散式的非關係型存儲,Graph 2.0時代的圖資料庫產品的擴展性有長足提升,但也因為同樣的原因,查詢性較Graph1.0低,並且無法有效支持多跳的深鏈查詢,無法滿足數據實時更新、查詢的需求。典型代表如:JanusGraph。
Graph 3.0:原生分散式圖資料庫
2017年開始,為了滿足大數據量級下的查詢返回效率,在快速變化商業環境下提供實時的商業智慧型,同前幾代產品相比,第三代圖資料庫為圖數據實時更新、查詢而設計,不但在存儲上提升了擴展性,同時增加了並行計算的能力,能夠實現實時的圖分析。大規模原生圖存儲、分散式並行計算能力正逐漸成為圖資料庫行業的主流。
從2020年開始,圖資料庫開始出現和知識圖譜平台、人工智慧平台融合的趨勢,出現了與人工智慧、機器學習深度學習融合的圖平台。這是下一代圖資料庫的發展趨勢。典型代表如:Galaxybase,TuGraph。

組成

圖資料庫是基於圖論為數據基礎的數據管理系統。它的組成包含點、邊。數據通過點和邊的形式進行表示,把數據轉化成點,數據間的關係轉化成邊。圖的存儲方式可以整合多源異構數據
點:代表實體或實例,例如人員、企業、帳戶或要跟蹤的任何其他項目。它們大致相當於關係資料庫中的記錄、關係或行,或者文檔存儲資料庫中的文檔。
邊:也稱作關係,將節點連線到其他節點的線;代表節點之間的關係。在探索節點、屬性和邊的連線和互連時,往往會得到意想不到的價值洞見。邊可以是有向的,也可以是無向的。在無向圖中,連線兩個節點的邊具有單一含義。在有向圖中,連線兩個不同節點的邊,根據它們的方向具有不同的含義。邊是圖資料庫中的關鍵概念,圖資料庫獨有的數據抽象概念,而關係型資料庫和檔案型資料庫並沒有“邊”這一概念,它們的關係查詢必須在運行時進行具體化。

圖模型

圖模型主要包含屬性圖、RDF圖兩種。
屬性圖
屬性圖模型由頂點、邊及其屬性構成。頂點和邊都可以帶有屬性,節點可以通過“標籤(Label)”進行分組。表示關係的邊總是從一個開始點指向一個結束點,而且邊是一定是有方向的,這使得圖成為了有向圖。關係上的屬性可以為節點的關係提供額外的元數據和語義 。
Resource Description Framework(RDF)
RDF模型在頂點和邊上沒有屬性,只有一個資源描述符,這是RDF與屬性圖模型間最根本的區別。在RDF中每增加一條信息都要用一個單獨的節點表示。比如,在圖中給表示人的節點添加姓名。在屬性圖中只需要在節點添加屬性即可,而在RDF中必須添加一個名字的單獨加節點,並用hasName與原始節點相連。

特性

圖資料庫特點

更直觀的模型
數據模型直接還原業務場景,相比傳統數據模型更直觀,提升產品與工程師的溝通效率
更簡潔的查詢語言
資料庫支持查詢語言在關聯查詢中更簡潔,以最通用的Cypher圖查詢語言為例,複雜關聯查詢時代碼量比SQL大幅降低,能夠幫助程式設計師提升開發效率。
更高效的關聯查詢性能
圖資料庫在處理關聯性強的數據以及天然的圖問題場景時具有強大的關聯查詢性能優勢。因為傳統關係型資料庫在進行關聯查詢時需要做昂貴的表連線(JOIN),涉及到大量的IO操作及記憶體消耗。而圖資料庫對關聯查詢有針對性的最佳化,能防止局部數據的查詢引發全部數據的讀取,可以高效查詢關聯數據。

存儲

不同圖資料庫的底層存儲機制可能存在很大不同。根據存儲和處理模型的不同,圖資料庫之間也會做一些區分。比如,一些圖資料庫使用原生圖存儲,這類存儲是經過最佳化的,專門為了存儲和管理圖數據而設計的。這類資料庫一般稱為原生圖資料庫,例如如GalaxybaseNeo4j,tigergraph。 有些圖資料庫依賴關係引擎將圖數據存儲在關係型資料庫的表中,通過在數據實際所在的底層存儲系統之上增加一個具備圖語義的抽象層來進行數據互動。也有使用鍵值型存儲方式或文檔型存儲方式作為底層存儲的圖資料庫。這些類型圖資料庫統稱為非原生圖資料庫,比如ArrangoDB, OrientDB, JanusGraph等。原生圖存儲相比非原生更具有性能優勢。 原生圖資料庫底層存儲不依賴第三方存儲系統,計算和存儲一體化,極大的簡化了系統架構。開發人員和運維人員可以更關注業務水平的提升,避免花費大量時間在底層存儲的管理和運維。同時,原生圖資料庫不需要和第三方技術黑盒進行溝通,少了這部分的通訊開銷,系統的性能也更高

免索引鄰接

免索引鄰接是一種原生圖資料庫的存儲方式。數據查找性能取決於從一個特定節點到另一個節點的訪問速度。由於免鄰索引的存儲方式,節點具有直接的物理 RAM 地址並在物理上指向其他相鄰節點,因此可以實現快速檢索。具有免索引鄰接的原生圖存儲系統不必通過任何其他類型的數據結構來查找節點之間的連結。一旦檢索到其中一個節點,圖中與其直接相關的節點就會存儲在快取中,這使得數據查找甚至比用戶第一次獲取節點時更快。然而,這種優勢是有代價的。免鄰索引犧牲了不使用圖遍歷的查詢的效率。原生圖資料庫使用免鄰索引來處理對存儲數據的 CRUD 操作。

與關係型資料庫的對比

在關係型資料庫設計的時候需要進行嚴格的數據規範化,將數據分成不同的表並刪除其中的重複數據,這種規範化保證了數據的強一致性並支持ACID事務。然而,這也對關係查詢帶來的限制。
快速的實現逐行訪問是關係型資料庫的設計原理之一,當數據的數據之間形成複雜的關聯時,跨表的關聯查詢增加,就會出現問題。雖然可以通過將存在不同表中的不同屬性進行關聯從而實行複雜查詢,但是開銷是非常大的。
與關係型資料庫相比,圖資料庫把關係也映射到數據結構中,對於關聯度高的數據集查詢更快,尤其適合那些面向對象的應用程式。同時圖資料庫可以更自然的擴展到大數據套用場景,因為圖資料庫Schema更加靈活,所以更加適合管理臨時或不斷變化的數據。
關係型資料庫對大量的數據元素進行相同的操作時通常更快,因為這是在其自然的數據結構中運算元據。圖資料庫在很多方面比關係型資料庫更具有優勢,而且變得越來越流行,但是圖資料庫和關係型資料庫並非是簡單的替代關係,在具體套用場景中圖資料庫可以帶來性能的提升和降低延遲才是適合的套用場景。

套用

在許多情報和執法程式中,重要的是要尋找一個模式的事件。這些事件中的任何一個都可能看起來是無害的,但他們觀點以及他們是怎樣直接或間接相關的,概念是不一樣的。再例如社會網路分析(SNA)對許多供應商的消費品非常感興趣,他是構建人與人之間的關係圖。Facebook是一個社交網路,它可以與家人和朋友之間保持聯繫。圖形資料庫能很好地顯示出這個人在他/她的朋友圈中是否有影響力,這群朋友是否有著共同的興趣愛好。
截至2013年6月底,我國網民規模達5.91億人,隨著越來越多用戶的加入,數據量呈指數增長,對社交網路的分析將面臨很大的困難。Aggarwal等在文獻中介紹了一些社交網路分析套用場景,以及在中心地位分析、角色分析、網路建模等方面研究中存在的問題。針對在社交網路分析面臨數據增量較大和圖形資料庫更適於存儲和處理社交網路關係的特點,R.Soussi等提出了一種從關係資料庫數據轉換成圖形資料庫數據的機制,並從圖形資料庫中抽取社交網路關係的方法。S.Kadge等提出了基於圖預測社交網站,預測是基於有向加權的社交圖,方法是構建用戶行為的社交網路圖,用圖挖掘技術預測未來的社交行為,並與Apriori和F-Tree兩種算法的預測效率進行了對比。J.Cao等分析和模擬企業社交網路中的用戶互動行為,形成企業用戶的組織圖和社交圖,用兩類圖構建用戶互動模型,用於預測企業用戶之間的互動行為。李孝偉等提出了一種融合節點與連結屬性的社交網路社區劃分算法,該算法融合節點屬性的相似度、節點間連結權值等連結屬性信息,結合聚類算法實現了對社交網路的社區劃分。

常見圖形資料庫

Galaxybase

Galaxybase是國內較成熟、通用的商業化分散式並行圖平台。Galaxybase是原生分散式存儲架構,支持百萬億點邊規模的大圖數據的高性能線上查詢。它的內置分散式並行計算引擎,支持了數百種圖算法及定製化函式,具備優秀的實時圖分析能力。此外,Galaxybase具備動態數據壓縮算法能夠以高壓縮比對圖數據進行壓縮,數據落盤檔案格式緊湊。

AllegroGrap

AllegroGrap是一個基於W3c標準的為資源描述框架構建的圖形資料庫。它為處理連結數據和Web語義而設計,支持SPARQL、RDFS++和Prolog

GraphDB

GraphDB是德國sones公司在.NET基礎上構建的。Sones公司於2007年成立,近年來陸續進行了幾輪融資。GraphDB社區版遵循AGPL v3許可協定,企業版是商業化的。GraphDB託管在Windows Azure平台上。

InfiniteGraph

InfiniteGraph基於Java實現,它的目標是構建“分散式的圖形資料庫”,已被美國國防部美國中央情報局所採用。除此之外,還有其他一些圖形資料庫,如OrientDB、InfoGrid和HypergraphDB。Ravel構建在開源的Pregel實現之上,微軟研究院的Trinity項目也是一個圖形資料庫項目。

HugeGraph

百度開源的分散式圖資料庫。支持標準的Apache Tinkerpop Gremlin圖查詢語言,支持屬性圖,可支持千億級規模關係數據;支持多種後端存儲(Cassandra,HBase,RocksDB,MySQLPostgreSQLScyllaDB);支持各類索引(二級索引、範圍索引、全文索引聯合索引,均無需依賴第三方索引庫);提供可視化的Web界面,可用於圖建模、數據導入、圖分析;提供導入工具支持從多種數據源中導入數據到圖中,支持的數據源包括:CSV、HDFS、關係型資料庫(MySQL、Oracle、SQL Server、PostgreSQL);支持REST接口,並提供10+種通用的圖算法;支持與Hadoop、Spark GraphX等大數據系統集成

Neo4j

Neo4j是一個流行的圖形資料庫,它是開源的。最近,Neo4j的社區版已經由遵循AGPL許可協定轉向了遵循GPL許可協定。儘管如此,Neo4j的企業版依然使用AGPL許可。Neo4j基於Java實現,兼容ACID特性,也支持其他程式語言,如RubyPython

StellarDB

StellarDB是一種分散式圖資料庫,以分散式的計算引擎為動力,可幫助用戶實現任意數據規模的圖計算,且計算能力隨節點數線性擴展,可以支撐萬億級別圖規模存儲。除了支持大規模的數據集外,StellarDB還具備深度的圖分析能力,支持10層以上的深度複雜圖遍歷。

研究現狀

圖形資料庫是非關係型資料庫NoSQL按照數據模型分類中的一個分支體系,通過套用圖形存儲實體及實體間的關係信息,為某一圖模型問題提供了良好的資料庫存儲與數據處理解決方案。最常見的社交網路中人與人的關係信息為例,使用傳統關係型資料庫RDBMS存儲社交網路數據的效果並不理想,難以查巧及深度遍歷大量複雜且互連線的數據,回響時間緩慢超出預期,而圖形資料庫的恃點恰到好處的填補了這一短板。作為NoSQL的一種,圖形資料庫很長一段時間都局限於學術與實驗室,它利用圈的頂點和邊來表示要素和要素之間的關係。隨著社交網路Facebook、電子商務以及資源檢索等領域的發展,急需一種可以處理複雜關聯的存儲技術,而採用圖形資料庫組織存儲、計算分析挖掘低結構化且互連線的數據則更為有效,因此圖形資料庫得以逐漸從實驗室走出,同時反過來也極大地推動了圖形資料庫的飛速發展。圖資料庫依託圖論為理論基礎,描述並存儲了圖中節點與其之間的關係。國內外基於圖論數據挖掘展開的工作分為圖的匹配、關鍵字查詢、圖的分類、圖的聚類和頻繁子圖挖掘問題等五個方面。
圖的匹配即通過研究圖與圖之間的拓撲結構,從而分析圖之間的相似度大小,Conte等在圖匹配方面有著突出的貢獻;在團形資料庫關鍵字檢索方面,一方面是通過研巧網路關係圖的巧化關係從而分析檢索子圖,包括雙向查詢算法算法,另一方面則基於索引指導圖挖掘,著名的有BLINKS算法;圖分類包括有監督分類和無監督分類兩種,Boser等基於core進行分類,Horvath等提出一種基於支持向量機分類的方法;圖的聚類算法包括節點和對象兩種不同的範圍,Aggarwal等則使用文擋結構進行聚類;頻繁子圖挖掘是指在圖集合中挖掘公共子結構,常見的頻繁子圖挖掘算法包括FSG(Frequent Subgraph Discovery)、FFSM(Fast Frequent Subgraph Minning)和Splat等。同時,為改善圍形資料庫的性能,相關學者進行了廣泛的研究,巧得了一些研究成果:N.Mar提出了一種性能化良的存儲結構DEX,其利用點陣圖的設計思想,對檢索進行最佳化處理後,能夠準確島效的檢索高達10億級別的數據;Prima針對圖資料庫訪問節點延遲較大這一問題,設計了一類線上數據隔離模型;Ylping等則基於皮爾森相關係數(Pearson correlation coefficient)方法設計了CGS(Correelated Graph Search)算法,其優點是提高了圖的遍歷速度及穩定性,同時大大減少了檢索過程中的伺服器壓力,減少系統開銷

相關詞條

熱門詞條

聯絡我們