1、数据库事务正确执行的四个基本要素

以学生成绩管理系统为例:

原子性(A):当学生成绩被录入时,一种是完全被录入,一种是完全不被录入。这样可以解决查到一半的问题。

一致性(C):事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。例如:多个账户之间转账,不管怎么转,多个账户的总金额是一致的。

隔离性(I):多个了录入员可以同时录入多个学生的成绩。互相之间没有冲突。这种属性有时称为串行化,为了防止事务操作间的混淆,使得在同一时间仅有一个请求用于同一数据。

持久性(D):当成绩录入被正确录入到系统以后,发生吊链、系统奔溃问题,数据库仍然可在恢复后正常运作。

2、分布式数据库的分类及体系架构

分类:(1)、同质同构数据库:各节点数据库是完全相同类型的数据库,例如3个Oracle。(用于同一逻辑)

(2)、同质异构数据库:例如:Oracle、MySQL、PostgreSQL。它们都是关系型数据库。

(3)、异构数据库:例如:Oracle(关系)、mongodb(文档)、lucene(搜索引擎)。(用于全局的角度)

 

体系架构

         A、数据分配:决定了不同节点的逻辑关系。

(1)、分割分配:将数据分到不同节点,每个节点数据不重复,所有数据的总和是数据的全集。

(2)、全复制分配:每个节点拥有全量数据(用于解决“读”压力,而写和总量未达到瓶颈。)

(3)、混合结构:例如按地区分割分配,然后在每个地区再进行全复制分配,用于保证数据安全。

         B、数据分片:

(1)、水平分片:将表按照行进行拆分。(例如:按地区分不同用户)

(2)、垂直分片:将一张表的数据按照字段分成多个表。(例如可按照更新频繁和不频繁的属性列分开,目的:减少更新对磁盘造成的影响。)

垂直与水平的区别:垂直包含冗余字段(标识两个不同表之间的逻辑一致性)

 

数据分片需要满足:1、完备性:所有数据被分配到不同的节点,所有节点的总和必须包含完整的信息;2、重构条件:把数据分配到不同节点后,一定有线索将数据通过固定的方法合并成完整的数据。

 

3、分布式数据库组件:全局数据字典、全局数据管理系统、局部数据管理系统、通信数据管理系统。

分布式数据库系统的基本要求:逻辑统一性、入口统一。

(1)、静态:局部数据管理系统:接收全局管理系统的命令;做本地数据处理(查询、更新、储存、返回结果)

                      通信管理系统:管理全局数据管理系统和局部数据管理系统之间的通信协议;每个分片间的通信。

          全局数据字典:维护数据分片规则;网络状态;完整性约束;储存路径;存取权限。

(2)、动态:分布式事务处理、异常处理

                            全局数据管理系统:协调全局事务执行,并发控制,防死锁,全局提交或恢复。

           全局数据字典:死锁检测、实时事务状态、事务统计信息。

                            局部数据管理系统:分布式事务的启动、回滚、提交接口;崩溃恢复的全局协调。