关系型与非关系型数据库(3)
-
关系型与非关系型数据库(
3
)
胡经国
5
、非关系型数据库共同特点
虽然
NoSQL
并没有一个明确的范围和定义
,但是它们都普遍具有以下一
些共同特点:
⑴、不需要预定义模式
不需要事先定
义数据模式和预定义表结构。数据中的每条记录都可能有不
同的属性和格式。当插入数据
时,并不需要预先定义它们的模式。
⑵、无共享架构
相对于将所有数据存
放于存储区域网络中的全共享架构,
NoSQL
往往将数
据划分后存储在各个本地服务器上。因为,从本地磁盘读取数据的性能往往好
< br>于通过网络传输读取数据的性能,从而提高了系统的性能。
⑶、弹性可扩展
可以在系统运行的时
候,动态增加或者删除节点。不需要停机维护,数据
可以自动迁移。
⑷、分区
相对于将数据存放于
同一个节点,
NoSQL
数据库需要将数据进行分区,将
记录分散在多个节点上面。并且,通常分区的同时还要做复制。这样,既提高
< br>了并行性能,又能保证没有单点失效的问题。
⑸、异步复制
与
RAID
(
Redundant
Arrays
of
Independent
Disks
,磁盘阵列)存储系统不
同的是,
NoSQL
< br>中的复制,往往是基于日志的异步复制。这样,数据就可以尽
快地写入一个节点,
而不会被网络传输引起迟延。其缺点是并不总是能保证一
致性。这样的方式在出现故障的
时候,可能会丢失少量的数据。
链接:异步复制
异步复制技术是指在
写被响应到主机之前,数据必须被承诺存储在单独的
一级站点而不是存储在二级站点。当
网络容量允许时,数据传向二级站点。
⑹、
BASE
相对于事务严格的
ACID
特性,
N
oSQL
数据库保证的是
BASE
特性
。
BASE
是最终一致性和软事务。
1
链接:
BASE
:最终一致性和软事务
所谓
最终一致性,就是不保证在任意时刻任意节点上的同一份数据都是相
同的;但是随着时间
的迁移,不同节点上的同一份数据总是在向趋于相同的方
向变化。也可以简单的理解为:
在一段时间后,节点间的数据会最终会达到一
致状态。
软事务(待查)
链接:
ACID
ACID
,是指数据库事务正确执行的四个基本要素的英文的缩写,包含:原
子性(
Atomicity
)、一致性(
p>
Consistency
)、隔离性(
Is
olation
)、持久性
(
Dura
bility
)。事务(
Transaction
)正确执行,必需要具有这四种特性,否则
在事务过程(
Transaction
processing
)当中无
法保证数据的正确性,交易过程极
可能达不到交易方的要求。
原子性
:整个事务中的所有操作,要么全部完成,要么全部不完
成,不可
能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(
Rollback
)
到事务开始前的状态,就像这个
事务从来没有执行过一样。
一致性
:
在事务开始之前和事务结束以后,数据库的完整性约束没有被破
坏。
隔离性
:在隔离状态执行事务,使它们好像是系统在给定
时间内执行的唯
一操作。
持久性
p>
:在事务完成以后,该事务对数据库所作的更改便被持久地保存在
数
据库中,而不会被回滚。
目前主要
有两种方式实现
ACID
:第一种是
W
rite
Ahead
Logging
(预写日
志),也就是日志式的方式;第二种是
Shadow
Paging
(影子分页)。
链接:
Write Ahead
Logging
Write
Ahead
Logging
(
WAL
,预写日志)技术,是数据库中一种高效的日
< br>志算法。对于非内存数据库而言,磁盘
I/O
操作是数据
库效率的一大瓶颈。在
相同的数据量下,采用
WAL
日志的数据库系统在事务提交时,磁盘写操作只
有传统的回滚日志的一半左
右,大大提高了数据库磁盘
I/O
操作的效率,从而
提高了数据库的性能。
链接:
Shadow Paging
相对于
WAL
技术,
< br>Shadow
Paging
(
SP
,影子分页)技术实现起来比较简
单,消除了写日志记录的
开销,恢复的速度也快。
Shadow Paging
的缺点在
于事
务提交时要输出多个块。这使得提交的开销很大,而且以块为单位,很难应用
到允许多个事务并发执行的情况
——
这是它致
命的缺点。
2