NoSQL(最初表示Non-SQL,后来有人转解为Not only SQL),是對不同於傳統的關聯式資料庫的数据库管理系统的統稱。
允許部分数据使用SQL系統儲存,而其他数据允許使用NoSQL系統儲存。其数据儲存可以不需要固定的表格模式以及元数据(metadata),也經常會避免使用SQL的JOIN操作,一般有的特征。
发展历史
NoSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。
2009年,Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NoSQL的概念,这时的NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。
2009年在亚特兰大举行的「no:sql(east)」讨论会是一个里程碑,其口号是「select fun, profit from real_world where relational=false;」。因此,对NoSQL最普遍的解释是“非关聯型的”,强调键-值存储和面向文档数据库的优点,而不是单纯的反对RDBMS。
基于2014年的收入,NoSQL市场领先企业是,MongoDB和。基于2015年的人气排名,最受欢迎的NoSQL数据库是MongoDB,Apache Cassandra和Redis。
特点
当代典型的關聯式資料庫在一些数据敏感的应用中表现了糟糕的性能,例如为巨量文档建立索引、高流量网站的网页服务,以及发送流式媒体。关系型数据库的典型实现主要被调整用于执行规模小而读写频繁,或者大批量读而极少写访问的事务。
NoSQL的結構通常提供弱一致性的保證,如最終一致性,或交易僅限於單個的数据項。不過,有些系統,提供完整的ACID保證在某些情況下,增加了補充中間件層(例如:CloudTPS)。有兩個成熟的系統有提供快照隔離的列存儲:像是Google基於過濾器系統的BigTable,和滑鐵盧大學开发的HBase。這些系統,自主開發,使用類似的概念來實現多行(multi-row)分散式ACID交易的快照隔離(snapshot isolation)保證為基礎列儲存,無需額外的数据管理開銷,中間件系統部署或維護,減少了中間件層。
少数NoSQL系统部署了分布式结构,通常使用分散式雜湊表(DHT)将数据以冗余方式保存在多台服务器上。依此,扩充系统时候添加服务器更容易,并且扩大了对服务器失效的承受能程度。
分类
文档存储
图数据库
鍵-值(key‐value)儲存
最終一致性的鍵-值儲存
- Cassandra
*
*
*
*
架構性鍵-值储存
*
- InterSystem Globals
主機式服務
Key/value硬盘存储
- BigTable
*
- LevelDB
*
*
*
Key/value RAM存储
*
- memcached
- Citrusleaf database
*
- Redis
*
Key-value基于Paxos算法的存储
*
多数据库
- OpenQM
- Rocket U2
- Revelation Software's OpenInsight
- Extensible Storage Engine(ESE/NT)
时序型数据库
对象数据库
- Versant Object Database
- db4o
- GemStone/S
- InterSystems Caché
- JADE
- Objectivity/DB
- ZODB
- ObjectStore
列存储
- Cassandra
- HBase
- Hypertable
参考文献
外部链接
- [http://www.sigma.me/2011/06/11/intro-to-nosql.html NoSQL非关系数据库简介]
- [http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf Amazon数据库论文]
- [http://nosql-databases.org 在互联网上拥有NoSQL相关链接最多的网站。]
- [https://web.archive.org/web/20110227190046/http://sebug.net/paper/databases/nosql/Nosql.html NoSQL数据库笔谈]
- [http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparison]
参见
- 最终一致性(BASE——基本可用、弱状态、最终一致性——的其中一个组成要求,与关系数据库的Acid相对)
- CAP
评论 (0)