圖數據庫

在計算機科學中 ， 圖數據庫 ( GDB ） 是一個使用圖結構進行語義查詢的數據庫 ， 它使用節點 、 邊和屬性來表示和存儲數據 。 該系統的關鍵概念是圖 ， 它直接將存儲中的數據項 ， 與數據節點和節點間表示關係的邊的集合相關聯 。 這些關係允許直接將存儲區中的數據鏈接在一起 ， 並且在許多情況下 ， 可以通過一個操作進行檢索 。 圖數據庫將數據之間的關係作爲優先級 。 查詢圖數據庫中的關係很快 ， 因爲它們永久存儲在數據庫本身中 。 可以使用圖數據庫直觀地顯示關係 ， 使其對於高度互連的數據非常有用 。 圖數據庫是一種非關係型數據庫 ， 以解決現有關係數據庫的侷限性 。 圖模型明確地列出了數據節點之間的依賴關係 ， 而關係模型和其他NoSQL數據庫模型則通過隱式連接來鏈接數據 。 圖數據庫從設計上 ， 就是可以簡單快速地檢索難以在關係系統中建模的複雜層次結構的 。 圖數據庫與20世紀70年代的網絡模型數據庫相似 ， 它們都表示一般的圖 ， 但是網絡模型數據庫在較低的抽象層次上運行 ， 並且不能輕鬆遍歷一系列邊 。 圖數據庫的底層存儲機制可能各有不同 。 有些依賴於關係引擎並將圖數據 “ 存儲 ” 到表中 （ 雖然表是一個邏輯元素 ， 但是這種方法在圖數據庫 、 圖數據庫管理系統和實際存儲數據的物理設備之間施加了另一層抽象 ） 。 另一些則使用鍵值存儲或文件導向的數據庫進行存儲 ， 使它們具有固有的NoSQL結構 。 大多數基於非關係存儲引擎的圖數據庫還添加了標記或屬性的概念 ， 這些標記或屬性本質上是具有指向另一個文檔的指針的關係 。 這樣就可以對數據元素進行分類 ， 以便於集中檢索 。 從圖數據庫中檢索數據需要SQL之外的查詢語言 ， SQL是爲了處理關係系統中的數據而設計的 ， 因此無法 “ 優雅地 ” 處理遍歷圖 。 ， 沒有一個像SQL那樣通用的圖查詢語言 ， 通常都是僅限與一個產品的 。 不過 ， 已經有一些標準化的工作 ， 使得Gremlin 、 SPARQL和Cypher成爲了多供應商查詢語言 。 除了具有查詢語言接口外 ， 還可以通過應用程序接口 （ API ） 訪問一些圖數據庫 。 圖數據庫與圖計算引擎不同 。 圖數據庫是轉換關係OLTP數據庫的技術 。 而圖計算引擎在OLAP中用於批量分析 。 由於主要技術公司在使用專有圖數據庫方面的成功以及開源圖數據庫的引入 ， 圖數據庫在2000年代引起了相當大的關注 。