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