NoSQL 目录 发展历史 特点 分类 参考文献 外部链接 参见 导航菜单Investigating...


NoSQL


關聯式資料庫数据库管理系统JOIN水平可扩展性ACIDMarkLogicMongoDBDatastaxMongoDBApache CassandraRedis關聯式資料庫网页服务流式媒体ACIDCloudTPSBigTableHBase分散式雜湊表数据库数据模型关系 (数据库)关系模型分布式数据库ACID一致性隔離性Null值关系模型数据库规范化數據庫完整性實體完整性关系数据库管理系统主键外键代理键超键候选键触发器视图数据库表指标 (数据库)数据库事务并发控制乐观锁悲观锁数据库索引存储程序SQL数据查询语言(DQL)資料定義語言(DDL)資料操縱語言(DML)資料控制語言(DCL)SELECTINSERTUPDATEMERGEDELETEJOINCREATEDROPBegin workCOMMITROLLBACKTRUNCATEALTERSQL資料隱碼攻擊參數化查詢关系数据库維度化資料庫階層式圖形資料庫NoSQL对象数据库Temporal对象型对比关系型对比数据查询语言嵌入式SQLODBCJDBCOLE DB





NoSQL是對不同於傳統的關聯式資料庫的数据库管理系统的統稱。


兩者存在許多顯著的不同點,其中最重要的是NoSQL不使用SQL作為查詢語言。其數據存儲可以不需要固定的表格模式,也經常會避免使用SQL的JOIN操作,一般有水平可扩展性的特征。




目录






  • 1 发展历史


  • 2 特点


  • 3 分类


    • 3.1 文档存储


    • 3.2 图数据库


    • 3.3 鍵-值(key‐value)儲存


      • 3.3.1 最終一致性的鍵-值儲存


      • 3.3.2 架構性鍵-值储存




    • 3.4 主機式服務


      • 3.4.1 Key/value硬盘存储


      • 3.4.2 Key/value RAM存储


      • 3.4.3 Key-value基于Paxos算法的存储




    • 3.5 多数据库


    • 3.6 时序型数据库


    • 3.7 对象数据库


    • 3.8 列存储




  • 4 参考文献


  • 5 外部链接


  • 6 参见





发展历史


NoSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库[1]


2009年,Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论[2],来自Rackspace的Eric Evans再次提出了NoSQL的概念,这时的NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。


2009年在亚特兰大举行的"no:sql(east)"讨论会是一个里程碑,其口号是"select fun, profit from real_world where relational=false;"。因此,对NoSQL最普遍的解释是“非关聯型的”,强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS。


基于2014年的收入,NoSQL市场领先企业是MarkLogic,MongoDB和Datastax[3]。基于2015年的人气排名,最受欢迎的NoSQL数据库是MongoDB,Apache Cassandra和Redis[4]



特点


当代典型的關聯式資料庫在一些数据敏感的应用中表现了糟糕的性能,例如为巨量文档建立索引、高流量网站的网页服务,以及发送流式媒体[5]。关系型数据库的典型实现主要被调整用于执行规模小而读写频繁,或者大批量极少写访问的事务。


NoSQL的結構通常提供弱一致性的保證,如最終一致性,或交易僅限於單個的數據項。不過,有些系統,提供完整的ACID保證在某些情況​​下,增加了補充中間件層(例如:CloudTPS)[6]。有兩個成熟的系統有提供快照隔離的列存儲:像是Google基於過濾器系統的BigTable[7],和滑鐵盧大學开发的HBase[8]。這些系統,自主開發,使用類似的概念來實現多行(multi-row)分散式ACID交易的快照隔離(snapshot isolation)保證為基礎列儲存,無需額外的資料管理開銷,中間件系統部署或維護,減少了中間件層。


少数NoSQL系统部署了分布式结构,通常使用分散式雜湊表(DHT)将数据以冗余方式保存在多台服务器上。依此,扩充系统时候添加服务器更容易,并且扩大了对服务器失效的承受能程度。[9]



分类



文档存储































































名稱 語言
BaseX
XQuery,Java
CouchDB
Erlang
eXist
XQuery
iBoxDB
Java,C#
Jackrabbit
Java
Lotus Notes
LotusScript,Java等
MarkLogic Server
XQuery
MongoDB
C++
RethinkDB
C++
OrientDB
Java
SimpleDB
Erlang
Terrastore
Java
ElasticSearch
Java
No2DB
C#


图数据库



























名稱 語言
AllegroGraph
SPARQL
Sparksee
Java , C#
Neo4j
Java
FlockDB
Scala
JanusGraph Java


鍵-值(key‐value)儲存



最終一致性的鍵-值儲存



  • Cassandra

  • Dynamo

  • Hibari

  • Project Voldemort


  • Riak [10]



架構性鍵-值储存



  • GT.M

  • InterSystem Globals[11]



主機式服務



Key/value硬盘存储



  • BigTable

  • MemcacheDB

  • LevelDB



  • Tokyo Cabinet

  • Tuple space

  • TreapDB



Key/value RAM存储



  • Oracle Coherence

  • memcached

  • Citrusleaf database

  • Velocity

  • Redis

  • Tuple space



Key-value基于Paxos算法的存储


  • Keyspace


多数据库



  • OpenQM

  • Rocket U2

  • Revelation Software's OpenInsight


  • Extensible Storage Engine(ESE/NT)



时序型数据库



























名稱 語言
Graphite
Python
InfluxDB
Go
Informix TimeSeries
Erlang
OpenTSDB
Java
RRDtool
C


对象数据库



  • Versant Object Database

  • db4o

  • GemStone/S

  • InterSystems Caché

  • JADE

  • Objectivity/DB

  • ZODB

  • ObjectStore



列存储



  • Cassandra

  • HBase

  • Hypertable



参考文献





  1. ^
    Lith, Adam; Jakob Mattson. Investigating storage solutions for large data: A comparison of well performing and scalable data storage solutions for real time extraction and batch insertion of data (PDF). Göteborg: Department of Computer Science and Engineering, Chalmers University of Technology: 15, 70. 2010 [2011-05-12]. Carlo Strozzi first used the term NoSQL in 1998 as a name for his open source relational database that did not offer a SQL interface[...]  引文使用过时参数coauthors (帮助)



  2. ^ NOSQL 2009. Blog.sym-link.com. 2009-05-12 [2010-03-29]. 


  3. ^ Hadoop-NoSQL-rankings. [2015-11-17]. 


  4. ^ DB-Engines Ranking. [2015-07-31]. 


  5. ^ Agrawal, Rakesh 等. The Claremont report on database research (PDF). SIGMOD Record (計算機協會). 2008, 37 (3): 9–19. ISSN 0163-5808. doi:10.1145/1462571.1462573.  引文格式1维护:显式使用等标签 (link)


  6. ^ CloudTPS: Scalable Transactions for Web Applications in the Cloud. Globule.org. [2010-03-29]. 


  7. ^ Large-scale Incremental Processing Using Distributed Transactions and Notifications (PDF). The 9th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2010), Oct 4–6, 2010, Vancouver, BC, Canada. [2010-10-15]. 


  8. ^ Supporting Multi-row Distributed Transactions with Global Snapshot Isolation Using Bare-bones HBase (PDF). The 11th ACM/IEEE International Conference on Grid Computing (Grid 2010), Oct 25-29, 2010, Brussels, Belgium. [2010-10-15]. (原始内容 (PDF)存档于2011-06-29). 


  9. ^ Cassandra: Structured Storage System over a P2P Network (PDF). [2010-03-29]. 


  10. ^ Riak: An Open Source Scalable Data Store. 28 November 2010 [28 November 2010]. (原始内容存档于2010年12月31日). 


  11. ^ http://nosql.mypopescu.com/post/5633789299/intersystems-globals-and-gt-m-compared




外部链接



  • NoSQL非关系数据库简介

  • Amazon数据库论文

  • 在互联网上拥有NoSQL相关链接最多的网站。

  • NoSQL数据库笔谈

  • Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparison



参见




  • 最终一致性英语Eventual consistency(BASE——基本可用、弱状态、最终一致性——的其中一个组成要求,与关系数据库的Acid相对)

  • CAP


















数据库管理系统(DBMS) 查看 · 讨论 · 编辑

概念
数据库 ·
数据模型 ·
数据库存储结构英语Database storage structures ·
关系 (数据库) ·
关系模型 ·
分布式数据库 ·
ACID ( 原子性英语Atomicity (database systems) · 一致性· 隔離性· 持久性英语Durability (database systems) ) ·
Null值
关系模型 ·
数据库规范化 ·
數據庫完整性 ·
實體完整性 ·
參照完整性英语Referential integrity ·
关系数据库管理系统 
主键 · 外键 · 代理键 · 超键 · 候选键 



数据库组件
触发器 ·
视图 ·
数据库表 ·
指标 (数据库) ·
事务日志英语Transaction log ·
数据库事务 ·
并发控制 ·
乐观锁 ·
悲观锁 ·
数据库索引 
存储程序 ·
資料庫分割英语Partition (database)



SQL

分类:
数据查询语言(DQL) - 資料定義語言(DDL) - 資料操縱語言(DML) - 資料控制語言(DCL)

指令:SELECT ·
INSERT ·
UPDATE ·
MERGE ·
DELETE ·
JOIN ·
UNION英语Union (SQL) ·
CREATE ·
DROP ·
Begin work ·
COMMIT ·
ROLLBACK ·
TRUNCATE ·
ALTER

安全:
SQL資料隱碼攻擊 ·
參數化查詢



数据库管理系统的实现

实现类型
关系数据库 ·
檔案型資料庫英语Flat file database ·
Deductive英语Deductive database ·
維度化資料庫 ·
階層式 ·
圖形資料庫 ·
NoSQL·
对象数据库 ·
物件關聯式資料庫英语Object-relational database ·
Temporal ·
XML資料庫英语XML database



数据库产品
对象型(对比) ·
关系型(对比)



数据库组件
数据查询语言 ·
查詢最佳化器英语Query optimizer ·
查詢計畫英语Query plan ·
嵌入式SQL ·
ODBC ·
JDBC ·
OLE DB





Popular posts from this blog

“%fieldName is a required field.”, in Magento2 REST API Call for GET Method Type The Next...

How to change City field to a dropdown in Checkout step Magento 2Magento 2 : How to change UI field(s)...

變成蝙蝠會怎樣? 參考資料 外部連結 导航菜单Thomas Nagel, "What is it like to be a...