[返回]
计算机世界1999年第40期
刘云生 李国徽 卢炎生
RTDBMS 的功能特性
一个实时数据库管理系统(RTDBMS) 也是一个数据库管理系统(DBMS),所以,它也具有一般DBMS 的基本功能:
* 永久数据管理包括数据库的定义、存储、维护等。
* 有效的数据存取各种数据操作、查询处理、存取方法、完整性检查。
* 事务管理事务的概念、调度与并发控制、执行管理。
* 存取控制安全性检验。
* 数据库的可靠性恢复机制。
但传统的DBMS 的设计目标是维护数据的绝对正确性、保证系统的低代价、提供友好的用户接口。这种数据库系统对传统的商务和事务型应用是有效的、成功的,然而,它不适合实时应用,这关键在于它不考虑与数据及事务相联的定时限制,其系统的性能指标是吞吐量和平均响应时间,而不是数据及事务相联的定时限制,调度与处理决策根本不管各种实时特性。
与之相反,RTDBMS 的设计目标首先是对事务定时限制的满足,其基本原则是:宁要部分正确而及时的信息,也不要绝对正确但过时的信息。系统性能指标是满足定时限制的事务的比率,它要求必须确保硬实时事务的截止期,必要时宁肯牺牲数据的准确性与一致性。软实时事务满足截止期的比率相对较高,但要100 %满足截止期很难或几乎不可能。因此,除了上述一般DBMS 的功能外,一个RTDBMS 还具有以下功能特性:
* 数据库状态的最新性即尽可能地保持数据库的状态为不断变化的现实世界当前最真实状态的映像。
* 数据值的时间一致性即确保事务读取的数据是时间一致的。
* 事务处理的" 识时" 性即确保事务的及时处理,使其定时限制尤其是执行的截止期得以满足。
因此,RTDBMS 是传统DBMS 与实时处理两者功能特性的完善或无缝集成(Seamless Integration)。它与传统DBMS 的根本区别就在于具有对数据与事务施加和处理" 显式" 定时限制的能力,即使用" 识时协议"(Time cognizant Protocol) 来进行有关数据事务的处理。
RTDBMS 的体系结构
从系统的组成结构来看,RTDBMS 与传统DBMS 没有什么大的区别。下图给出了它的主要功能部件及其组成。

RTDBMS 执行模型
执行模型描绘数据库管理系统的运作原理,它包括:
1 .任务/ 事务模型
传统的ACID(原子、一致、隔离、永久)性的事务模型对RTDB 已不适用,需要具有内部构造和/ 或彼此相关性的" 复杂" 事务模型,即嵌套、合并/ 分裂、通信和合作事务模型等。故RTDBMS 必须支持这种复杂事务,处理事务间的结构、行为和时间相关性。
2 .资源模型
它确定系统资源的类型及其管理策略,包括分配、使用与回收策略。RTDBMS 必须采用基于优先级和考虑定时限制尤其是截止期的分配策略;资源使用的" 中断" 策略也是优先级式的,即高优先级可抢占(中断)低优先级的资源,具体又可以有多种不同的抢占方式及其各方面的代价,需要RTDBMS 仔细决策。
3 .负载模型
它规定各种类型事务的到达(或在系统中生成)、执行期限及频率的分布,包括周期、非周期及零星事务,软或硬事务及其延迟的代价计算等。
4 .调度模型
它确定事务的优先级分配策略、调度算法、互相冲突的解决(并发控制)策略及其机制,控制事务正确、有效地执行。RTDBMS 的调度模型还应有一定的" 可调度性" 预测能力及" 应急处理" 能力。
5 .执行的正确性
相对于传统数据库而言,RTDBMS 执行的正确性在概念、内容与准则上都有根本性的不同,RTDBMS 不但要确保事务执行结果(包括返回数据的状态及产生的数据库状态)的正确性,还要保证其执行在结构、行为、时间上的正确,即要正确实现事务间的结构、行为、时间相关性及执行依赖性。
实现RTDBMS 的关键问题
RTDBMS 与一般DBMS 的根本性区别在于数据和事务的定时限制,而数据的定时限制最终也要转嫁成事务的定时限制。因此,较之一般DBMS 的实现,RTDBMS 有下列关键性技术问题需要解决:
1 .事务定时特性说明
即要有一种实时事务说明语言,用来说明事务的截止期等定时限制,其说明语句格式一般形为:
< 事务事件名>IS< 时间事件说明>
其中< 事务事件名> 有事务的BEGIN、COMMIT、ABORT 等。< 时间事件说明> 则指定一个绝对、相对或周期时间。例如" 事务t1 在事务t2 提交5 秒后开始" 说明为:
BEGIN(t1)IS 5s AFTER COMMIT(t2)
" 事务X 在每天九点后10 秒内完成" 说明为:
COMMIT(X) IS EVERY 9:00 WITHIN 10s
2 .事务/ 查询的接纳管理
它包括同时在系统中的事务数的控制策略和内存资源的管理( 分配与再分配) 策略。一般可以接纳比实际有效内存更大的事务数,以提高并发度,从而获得较好的事务性能。但接纳的事务过多,会引起过多的I/O 而导致" 抖动",从而不利于事务性能和定时限制的满足。这种RTDBMS 必须对接纳多少和接纳谁作出决策。另外的问题是,内存资源的分配、抢占/ 中断、" 动态释放" 与回收策略。这些都属于事务的执行控制,直接与实时事务的优先级和定时限制紧密相关。
3 .事务处理的可预报与应急计划
一个RTDBMS 应具有一定的事务处理的预报能力,即能进行可调度性预测。事先知道一个实时事务能按截止期完成的可能性,若完全可能,则按正常处理;若存在危险,则采取一定的措施( 如提高优先级或必要时牺牲数据的一致性等);若绝无可能,则现在就夭折它而执行替代或补偿事务,否则,采取" 脚踩西瓜皮"( 滑到哪里算哪里) 策略,这时,事务的定时性无任何保证,则RTDBMS 也无实用价值可言。
一个RTDBMS 还应具有一定的" 应急处理" 能力。由于种种原因,系统难免会出现一些事务已经或即将超截止期,此时RTDBMS 必须启动" 应急计划",执行替代、补偿或应急处理活动。这些活动由用户说明,但RTDBMS 必须提供其说明和与之通信、连接的工具与机制。
4 .结果正确性与实时性的折衷
与传统DBMS 一切为了保证结果的绝对正确性相反,RTDBMS 将实时性看得比结果的正确性还重要,即有时通过折衷和权衡结果的完全性、准确性、一致性、流行性来求得及时性。所谓结果的不完全性乃指通过部分( 非精确) 计算/ 处理所得的结果。对于一致性,传统的DBMS 用可串行化来保证。然而,可串行化在传统数据库中也是一致性的充分( 而非必要) 条件,在RTDB 中不但没有必要,有时是不可能的( 如有事务执行的先后次序限制),故RTDBMS 往往采用" 放松的可串行化" 的概念、技术与机制。对于流行性( 外部一致性) 总是需要的,尤其对于那些为抽样检验、规律分析、变化趋势模拟等事务,可以用" 过时" 数据或导出数据来进行。所以,一个RTDBMS 应具有这些折衷权衡的能力与设施。