想像一下,將這個板添加到其中,然後添加一個數學引擎,以便它可以快速查詢各種關係。這就是圖資料庫的本質。
在本文中,我們將討論以下主題:
什麼是圖資料庫?
圖資料庫與關聯式資料庫
圖資料庫的組成部分
圖資料庫用例
雲端課程
透過由現實世界專家策劃的互動課程培養您的雲端技能。
什麼是圖資料庫?
圖形資料庫是一種專門的單一用途平台,用於建立和操作關聯和上下文性質的資料。圖本身包含節點、邊和屬性,它們組合在一起允許使用者以關聯式資料庫無法做到的方式表示和儲存資料。
圖資料庫系統的主要概念是關係。關係被定義為一等公民——這意味著你可以用所有其他元素所做的一切都可以透過關係來完成。資料在圖中關聯在一起,以儲存節點和邊的集合,其中邊表示節點之間的關係。
關係允許系統內的資料直接連結在一起。查詢圖形資料庫中的關係速度很快,因為它們以不變的方式儲存。您還可以將它們視覺化,這使得它們非常適合為高度互連的資料獲取見解。
社交網路圖資料庫中關係的表示
社交網路圖資料庫中關係的表示
圖資料庫與關聯式資料庫:異同
您可能仍然想知道圖形資料庫與關聯式資料庫有何不同。兩者都儲存資訊並用於表示資料之間的關係,但它們各自實現此目標的方式不同。
我們將它們之間的差異分為五類:
資料模型
手術
可擴展性
表現
易於使用
應用
讓我們更深入地研究它們的差異。
資料模型
關聯式資料庫使用資料表將資訊結構化為行和列。每列定義資料實體的特定屬性,而行代表單獨的資料記錄。由於資料表具有固定的架構,因此使用者必須使用主鍵和外鍵定義不同表之間的關係。
相較之下,圖資料庫使用圖結構來建立數據,其中使用節點、邊和屬性來表示資料。即,節點定義對象,邊說明節點之間的關係,屬性描述節點和邊的屬性。更多關於這一點的內容請往下看。
營運
關聯式資料庫利用 SQL 的強大功能來操作資料。 SQL 使開發人員能夠執行各種查詢,並透過表格之間定義良好的關係有效地處理結構化資料。它特別擅長過濾、聚合和連接多個表的資料。
圖資料庫使用遍歷演算法來查詢圖資料模型。遍歷演算法可以是深度優先或廣度優先,這有助於快速發現和檢索連接的資料。
可擴展性
儘管可以水平擴展關聯式資料庫(即使用分片),但它顯著提高了資料儲存的複雜性,並可能引發一致性等進一步問題。推薦的擴展關係資料庫的方法是垂直擴展。垂直擴展是指升級硬體(例如CPU、儲存、記憶體等)以增加伺服器可以處理的工作負載。
另一方面,圖資料庫在水平擴展方面做得很好。他們使用分區來實現這一壯舉,分區是一種將儲存的資料庫物件劃分為不同伺服器上的單獨部分的技術。然後,這些分區使許多伺服器能夠並行處理圖形查詢。
表現
圖資料庫通常使用無索引鄰接。這意味著每個節點直接引用其鄰居節點。因此,存取關係和相關資料僅由記憶體點查找組成。這本質上意味著它很快。
關係資料庫必須對不同的表格進行掃描以識別實體之間的關係。例如,如果您想連接多個表,資料庫系統必須掃描整個資料才能找到關係。這意味著隨著資料變大,效能會下降。
易於使用
關係是圖資料庫的核心。這使得它們在使用 捷克共和國電話號碼列表 連接資料時非常容易使用,特別是在執行多跳查詢時——執行具有多個關係的遍歷路徑的查詢。在關聯式資料庫中,這必須使用 SQL 來執行。用 SQL 寫多跳查詢並不自然。它們可能變得相當複雜,並且很容易導致難以閱讀和維護的大量查詢。
應用
對關係的關注使得圖資料庫非常適合經常觀察動態變化和適應的任務。此類任務包括語義搜尋和推薦引擎。相較之下,關聯式資料庫的剛性使其成為首先將結構化資料放入表中的理想選擇。此類數據的範例包括客戶資料和交易。
圖資料庫
關聯式資料庫
資料模型/架構
固定的
靈活的
營運
遍歷演算法
SQL
可擴展性
水平使用分區
垂直(可以水平但增加複雜性)。
表現
快速(包括大型數據集)
隨著資料集變大,速度變慢
易於使用
直覺的
不自然(但在許多用例中更加成熟和流行)。
應用
經常觀察動態變化和適應的任務(例如,語義搜尋、推薦引擎等)。
依賴資料完整性的任務(例如,客戶資料、交易等)。
圖資料庫的核心元件
如前所述,圖形資料庫使用戶能夠將資料表示為圖形。用於以這種格式建模資料的三個重要元件是節點、邊和屬性。
節點
物件或實例使用節點來表示。從概念上講,節點相當於關係資料庫中的行,充當圖形中的頂點。只需將標籤套用至每個成員即可對節點進行分組。
邊緣
圖中邊的另一個名稱是關係。關係始終由起始節點、結束節點、類型和方向組成。它們透過描述父子關係、操作、所有權等來形成資料模式。
特性
很簡單,屬性是與節點關聯的資訊。
圖資料庫範例
讓我們來看看當今可用的一些最受歡迎的圖形資料庫,幫助我們了解它們的主要功能。
一些流行的圖數據庫
一些流行的圖數據庫
新4j
Neo4j 是世界領先的圖形資料庫之一,使用戶能夠深入、輕鬆、快速地發現數十億資料連線中的模式和見解。即Neo4j是一個使用Java開發的高度可擴充的NoSQL開源資料庫。查看我們的NoSQL 概念課程以了解更多資訊。
主要特點包括:

屬性圖資料模型
支援直觀、靈活的資料建模,有助於輕鬆導航複雜的資料關係。
本機圖形處理與存儲
優化資料檢索和圖形遍歷,確保快速且有效率地處理大型資料集和複雜查詢。
符合原子性、一致性、隔離性和持久性 (ACID) 的事務
確保可靠的數據處理,保持所有交易中的數據準確性和可信度。
密碼圖查詢語言
提供強大且用戶友好的方法來查詢圖形數據,簡化從互連數據中提取有意義的見解。
高效能原生API
確保與資料庫的高效交互,這對於需要低延遲和高吞吐量資料庫交互的應用程式至關重要。
密碼客戶端
促進應用程式無縫執行 Cypher 查詢,增強動態和互動式使用者體驗。
多種程式語言的語言驅動程式
透過為各種程式語言(包括 C#、Go、Java、JavaScript 和 Python)提供驅動程序,提供開發靈活性,確保輕鬆整合到不同的技術堆疊中。
亞馬遜海王星
使用 Amazon Neptune(一種快速、可靠且完全託管的圖形資料庫服務)可以快速輕鬆地開發和運行處理密集連接資料的應用程式。專門建構的高效能圖形資料庫引擎是 Neptune 的基礎。該引擎旨在以毫秒延遲查詢圖表,同時維護數十億個關係。