网站类软文,网站用asp还是php,苏州注册公司需要什么条件,中国建筑网官网找客户信息【IT168 技术】本文内容是对《NoSQL Data Modeling Techniques》一文的简单概述#xff0c;原文对NoSQL的几种数据模型进行了详细深入的讨论。是了解NoSQL数据模型不过错过的全面资料。NoSQL的一些非功能性的特性#xff0c;比如扩展性、性能以及一致性的讨论#xff0c;目前…【IT168 技术】本文内容是对《NoSQL Data Modeling Techniques》一文的简单概述原文对NoSQL的几种数据模型进行了详细深入的讨论。是了解NoSQL数据模型不过错过的全面资料。NoSQL的一些非功能性的特性比如扩展性、性能以及一致性的讨论目前已经有很多。而对于NoSQL产品内部数据模型相关的知识一直比较欠缺本文就希望能够系统地对NoSQL数据模型进行一些探讨。我们大致先将NoSQL数据模型划分为下面几类Key-Value存储、类BigTable数据库、文档数据库全文索引引擎以及图数据库。下面先上一个简单有趣的示例图简单描述各个不同数据模型的构造对照上面的图片我们对几种数据模型进行简单的描述·Key-Value模型是最简单也是最方便使用的数据模型它支持简单的key对value的键值存储和提取·Key-Value模型的一个大问题是它通常是由HashTable实现的所以无法进行范围查询所以有序Key-Value模型就出现了有序Key-Value可以支持范围查询·虽然有序Key-Value模型能够解决范围查询和问题但是其Value值依然是无结构的二进制码或纯字符串通常我们只能在应用层去解析相应的结构。而类BigTable的数据模型能够支持结构化的数据包括列列簇时间戳以及版本控制等元数据的存储。·而文档型存储相对到类BigTable存储又有两个大的提升。一是其Value值支持复杂的结构定义二是支持数据库索引的定义。·全文索引模型与文档型存储的主要区别在于文档型存储的索引主要是按照字段名来组织的而全文索引模型是按字段的具体值来组织的。·图数据库模型也可以看作是从Key-Value模型发展出来的一个分支不同的是它的数据之间有着广泛的关联并且这种模型支持一些图结构的算法。对于NoSQL与关系型的差别简单总结如下·NoSQL数据库的数据模型通常与实际需求更贴近。通常使用关系型数据库时需要关心的问题是“数据库能提供哪些功能”而NoSQL模型关心得更多的是“可以解决哪些问题”·使用NoSQL数据模型通常需要你对存储的内部结构和实现算法有一定的了解。·使用NoSQL数据库通常要自己处理数据结构解析和数据的冗余复制问题。·对于关系型数据库来说对数据分级存储的处理并不强。但是对图数据库或者说其它的NoSQL数据库来说对数据的分级处理都是预先考虑的。目前简单将NoSQL几个分类的代表产品列举如下·Key-Value 存储: Oracle Coherence, Redis, Kyoto Cabinet·类BigTable存储: Apache HBase, Apache Cassandra·文档数据库: MongoDB, CouchDB·全文索引: Apache Lucene, Apache Solr·图数据库: neo4j, FlockDB