隨著Internet上Web 2.0網站的興起,傳統的關系數據庫已無法處理Web 2.0網站,尤其是超大型,高并發SNS型web2.0純動態網站,并且存在許多無法克服的問題。但是,非關系數據庫由于其自身的特性而迅速發展。創建NoSQL數據庫是為了解決大規模數據收集中多種數據類型帶來的挑戰,尤其是大數據應用程序的問題。那么,NoSQL是什么?NoSQL數據庫有哪些?
NoSQL是什么?
NoSQL 是 Not Only SQL 的縮寫,意思是“不僅僅有 SQL”,而不是大家通常理解的“不使用 SQL”。
NoSQL 數據庫也即非關系型數據庫,它是在大數據的時代背景下產生的,它可以處理分布式、規模龐大、類型不確定、完整性沒有保證的“雜亂”數據,這是傳統的關系型數據庫遠遠不能勝任的。
NoSQL 數據庫并沒有一個統一的模型,兩種不同的 NoSQL 數據庫之間的差異程度,遠遠超過兩種關系型數據庫之間的不同。可以說,NoSQL 數據庫各有所長,一個優秀的 NoSQL 數據庫必然特別適用于某些場合,在這些場合中會遠遠勝過關系型數據庫或者其它 NoSQL 數據庫。
這套 NoSQL 入門教程除了會介紹數據庫相關的概念,還會對比各種 NoSQL 數據庫,以及它們和關系型數據庫之間的區別。
NoSQL數據庫有哪些?
關系型數據庫產品很多,如 MySQL、Oracle、Microsoft SQL Sever 等,但它們的基本模型都是關系型數據模型。NoSQL 并沒有統一的模型,而且是非關系型的。
常見的 NoSQL 數據庫包括鍵值數據庫、列族數據庫、文檔數據庫和圖形數據庫。
1.鍵值數據庫
這一類數據庫主要會使用到一個散列表,這個表中有一個特定的鍵和一個指針指向特定的數據。
鍵值模型對于 IT 系統來說,其優勢在于簡單、易部署。鍵值數據庫可以按照鍵對數據進行定位,還可以通過對鍵進行排序和分區,以實現更快速的數據定位。
2.列族數據庫
列族數據庫通常用來應對分布式存儲的海量數據。鍵仍然存在,但是它們的特點是指向了多個列。
此列族數據庫表中由兩行組成,每一行都有關鍵字 Row Key,每一行由多個列族組成,即 Column-Family-1 和 Column-Family-2,而每個列族由多個列組成。
3.文檔數據庫
文檔數據庫的靈感來自 Lotus Notes 辦公軟件,它與鍵值數據庫類似。該類型的數據模型是版本化的文檔,文檔以特定的格式存儲,如 JSON。
文檔數據庫可以看作鍵值數據庫的升級版,允許之間嵌套鍵值。
文檔數據庫比鍵值數據庫的查詢效率更高, 因為文檔數據庫不僅可以根據鍵創建索引,同時還可以根據文檔內容創建索引。
4.圖形數據庫
圖形數據庫來源于圖論中的拓撲學,以節點、邊及節點之間的關系來存儲復雜網絡中的數據。
這種拓撲結構類似 E-R 圖,但在圖形模式中,關系和節點本身就是數據,而在 E-R 圖中,關系描述的是一種結構。
好了,關于NoSQL是什么,以及NoSQL數據庫有哪些相信大家已經知曉了吧,想了解更多關于NoSQL數據庫的信息,請繼續關注中培偉業。