1. 程式人生 > >非關係資料庫

非關係資料庫

非關係型資料庫,又被稱為NoSQL(Not Only SQL ),意為不僅僅是SQL( Structured QueryLanguage,結構化查詢語言),據維基百科介紹,NoSQL最早出現於1998 年,是由Carlo Storzzi最早開發的個輕量、開源、不相容SQL 功能的關係型資料庫。

NoSQL描述的是大量結構化資料儲存方法的集合,根據結構化方法以及應用場合的不同,主要可以將NoSQL分為以下幾類。

(1)Column-Oriented

面向檢素的列式儲存,其儲存結構為列式結構,同於關係型資料庫的行式結構,這種結構會讓很多統計聚合操作更簡單方便,使系統具有較高的可擴充套件性。這類資料庫還可以適應海量資料的增加以及資料結構的變化,這個特點與雲端計算所需的相關需求是相符合的。

(2)Key-Value

面向高效能併發讀/寫的快取儲存,其結構類似於資料結構中的Hash表,每個Key分別對應一個Value,能夠提供非常快的查詢速度、大資料存放量和高併發操作,非常適合通過主鍵對資料進行查詢和修改等操作。Key-Value資料庫的主要特點是具有極高的併發讀/寫效能,非常適合作為快取系統使用。MemcacheDB、BerkeleyDB、Redis、Flare就是Key-Value資料庫的代表。

(3)Document-Oriented

面向海量資料訪問的文件儲存,這類儲存的結構與Key-Value非常相似,也是每個Key分別對應一個Value,但是這個Value主要以JSON(JavaScriptObjectNotations)或者XML等格式的文件來進行儲存。這種儲存方式可以很方便地被面向物件的語言所使用。這類資料庫可在海量的資料中快速查詢資料,典型代表為MongoDB、CouchDB等。

NoSQL具有擴充套件簡單、高併發、高穩定性、成本低廉等優勢,也存在一些問題。例如,NoSQL暫不提供SQL的支援,會造成開發人員的額外學習成本;NoSQL大多為開源軟體其成熟度與商用的關係型資料庫系統相比有差距;NoSQL的架構特性決定了其很難保證資料的完整性,適合在一些特殊的應用場景使用。