时间:2022-11-12 04:30:01 | 来源:信息时代
时间:2022-11-12 04:30:01 来源:信息时代
实时事务正确性 : 在任何给定时刻,数据库变更的结果状态是正确的、时间一致的。换句话说,每一事务都是结果正确的,且满足时间一致(包括外部和相互一致)性限制。外部一致乃指事务对任一数据对象的操作时间都落在该数据的外部有效期内。实时事务往往要与对应于实时世界对象(RWO)的同一“快照”(snapshot)的多个数据对象打交道,这些数据必须属于同一相互一致集,即一个实时事务的读集是一个相互一致集,必须满足其相互一致性限制。
1.事务正确性经历模型
一个事件可定义为一种系统行为在一定时刻的瞬时发生。系统行为可以是数据库的各种操作、事务管理活动、时间行为或与外部环境的交互活动等。故可以有各种类型的事件:①对象事件:一个(数据)对象的一种操作的执行; ②事务事件: 一个事务管理原语的执行; ③时间事件: 一个时限管理原语的执行; ④外部事件: 与外部环境的交互活动。
一个相关事件的集合所构成的关于其发生顺序关系的偏序集称为一事件经历。令E表示一事件集,<s表示其中事件发生的顺序关系,H表示事件经历,则H=<E, 。
与一个事务t相联的所有事件的事件经历称为该事务的经历,记为Ht:Ht=<Et,<s>。其中,Et为与事务t相联的事件集,<s为t中各事件发生的顺序关系。
设T为一组事务,与T中各事务相联的所有事件的事件经历称为T的并发执行经历,记为HT:HT=<ET,<T>。其中,ET为T中各事务相联的所有事件集合,<T为T中事件发生的顺序关系。
每一数据操作总产生一个结果输出和一个结果状态,它们都与对象的当初状态相关。以R(s,p)和S(s,p)分别表示在当初状态s下数据操作p产生的结果输出和结果状态。
设p、q是两个数据操作,称它们是冲突的,记为CT(p,q),当且仅当S(S(s,p),q)≠S(S(s,q),p)∨R(s,q)≠R(S(s,p),q)∨R(s,p)≠R(S(s,q),p)。
其中,对象的当初状态s其实可以省掉。所以,两个操作是冲突的,就是将它们施加于一个数据的最终结果(输出和状态)依赖其执行顺序。若两个事务分别包含了两个冲突的操作,则说明它们有(二元)冲突关系。更准确地,对于经历HT的任两个事务ti、tj, ti≠tj, 若∃p∈ti, q∈tj,(CT(p, q)∧(p<Tq)), 则说事务tj对ti有一个冲突关系。记为tjCRti。
2. 事务正确性内容及其说明
RTDB事务之间存在着结构、行为及时间上的相关性,因而其正确性也要包含这些方面。
(1)结果正确性:除了结果状态正确外,由于时间一致性限制的关系,对事务结果正确性还引入了“正确性程度”的概念。依此,结果正确性可分为:①绝对正确:事务的结果反映了正确的数据库状态;②相对正确: 事务的结果不具绝对正确性,但在正确结果状态的允许偏差范围之内。
(2)行为正确性:指有关对象事件的发生及所涉及对象的行为限制的满足。它涉及到系统控制(如并发、一致性控制)以便产生正确经历,以及可能需要的额外处理(如隔离度、提交限制的实现),分别称为行为冲突与行为模式处理。
(3)结构正确性:指复杂事务内部及事务之间的结构依赖性的实现。各种事务模型的结构正确性由相应的结构依赖关系来表示。结构依赖性是复杂事务特有的一种行为特性。
(4)时间正确性:指事务事件发生时间的正确性及彼此之间依赖性的满足。
各种正确性都可以基于经历模型来准确说明。例如,“事务集T的并发经历HT是可串行化的”可说明为: 当且仅当∀t∈T(tCR*t) (CR*为CR的传递闭包)。
3. 正确性准则
事务的正确性准则是事务处理的若干个不能违反的限制,或必需满足的条件。对RTDB而言,包括内部一致性、外部一致与相互一致性限制。
可串行性是维持传统数据库内部一致性的正确性准则。但对于非传统应用,它表现出了不同的局限性: ①太强: 例如对连续变更的大量数据的统计应用和只读事务,可以接受具有一定的不一致性的近似值。且外部一致性和相互一致性限制本身就意味着可容纳一定的不一致性或相似度。②不可能:例如对于那些具有循环、长寿(longlife)或开端(openend)活动的应用。③不合适:例如对于那些要彼此交互、通信、协调的合作计算的应用; ④不正确: 例如对于包含复杂对象(如B-树)上的各种操作的层次事务、嵌套事务。
这些情况在实时应用环境中是常见的,因而人们开发了各种RTDB的正确性准则,如ε-可串行性、Δ-可串行性、准一致性可串行性等。它们都对经典的可串行性限制有不同程度的放松,通过临时牺牲某个很小程度的数据库一致性,可获得更多实时事务定时限制的满足。