由節點與邊組成的立體網路結構示意圖,象徵圖形資料庫的資料模型

← INSIGHTS & PERSPECTIVES | 後端開發

圖形資料庫的概念入門

從 ACID、NoSQL 演進談起,說明圖形資料庫如何用節點與邊儲存關聯資料並提升查詢效率

關聯式資料庫靠外鍵和 JOIN 表示資料之間的關係,資料一多、關聯一複雜,查詢就跟著變慢。圖形資料庫換了一種角度:把「實體」存成節點,把「關係」存成邊,資料之間怎麼連,資料庫裡就怎麼存。這篇整理自 Neo4j 官方一支概念說明影片的學習筆記,從關聯式資料庫的 ACID 特性講起,一路談到圖形資料庫解決了什麼問題。

關聯式資料庫的 ACID 是什麼?

ACID 是用來描述資料庫事務正確性的四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。多數關聯式資料庫管理系統(RDBMS)靠這四個特性保證交易可靠,是它們數十年來被當作預設選擇的基礎。

  • 原子性:一筆事務裡的所有操作要嘛全部完成,要嘛全部不做,中途失敗就整筆回滾。
  • 一致性:事務結束後,資料庫必須從一個合法狀態轉移到另一個合法狀態,所有規則都要成立。
  • 隔離性:並行執行的多筆事務彼此看不到對方的中間狀態,就像自己是系統裡唯一在跑的事務。
  • 持久性:事務一旦提交,結果就永久保存,就算系統當機也不會遺失。

為什麼會出現 NoSQL?

關聯式資料庫用表格存資料,資料多了以後有兩個明顯的痛點:一是為了去重、維持一致性而做正規化,會產生大量自動生成的數字外鍵,讓資料變得難讀難維護;二是要拿到完整資訊得靠複雜的 JOIN,一旦牽涉到十幾二十張表,每次查詢都要重複做索引查找,成本隨資料量線性甚至更快地往上堆。

雲端運算普及後,資料量的成長速度遠超過傳統關聯式資料庫的應付能力。NoSQL 技術因此崛起,用意很直接:查得更快、扛得住更大的資料量,代價是放棄 ACID 的部分保證。多數系統面對百萬筆等級的交易時,偶爾容忍一兩筆資料的誤差是划算的取捨。

伴隨 NoSQL 而來的是幾種新的資料存取介面:

  • 鍵值介面:用一個 key 存一個 value,之後靠 key 取值,但 value 本身對資料庫來說是不透明的黑盒子。
  • 文件資料庫:除了用 key 查,也能依文件內容索引查詢,內容本身是可被檢索的。

圖形資料庫如何存資料、又怎麼查?

圖形資料庫把資料存成節點(實體)與邊(關係)組成的圖結構,而不是表格。每個節點代表一個實體,每條邊代表實體之間的某種關係——這種存法本身就貼近真實世界的結構,社交網路分析、推薦系統、詐欺偵測這類「關係本身就是重點」的場景特別吃香。

查詢時,開發者直接沿著邊走訪就能拿到複雜的關聯結果,不需要像關聯式資料庫那樣層層 JOIN。資料模型和查詢邏輯之間的落差變小了,這也是圖形資料庫在效率上的核心優勢。

圖形資料庫還保有 ACID 嗎?

多數 NoSQL 資料庫為了擴展性犧牲了嚴格的事務保證,但這對需要資料完整性的應用是個問題。以 Neo4j 為例,它在圖模型之上仍然支援完整的 ACID 事務,讓開發者不必在「圖結構的彈性」和「事務的可靠性」之間二選一。

從關聯式資料庫遷移到圖形資料庫困難嗎?

把既有的關聯式資料搬到圖形資料庫聽起來像個大工程,但實際操作起來相對直觀:表格裡的每一列通常對應一個節點,外鍵關係則直接轉換成邊。遷移完成後,資料模型更貼近業務邏輯的實際樣貌,查詢速度和後續擴充的彈性也會跟著提升,對業務需求變動頻繁的團隊尤其有感。

評估圖形資料庫時該看哪三個指標?

開發者評估資料庫技術時,通常會看直觀性、速度、敏捷性這三個面向。

指標圖形資料庫的表現
直觀性白板上畫的資料模型和實際落地的儲存結構一致,減少「業務描述」到「程式實作」之間的轉譯落差
速度省去多表 JOIN,查詢直接沿關係走訪;官方案例提到 eBay 換成圖形資料庫後效能有數量級的提升
敏捷性schema optional 的資料模型讓新增節點、關聯或屬性不需要 schema 遷移,需要什麼就直接加

直觀性減少的是團隊溝通和開發轉換的摩擦——業務人員描述的需求模型和實際存進資料庫的結構長得一樣,理解和維護的成本自然降低。速度不只是查詢執行得快,也包括開發本身變快,兩者疊加起來,才有辦法把過去只能批次處理的流程,做到接近即時。敏捷性則直接回應了關聯式資料庫最大的痛點:schema 變動不再需要大規模遷移,需要新節點、新關聯、新屬性,加上去就是了。

常見問題

Q圖形資料庫適合取代所有關聯式資料庫的場景嗎?

不是。圖形資料庫在「關係本身是查詢重點」的場景(社交網路、推薦系統、知識圖譜、詐欺偵測)優勢明顯,但單純的交易紀錄、報表統計這類結構固定、關聯簡單的場景,關聯式資料庫仍然是成熟且夠用的選擇。

Q圖形資料庫還需要正規化嗎?

圖形資料庫的資料模型設計邏輯和關聯式資料庫不同,不需要為了去重而拆表產生外鍵,關係直接用邊表示,設計時思考的是「實體之間怎麼連」,而不是「怎麼拆表減少重複」。

QNeo4j 是唯一的圖形資料庫嗎?

不是,Neo4j 是目前最主流的圖形資料庫之一,但市場上還有其他實作(如 Amazon Neptune、ArangoDB 等),各自在查詢語言、擴展方式上有所差異,選型時仍需依專案需求評估。

參考資料

延伸閱讀

關於作者 {#author}

Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。

首次發布:2024-07-24