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