
_START_ARTICLE_
NoSQL
_START_PARAGRAPH_
NoSQL是对不同于传统的关系数据库的数据库管理系统的统称。_NEWLINE_两者存在许多显著的不同点，其中最重要的是NoSQL不使用SQL作为查询语言。其数据存储可以不需要固定的表格模式，也经常会避免使用SQL的JOIN操作，一般有水平可扩展性的特征。
_START_SECTION_
发展历史
_START_PARAGRAPH_
NoSQL一词最早出现于1998年，是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。_NEWLINE_2009年，Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论，来自Rackspace的Eric Evans再次提出了NoSQL的概念，这时的NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。_NEWLINE_2009年在亚特兰大举行的"no:sql(east)"讨论会是一个里程碑，其口号是"select fun, profit from real_world where relational=false;"。因此，对NoSQL最普遍的解释是“非关联型的”，强调键-值存储和面向文档数据库的优点，而不是单纯的反对RDBMS。_NEWLINE_基于2014年的收入，NoSQL市场领先企业是MarkLogic，MongoDB和Datastax。基于2015年的人气排名，最受欢迎的NoSQL数据库是MongoDB，Apache Cassandra和Redis。
_START_SECTION_
特点
_START_PARAGRAPH_
当代典型的关系数据库在一些数据敏感的应用中表现了糟糕的性能，例如为巨量文档创建索引、高流量网站的网页服务，以及发送流式媒体。关系型数据库的典型实现主要被调整用于执行规模小而读写频繁，或者大批量极少写访问的事务。_NEWLINE_NoSQL的结构通常提供弱一致性的保证，如最终一致性，或交易仅限于单个的数据项。不过，有些系统，提供完整的ACID保证在某些情况​​下，增加了补充中间件层（例如：CloudTPS）。有两个成熟的系统有提供快照隔离的列存储：像是Google基于过滤器系统的BigTable，和滑铁卢大学开发的HBase。这些系统，自主开发，使用类似的概念来实现多行（multi-row）分布式ACID交易的快照隔离（snapshot isolation）保证为基础列存储，无需额外的数据管理开销，中间件系统部署或维护，减少了中间件层。_NEWLINE_少数NoSQL系统部署了分布式结构，通常使用分布式散列表（DHT）将数据以冗余方式保存在多台服务器上。依此，扩充系统时候添加服务器更容易，并且扩大了对服务器失效的承受能程度。