时间:2022-11-11 18:30:01 | 来源:信息时代
时间:2022-11-11 18:30:01 来源:信息时代
时态数据查询语言 : 时态数据库的重要组成部分,经过30多年的研究,目前时态查语言模型已基本成熟,如TempSQL、Tquel和TSQL2等均为有代表性的时态数据查询语言。
1. TempSQL语言
TempSQL语言是1985年由S.Gadia和S. Nair提出的一种类似于SQL的时态数据库查询语言。在TempSQL语言中,引进了双时态机制,数据库中管理的不仅有对象历史的有效时间,还能查询被管理对象的历史、数据库本身增删改的历史,以及用户和数据库本身出错的历史。TempSQL语言保持了时态数据和静态数据的无缝连接,快照数据库是时间缩小为一个时间量子[now,now]时的特例。
TempSQL语言中元组的非关键字属性可随时间变化的,关键字属性是不能随时间变化,即一个元组关键字只有一个,而非关键字可以是在多个时间段的多个属性值。各个元组的属性周期是一致的,称为满足同时性条件。
2. TQuel语言
TQuel语言是1985年R. Snodgrass提出的一种双时态数据库查询语言,TQuel语言的基本结构是对Quel语言的扩展,保存了Quel语言的风格。TQuel语言是建立在双时态的基础之上的,元组的生命周期为有效时间,而数据库中事务执行的时间为事务时间,并认为这两个时间轴是正交的,互相独立的。TQuel语言在传统的Quel语言的基础上引入了一些时态保留字,如: as-of、overlap等,类似的保留字还有First、Last、endof等。
3. TSQL2语言
TSQL2语言是第一个尝试采用规范标准的时态查询语言,它是SQL—92语言的标准在时态方面的扩展。1994年,Richard Snodgrass开始与ASNI和ISOSQL3委员会研究,提出SQL3的新部分,称为SQL/Temporal,目的是把TSQL2作为SQL/Temporal的标准。TSQL2语言是时态数据库标准化过程中的重要语言。
TSQL2文本是时态数据库标准化过程中的一些规范集合。在TSQL2文本中,随着时态特性的不同,其关系可分为如下6类:
(1)快照关系(snapshot relations): 无时间标签。
(2)有效时间状态关系(valid-time state relations):表示状态state,有效时间表示的是状态有效的期间。这种关系用子句AS VALID[STATE]说明。方括号中的STATE是可选项。加了STATE,就显式地说明该关系是有效时间状态关系; 如果不加STATE,效果是一样的,缺省说明该关系是有效时间状态关系。
(3)有效时间事件关系(valid-time event relations):表示事件event,事件发生在某一刻,有效时间为时刻的集合。用子句AS VALID EVENT说明该事件是有效时间状态关系。
(4)事务时间关系(transaction-time relations):只有事务时间这一时间标签,用子句AS TRANSACTION说明。
(5)双时态状态关系(bitemporal state relations):时间标签含事务时间和有效时间,其中有效时间描述的是关系表示的状态有效的期间。用子句AS VALID [STATE] AND TRANSACTION说明。
(6)双时态事件关系(bitemporal event relations):和双时态状态关系不同之处在于时间标签中的有效时间描述的是关系表示的事件发生时刻的集合。用子句AS VALID EVENT AND TRANSATION说明。