圖數(shù)據(jù)庫(kù)基本概念

計(jì)算機(jī)科學(xué)中,圖數(shù)據(jù)庫(kù)(英語(yǔ):graph database,GDB[1])是一個(gè)使用圖結(jié)構(gòu)進(jìn)行語(yǔ)義查詢數(shù)據(jù)庫(kù),它使用節(jié)點(diǎn)和屬性來(lái)表示和存儲(chǔ)數(shù)據(jù)。該系統(tǒng)的關(guān)鍵概念是圖,它直接將存儲(chǔ)中的數(shù)據(jù)項(xiàng),與數(shù)據(jù)節(jié)點(diǎn)和節(jié)點(diǎn)間表示關(guān)系的邊的集合相關(guān)聯(lián)。這些關(guān)系允許直接將存儲(chǔ)區(qū)中的數(shù)據(jù)鏈接在一起,并且在許多情況下,可以通過(guò)一個(gè)操作進(jìn)行檢索。圖數(shù)據(jù)庫(kù)將數(shù)據(jù)之間的關(guān)系作為優(yōu)先級(jí)。查詢圖數(shù)據(jù)庫(kù)中的關(guān)系很快,因?yàn)樗鼈冇谰么鎯?chǔ)在數(shù)據(jù)庫(kù)本身中??梢允褂脠D數(shù)據(jù)庫(kù)直觀地顯示關(guān)系,使其對(duì)于高度互連的數(shù)據(jù)非常有用。[2]

圖數(shù)據(jù)庫(kù)是一種非關(guān)系型數(shù)據(jù)庫(kù),以解決現(xiàn)有關(guān)系數(shù)據(jù)庫(kù)的局限性。圖模型明確地列出了數(shù)據(jù)節(jié)點(diǎn)之間的依賴關(guān)系,而關(guān)系模型和其他NoSQL數(shù)據(jù)庫(kù)模型則通過(guò)隱式連接來(lái)鏈接數(shù)據(jù)。圖數(shù)據(jù)庫(kù)從設(shè)計(jì)上,就是可以簡(jiǎn)單快速地檢索難以在關(guān)系系統(tǒng)中建模的復(fù)雜層次結(jié)構(gòu)的。圖數(shù)據(jù)庫(kù)與20世紀(jì)70年代的網(wǎng)絡(luò)模型數(shù)據(jù)庫(kù)相似,它們都表示一般的圖,但是網(wǎng)絡(luò)模型數(shù)據(jù)庫(kù)在較低的抽象層次[3]上運(yùn)行,并且不能輕松遍歷一系列邊。[4]

圖數(shù)據(jù)庫(kù)的底層存儲(chǔ)機(jī)制可能各有不同。有些依賴于關(guān)系引擎并將圖數(shù)據(jù)“存儲(chǔ)”到中(雖然表是一個(gè)邏輯元素,但是這種方法在圖數(shù)據(jù)庫(kù)、圖數(shù)據(jù)庫(kù)管理系統(tǒng)和實(shí)際存儲(chǔ)數(shù)據(jù)的物理設(shè)備之間施加了另一層抽象)。另一些則使用鍵值存儲(chǔ)面向文檔的數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ),使它們具有固有的NoSQL結(jié)構(gòu)。大多數(shù)基于非關(guān)系存儲(chǔ)引擎的圖數(shù)據(jù)庫(kù)還添加了標(biāo)記或?qū)傩缘母拍?,這些標(biāo)記或?qū)傩员举|(zhì)上是具有指向另一個(gè)文檔的指針的關(guān)系。這樣就可以對(duì)數(shù)據(jù)元素進(jìn)行分類,以便于集中檢索。

從圖數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)需要SQL之外的查詢語(yǔ)言,SQL是為了處理關(guān)系系統(tǒng)中的數(shù)據(jù)而設(shè)計(jì)的,因此無(wú)法“優(yōu)雅地”處理遍歷圖。截至2017年,沒有一個(gè)像SQL那樣通用的圖查詢語(yǔ)言,通常都是僅限與一個(gè)產(chǎn)品的。不過(guò),已經(jīng)有一些標(biāo)準(zhǔn)化的工作,使得Gremlin、SPARQLCypher成為了多供應(yīng)商查詢語(yǔ)言。除了具有查詢語(yǔ)言接口外,還可以通過(guò)應(yīng)用程序接口(API)訪問一些圖數(shù)據(jù)庫(kù)。

圖數(shù)據(jù)庫(kù)與圖計(jì)算引擎不同。圖數(shù)據(jù)庫(kù)是轉(zhuǎn)換關(guān)系OLTP數(shù)據(jù)庫(kù)的技術(shù)。而圖計(jì)算引擎在OLAP中用于批量分析。由于主要技術(shù)公司在使用專有圖數(shù)據(jù)庫(kù)方面的成功以及開源圖數(shù)據(jù)庫(kù)的引入,[5]?圖數(shù)據(jù)庫(kù)在2000年代引起了相當(dāng)大的關(guān)注。

參考文獻(xiàn)

[編輯]

^?Nikolaos G. Bourbakis.Artificial Intelligence and Automation. World Scientific. 1998: 381?[2018-04-20].ISBN?9789810226374. (原始內(nèi)容存檔于2023-11-09).

^?Yoon, Byoung-Ha; Kim, Seon-Kyu; Kim, Seon-Young.Use of Graph Database for the Integration of Heterogeneous Biological Data. Genomics & Informatics. March 2017,15(1): 19–27.ISSN?1598-866X.

PMC?5389944.PMID?28416946.doi:10.5808/GI.2017.15.1.19.

^?Angles, Renzo; Gutierrez, Claudio.Survey of graph database models(PDF). ACM Computing Surveys. 1 Feb 2008,40(1): 1–39?[28 May?2016].

CiteSeerX?10.1.1.110.1072.doi:10.1145/1322432.1322433. (原始內(nèi)容(PDF)存檔于2017-08-15).

network models [...] lack a good abstraction level: it is difficult to separate the db-model from the actual implementation

^?Silberschatz, Avi.Database System Concepts, Sixth Edition(PDF). McGraw-Hill. 28 January 2010: D-29?[2019-03-08].ISBN?978-0-07-352332-3. (原始內(nèi)容(PDF)存檔于2018-08-26).

^Graph Databases Burst into the Mainstream. www.kdnuggets.com.?[2018-10-23]. (原始內(nèi)容存檔于2018-11-13).

^Amazon Neptune Engine Updates 2018-09-06.AWS.?[Sep 22,?2018]. (原始內(nèi)容存檔于2021-03-08).

^In-Memory Massively Parallel Distributed Graph Database Purpose-built for Analytics. www.Cambridgesemantics.com.?[2018-02-20]. (原始內(nèi)容存檔于2018-02-21).

^?Rueter, John.Cambridge Semantics Announces AnzoGraph Graph-Based Analytics Support for Amazon Neptune and Graph Databases. Businesswire. February 15, 2018?[February 20,?2018]. (原始內(nèi)容存檔于2018-11-16).

^?Zane, Barry.Semantic Graph Databases: A worthy successor to relational databases. www.dbta.com. November 2, 2016?[February 20,?2018]. (原始內(nèi)容存檔于2018-11-09).

^Cambridge Semantics Announces AnzoGraph Support for Amazon Neptune and Graph Databases. Database Trends and Applications. 2018-02-15?[2018-03-08]. (原始內(nèi)容存檔于2018-03-09).

^?Woodie, Alex.Beyond Titan: The Evolution of DataStax's New Graph Database. Datanami. June 21, 2016?[May 9,?2017]. (原始內(nèi)容存檔于2019-09-13).

^HugeGraph Database user documentation.GitHub.?[March 20,?2020]. (原始內(nèi)容存檔于2019-12-13).

^JanusGraph version 0.6.1. 2022-01-18?[2022-01-18]. (原始內(nèi)容存檔于2022-01-23) –通過(guò)Github.

^JanusGraph storage backends.?[2019-03-18]. (原始內(nèi)容存檔于2018-10-02).

^JanusGraph index storages.?[2019-03-18]. (原始內(nèi)容存檔于2018-10-02).

^What's New in SQL Server 2017. Microsoft Docs. April 19, 2017?[May 9,?2017]. (原始內(nèi)容存檔于2017-08-21).

^Release Notes: Neo4j 3.1.1.Neo4j.?[May 9,?2017]. (原始內(nèi)容存檔于2018-11-16).

^Ranking of Graph DBMS.DB-Engines.?[May 9,?2017]. (原始內(nèi)容存檔于2019-03-08).

^Clustering Deployment Architecture Diagrams for Virtuoso. Virtuoso Open-Source Wiki.OpenLink Software.?[May 9,?2017]. (原始內(nèi)容存檔于2023-08-08).

^?Rudolf, Michael; Paradies, Marcus; Bornh?vd, Christof; Lehner, Wolfgang.The Graph Story of the SAP HANA Database(PDF).Lecture Notes in Informatics.?[2019-03-18]. (原始內(nèi)容存檔(PDF)于2017-04-05).

^?Vanian, Jonathan.NSA-linked Sqrrl eyes cyber security and lands $7M in funding.Gigaom. 18 February 2015?[May 9,?2017]. (原始內(nèi)容存檔于2019-03-09).

^?Woodie, Alex.The Art of Analytics, Or What the Green-Haired People Can Teach Us. Datanami. October 23, 2015?[May 9,?2017]. (原始內(nèi)容存檔于2019-09-15).

維基百科原文鏈接:https://zh.wikipedia.org/wiki/%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容