NOSQL浅见总结
NOSQ概念: nosql:not only sql.对不同于传统的关系型数据库系统的统称 两者存在许多显著的不同点,其中最重要的是NoSQL不使用SQL作为查询语言。其数据存储可以不需要固定的表格模式,也经常会避免使用SQL的JOIN操作,一般有水平可扩展性的特征。 特征: NOSQL的实现具有二个特征: 使用硬盘,或者把随机存储器作存储载体。
NoSQL的结构通常提供弱一致性的保证,如最终一致性,或交易仅限于单个的数据项。 不过,有些系统,提供完整的ACID保证在某些情况??下,增加了补充中间件层(例如,CloudTPS)。有两个成熟的系统有提供快照隔离的列存储:像是Google基于过滤器系统的BigTable,和滑铁卢大学发展的HBase。这些系统,使用类似的概念来实现多行(multi-row)分散式ACID交易的快照隔离(snapshot isolation)保证为基础列储存,无需额外的资料管理开销,中间件系统部署或维护介绍了中间件层。少数NoSQL系统部署了分布式结构,通常使用分散式杂凑表(DHT)将数据以冗余方式保存在多台服务器上。依此,扩充系统时候添加服务器更容易,并且扩大了对服务器失效的承受能程度。 分类: 按照数据模型保存性质将当前NoSQL分为四种: 1.Key-value stores键值存储,保存keys+BLOBs (二进制大对象Binary Large OBjects)2.Table-oriented 面向表,主要有Google的BigTable和Cassandra. 3.Document-oriented面向文本, 文本是一种类似XML文档,MongoDB 和 CouchDB 4.Graph-oriented 面向图论. 如Neo4J.
键-值(key﹙alue)储存最终一致性的键-值储存
架构性键-值储存GT.M
主机式服务Key/value 硬盘存储
Memcachedb 可以结合关系数据库一起提供。这需要对数据库的设计进行优化
Key/value RAM存储
Key-value 基于Paxos算法的存储
多数据库
对象数据库Versant Object Database
列存储
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。[3]
引用: |