分布式数据库管理系统的并发控制是为了保证多用户分布环境下的数据库一致性。可串行化是涉及并发控制的一个重要理论。条件1表示调度涉及的域是一个由各个事务构成的集合。例9.2所示的是一个串行调度。下面我们讨论可串行化的问题。定义9.3 一个调度Sc是可串行的,当且仅当Sc冲突等价于一个串行调度,这种可串行化通常称为冲突等价可串......
2025-09-30
计算机系统对并发事务中的操作的调度是随机的,而不同的调度会产生不同的结果,那么哪个结果是正确的,哪个结果是不正确的?直观地说,如果多个事务在某个调度下的执行结果与这些事务在某个串行调度下的执行结果相同,那么这个调度就一定是正确的。因为所有事务的串行调度策略一定是正确的调度策略。虽然以不同的顺序串行执行事务可能会产生不同的结果,但都不会将数据库置于不一致的状态,因此都是正确的。
多个事务的并发执行是正确的,当且仅当其结果与按某一顺序的串行执行的结果相同,称这种调度为可串行化的调度。
可串行性是并发事务正确性的准则,根据这个准则可知,一个给定的并发调度,当且仅当它是可串行化的调度时,才认为是正确的调度。
例如,假设有两个事务,分别包含如下操作:
事务T1:A=B+1
事务T2:B=A+1
假设A、B的初值均为4,如果按T1→T2的顺序执行,则结果为A=5,B=6;如果按T2→T1的顺序执行,则结果为A=6,B=5。则当并发调度时,如果执行的结果是这两者之一,就认为都是正确的结果。(https://www.chuimin.cn)
图7-12给出了这两个事务的几种不同的调度策略。
为了保证并发操作的正确性,数据库管理系统的并发控制机制必须提供一定的手段来保证调度是可串行化的。
从理论上讲,若在某一事务执行过程中禁止执行其他事务,则这种调度策略一定是可串行化的,但这种方法实际上是不可取的,因为这样不能让用户充分共享数据库资源,降低了事务的并发性。目前的数据库管理系统普遍采用封锁方法来实现并发操作的可串行性,从而保证调度的正确性。
两段锁(Two-Phase Locking,简称2PL)协议是保证并发调度的可串行性的封锁协议。除此之外还有一些其他的方法等来保证调度的正确性。我们这里只介绍两段锁协议。
图7—12 并发事务的不同调度
相关文章
分布式数据库管理系统的并发控制是为了保证多用户分布环境下的数据库一致性。可串行化是涉及并发控制的一个重要理论。条件1表示调度涉及的域是一个由各个事务构成的集合。例9.2所示的是一个串行调度。下面我们讨论可串行化的问题。定义9.3 一个调度Sc是可串行的,当且仅当Sc冲突等价于一个串行调度,这种可串行化通常称为冲突等价可串......
2025-09-30
从1.1.1节的介绍可以看到,在数据库管理系统出现之前,人们对数据的操作是直接针对数据文件编写应用程序实现的,这种模式会产生很多问题。对于1.1.1小节中列举的学生基本信息管理和学生选课管理两个子系统,如果使用数据库技术来管理,其实现方式如图1-4所示。保证数据的安全是通过数据库管理系统的安全控制机制实现的,保证数据的可靠是通过数据库管理系统的备份和恢复机制实现的。......
2025-09-30
数据库设计过程是指在一个给定的应用环境,选择合理的数据库模式和数据模型进行数据库及应用系统设计,使之能够有效存取数据并满足用户需求的过程。数据库设计的过程也和其他软件系统设计一样,是个反复迭代的过程。数据库设计过程的划分也不是十分严格的,通常在系统设计的实施中,也未必完全依照这六个步骤顺序去开发,不过这六个阶段基本上包括了数据库设计的全过程和相关问题。......
2025-09-30
关键字Modify File用以表示按后面的文件说明,在指定的数据库中修改相应数据库文件。下面的语句可在学籍管理数据库增加一个新数据库文件,同时要修改原数据库文件StuFile l的最大文件尺寸为2000 MB。Alter Database StuDataAdd FileModify File又如,如果要删除学籍管理数据库文件StuFile2,则可使用如下命令:Alter Database StuDataRemove File StuFile2......
2025-09-30
虽然对视图的操作最终都转换为对基本表的操作,视图看起来似乎没什么用处,但实际上,如果合理地使用视图会带来许多好处。定义视图可以将表与表之间复杂的连接操作和搜索条件对用户隐藏起来,用户只需简单地查询一个视图即可。这在多次执行相同的数据查询操作时尤为有用。......
2025-09-30
由于信息结构复杂,应用环境多样,在相当长的一段时期内数据库设计主要采用手工试凑法。人们经过探索提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,提出了各种设计准则和规程,都属于规范设计法。工具在很大程度上依靠开发人员的经验来保证数据库模型能生成可行的设计方案和高性能的数据库。大多数的数据库设计方法都需要经历这三个步骤。根据所选择的设计方法按部就班地进行并最终获得一个实用的应用系统。......
2025-09-30
下面介绍的优化策略能提高查询的效率,但它们不一定是最优的策略,实际上“优化”一词并不是很确切,用“改进”或“改善”或许更恰当些。即使这样,使用预处理方法执行连接的时间一般仍大大减少。当查询视图时,定义视图的表达式就是公共子表达式的情况。......
2025-09-30
例如,一名学生可以用信息“”描述,这样的一行数据称为一条记录。单看这行数据我们很难知道其确切含义,但对其进行如下解释:张三是9912101班的男学生,1981年出生,计算机系应用软件专业,其内容就是有意义的。因此,数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。数据的静态特征包括数据的基本结构、数据间的联系以及对数据取值范围的约束。数据的动态特征是指对数据可以进行符合一定规则的操作。......
2025-09-30
相关推荐