NoSQL
NoSQL(最初表示Non-SQL[1],後來有人轉解為Not only SQL[2][3]),是對不同於傳統的關聯式資料庫的數據庫管理系統的統稱。
允許部分數據使用SQL系統儲存,而其他數據允許使用NoSQL系統儲存。其數據儲存可以不需要固定的表格模式以及元數據(metadata),也經常會避免使用SQL的JOIN操作,一般有腳本錯誤:沒有「ilh」這個模塊。的特徵。
發展歷史[編輯]
NoSQL一詞最早出現於1998年,是Carlo Strozzi開發的一個輕量、開源、不提供SQL功能的關係數據庫[4]。
2009年,Last.fm的Johan Oskarsson發起了一次關於分佈式開源數據庫的討論[5],來自Rackspace的Eric Evans再次提出了NoSQL的概念,這時的NoSQL主要指非關係型、分佈式、不提供ACID的數據庫設計模式。
2009年在亞特蘭大舉行的「no:sql(east)」討論會是一個里程碑,其口號是「select fun, profit from real_world where relational=false;」。因此,對NoSQL最普遍的解釋是「非關聯型的」,強調鍵-值存儲和面向文檔數據庫的優點,而不是單純的反對RDBMS。
基於2014年的收入,NoSQL市場領先企業是腳本錯誤:沒有「ilh」這個模塊。,MongoDB和腳本錯誤:沒有「ilh」這個模塊。[6]。基於2015年的人氣排名,最受歡迎的NoSQL數據庫是MongoDB,Apache Cassandra和Redis[7]。
特點[編輯]
當代典型的關聯式資料庫在一些數據敏感的應用中表現了糟糕的性能,例如為巨量文檔建立索引、高流量網站的網頁服務,以及發送流式媒體[8]。關係型數據庫的典型實現主要被調整用於執行規模小而讀寫頻繁,或者大批量讀而極少寫訪問的事務。
NoSQL的結構通常提供弱一致性的保證,如最終一致性,或交易僅限於單個的數據項。不過,有些系統,提供完整的ACID保證在某些情況下,增加了補充中間件層(例如:CloudTPS)[9]。有兩個成熟的系統有提供快照隔離的列存儲:像是Google基於過濾器系統的BigTable[10],和滑鐵盧大學開發的HBase[11]。這些系統,自主開發,使用類似的概念來實現多行(multi-row)分散式ACID交易的快照隔離(snapshot isolation)保證為基礎列儲存,無需額外的數據管理開銷,中間件系統部署或維護,減少了中間件層。
少數NoSQL系統部署了分佈式結構,通常使用分散式雜湊表(DHT)將數據以冗餘方式保存在多台伺服器上。依此,擴充系統時候添加伺服器更容易,並且擴大了對伺服器失效的承受能程度。[12]
分類[編輯]
文檔存儲[編輯]
圖數據庫[編輯]
| 名稱 | 語言 |
|---|---|
| AllegroGraph | SPARQL |
| Sparksee | Java , C# |
| Neo4j | Java |
| FlockDB | Scala |
| JanusGraph | Java |
鍵-值(key‐value)儲存[編輯]
最終一致性的鍵-值儲存[編輯]
架構性鍵-值儲存[編輯]
- 腳本錯誤:沒有「ilh」這個模塊。
- InterSystem Globals[14]
主機式服務[編輯]
Key/value硬盤存儲[編輯]
- 腳本錯誤:沒有「ilh」這個模塊。
- 腳本錯誤:沒有「ilh」這個模塊。
- 腳本錯誤:沒有「ilh」這個模塊。
Key/value RAM存儲[編輯]
- 腳本錯誤:沒有「ilh」這個模塊。
- memcached
- Citrusleaf database
- 腳本錯誤:沒有「ilh」這個模塊。
- Redis
- 腳本錯誤:沒有「ilh」這個模塊。
Key-value基於Paxos算法的存儲[編輯]
- 腳本錯誤:沒有「ilh」這個模塊。
多數據庫[編輯]
- OpenQM
- Rocket U2
- Revelation Software's OpenInsight
- Extensible Storage Engine(ESE/NT)
時序型數據庫[編輯]
| 名稱 | 語言 |
|---|---|
| Graphite | Python |
| InfluxDB | Go |
| Informix TimeSeries | Erlang |
| OpenTSDB | Java |
| RRDtool | C |
| IoTDB | Java |
對象數據庫[編輯]
列存儲[編輯]
參考文獻[編輯]
- ↑ http://nosql-database.org/ (頁面存檔備份,存於互聯網檔案館) "NoSQL DEFINITION: Next Generation Databases mostly addressing some of the points : being non-relational, distributed, open-source and horizontally scalable".
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite journal
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
外部連結[編輯]
- NoSQL非關係數據庫簡介 (頁面存檔備份,存於互聯網檔案館)
- Amazon數據庫論文 (頁面存檔備份,存於互聯網檔案館)
- 在互聯網上擁有NoSQL相關連結最多的網站。 (頁面存檔備份,存於互聯網檔案館)
- NoSQL數據庫筆談
- Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparison (頁面存檔備份,存於互聯網檔案館)