关系型与非关系型数据库(3)

余年寄山水
725次浏览
2021年02月11日 16:46
最佳经验
本文由作者推荐

-

2021年2月11日发(作者:伊尹负鼎)


关系型与非关系型数据库(


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


)、一致性(


Consistency


)、隔离性(


Is olation


)、持久性



Dura bility


)。事务(


Transaction


)正确执行,必需要具有这四种特性,否则


在事务过程(

Transaction


processing


)当中无 法保证数据的正确性,交易过程极


可能达不到交易方的要求。



原子性


:整个事务中的所有操作,要么全部完成,要么全部不完 成,不可


能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(


Rollback



到事务开始前的状态,就像这个 事务从来没有执行过一样。



一致性


: 在事务开始之前和事务结束以后,数据库的完整性约束没有被破


坏。


隔离性


:在隔离状态执行事务,使它们好像是系统在给定 时间内执行的唯


一操作。



持久性


:在事务完成以后,该事务对数据库所作的更改便被持久地保存在


数 据库中,而不会被回滚。




目前主要 有两种方式实现


ACID


:第一种是


W rite


Ahead


Logging


(预写日


志),也就是日志式的方式;第二种是


Shadow Paging


(影子分页)。




链接:


Write Ahead Logging



Write


Ahead


Logging



WAL


,预写日志)技术,是数据库中一种高效的日

< br>志算法。对于非内存数据库而言,磁盘


I/O


操作是数据 库效率的一大瓶颈。在


相同的数据量下,采用


WAL

< p>
日志的数据库系统在事务提交时,磁盘写操作只


有传统的回滚日志的一半左 右,大大提高了数据库磁盘


I/O


操作的效率,从而

< p>
提高了数据库的性能。



链接:


Shadow Paging



相对于


WAL


技术,

< br>Shadow


Paging



SP


,影子分页)技术实现起来比较简


单,消除了写日志记录的 开销,恢复的速度也快。


Shadow Paging


的缺点在 于事


务提交时要输出多个块。这使得提交的开销很大,而且以块为单位,很难应用


到允许多个事务并发执行的情况


——


这是它致 命的缺点。



2

-


-


-


-


-


-


-


-