NoSQL数据模型详解一の键值模型

背景

上篇博客已经对数据模型整体有了一个介绍,下面针对NoSQL中的四种数据模型进行详解的介绍。如下图:

概念

键值数据库是一张简单的hash table,主要用在所有数据库访问均通过主键来操作的情况下。讨论每一种NoSQL数据库的特征时,都要了解其”一致性“、”事务性“、查询特性、数据结构和可扩展性

一致性

只有针对单个键的操作才局别“一致性”,因为这种操作只可能是“获取”、“设置”、或者“删除”。“乐观写入”功能其实也可以做出来,然而由于数据库无法侦测数值改动,所以其实现成本太高。Riak这种分布式键值数据库,用“最终一致性模型”实现一致性。因为树枝可能已经复制到其他节点,所以Riak有两种解决“更新冲突”的办法:一种是采纳新写入的数据而拒绝旧数据,另一种是将两者返回给客户端,令其解决冲突。

事务

不同类型的键值数据库产品,其“事务”规范不同。一般来说,无法保证写入操作的“一致性”。各种数据库实现“事务”的方式各异。Riak采用“仲裁”这一概念,在调用写入数据的API时,它使用W值与复制银子来实现“仲裁”。

查询功能

所有键值数据库都可以按关键字查询。他们的查询功能基本上仅限于此。

数据结构

键值数据库并不关心键值对里的值。它可以是二进制、文本、JSON、XML等。在使用Riak时,可在post请求中用Content—Type指定数据类型。

可扩展性

很多键值数据库都用“分片”技术扩展。采用此技术后,键的名字就决定了负责存储该键的节点。当集群中的节点数变多时,这种“分片”设定可提高效率。但是“分片”也会引发某些问题。像Riak,可以快弄告知“CAP定理”中的参数:N(存放键值对的副本节点数)、R(顺利完成读取操作所需的最小节点数)和W(顺利完成写入操作所需的最小节点数)

适用案例

存放会话信息、用户配置信息、购物车数据

不使用场合

数据间关系、含有多项操作的事务、查询数据、操作关键字的集合。

相关文章

校园网上订餐系统系统主要功能模块包括公告内容(公告栏、轮...
从今天开始,正式进入项目阶段。本次的项目是跟着黑马的瑞吉...
在可预见的将来,IT不会萎缩,只会越发展越庞大,最终会渗透...
vulntarget-b靶场最详细通关记录。
MongoDB是一个开源、高性能、支持海量数据存储的。
【NoSQL数据库技术与应用】课本代码、课后答案(持续更新)