文档介绍:第七章实时数据库系统
实时数据库RTDB(Real-Time Data Base)是数据和事务都有定时特性或显示的定时限制的数据库。RTDB的本质特征就是定时限制,定时限制可以归纳为两类:一类是与事务相联的定时限制,典型的就是“截止时间”;另一类为与数据相联的“时间一致性”。时间一致性则是作为过去的限制的一个时间窗口,它是由于要求数据库中数据的状态与外部环境中对应实体的实际状态要随时一致,以及由事务存取的各数据状态在时间上要一致而引起的。实时数据库是一个新的数据库研究领域,它在概念、方法和技术上都与传统的数据库有很大的不同,其核心问题是事物处理既要确保数据的一致性,又要保证事物的正确性,而它们都与定时限制相关联。
实时数据库子系统是SCADA系统的核心之一。实时数据库子系统设计包含实时数据库结构设计和实时数据库管理程序设计两部分组成,实时数据库结构设计主要根据SCADA系统的特点和要求设计实时数据库的结构。管理程序负责实时数据库的产生,根据现场修改内容,处理其它任务对实时数据库的实时请求以及报警和辅助遥控操作等对外界环境的响应。
一个典型的实时数据库具有以下内容:
永久数据管理包括数据库的定义、存储、维护等。
有效的数据存取各种数据操作、查询处理、存取方法、完整性检查。
事务管理事务的概念、调度与并发控制、执行管理。
存取控制安全性检验。
数据库的可靠性恢复机制。
实时数据库的三大显著特点:
事务活动的时间性很强,要求在某一特定时刻或一定的时间内完成信息的采集、存储和处理,并及时反应。
数据具有"时间一致性",数据须及时准确地反映现实世界的真实状态,数据的存在具有时间性,过时的数据可能毫无意义。
系统处理数据时,要监视和评价预先定义的状态(条件),一旦特定状态出现,系统能自动反应。
关系数据库同样具有存贮数据和查询的工能,为什么不采用关系数据库来存贮实时数据,这样不是更能减少系统的复杂性吗?的确关系数据具有优秀的数据存贮和检索功能,但是它并不适于存贮大量长期的实时数据,下面是实时数据库和关系数据库的一些主要区别:
传统的数据库系统旨在处理永久、稳定的数据、维护数据的完整性、一致性,其性能目标是高的系统吞吐量和低的代价,而根本不考虑有关数据及其处理的定时限制,为了完成上述目标,宁愿让用户等待。而实时数据的数据和事务处理都有明显的时间特征,事务和数据处理的实时性是实时数据库的主要特征。
关系数据库中的数据,数据库系统并不知道其中的数据的意义,而只知道数据的数据类型,如:整型、字符等。而实时数据库不但知道数据的数据类型而且需要知道数据的意义,如:参数名、量程上下限、当前值等,实时数据库需要根据数据的意义作相应的处理,如:判断报警。
检索方式不同。关系数据库可以以任意条件的组合进行查询,而实时数据库的检索多以参数和时间为条件检索,所以实时数据库针对以时间为条件的查询进行了查询优化,使其查询速度更快。
在使用关系数据存储实时数据时,要想获得高速的写入速度就不能在表中建索引,但是这样会导致查询速度减慢;要想获得高速的查询速度,就必须在表中创建索引,但是此时就不能保证数据写入的实时性。而实时数据库即能保证数据写入的实时性有能保证数据检索的速度。
时至今日,传统的数据库技术已发展成为一种比较成熟的技术,其应用几乎遍及各个领域。同时,数据库的应用也正从传统领域向新的领域扩展,如:过程控制、自动化;CAD/CAM、CIMS;数据通信、电话交换、电力调度等网络管理;电子银行事务、电子数据交换与电子商务、证券与股票交易;交通控制、雷达跟踪、空中交通管制;武器制导、实时仿真、作战指挥自动化系统,等等。这些应用有着与传统应用不同的特征,一方面,要维护大量共享数据和控制数据;另一方面,其应用活动(任务或事务)有很强的时间性,要求在规定的时刻和(或)一定的时间内完成其处理;同时,所处理的数据也往往是“短暂”的,即有一定的时效性,过时则有新的数据产生,而当前的决策或推导变成无效。所以,这种应用对数据库和实时处理两者的功能及特性均有需求,既需要数据库来支持大量数据的共享,维护其数据的一致性,又需要实时处理来支持其任务(事务)与数据的定时限制。
但是,传统的数据库系统旨在处理永久、稳定的数据,强调维护数据的完整性、一致性,其性能目标是高的系统吞吐量和低的代价,并不考虑有关数据及其处理的定时限制,所以,传统的数据库管理系统(DBMS)不能满足这种实时应用的需要。而传统的实时系统(RTS)虽然支持任务的定时限制,但它针对的是结构与关系很简单、稳定不变和
不可预报的数据,不涉及维护大量共享数据及它们的完整性和一致性,尤其是时间一致性。因此,只有将两者的概念、技术、方法与机