書名: Neo4j權威指南 (圖數據庫技術叢書)作者名: 張幟本章字數: 742字更新時間: 2020-11-28 15:15:47
1.4 圖數據庫與其他NoSQL數據庫的對比
為了克服關系數據庫在大型企業級應用中的弊端,NoSQL數據庫逐漸流行起來。NoSQL數據庫專注于解決大規模數據集合、多重數據種類帶來的挑戰,尤其是大數據應用難題。同時NoSQL數據庫的多樣化也提供了多種不同的數據模型解決方案,每個解決方案都可以應用到不同的項目用例中。顯然,Neo4j就是NoSQL中可以提供圖數據模型的典型代表。
1.4.1 其他NoSQL數據庫的弊端
目前大部分NoSQL類數據庫的數據存儲形式都是基于集合的,數據按照集合被劃分開,比如文檔數據庫中的文檔。NoSQL數據庫的數據存儲在不連貫的集合中,這使得數據之間的相互連接、建立關系變得困難。
要實現類似關系數據庫的外鍵功能,通常人們會將某個數據集合直接嵌入到另一個數據集合中來實現兩者之間的從屬關系,但很明顯這樣創建數據集合之間的關系要付出很大的存儲開銷。
1.4.2 將鍵值對存儲與圖數據庫相關聯
如圖1-9所示,鍵值(Key-Value)存儲數據庫,其數據按照鍵值對的形式進行組織、索引和存儲,類似Java中的map,它適合不涉及過多數據關系的應用。因為能有效減少讀寫磁盤的次數,所以其性能非常高。

圖1-9 鍵值對存儲結構
如果將這些鍵值對相互關聯,就可以得到一個圖結構。通過這個圖結構,可以表達數據之間的復雜關系,如圖1-10所示。

圖1-10 鍵值對存儲結構與圖結構相互關聯
1.4.3 將文檔存儲與圖數據庫相關聯
文檔存儲的層次化結構可容納許多無模式的數據,可以輕松地將數據存儲為樹狀結構。雖然樹也是一種圖形,但樹只能表達從下到上的從屬關系,如圖1-11所示。

圖1-11 文檔存儲結構
在樹狀存儲結構中總會出現多次被嵌入的冗余數據,這增加了更新數據的困難,同時也難以確保數據的一致性。如果我們將冗余的數據去掉,然后用圖結構將存在相互關系的數據相關聯,數據冗余的問題就解決了,并且數據之間的關系變得更直觀,如圖1-12所示。

圖1-12 文檔存儲結構與圖結構相互關聯
- Java語言程序設計
- Django Design Patterns and Best Practices
- Oracle數據庫從入門到運維實戰
- Visual Basic學習手冊
- C語言程序設計教程
- Geospatial Development By Example with Python
- Clojure for Java Developers
- 小程序從0到1:微信全棧工程師一本通
- Python函數式編程(第2版)
- Clojure Polymorphism
- IPython Interactive Computing and Visualization Cookbook
- 數字媒體技術概論
- MATLAB 2020 GUI程序設計從入門到精通
- Python量子計算實踐:基于Qiskit和IBM Quantum Experience平臺
- WordPress 3.7 Complete(Third Edition)