Key-Value模型
Key-Value存储是最简单、最方便的数据模型,它支持简单的key对value的键值存储和提取。通常是由HashTable实现,所以无法进行范围查询。所以出现了有序Key-Value模型,支持范围查询。 代表产品: Oracle Coherence、Redis、Kyoto Cabinet
类BigTable模型
有序Key-Value模型解决了范围查询问题,但是其value值仍然是无结构的二进制或纯字符串,通常只能在应用层去解析得到相应的结构。 而类Big Table的数据模型,能够支持结构化的数据,包括列、列簇、时间戳以及版本控制等源数据的存储。 代表产品: Apache HBase、Apache Cassandra
文档型模型
文档型存储相对于类Big Table存储有两大提升:一是Value值支持复杂的结构定义,二是支持数据库索引的定义。文档型存储的索引只要是按照字段名来组织的。 代表产品: MongoDB、CouchDB
全文索引模型
全文索引模型与文档型存储的只要区别是索引的组织方式不同,全文索引模是按照字段的具体值来组织的。 代表产品: Apache Lucene、Apache Solr
图模型
图数据库模型也可以看做是从Key-Value模型发展出来的一个分支,不同的是它的数据之间有着广泛的关联,并且支持一些图结构的算法。
NoSQL与关系数据库的差别
- NoSQL数据库的数据模型通常与实际需求更贴近。通常使用关系型数据库时,需要关心的问题是“数据库能提供哪些功能”,而NoSQL模型关心更多的是“可以解决哪些问题”;
- 使用NoSQL数据模型,通常需要你对存储的内部结构和实现算法有一定的了解;
- 使用NoSQL数据库,通常要自己处理数据结构解析和数据的冗余复制问题;
- 对于关系型数据库来说,对数据分级存储的处理并不强。但是对图数据库,或者说其它的NoSQL数据库来说,对数据的分级处理都是预先考虑的。
原文地址 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|