首页 百科知识 实时数据库

实时数据库

时间:2022-10-17 百科知识 版权反馈
【摘要】:很多实际应用要求数据库不仅能够简单地管理数据,而且要求数据库能够快速地在一时间段内完成用户的请求,因此人们将实时系统和数据库技术结合产生了实时数据库。传统数据库中使用的两段封锁协议对于实时数据库仍然适用。实时数据库管理实时数据以及与实时数据有关的信息,与传统数据库相比,主要在调度机制和事务管理方面有较大的区别。

10.7.2 实时数据库

很多实际应用要求数据库不仅能够简单地管理数据,而且要求数据库能够快速地在一时间段内完成用户的请求,因此人们将实时系统和数据库技术结合产生了实时数据库。实时数据库系统(Real-time Database Management System,RTDBMS)是其数据和事务都具有定时特性或确定的定时限制的数据库系统。系统管理的数据和事务都是有时间限制的,整个数据库系统不仅要求能够得出正确的逻辑结果,而且对逻辑结果产生的时间具有严格的限制,也就是说系统宁可接受在时限内的不准确的数据,也不接受超过时限的准确的数据。

一、实时数据库的特征

实时数据库特征主要表现在数据和事务上,下面分别进行介绍。

在实时数据库中数据具有时间性,即数据应该随着外部环境的变化而变化,超过了一定时间的数据就是无效的了。所以实时数据库不仅应该维持其内部管理数据的正确性,而且应该使内部数据与外部的实际状态保持一致,以及数据用来决策和推导新数据时在时间上的相互一致性。

实时数据库中的一个数据对象D由三个分量组成(dv, dtp, devi),它们分别为D当前值、采样时间、外部有效期(外部现实对象状态变化的时间间隔),设当前时间为t,当(t−dtp) ≤devi时,实时数据的当前值有效。

由定义可以看到,实时数据具有时间特性。实时数据给外部世界提供了一个真实和及时的表示,随着外部环境的变化,反应外部环境状态的实时数据也随着变化,在实时数据库中,实时数据的时标dtp必须足够接近真实时间,当前值dv只是在一定的时间devi内有效,在超过devi以前,数据一定要被最新的外部数据更新。

实时事务指除了具有逻辑一致性外还要求具有时序一致性的事务。实时事务与传统事务有许多不同的特性,具体表现如下:

(1)结构复杂性。实时事务结构的复杂性主要体现在事务嵌套结构上。实时数据库中事务嵌套是经常出现的,如结构上要求一个事务为另一个事务的子事务。还有就是在分布式系统中,一个事务可能分割成几个子事务在不同的结点上执行,这也增加了事务的复杂性。

(2)功能替代性。功能替代性是指一个任务可以通过不同的途径来实现。由于有些实时事务要求必须完成,为了保证这些事务的正确执行,有时候对一个事务设计多种算法。在做一个应用建模时,通常将一个事务设计为一组功能等价的子事务,当一个任务的子事务之一能执行成功时,该任务就可以完成。

(3)结果补偿性。结果补偿性是指怎样弥补因为事务夭折时所造成的影响。由于事务结构的复杂性和功能的替代性,造成了实时事务的执行过程不确定,一个子事务执行到提交时可能还不能决定是否允许提交。而在子事务提交时,外部世界的状态已经改变了,造成事务的夭折。由于实时数据库的时间限制,即使事务夭折了也不可能像传统数据库那样进行 “回滚”操作,因为 “回滚”以后的数据也是时间上无效的数据,所以需要一种补偿活动来抵消事务造成的所有影响,这种补偿活动也由事务完成。

(4)语义相关性。语义相关性是指事务执行时具有的相互之间的内在关联。由于实时事务之间存在多种关系,如结构关系、数据关系、行为(通信)关系、时间关系等,这些关系带来了事务之间的各种相关。语义相关性决定了事务的调度次序、执行依赖关系、数据共享、同步执行、时序相关性和带时限的时序相关性。

(5)执行依赖性。执行依赖性是指一个事务能否执行取决于另一个事务能否执行。事务尤其是嵌套的父子事务之间,在执行时存在各种依赖关系,其中语义性依赖是实时事务本质性的特征。

二、实时数据库的事务调度和并发控制

在实时事务调度中,主要考虑两个方面的因素:事务到达时间和事务截止时间。调度策略中使用最多的是优先级调度法。当实时事务到达时,指派一个优先级进入事务队列。在实时事务队列中优先级最高的首先执行,然后按照优先级依次执行。调度策略的依据是根据事务到达时间决定相对截止时间,相对截止时间是指事务到达与事务最终结束时间之差。在指派优先级时,要综合考虑事务到达时间和事务截止时间两个因素,使超过截止时间和事务夭折的情况尽可能少。常用的调度策略有最早放行最优先(Earliest Release First,ERF)、截止期最早最优先(Earliest Deadline First,EDF)、可达截止期最早最优先(Earliest Feasible Deadline First,EFDF)等。

前面介绍过并发控制,并发控制主要是协调并发运行的事务,使得数据库能够在事务并发执行的情况下保持数据库的一致性。实时数据库的并发控制与传统数据库的并发控制的主要区别就是需要考虑到时间的因素,现在实时数据库主要使用的并发控制技术有悲观(加锁方法)法、乐观法和基于时标法。在这些技术中,适当放宽了可串行化来提高实时性(利用优先级继承算法解决优先级倒置问题)。

悲观法是假定事务冲突经常发生。按事务使用数据的方式不同,实时事务通常可以分为只读、只写及更新等类型,它们分别对应锁的不同标识及控制策略,主要是共享锁和排斥锁,还有其他一些更精细的锁。传统数据库中使用的两段封锁协议对于实时数据库仍然适用。但是为了让更多的事务在“终止时间”以内完成,应该尽量减少事务的等待时间,把时间主要消耗在使用计算机上,因此实时数据库系统的锁机制采用适当许可放宽数据的封锁粒度,即牺牲并发性来满足事务的及时性要求。

乐观法是一个无锁协议,它假定以合理的事务性能为前提,假定任两个并发事务请求相同的数据是最低概率事件,它让事务尽可能地完成,当然写申请并不立即更新分配的数据库,然后在提交结果的时候由系统检查,事务的执行是否发生了冲突、是否满足可串行化要求,若满足条件则结果通过检查成功提交,否则就夭折。

基于时标的方法是另外一种并发控制方法,它避免了使用锁,因此也不会产生死锁。每个事务在其进入系统时都被分配一个时标,那些提交的事务将按时标的顺序串行,即按它们开始时的顺序提交。一旦开始执行,任何违反顺序的读写请求都将失败。

三、实时数据库的体系结构

实时数据库管理实时数据以及与实时数据有关的信息,与传统数据库相比,主要在调度机制和事务管理方面有较大的区别。实时数据库管理系统的体系结构如图10-20所示。

img206

图10-20

资源管理部分对系统资源进行管理。其主要功能与传统数据库功能类似,主要是合理地调度和分配系统资源。但是与传统的数据库相比增加了时间管理的功能,时间的调度和管理主要是触发与时间相关的实时事务执行。

实时事务管理部分包括管理实时事务的产生、执行和结束,解决调度实时性问题。主要任务是:① 实时调度,主要是尽可能地让更多的实时事务在规定的时间内完成,同时保证数据的逻辑一致性和时序一致性;② 实时并发控制,提供对实时并发事物的协调,保证数据库中数据的一致性和完整性;③ 事务恢复机制,当事务失败时努力将数据库恢复到正确状态。

数据管理部分和传统数据库类似,实现对数据的存取操作和其他处理,主要任务是管理实时数据和历史数据。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈