圖形數(shù)據(jù)庫是一種非關(guān)系型數(shù)據(jù)庫,它應(yīng)用圖形理論存儲(chǔ)實(shí)體之間的關(guān)系信息。最常見的一個(gè)例子,就是社會(huì)網(wǎng)絡(luò)中人與人之間的關(guān)系。關(guān)系型數(shù)據(jù)庫用于存儲(chǔ)“關(guān)系型”數(shù)據(jù)的效果并不好,其查詢復(fù)雜、緩慢、超出預(yù)期,而圖形數(shù)據(jù)庫的獨(dú)特設(shè)計(jì)恰恰彌補(bǔ)了這個(gè)缺陷。
Google的圖形計(jì)算系統(tǒng)名為Pregel,下面讓我們來為您介紹幾個(gè)流行的圖形數(shù)據(jù)庫。
1.Neo4j
Neo4j是一個(gè)流行的圖形數(shù)據(jù)庫,它是開源的。最近,Neo4j的社區(qū)版已經(jīng)由遵循AGPL許可協(xié)議轉(zhuǎn)向了遵循GPL許可協(xié)議。盡管如此,Neo4j的企業(yè)版依然使用AGPL許可。Neo4j基于Java實(shí)現(xiàn),兼容ACID特性,也支持其他編程語言,如Ruby和Python。
2.FlockDB
FlockDB是Twitter為進(jìn)行關(guān)系數(shù)據(jù)分析而構(gòu)建的。FlockDB迄今為止還沒有穩(wěn)定的版本,對(duì)于它是否是一個(gè)真正的圖形數(shù)據(jù)庫,尚有爭(zhēng)議。
FlockDB和其它圖形數(shù)據(jù)庫(如Neo4j、OrientDB)的區(qū)別在于圖的遍歷,Twitter的數(shù)據(jù)模型不需要遍歷社交圖譜。
盡管如此,由于FlockDB應(yīng)用于Twitter這樣的大型站點(diǎn),以及它相比其它圖形數(shù)據(jù)庫的簡(jiǎn)潔性,仍然值得我們值得關(guān)注。
3.AllegroGraph
AllegroGraph是一個(gè)基于W3c標(biāo)準(zhǔn)的為資源描述框架構(gòu)建的圖形數(shù)據(jù)庫。它為處理鏈接數(shù)據(jù)和Web語義而設(shè)計(jì),支持SPARQL、RDFS++和Prolog。
AllegroGraph是Franz Lnc.公司(Web語義產(chǎn)品提供商,旗艦產(chǎn)品是基于LISP的企業(yè)開發(fā)工具)的產(chǎn)品之一,Pfizer、Ford、Kodak、NASA和美國國防部都是該公司的客戶。
4.GraphDB
GraphDB是德國sones公司在.NET基礎(chǔ)上構(gòu)建的。Sones公司于2007年成立,近年來陸續(xù)進(jìn)行了幾輪融資。GraphDB社區(qū)版遵循AGPL v3許可協(xié)議,企業(yè)版是商業(yè)化的。GraphDB托管在Windows Azure平臺(tái)上。
5.InfiniteGraph
InfiniteGraph基于Java實(shí)現(xiàn),它的目標(biāo)是構(gòu)建“分布式的圖形數(shù)據(jù)庫”,已被美國國防部和美國中央情報(bào)局所采用。
除此之外,還有其他一些圖形數(shù)據(jù)庫,如OrientDB、InfoGrid和HypergraphDB。Ravel構(gòu)建在開源的Pregel實(shí)現(xiàn)之上,微軟研究院的Trinity項(xiàng)目也是一個(gè)圖形數(shù)據(jù)庫項(xiàng)目。(張志平/編譯)