摘要:本文是时态数据库的一个综述,概要的介绍时态数据库的产生背景,研究动向,然后介绍了时态数据库的分类和现有的比较典型的模型,最后介绍了时态管理和时态数据库设计方面的问题。
l 背景
传统的数据库技术能反映现实世界中的数据,但是它仅仅能体现现实世界中数据的当前状态,只反应了一个对象在某一个时刻的状态(快照),不联系其过去和未来。这就是人们常说得快照数据库(Snapshot Database)。现代的信息流包含事件的时态信息(Temporal Information), 其中有时刻信息(Instant Information), 时间区间信息(Interval Information)和相对时间信息(之前、之后、重叠)等等。
日益广泛的数据库应用要求了管理被处理事件的历史性信息,和系统中元事件的时态信息。需要迫切解决两个问题:一是要求管理被处理事件的历史性信息,如与人事、财务、金融和自然灾害等有关的历史资料,从中可看出事物发展的本质规律;二是要求管理数据库系统中元事件的时态信息,如增查,删改的时刻和时间区间、在多用户系统中对锁定排队及资源竞争协调的时标等,这些数据有助于提高数据库系统的可靠性和效率。因此引入时态数据库。
l 研究动向
在20世纪70年代初,许多人就开始探索在数据库和信息系统中处理时间信息。
80年代初期,时态数据库研究开始繁荣,在1982-1986年间,一共有80多篇关于时态数据库的论文。到了80年代中期,已经提出了近百种时态数据库的方案,经过十多年的发展和相互学习,逐渐合并为十多种公认的模型。
Kahn Ketal在1977年在《人工智能》杂志上的文章中研究了关于“时态知识”的问题。
J. Ben Zvi于1979—1982年对时态数据库作了开创性研究,他的博士论文(加州大学洛杉矶分校,1982) 总结了他的一系列工作。Ben Zvi 的贡献突出在下列几点∶
(1),他提出了时态数据库模型,引入了时间间隔 ( Time Period ),后来被学术界改称为时间区间。
(2),在1979—1982这个关系规范型研究的热点时期,Ben Zvi 突破思想禁区,提出并研究了非1NF 的TDB 。
(3) 以时间区间作字段值,刷新了人们认为数据库字段值只能是一个数或串的观念。
(4)引入了后来被称为双时态的概念,即用有效时间表示被管理对象在库中生命周期,用事务时间表示数据库本身的历史。
(5).引入了时态索引结构。
1982年J. Clifford 在纽约大学完成了博士论文“A logical frame work for the Temporal Semantics and Natural Language Querying of Historical Database ”及相关的一组文章,对历史数据库的开创性作了重要贡献。它注意到了被管理对象的生命周期 (Lifespan), 研究了在关系、元组、字段值上加时态信息的技术细节,引入了历史关系模型,历史关系代数,研究了历史数据库中投影、选择、连接的特殊要求和特殊规律,研究了历史关系模型与传统关系模型的兼容性,即当把区间缩小为一点〔Now, Now〕时历史数据库即退化为传统快照数据库,且相应的时态代数运算退化为传统快照关系运算。
美国南加利福尼亚大学的S. Ginsburg 教授原是形式语言,特别是上下文无关文法研究的先驱者。他于1983年提出对象历史模型(Object History)。
时态数据库的分类
按Spipada和Snodgrass的意见,时态数据库按功能可分为三类∶
(1) 事务数据库。数据库本身被查删改的时间称为事务时间(Transaction Time),事务数据库支持事务时间,他按事务时间编址,保存了所有状态演变中过去的状态。事务的关系是一种三维结构,由元组,属性和事务时间三维构成。
(2) 历史数据库。被管理对象的生命周期称为有效时间(Valid Time),历史数据库和事务数据库类似,只是用有效时间代替了事务时间,代之以静态状态序列,而是用每个关系记录一个历史的状态。历史的关系也是一个三维结构,由元组,属性和有效时间构成。
(3)时态数据库,既能管理对象历史,又能管理数据库本身的历史,又叫双时态数据库。他具有前两者的优点,支持事务时间和有效时间。时态关系是一个四维结构,由元组,属性,事务时间和有效时间构成。
l DBMS的时态信息四种处理方法
事件常常都伴有时态信息,传统的数据库只通过用户定义时间来记录时态信息,DBMS没有管理事件时态信息的机制。下表列出了DBMS处理时态信息的四种方式。
l 时态管理的问题
长期以来,在没有使用时态数据库的年代里,企业及机关管理历史性数据都是把多个快照(即在不同时刻保存的数据库的备份)放在一起,构成了历史。
(1).取多大的时间间隔保存快照? 如果间隔太大,则不足以保证数据的准确详实,如果间隔太小,则数据冗余多,占存贮空间大。
(2).传统关系数据库中,一个表的多个快照,不能简单地同时装入内存,不能简单地使用传统的选择、投影、连接运算进行操作和查询。因为同一元组同一属性下的值在不同快照中可能不同,必须作较复杂的、非通用的编程。
(3).传统数据库中,对数据库本身历史的维护支持不足,一般只有供恢复回退用的事务日志( Transaction log ), 缺乏相应的事务查询命令(例如快速地查出谁对某一字段作了超过十次的修改)。
l 现有时态数据库模型
80年代中期,已经提出的近百种时态数据库的方案,经过十多年的发展和相互学习,逐渐合并为十多种公认的模型,其中有十三种被收入世界第一本关于时态数据库专著《Temporal Database—Theory, Design and Implementation》。
(1). Time Relational Model, 该模型是Ben Zvi 在1979--1982在博士论文中提出,是TDB领域的先驱性研究工作。它开创了对时态数据库、时态查询语言的研究。
(2). HRDM (Historical Relational Data Model ),J. Clifford ,1982.
(3). TempSQL, Sharshi. K. Gadia & Sunil, S. Nair, 1985.
(4). IXRM (Interval-Extended Relational Model ),Nikos A. Lorentzos,1987.
(5). TRM 及TSQL (Temporal Extensions to the Relational Model ) K. B. Navathe,1987.
(6). HSQL ( Historical Query Language ),N. L. Sarda 1987.
(7). TQuel,R. Snodgrass , 1985.
(8). TRC (Temporal Relational Calculus ),Abdullah Tansel ,1992
(9). TEER, (Temporal Query Language for Enhanced Entity Relationship Model ),R. Elmasri , 1985.
(10). TDM (Temporal Data Model Based On Time Sequeuce),Arie Segev & Arie Shosham, 1988.
(11). OODAplex (Object Oriented Aplex),U. Dayal,1989.
(12). Object History, S. Ginsburg, Tanaka, 唐常杰等, 1983。
(13). Temporal Deductive Databases, Marianne Bandinet 等,1989。
上述13个TDB模型从不同的需求、观点出发,各自独立地建立了一套术语、概念、数学模型,并形成了一套各自独立的理论体系。
l 时态数据库在具体实现过程中的困难
(1)数据量大。时态数据库旨在管理历史数据,随着时间的流逝,新的数据源源不断的进入数据库,为了保证TDB在大数据量的时空效率,必须有高效的数据存储组织和时态索引机制。
(2)在实际应用的时态查询中,选择、投影和连接运算占了主要资源。对时态选择、时态投影和时态连接的优化成了TDB查询优化的技术焦点。
(3)在索引上,由于加入了时态效应,对传统的Hash和B树、B+树都需要在时态上进行扩展才能满足TDBMS的要求。
l 时态数据管理和人工智能
在人工智能领域,主要研究时态推理机制。这有两种类型:
(1)主要进行数据及其联系的解释 这种系统可用来支持包含了时间问题的自然语言理解。J.F.Allen的“时区演算”就是代表。
(2)建立未来的活动的计划 这种系统可用在工厂调度资源的使用,称为“智能调度”,其问题是:在一定的时间限制内,制定能正确使用资源已解决给定调度问题的计划。
l 参考文献
《特种数据库技术》 何新贵,唐长杰 科学出版社2000
《时态数据库技术》 黄楠,刘爱琴 微机发展 2002年第1期