一、圖數(shù)據(jù)庫
圖數(shù)據(jù)庫是基于圖模型的數(shù)據(jù)庫。相比較于關系型數(shù)據(jù)庫,圖數(shù)據(jù)庫是真正注重“關系”的數(shù)據(jù)庫。
圖數(shù)據(jù)庫的主要職能是管理圖數(shù)據(jù),因此需要支持高效的對頂點/邊的查詢與更新;為了方便用戶的使用,通常還需要增加對事務(transaction)的支持,從而保證并發(fā)操作下的正常運作。
圖數(shù)據(jù)庫的功能是傳統(tǒng)關系型數(shù)據(jù)庫的一個拓展,相比較關系型數(shù)據(jù)庫僅支持表結構,圖數(shù)據(jù)支持的圖結構更為靈活。圖數(shù)據(jù)庫在基于圖的數(shù)據(jù)增加、刪除、查詢、修改等方面做了不同于其他數(shù)據(jù)庫的設計。在圖數(shù)據(jù)的操作抽象上,采用基于頂點的視角,比如頂點通過其所有出邊訪問其鄰接頂點,這一類的操作也是圖數(shù)據(jù)庫系統(tǒng)設計的核心。
面對海量數(shù)據(jù)的存儲和處理問題,傳統(tǒng)的關系數(shù)據(jù)庫已經(jīng)無法滿足大部分的日常數(shù)據(jù)儲存的需求。圖數(shù)據(jù)庫技術可以將關系信息儲存為實體、靈活拓展數(shù)據(jù)模型。由于提供了對關聯(lián)數(shù)據(jù)最直接的表達,以及圖模型對異構數(shù)據(jù)天然的包容力。未來,圖數(shù)據(jù)庫技術必將成為最為熱點的技術之一,為企業(yè)存儲和分析大規(guī)模圖數(shù)據(jù)提供強有力的支持。
延伸閱讀:
二、圖數(shù)據(jù)庫優(yōu)點有什么
使用圖(或者網(wǎng))的方式來表達現(xiàn)實世界的關系很直接、自然,易于建模。比如某人喜歡看某電影,就可以建立一條邊連接這個人和這部電影,這條邊就叫做“喜歡”邊,同時這個人還可以有其它邊,比如“朋友”邊、“同學”邊等,同樣這個電影也可以有其它邊,比如“導演”邊、“主演”邊等,這樣就構建了自然的關系網(wǎng)。圖數(shù)據(jù)庫可以很高效的插入大量數(shù)據(jù)。圖數(shù)據(jù)庫面向的應用領域數(shù)據(jù)量可能都比較大,比如知識圖譜、社交關系、風控關系等,總數(shù)據(jù)量級別一般在億或十億以上,有的甚至達到百億邊。mysql不做分表分庫的情況下插入百萬數(shù)據(jù)基本就慢到不行,圖數(shù)據(jù)庫基本能勝任億級以上的數(shù)據(jù),比如neo4j、titan(janus)、hugegraph等圖數(shù)據(jù)庫,持續(xù)插入十億級的數(shù)據(jù)基本還能保持在一個較高的速度。圖數(shù)據(jù)庫可以很高效的查詢關聯(lián)數(shù)據(jù)。傳統(tǒng)關系型數(shù)據(jù)庫不擅長做關聯(lián)查詢,特別是多層關聯(lián)(比如查我的好友的好友有哪些人),因為一般來說都需要做表連接,表連接是一個很昂貴的操作,涉及到大量的IO操作及內(nèi)存消耗。圖數(shù)據(jù)庫對關聯(lián)查詢一般都進行針對性的優(yōu)化,比如存儲模型上、數(shù)據(jù)結構、查詢算法等,防止局部數(shù)據(jù)的查詢引發(fā)全部數(shù)據(jù)的讀取。