關聯式資料庫靠外鍵和 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 變動不再需要大規模遷移,需要新節點、新關聯、新屬性,加上去就是了。
常見問題
圖形資料庫適合取代所有關聯式資料庫的場景嗎?
不是。圖形資料庫在「關係本身是查詢重點」的場景(社交網路、推薦系統、知識圖譜、詐欺偵測)優勢明顯,但單純的交易紀錄、報表統計這類結構固定、關聯簡單的場景,關聯式資料庫仍然是成熟且夠用的選擇。
圖形資料庫還需要正規化嗎?
圖形資料庫的資料模型設計邏輯和關聯式資料庫不同,不需要為了去重而拆表產生外鍵,關係直接用邊表示,設計時思考的是「實體之間怎麼連」,而不是「怎麼拆表減少重複」。
Neo4j 是唯一的圖形資料庫嗎?
不是,Neo4j 是目前最主流的圖形資料庫之一,但市場上還有其他實作(如 Amazon Neptune、ArangoDB 等),各自在查詢語言、擴展方式上有所差異,選型時仍需依專案需求評估。
參考資料
- Neo4j 官方文件,〈What is Neo4j?〉,說明節點、關係與 ACID 事務等圖形資料庫核心概念,存取日期:2026-08-27。https://neo4j.com/docs/getting-started/whats-neo4j/
延伸閱讀
關於作者 {#author}
Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。
首次發布:2024-07-24
