非关系型数据库服务主要用于存储结构化的数据,并为这些数据提供查找,删除等基本的数据库功能 。
AWS中提供的非关系型数据库主要包括SimpleDB和DynamoDB。
1.非关系型数据库与传统关系数据库的比较
总结:
ACID:数据库事务正确执行的四个基本要素
A -- 原子性Atomicity 事务中的所有操作,要么全部完成,要么全部不完成
C -- 一致性Consistency 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
I -- 隔离性Isolation 一个事务的执行不能被其他事务干扰。
D -- 持久性Durability 在事务完成之后,该事务对数据库所做的更改会持久地保存在数据库中,并不会被回滚。
2.SimpleDB
SimpleDB基本结构图:
(1)域(Domain):
域是用于存放具有一定关联关系的数据的容器,其中的数据以UTF-8编码的字符串形式存储。
每个用户账户中的域名必须是唯一的,且域名长度为3~255个字符。
每个域中数据的大小具有一定的限制。
但域的划分也会为数据操作带来一些限制,是否划分域需要综合多种因素考虑。
(2)条目(Item):
条目对应着一条记录,通过一系列属性来描述,即条目是属性的集合。
在每个域中,条目名必须是唯一的
与关系数据库不同,SimpleDB中不需要事先定义条目的模式 ,即条目由哪些属性来描述。
操作上具有极大的灵活性,用户可以随时创建、删除以及修改条目的内容
(3)属性(Attribute):
属性是条目的特征,每个属性都用于对条目某方面特性进行概括性描述。
每个条目可以有多个属性。
属性的操作相对自由,不用考虑该属性是否与域中的其他条目相关。
(4) 值(Value):
值用于描述某个条目在某个属性上的具体内容
一个条目的一个属性中可以有多个值,即允许多值属性
3.DynamoDB
DynamoDB的特点:
(1)DynamoDB以表为基本单位,表中的条目同样不需要预先定义的模式。
(2)DynamoDB中取消了对表中数据大小的限制,用户设置任意大小,并由系统自动分配到多个服务器上。
(3)DynamoDB不再固定使用最终一致性数据模型,而是允许用户选择弱一致性或者强一致性。
(4)DynamoDB还在硬件上进行了优化,采用固态硬盘作为支撑,并根据用户设定的读/写流量限制预设来确定数据分布的硬盘数量。
4.SimpleDB和DynamoDB的比较
SimpleDB和DynamoDB都是Amazon提供的非关系型数据库服务。
区别在于:
SimpleDB:限制了每张表的大小,更适合于小规模复杂的工作 。自动对所有属性进行索引,提供了更加强大的查询功能。
DynamoDB:支持自动将数据和负载分布到多个服务器上,并未限制存储在单个表中数据量的大小,适用于较大规模负载的工作 。