实时数据库是数据库系统发展的一个分支,它适用于处理不断更新的快速变化的数据及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,研究人员希望利用数据库技术来解决实时系统中的数据管理问题,同时利用实时技术为实时数据库提供时间驱动调度和资源分配算法。然而,实时数据库并非是两者在概念、结构和方法上的简单集成。需要针对不同的应用需求和应用特点,对实时数据模型、实时事务调度与资源分配策略、实时数据查询语言、实时数据通信等大量问题作深入的理论研究。实时数据库系统的主要研究内容包括:实时数据库系统及其特征刘云生--卢炎生--李国徽返回----数据库理论与技术的发展极其迅速,其应用日益广泛,在当今的信息社会中,它几乎无所不在。以关系型为代表的三大经典(层次、网状、关系)型数据库在传统的(商务和管理的事务型)应用领域获得了极大成功,然而它们在现代的(非传统)工程和时间关键型应用面前却显得软弱无力,面临着新的严峻的挑战,由此而导致了实时数据库(RealtimeDatabase,RTDB)的产生和发展。实时数据库的发展----数据库的应用正从传统领域向新的领域扩展,如CAD/CAM、CIMS;数据通信、电话交换、电力调度等网络管理;电子银行事务、电子数据交换与电子商务、证券与股票交易;交通控制、雷达跟踪、空中交通管制;武器制导、实时仿真、作战指挥自动化或C3I系统,等等。这些应用有着与传统应用不同的特征,一方面,要维护大量共享数据和控制数据;另一方面,其应用活动(任务或事务)有很强的时间性,要求在规定的时刻和(或)一定的时间内完成其处理;同时,所处理的数据也往往是短暂的,即有一定的有效时间,过时则有新的数据产生,而当前的决策或推导变成无效。所以,这种应用对数据库和实时处理两者的功能及特性均有需求,既需要数据库来支持大量数据的共享,维护其数据的一致性,又需要实时处理来支持其任务(事务)与数据的定时限制。----但是,传统的数据库系统旨在处理永久、稳定的数据,强调维护数据的完整性、一致性,其性能目标是高的系统吞吐量和低的代价,而根本不考虑有关数据及其处理的定时限制,所以,传统的数据库管理系统(DBMS)不能满足这种实时应用的需要。而传统的实时系统(RTS)虽然支持任务的定时限制,但它针对的是结构与关系很简单、稳定不变和可预报的数据,不涉及维护大量共享数据及它们的完整性和一致性,尤其是时间一致性。因此,只有将两者的概念、技术、方法与机制无缝集成(SeamlessIntegration)的实时数据库(RTDB)才能同时支持定时和一致性。----因此,实时数据库就是其数据和事务都有显式定时限制的数据库,系统的正确性不仅依赖于事务的逻辑结果,而且依赖于该逻辑结果所产生的时间。近年来,RTDB已发展为现代数据库研究的主要方向之一,受到了数据库界和实时系统界的极大关注。然而,RTDB并非是数据库和实时系统两者的简单结合,它需要对一系列的概念、理论、技术、方法和机制进行研究开发,如数据模型及其语言,数据库的结构与组织;事务的模型与特性,尤其是截止时间及其软硬性;事务的优先级分派、调度和并发控制协议与算法;数据和事务特性的语义及其与一致性、正确性的关系,查询/事务处理算法与优化;I/O调度、恢复、通信的协议与算法,等等,这些问题之间彼此高度相关。实时数据库与时间----实时数据库系统在两方面与时间相关:----1.数据与时间相关----按照与之相关的时间的性质不同又可分为两类:----数据本身就是时间即从时间域中取值,如日期,称为用户定义的时间,也就是用户自己知道,而系统并不知道它是时间,系统将毫无区别地把它像其他数据一样处理。----数据的值随时间而变化数据库中的数据是对其所服务的现实世界中对象状态的描述,对象状态发生变化则引起数据库中相应数据值的变化,因而与数据值变化相联的时间可以是现实对象状态的实际时间,称为真实或事件时间(现实对象状态变化的事件发生时间),也可以是将现实对象变化的状态记录到数据库,即数据库中相应数据值变化的时间,称为事务时间(任何对数据库的操作都必须通过一个事务进行)。实时数据的导出数据也是实时数据,与之相联的时间自然是事务时间。----2.实时事务有定时限制----典型的就是其截止时间。对于RTDB,其结果产生的时间与结果本身一样重要,一般只允许事务存取当前有效的数据,事务必须维护数据库中数据的事件一致性。另外,外部环境(现实世界)的反应时间要求也给事务施以定时限制。所以,RTDB系统要提供维护有效性和事务及时性的设施。实时数据库的特征----如上所述,RTDB的特征主要表现在数据和事务的定时限制上,下面分别介绍。----1.RTDB的数据特征----在RTDB中,数据随外部环境状态的变化而快速变化,其值只在一定的时间内是流行的,过时则无效了,故系统除了维护数据库内部状态(数据值)的正确性、相容性外,还必须同时维护内部状态与外部环境实际状态的一致性,以及数据用来决策或推导新数据时在时间上的相互一致性。----RTDB中的一个数据对象d由三个分量组成(dv,dtp,devi),它们分别为d的当前值、采样时间、外部有效期(外部现实对象状态变化的时间间隔),有效期即自dtp算起dv有效的时间长度。对于RTDB中的每一d,有内部一致性、外部一致性和相互一致性特征。----内部一致性dv满足预先定义的数据库内部状态的完整性和一致性限制。这就是传统意义下的数据正确性。----外部一致性设tc为当前或检测时间,当且仅当(tc-dtp)≤devi,则说d是外部一致的,即dv和对应的外部现实对象的状态是一样的。----相互一致性用来决策或导出新数据的一组相关数据称为一个相互一致集,记为R,其中的数据必须尽可能地在一个允许的公共时间期内被采取(或导出),这个公共时间期就称为R的相互有效期,记为Rmvi,对于R中的任两个数据d和d′,有|dtp-d′tp|≤Rmvi,则说R中的数据是相互一致的。----外部一致性和相互一致性都是关于时间的,故统称时间一致性。既是内部一致又是时间一致的数据才是正确的。----2.RTDB的事务特征----由于实时任务往往有内部结构和相互之间的联系,传统的原子的、平淡的数据库操作序列的事务概念及模型对实时事务不适合。RTDB事务表现出了许多不同的特征,这里只给出其标识性特征定时性,其余的在后面的文章实时数据库的事务处理中讨论。----定时可以是绝对、相对或周期时间。RTDB的定时性一方面由数据的时间一致性引起,此时它往往取周期或定期性限制的形式,如每5秒取样一次、7∶00启动机器人等;定时性的另一根源是对现实世界施加于系统的反应时间的要求,这时它典型地取施加于非周期事务的截止时间限制的形式,如若温度达到1000度,则在5秒内加冷却剂到反应堆。----定时性包含两方面的含义:----定时限制即事务的执行有显式的时限,如指定的开始时间、截止时间等,它要求RTDB必须有时间处理机制。----定时正确性即事务能按指定的时间要求正确执行,它要求权衡定时限制与数据一致性要求等多方面因素,提供合适的调度与并发控制算法。实时数据库系统的主要技术----实时数据库系统与传统的数据库系统有着根本性的不同。要实现一个实时数据库系统,除了一般数据库的问题外,还要研究一系列关键理论与技术问题。主要有:----1.实时数据模型及其语言----到目前为止,研究实时数据库的文献鲜有专门讨论数据建模问题的,大多数文献,尤其是关于实时事务处理的都假定其具有有变化颗粒的数据项的数据模型。但这种方法有局限性,因为它没有使用一般的及时间的语义知识,而这对系统满足事务截止时间是很有用的。一般RTDB都使用传统的数据模型,还没有引入时间维,而即使是引入了时间维的时态数据模型与时态查询语言也没有提供事务定时限制的说明机制。----系统应该给用户提供事务定时限制说明语句,其格式可以为:----事务事件IS时间说明----事务事件为事务的开始、提交、夭折等。时间说明指定一个绝对、相对或周期时间。----2.实时事务的模型与特性----前面已说过,传统的原子事务模型已不适用,必须使用复杂事务模型,即嵌套、分裂/合并、合作、通信等事务模型。因此,实时事务的结构复杂,事务之间有多种交互行动和同步,存在结构、数据、行为、时间上的相关性以及在执行方面的依赖性,具体可参考后面实时数据库的事务处理一文。----3.实时事务的处理----RTDB中的事务有多种定时限制,其中最典型的是事务截止期,系统必须能让截止期更早或更紧急的事务较早地执行,换句话说,就是能控制事务的执行顺序,所以,又需要基于截止期和紧迫度来标明事务的优先级,然后按优先级进行事务调度。----另一方面,对于RTDB事务,传统的可串行化并发控制过严,且也不一定必要,它们宁愿要部分正确而及时的数据,而不愿要绝对正确但过时的数据,故应允许放松的可串行化或暂缓可串行化并发控制,于是需要开发新的并发控制正确性的概念、标准和实现技术。----4.数据存储与缓冲区管理----传统的磁盘数据库的操作是受I/O限制的,其I/O的时间延迟及其不确定性对实时事务是难以接受的,因此,RTDB中数据存储的一个主要问题就是如何消除这种延迟及其不确定性,这需要底层的内存数据库支持,因而内存缓冲区的管理就显得更为重要。这里所说的内存缓冲区除内存数据库外,还包括事务的执行代码及其工作数据等所需的内存空间。此时的管理目标是高优先事务的执行不应因此而受阻,它要解决以下问题:----(1)如何保证事务执行时,只存取内存数据库,即其所需数据均在内存(因而它本身没有I/O)。----(2)如何给事务及时分配所需缓冲区。----(3)必要时,如何让高优先级事务抢占低优先级事务的缓冲区。因此,传统的管理策略也不适用,必须开发新的基于优先级的算法。----5.恢复----在RTDB中,恢复显得更为复杂。这是因为:----(1)恢复过程影响处于活跃状态的事务,使有的事务超截止期,这对硬实时事务是不能接受的。----(2)RTDB中的数据不一定总是永久的,为了保证实时限制的满足,也不一定是一致和绝对正确的,而有的是短暂的,有的是暂时不一致或非绝对正(准)确的。----(3)有的事务是不可逆的,所以,传统的还原/重启动是无意义的,可能要用补偿、替代事务。----因此,必须开发新的恢复技术与机制,应考虑到时间与资源两者的可用性,以确定最佳恢复时机与策略,而不致太伤害事务实时性的满足。实时数据库应用与研究----RTDB无缝地集成了数据库与定时性,在对数据库能力和实时处理技术两者均有要求的各种领域有着极其广泛的应用前景,对多种工程或过程及时间关键型应用更是必要而迫切的,为国家的现代化尤其是国防现代化建设及国民经济的发展提供有力的、必不可少的支持,在信息技术、信息高速公路及信息产业的建设中必将起到重大作用。----国外对RTDB的研究非常关注,尤其是美国、英国、德国、瑞典等国起步较早,现已有许多成功的实验系统,有的甚至已商品化,典型的有HiPAC、ZipRTDBMS等系统。国内的研究起步稍晚,基本上是在80年代末、90年代初才开始,但发展很快,目前已有成功的实验系统,但尚未形成正式产品,其主要原因是国内缺乏合适的实时操作系统,这已成为RTDB发展的重要障碍,希望能引起有关方面的重视。实时数据库系统是开发实时控制系统、数据采集系统、CIMS系统等的支撑软件。在流程行业中,大量使用实时数据库系统进行控制系统监控,系统先进控制和优化控制,并为企业的生产管理和调度、数据分析、决策支持及远程在线浏览提供实时数据服务和多种数据管理功能。实时数据库已经成为企业信息化的基础数据平台。实时数据库的一个重要特性就是实时性,包括数据实时性和事务实时性。数据实时性是现场IO数据的更新周期,作为实时数据库,不能不考虑数据实时性。一般数据的实时性主要受现场设备的制约,特别是对于一些比较老的系统而言,情况更是这样。事务实时性是指数据库对其事务处理的速度。它可以是事件触发