时态数据库

2024-05-23

时态数据库(精选九篇)

时态数据库 篇1

1 时态GIS(TGIS)

1.1 基本概念

TGIS[1]是一种采集、存储、管理、分析与显示地理实体随时间变化信息(或时空信息)的计算机系统。空间、时间和属性是构成地理信息的3个基本特征,是反映地理实体的状态和演变过程的重要组成部分。TGIS亦被称为4DGIS,是在地理空间系统中增加对时间维的分析表达能力,能跟踪和分析地理信息随时间变化的空间、非空间信息,表达其发展变化过程及规律。

1.2 时空数据模型

TGIS的核心是时空数据模型的建立。时空数据模型的研究是实现不同尺度、不同时序空间数据互动与融合的基础。时空数据模型中时空关系的合适表达,有助于在现有GIS基础上实现时序分析功能。当前典型的TGIS模型包括[2]:空间时间立方体模型、序列快照模型、基态修正模型、空间时间组合体模型、面向对象的时空数据模型等。

一个合理的时空数据模型应考虑以下几点[3]:节省存储空间、加快存取速度、表现时空语义。时空语义包括地理实体的空间结构、有效时间结构、空间关系、时态关系、地理事件、时空关系。

针对管线规划数据和管线现状数据的特点,分别采用相应的数据库,其中管线规划数据采用版本化管理方式,管线现状数据采用基态修正模型进行时空数据的组织管理。

2 管线的时空数据特征

城市地下管线数据的管理包括规划建设和日常管理2个方面,两者数据相对独立,各不相同。如规划建设的数据往往仅包含一些基本信息,属性不够丰富。因此,从规划建设和日常管理2个层面对城市地下管线数据的时空特征进行研究,对城市地下管线的时空数据组织采用时态—语义—几何特征的顺序[4]进行。

2.1 规划建设的时空特征

市政管线的建设过程有选线规划、管线综合、设计方案及竣工验收等不同阶段。对不同阶段产生的数据进行组织管理,能将建设项目的所有阶段在“市政管线一张图”上进行动态表示,并区分阶段,体现出审批过程的动态变化和更新过程的动态变化。

数据组织时,对规划建设数据采用建立各阶段的数据库,按分库方式进行管理。即在后台数据库中,建立选线规划、管线综合、设计方案、竣工验收等各阶段的数据库。同一个建设项目采用相同的项目编号进行连接,对同一项目重复审批时则采用版本控制的方式进行管理。

2.2 日常管理的时空特征

城市地下管线数据的日常管理包括管线现状数据和竣工数据等。天津市的城市地下管线信息的数据来源主要是由各测绘部门通过物探等方法测得[5]。随着城市建设速度的加快,同一区域的城市地下管线数据会随时更新,因此必须引入时间维度对城市地下管线数据进行动态管理。

地下管网中由于空间事件的发生引起的变化包括出现、消失、延长、缩短、移动、旋转和重现,管点的变化类型主要有出现、消失、移动、重现。出现为地下管网中新出现1条管线段,必须与该类型的其他管线段相连接;消失为地下管网中消失1条管线段,当该管线段位于管线中间时,必须将与其连接的其他管线段连接起来;延长为地下管网中1条管线段长度变长;缩短为地下管网中1条管线段长度变短;移动为地下管网中某条管线段的位置发生了变化即管线段的起始管点和终止管点不是在同一坐标;旋转为地下管网中某条管线段起始管点或终止管点固定不动,然后任意方向旋转;重现为地下管网中某条管线段消失后又重新出现。

根据管线、管点的变化类型,地下管线数据的日常管理操作可以归为以下几类:管点移动,对管线和管点进行重新指定;管线段增加、删除,针对管线段进行增加和删除;管线段断开,在管线段中间增加1个或多个管点,将1条管线段分割成多条管线段;管线段合并,将多条管线段合并成1条管线段。具体包括3方面的操作:只包含属性事件,这类事件只对属性进行修改操作;只包含空间事件,这类事件只对空间进行各种操作;包含属性事件和空间事件,这类事件既对要素属性进行修改操作,又对要素空间进行各种操作[4,6]。

在具体管理中,管线数据的操作主要发生在将测量数据录入到现状数据库的时候。当在原有管线数据资料的基础上进行再次探测时,发生新测数据与原有数据不同的情况,即会出现上述几种管线的变化。

3 时空数据结构设计

3.1 规划建设的时空数据结构设计

城市地下管线项目的建设规划包括选线规划、管线综合、设计方案、竣工验收等各审批阶段,每个阶段都将产生对应的空间图形数据和属性数据。可以按不同的时间点建立时空数据库模型。通过空间叠加操作,利用记录的变化数据来绘制各个时间片的状态数据,每一次叠加表示状态的一次变化,通过索引方式来记录时空关系及变化。这样,在时间维上展示的不是一个静止的图像,而是一个可分析的动态数据对象。建立的不同阶段时空数据模型如图1所示。

同一个项目的同一阶段还存在着重复审批形成的历史数据。在数据库中,采用版本方式对历史数据进行管理,数据库模型如图2所示。

在数据库设计中,数据表结构应增加相应的字段用以标志审批阶段、数据版本及是否为最新数据等内容。增加时间字段,作为时序的标志字段,根据具体业务性质进行时间单位的划分和设置。如以审批材料的签收日期为时间点,则时间单位可设置到日。

3.2 日常管理的时空数据结构设计

根据城市地下管线数据在日常管理方面存在的时空特征,可以将数据库分为现状管线数据库、历史数据库等2类。数据库中含有相应管线实体生存的起始时间(探测时间)和终止时间(注销时间)等时态信息(在现状管线数据库中,终止时间为空)。

现状管线数据库是一个按管线功能分类的多个管线几何网络(或称管网)数据库。数据的组成包括管线点、管线弧段和网络连接点,另外需建立它们之间的连通性。历史管线数据库的基本单位是管线点和管线弧段,不需建立其连接关系构成网络,只需保存其空间信息和属性信息。现状和历史管线数据库均包括元数据。

1)管线元数据。

现状管线元数据的内容包括工程号;管线种类(如燃气、供水等);管线空间范围的最小、最大空间坐标;数据存储格式、文件名、容量;城市地下管线长度、采集单位、采集方式、采集时间;质量检验部门名称,质量评价。历史管线元数据的内容相对简单,主要包括工程号、管线种类、长度、注销单位及注销日期等。

2)管线点数据。

包括平面坐标、高程、管点类型(如三通、四通、阀门、小室、检修井等)、管线种类。

3)管线段数据。

管线弧段指连接2个管线点之间的管线,内容相对比较单一,存储的信息包括管线种类、材质、管径、流向、长度、权属单位、起点埋深、终点埋深及工程号等。

4 管线时空数据库的应用

4.1 动态展现功能

动态展现功能结构图如图3所示。

动态展现的可视化可通过面向对象的编程语言开发实现。分析规划审批业务数据的特点,基本对象可表达为6类, 即地理坐标对象、矢量对象、栅格对象、时空索引对象、图例对象和背景图层对象。地理坐标对象主要处理和控制空间坐标、投影及缩放; 矢量对象和栅格对象主要处理和控制相关图形、影像数据;时空索引对象主要处理和控制动态展现过程中时间和空间信息的对应关系以及动态演示的进程;图例对象处理可视化要素的说明;背景图层对象处理和控制其他要素信息在展现过程中的叠加。

4.2 分析功能

针对管线时空数据特点,结合规划管理、地下管线数据管理的工作需要,分析功能主要包括查询统计功能、规划方案对比、历史资料数据查询、管线使用年限分析等功能。

5 结语

时态地理信息系统(TGIS)将时间数据与空间数据、属性数据整合在一起,实现时间数据可视化并最终对时间数据进行分析,更好地演示事物在空间—时间上的演变过程。本文在研究时态GIS的基本概念的基础上,与城市地下管线管理工作相结合,对城市地下管线数据中的时间因素进行了研究,设计了相应的数据库,建立了地下管线时空数据库。利用该数据库可以进行与时间有关的统计、分析工作,依此来掌握城市的发展轨迹。借助与时间相关的分析功能,为城市规划、建设与管理提供辅助支持。

参考文献

[1]王家耀,魏海平.时态GIS的研究与进展[J].海洋测绘,2004,24(5):1-4.

[2]邬伦,张晶,马修军.地理信息系统:原理、方法和应用[M].北京:科学出版社,2002.

[3]舒红,陈军.地理数据模型中的时间语义[C]∥中国GIS协会第二届年会论文集.北京:中国GIS协会,1996.

[4]杨伯钢,张保钢.城市地下管线时空数据的组织与操作[J].测绘通报,2009(4):56-57.

[5]刘荣,王超,夏吉祥,等.天津市城市地下管线信息管理体制机制法制的研究与建立[C]∥天津市城市规划学会2010年“魅力天津.学会杯”优秀学术论文集.天津:天津市规划协会,2010.

时态数据库 篇2

需求前提:数据每年变化1~2次,软件预计生命周期50年

实践环境:Oracle Spatial

术语表:时空对象,快照

时空对象:一个地理目标从诞生到消亡所经历的空间和时间范围及其属性信息,这是一个为处理时空数据方便而抽象出来的概念,相当于全信息模型中的全信息对象。为了理解时空对象,我们以二维地物为例。二维地物在二维空间中占据一定的空间范围,表现为一个二维几何体,也就是它的几何属性。如果再增加一条时间轴,成为(x,y,t)坐标系,并认为任何的空间对象都有诞生和消亡,则这个二维地物就在(x,y,t)坐标系中占据了一定的三维空间。我们就把二维地物从诞生到消亡这一时间段所占据的空间-时间范围称之为“时空对象”。同理,也可以将时空对象扩展为三维的空间对象在时间维度上的延续,也就是四维对象。时空对象的属性信息是一张二维表。

快照:一个地理目标在某一特定时刻所占据的空间范围及其属性信息,或者说:时空对象在某一特定的时刻所占据的空间范围及其相应的属性信息。举例来说,地图上绘制了一个饭店的位置,大小,这就是饭店的一个快照。因为饭店是从某一时刻才诞生的,又会在某一时刻消亡,而在诞生和消亡之间,还可能会搬迁或扩建。所以地图上反映的仅仅是饭店在某一时刻的状态,所以称之为饭店在某一时刻的快照或时空对象在某一特定时刻的快照。注意,快照总是对应于某一特定的时刻,否则将失去快照的意义。快照的属性信息是时空对象属性信息表中的一条记录。

设计方向:

以时空对象的概念组织空间数据和属性数据,使得对地物变迁历史的查询和分析成为可能。

对应用层屏蔽历史数据的处理过程,将历史数据的处理当作数据库模块的功能之一。

技术要点:

1、 Oracle包变量的会话独立性

2、 动态视图技术(基于函数的视图)

图形解说:

时间

空间

对象诞生时间

观察方向

当前观察时间

对象消亡时间

快照3

快照2

快照1

时空对象(对象一)

对象三

对象二

从以上示意图中可以清晰地看出,每一个时空对象都是由多个快照记录所描述的。观察者的每一次观察都是基于一个特定的观察时间的。例如,图示中的观察者应该看到对象一的快照2和对象三的快照2,而无法看到对象二和对象一、三的其他快照记录。看不到对象二是因为在此观察时间之前,对象二已经消亡。看不到对象一的快照1是因为对象一有更新的观察数据快照2可以更好地近似反映对象二在当前观察时间所处的状态。

数据表:数据表的设计基于以上概念

对象表

Obj_id

NUMBER

时空对象标识号

Start_time

DATE

对象诞生时间

End_time

DATE

对象消亡时间

Obj_Attr

VARCHAR2(100)

对象属性数据

会因时间的流逝而发生变化的属性信息。

快照记录表

Obj_id

NUMBER

时空对象标识号

Snap_id

NUMBER

快照数据的唯一序号

Snap_time

DATE

快照时间

Snap_end

DATE

快照结束时间

属于同一时空对象的最近的下一条快照的快照时间,

设置此列的目的是为了查询方便。

Geom.

MDSYS.SDO_GEOMETRY

快照几何数据

Attr

VARCHAR2(100)

快照属性数据

会因时间的流逝而发生变化的属性信息。

存储过程:

利用Oracle中包变量的会话独立性,在包中建立以下几个基本的存储过程:设置当前观察时间,获取当前观察时间,利用当前观察时间和传入的Snap_time,Snap_end参数判断快照记录是否可见(Snap_Filter)。

视图:建立在快照记录表上的视图,基于存储函数Snap_Filter实现对表中记录的筛选。传入参数为:Snap_time,Snap_End.,返回值为此快照是否可见。

SELECT Obj_id, Snap_time, Geom, Attr

FROM 快照记录表

WHERE Snap_Filter(Snap_time, Snap_end) >0;

Obj_id

NUMBER

时空对象标识号

Snap_time

DATE

快照时间

Geom.

MDSYS.SDO_GEOMETRY

快照几何数据

Attr

VARCHAR2(100)

快照属性数据

触发器:

视图上的触发器,使应用层用户可以在视图中插入,修改,删除数据。

要点:   1、维护表中数据时要避免出现时间悖论,造成时间逻辑混乱。

2、快照记录表中的Snap_end列的维护稍微麻烦一些,应小心谨慎。

扩展与变化:

1、 支持多种观察模式。

为了查询功能的灵活性,可以增加几个扩展功能的存储过程:设置当前的观察模式,获取当前的观察模式,重写Snap_Filter函数以支持多种观察模式。

例如:

【对象历史追溯模式】此时当前观察时间这一参数失效,Snap_Filter的行为发生变化,视图中看到的是某一(或某几个)指定对象的所有快照。这种模式便于对单个对象的整个历史变迁过程加以追踪。

【时间段观察模式】此时需要设置的观察时间不是一个时间点,而是一个时间段。Snap_Filter的返回值也有了更丰富的含义,可以用不同的数字(例如:1,2,4)表示某一快照记录在当前时间段开始,结尾,中间的可见性。这种模式可以用于需要对两个不同时间点的数据进行比较的场合。

2、 增加对象关系表以描述时空对象之间的联系

时空对象之间可能会有各种各样的联系,例如:变化,融合,分裂等。可通过以下表格加以描述。

时空对象关系表

Obj_1

NUMBER

时空对象标识号

Obj_2

NUMBER

时空对象标识号

Relation_type

NUMBER

关系类型

使用方法:

如果是查询最新信息,即观察时间为系统当前时间,则直接访问视图即可。

电子病历中时态数据的过滤运算研究 篇3

病历是患者在医院诊断、治疗全过程的原始记录, 它包含有首页、病情记录、检查检验结果、医嘱、手术记录等, 而电子病历EMR (Electronic Medical Record) 则是指计算机化的病历。随着信息科学和计算机技术在医学领域中的深入应用, 包括PACS、RIS、LIS等系统在医院的应用逐渐成熟, 实现电子病历是一个必然趋势。

现实世界是一个带时间维的四维世界, 表征事物特征的数据必然随着时间的推移而有所改变[1]。例如:在电子病历中记录着患者的病情记录、会诊记录、用药记录以及各种检查表格等医疗情况, 而这些情况都具有明显的时态特性。构建医院的电子病历信息系统是一项艰巨而复杂的工作, 涉及的内容及技术很多, 本文以电子病历的时态信息处理为例, 在Delphi编程环境中对其时态过滤运算进行了深入的研究。

1电子病历的时态数据库设计

为了使医疗应用系统不仅能刻画病历数据的当前信息, 而且还能反映其历史变化和揭示其将来状态, 电子病历的数据库设计必须支持时态信息的处理。由于时态信息具有海量的历史数据, 相关的数据库时态操作也比传统的关系数据库要复杂得多, 故至今尚未形成完整通用的TDBMS (时态数据库管理系统) [2]。目前, 在实际应用中, 一般是在现有的非时态DBMS基础上通过SQL扩展或利用中间件技术来实现数据的有限时态管理[3]。考虑到医疗应用系统的时态数据具有缓慢变化的特点, 我们选用了M.A.Roth等学者提出的嵌套关系数据库模型[4]在非时态DBMS (Microsoft SQL Server 2005) 上设计了电子病历的时态数据库。

所谓嵌套关系数据库模型, 实质是一个形如Rj= (Rj1, Rj2, …, Rjn) 的规则集合, 其中, Rjn (1≤jn) 可以出现在其它规则的左边, 也就是说, 允许一个关系的属性是另一个关系, 但不能出现递归定义。参照该模型, 利用Microsoft SQL Server 2005来设计电子病历的时态数据库时, 可把医疗数据的常量属性与时变属性区分开来, 将独立于时间的常量属性置于“自然信息”关系中, 将时变属性置于“时变信息”关系中。这里, “时变信息”关系则用多个嵌套关系数据表来表示随时间变化的各种信息。表1是住院病历的嵌套关系数据库描述, 限于篇幅, 这里仅给出“诊断情况”和“主治医生”两个时态嵌套关系数据表。

2时态过滤的定义

A是时态关系RT中的一个时态属性, A的值域为Dom={ai|i=1, 2, …, n}, 记时态属性A为[[A]], 对某一个元组i, 在其生命周期中, 属性Ai的取值可能有多种, 对每一种取值, 都有对应的时间区间, 记为[[Ai=aj]]。如表2中的1号记录 (病历号为“20051001”) , 其[[诊断情况1=“阻塞性肺病”]]=[2005/12/23 11:30~2006/01/13 11:30], 而[[诊断情况1=“肝疾病”]]=[2005/12/12 09:00~2006/01/24 11:30]。

定义 所谓时态过滤 (Temporal filtration) [6,7], 即求得相应元组的时态属性在Tt时间区间内的取值问题。这里, Tt=[ts, te]为时态过滤区间, 在ts= te时, Tt便退化为一时刻点。时态过滤可分为以下两种情况:

(1) 若TtTk, 则经过时态过滤运算后, 该属性取值为ak。例如考察表2中的2号记录在2001年6月30日的医疗情况, 可得到如表3所示的时态视图。

(2) 若TtTk1, TtTk2, …, TtTkn, 但TtTk1∪Tk2∪…∪Tkn, 则经过时态过滤运算后, 该属性取值为ak1, ak2, …, akn。例如考察表2中的2号记录在2001年6月25日至2001年7月10日的医疗情况, 可得到如表4所示的时态视图。

3电子病历中时态数据的时态过滤运算

3.1电子病历中时态数据的瞬时过滤

电子病历中时态数据的瞬时过滤实质就是要获取患者在某一特定时刻里的各种医疗情况。如图1所示, 瞬时过滤在程序实现上, 可逐次使用SQL语句来对各个时态嵌套关系数据表进行遍历检索, 并把检索所得的各种时态快照数据从左至右地显示在一个StringGrid控件[8]中。

在Delphi编程环境中, StringGrid控件用于处理字符串栅格, 与Excel电子表格一样, 以行和列的方式显示各种数据。这里并没有使用DBGrid数据感应控件来显示数据, 主要原因是StringGrid控件在编程过程中更富有灵活性。StringGrid控件的相关属性有:

property Cells[ACol, Arow:Integer]:String:利用该属性可以存取栅格中的单元对象。其中, 参数ACol定义了栅格的列, 参数Arow定义了栅格的行, 栅格中的第一行与第一列的值均为0。

property ColCount:longint:设置栅格中列的总数 (包括固定列) 。

property RowCount:longint:设置栅格中行的总数 (包括固定行) 。

需要说明的是, 图1中的“诊断情况”在2005年12月25日11时30分这一时刻出现了两个记录, 这表明该患者当时出现了并发症。

主要源码:

ADOQuery1.Active:=False;

ADOQuery1.SQL.Clear;

SQLStr :=′Select 诊断情况 from 诊断情况 where疾病开始时间<=:var1 and疾病痊愈时间>=:var2 and 病历号=:var3′;

//用SQL语句检索“诊断情况”时态嵌套关系数据表, 获取患者在某个特定时刻所患的疾病信息

ADOQuery1.SQL.Add (SQLStr) ;

ADOQuery1.Parameters[0].DataType:= ftDate;

ADOQuery1.Parameters[1].DataType:= ftDate;

ADOQuery1.Parameters[2].DataType:= ftString;

//设置SQL语句中的三个动态参数的数据类型, 其中var1和var2均为ftDate类型, 而var3则为ftString类型

ADOQuery1.Parameters[0].Value:=DateTimePicker1.Date;

ADOQuery1.Parameters[1].Value :=DateTimePicker1.Date;

ADOQuery1.Parameters[2].Value :=Edit1.Text;

//分别对SQL语句的三个动态参数进行赋值

ADOQuery1.Active :=True; //执行SQL语句

StringGrid1.RowCount:= ADOQuery1.RecordCount+2;

//更新StringGrid的行数

for i:=1 to ADOQuery1.RecordCount do

//遍历SQL语句的查询结果

begin

StringGrid1.Cells[2, i]:=ADOQuery1.Fields[0].AsString;

//往StringGrid相应的单元格写入患者在某时刻所患的疾病信息

ADOQuery1.Next;

end;

……

//重复上述过程, 对“主治医生”和“所属病区”时态嵌套关系数据表进行瞬时过滤

3.2电子病历中时态数据的期间过滤

电子病历中时态数据的期间过滤实质就是要获取患者在某一时期的各种医疗情况。由于电子病历中各种时态信息的时态区间往往是不相等的, 且相互之间存在重叠, 为了能简洁明了地展示患者在某个时期的各种医疗信息, 期间过滤的时态区间应为各种医疗时态数据与过滤期间的最小相交时态区间的并集[5]。

以表2的电子病历时态数据为例, 若要考察病历号为“20051001”的患者在[2005/12/10 00:00, 2006/1/1 11:30]这一期间的医疗情况, 则在期间过滤时, 应从“诊断情况”、“主治医生”及“所属病区”的时态数据中求出它们与过滤区间[2005/12/10 00:00, 2006/1/1 11:30]的最小相交时态区间, 并得到如下结果:[2005/12/10 00:00, 2005/12/11 00:00) ;[2005/12/11 00:00, 2005/12/12 09:00) ;[2005/12/12 09:00, 2005/12/23 11:30) ;[2005/12/23 11:30, 2005/12/28 11:30) ;[2005/12/28 11:30, 2006/1/1 11:30 ]。

相应地, 该患者在[2005/12/10 00:00, 2006/1/1 11:30]这一期间的医疗情况就应分成上述五个时态区间来考虑, 具体情况如图2所示。

为了求出各种医疗时态数据与过滤期间的最小相交时态区间的并集, 我们可以使用SQL语言来遍历检索各个时态嵌套关系数据表, 从而分别获取它们与过滤期间相交的时态数据, 并把这些时态数据的开始时间、结束时间的数值写入至一个日期时间型动态数组中, 最后使用冒泡算法对该动态数组进行排序 (升序) 。显然, 此时的动态数组中每相邻的两个元素就是所求的最小相交时态区间的一个子集。求出各个最小相交时态区间后, 它们所对应的时态信息便可采用上述介绍的瞬时过滤方法来获取。

主要源码如下:

var

PeriodArray:array of TDateTime; //声明一个时间日期类型的动态数组

t:TDateTime;

PALength:Integer; //动态数组的长度变量

i, j, k:Integer;

SQLStr:string;

ADOQuery1.Active :=False;

//用SQL语句检索与过滤期间有相交的时态数据, 相关的SQL语句、动态参数数据类型的设定和相关赋值语句, 可参照上述瞬时过滤中的源代码

ADOQuery1.Active :=True;

PALength :=2;

SetLength (PeriodArray, PALength) ;

//设置PeriodArray动态数组的长度为2

PeriodArray[0] :=DateTimePicker1.DateTime;

//把过滤期间的期间起点写入动态数组的第一个元素中

PeriodArray[1] :=DateTimePicker2.DateTime;

while not (ADOQuery1.Eof) do

begin

//遍历与过滤期间有相交的时态数据

if ADOQuery1.Fields[2].AsDateTime > DateTimePicker1.DateTime then

begin

PALength:=PALength+1; // 动态数组的长度增1

setlength (PeriodArray, PALength) ; //更新动态数组的长度

PeriodArray[PALength-1]:= ADOQuery1.Fields[2].AsDateTime;

//把与过滤期间有相交的时间点写入动态数组对应的元素中

end;

if ADOQuery1.Fields[3].AsDateTime < DateTimePicker2.DateTime then

begin

PALength:=PALength+1;

setlength (PeriodArray, PALength) ;

PeriodArray[PALength-1]:=ADOQuery1.Fields[3].AsDateTime;

end;

ADOQuery1.Next; //记录指针向后移1

end;

……

//对动态数组中的元素进行冒泡排序 (升序)

for i:=0 to PALength-1 do

for j:=0 to PALength-i-2 do

if (PeriodArray[j]>PeriodArray[j+1]) then

begin

t:=PeriodArray[j];

PeriodArray[j] :=PeriodArray[j+1];

PeriodArray[j+1]:=t;

end;

//根据动态数组的相邻两元素生成各个最小相交时态区间

for i:=0 to PALength-2 do

begin

if (PeriodArray[i]<>PeriodArray[i+1]) then

begin

Listbox2.Items.Add ( DateTimeToStr (PeriodArray[i]) +′~′+DateTimeToStr (PeriodArray[i+1]) ) ;

end;

end;

至于最小相交时态区间的时态过滤及它们对应的时态信息写入至StringGrid控件的源代码由于与瞬时过滤类似, 这里就不再重复。

4性能测试

4.1测试环境和测试数据

测试环境说明:

(1) 服务器为HP ML370 G4 (CPU:Intel Xeon 3.2G;内存:2GB;操作系统:Windows Server 2003;数据库平台:Microsoft SQL Server 2005 ) 。

(2) 客户机为DELL Inspiron 530S (CPU:Intel Core2 Duo E6550 3.2G;内存:1GB;操作系统:Windows XP) 。

(3) 网络环境为100M Ethernet。

本文采用佛山某三甲医院住院处的电子病历数据作为测试数据, 测试样本为该院2000年到2007年7.32万名患者的“诊断情况”、“主治医生”和“所属病区”三个时态嵌套关系数据表。

4.2瞬时过滤和期间过滤的性能测试

我们把时态数据按年份逐年递增的方式对应地分成8组, 用60台客户机同时在线地对瞬时过滤和期间过滤分别进行耗时测试 (该院在业务高峰时其客户机同时在线数量一般为50台左右) 。瞬时过滤的测试用例由“病历号”和“瞬时时刻”组成, 而期间过滤的测试用例则由“病历号”、“期间起点”和“期间终点”组成。测试系统采用分布式多层应用系统的结构方式运行, 其中, 上述过滤算法的程序以Free Threading多线程模式[9]在服务器上运行, 而客户机运行的测试程序则完成查询请求的提交、查询结果的显示及记录过滤运算所消耗的时间。在测试过程中, 测试用例由客户机的测试程序在测试样本中随机无序地自动抽取, 且抽取数量为当前测试样本的患者总数的5%。各组测试样本的过滤运算消耗时间用60台客户机的各次运算耗时的平均值来表示, 具体方法如下式:

m=160n=1s×0.05 (pmn) 60×s×0.05

其中, m为客户机的编号, n为每台客户机的各次测试过程, s为各组测试的样本总数, pmn为第m台客户机的第n次过滤运算的耗时值。

用上式对实际测试的耗时数值进行计算, 得到如表5所示的结果。从表5可知, 本文设计的过滤算法在耗时方面并没有随着测试样本数据的增长而线性增长, 具有良好的负载性能。

5结论

目前时态数据库技术总体上还处于理论试验的阶段, 其实际应用尚未展开。本文以医院信息管理系统 (HIS) 的电子病历为例, 在非时态DBMS上对其时态数据进行了分析与设计, 进一步, 在Delphi编程环境中详细讨论了时态过滤运算的设计原理及编程实现方法, 从而简洁明了地展示了电子病历中时态数据在过去某个时刻或者某个时期的状态。

参考文献

[1]何新贵.特种数据库技术[M].北京:科学出版社, 2000:1-36.

[2]汤庸.时态数据库导论[M].北京:北京大学出版社, 2004:1-121.

[3]蔡启先.数据的时态性及其在非时态DBMS上的处理[J].计算机应用, 2000, 20 (12) :23-27.

[4]吴扬扬, 陈锻生.嵌套关系DB实现时态DB系统的方法[J].华侨大学学报:自然科学版, 1994, 15 (4) :234-238.

[5]黄雄波.电子病历中时态数据库的分析与设计[D].广州:华南理工大学自动化科学与工程学院, 2007.

[6]蔡启先, 唐新来.基于历史关系模型的时态过滤运算[J].广西工学院学报, 2003, 14 (3) :16-20.

[7]蔡启先.Key-Time法及其用于时态过滤运算的研究[J].广西工学院学报, 2005, 16 (2) :34-38.

[8]郑城荣, 曾凡奎.Delphi运行时间库RTL和组件库VCL技术参考[M].北京:人民邮电出版社, 1999:239-245.

随感时态 篇4

当我们极力挽回那些过去的事是,更多不可挽回的是正在发生。

而我们却又总是去挽回,以为挽回了,它便完美了。就像多米诺骨牌一样,现实排山倒海地压来,我们却不懂果断了结,而去竖起那一张张已倒地的过往,从玻璃渣里寻找拼成理想的碎片。末了,从自己堆砌的最高峰,跌入堕落的深渊。即便哪天番然悔悟,也抵挡不了时间大军前进的步伐。

一切皆晚。

其实我们同命运的较量根本是一场没有赢家的决斗。那么多的斗士,看的却是谁后输。没有生命值加给你,也没有荣誉加冕你,那么,我们忙忙碌碌,到底为了什么?

我们又到底活在哪个时态?过去,现在,还是未来?

记忆承载不起希望,因为它是未来的虚象。

重要的是,先有现在,然后是未来,然后,才是过去。

时态数据库 篇5

随着信息技术的发展使得CSCL(计算机支持协同学习)得到普遍应用。通过时间的积累,数据库中会保存着大量的信息,这些信息包括过去、将来和现在的,并且是同等重要的。传统的数据库管理系统对时态信息的存储、处理和操作都十分有限。随着CSCL系统的不断发展,数据库应用要求管理被处理事件的历史性信息和系统中元事件的时态信息。需要迫切解决两个问题:一是要求管理被处理事件的历史性信息,如与学生兴趣、教师兴趣等有关的历史资料,从中获取到用户的稳定兴趣以降低存储与日俱增的用户信息;二是要求管理数据库系统中元事件的时态信息,如增查,删改的时刻和时间区间等,这些数据有助于提高数据库系统的可靠性和效率。因此需要引入时态数据库。通过数据压缩算法将用户兴趣信息分别存储到不同的时间段的表中,通过对比表中的记录可以获取到用户的稳定兴趣。在对用户兴趣有了一定了解和对时态数据等知识深入之后,结合与之相关的一些知识,设计出一个面向用户兴趣的基于时态数据的CSCL系统,该CSCL系统由元事件设置、用户信息录入、数据压缩、数据查询,图形显示、用户管理等功能模块组成,用来实现用户兴趣的分段存储、用户稳定兴趣的获取并降低用户数据存储量。

2 计算机协同学习简介

随着信息技术的不断发展,围绕Internet的技术日见成熟,公众上网人数在成倍增长、上网意识逐渐加强,CSCL(计算机支持协同学习)广为普及。CSCL是在CSCW(Computer Supported Collaborative Work,译为计算机支持的协同工作)和协作学习相融合的基础上发展起来的。它是利用计算机技术建立协作学习的环境,使教师与学生、学生与学生在讨论、协作与交流的基础上进行协作学习的一种学习方式,是传统合作学习的延伸和发展。由于它是建立在CMC(Computer-mediated Communication,译为以计算机为中介的交流)机制上的一种学习方式,拥有众多的优点。近年来一直倍受人们的关注和青睐,使得CSCL的应用不断发展深入,传统数据库已经满足不了它的需求。

3 传统数据库的概况

传统的数据库技术能反映现实世界中的数据,但是它仅仅能体现现实世界中数据的当前状态,只反应了一个对象在某一个时刻的状态(快照),不联系其过去和未来。这就是人们常说得快照数据库(Snapshot Database)。长期以来,在没有使用时态数据库的年代里,用户管理历史性数据都是把多个快照(即在不同时刻保存的数据库的备份)放在一起构成历史。而具有问题如下:

1)取多大的时间间隔保存快照?如果间隔太大,则不足以保证数据的准确详实,如果间隔太小,则数据冗余多,占存贮空间大。

2)传统关系数据库中,一个表的多个快照,不能简单地同时装入内存,不能简单地使用传统的选择、投影、连接运算进行操作和查询。因为同一元组同一属性下的值在不同快照中可能不同,必须作较复杂的、非通用的编程。

3)传统数据库中,对数据库本身历史的维护支持不足,一般只有供恢复回退用的事务日志(Transaction log),缺乏相应的事务查询命令(例如快速地查出谁对某一字段作了超过十次的修改)。

4 时态数据库的理论基础

现代的信息流包含事件的时态信息(Temporal Information),其中有时刻信息(Instant Information),时间区间信息(Interval Information)和相对时间信息(之前、之后、重叠)等等。随着时间的积累,数据库中会保存着大量的信息,这些信息包括过去、将来和现在的,并且是同等重要的。

传统数据库很难体现这些数据的时态性,数据处理的时空效率无疑受到局限。为此人们提出了多种时态数据库TDB(Tempora DataBase)的理论模型,这些模型大都是以传统关系数据模型为基础的。

4.1 时态基本元素

在现实世界中,时间无时不有,客观世界中的所有事务都带有时间的属性,这些随着时间变化的信息称为时态信息,描述现实世界中带有时间属性的信息系统,称为时态信息系统。时态信息需要基本的时间元素来表示,可以是基于点、基于区间、基于跨度时间元素,也可以是一个时间集合。时态数据库所定义的描述时间数据的最小时间单位称为时间粒度,其大小受到时间量子的约束,而时间量子是由计算机系统所支持的最小的时间单位决定。在时态数据库系统中可以采用单一粒度和多粒度两种形式,必要时两种时间粒度可以互相转换。

Allen在其论文《Maintaining Knowledge about Temporal Intervals》中描述了13种时态区间before(<),equal(=),meets(m),overlap(o),during(d),starts(s),finishes(f)及其反运算(>,mi,oi,di,si,fi),见图1,其中A、B表示时态区间。如果将时间点视为延续时间为0的时间区间,可以更简单地表示基于时态区间与时间点之间的时态关系、基于时间点之间的时态关系。

4.2 时态数据模型

时态数据库在处理时间问题时,最重要的两种时间是事务时间和有效时间。其中有效时间(Valid Time)是指一个对象在现实世界中发生并保持的时间,是可以反映过去、现在和将来的时间。事务时间(Transaction Time)是指一个数据库对象进行操作的时间,它记录着对数据库进行修改或更新的各种历史。

传统的关系型数据库是两维的,一为属性维,二为元组维,如合同的关系模式为:(合同号,合同名称,签约单位,签约金额,签约日期)(见图1),而时态数据库则是在传统的关系数据库的基础上加入了时间维的概念。按Spipada和Snodgrass的意见,时态数据库按功能可分为三类∶

1)事务数据库。数据库本身被查删改的时间称为事务时间(Transaction Time),事务数据库支持事务时间,他按事务时间编址,保存了所有状态演变中过去的状态。事务的关系是一种三维结构,由元组,属性和事务时间三维构成。

2)历史数据库。被管理对象的生命周期称为有效时间(Valid Time),历史数据库和事务数据库类似,只是用有效时间代替了事务时间,代之以静态状态序列,而是用每个关系记录一个历史的状态。历史的关系也是一个三维结构,由元组,属性和有效时间构成。

3)时态数据库,既能管理对象历史,又能管理数据库本身的历史,又叫双时态数据库。他具有前两者的优点,支持事务时间和有效时间。时态关系是一个四维结构,由元组,属性,事务时间和有效时间构成。时态数据库又涉及如下三种时态数据类型:

瞬时(Instant):是时间轴上的固定点。例如:本人入学时间是1999年9月15日。这种类型是时态领域中最基本的类型,其他类型可以通过瞬时来实现或者在某种程度上通过瞬时来模拟。除了瞬时类型之外,大多数的数据库管理系统并没有提供其他类型的时态数据类型。

时区(Interval):是时间轴上一段时间的长度,是时间轴上不固定的但连续的部分,即两个瞬时之间的距离。时区的概念是相对的,且具有方向性,正区间表示未来,负区间表示过去。

期间(Period):是时间轴上一段固定的时间区间,例如1986年7月至2008年7月就是一个期间的例子。广泛应用的DBMS和SQL92标准中都不支持这种数据类型。但是我们可以通过它们支持的瞬时数据类型来模拟期间类型。方法是用一对瞬时数据类型(t1,t2)来表示,前者t1表明期间的开始,后者t2表明期间的结束。

5 时态数据在CSCL项目中的实现研究

CSCL(计算机支持协同学习)系统结合时态数据库则能满足个性化信息服务的要求。个性化信息服务已成为信息服务的主流,在个性化信息服务领域,如在定制网页、信息过滤、信息预取、个性化检索等方面,研究人员都会考虑用户兴趣,若能有效地获取用户兴趣信息,则可以更好为用户提供信息服务。时态数据在CSCL项目中是研究和实现教师和学生兴趣信息的存储,主要运用数据压缩和分段存储的方法,获取到用户的稳定兴趣并降低存储与日俱增的用户信息。在分段存储的具体实现上,时间段的划分成为了关键,在本论文中将时间段划分为现代、近代、古代三个时间段,通过数据压缩算法将用户兴趣信息分别存储到不同的时间段的表中,通过对比表中的记录可以获取到用户的稳定兴趣。

本文讲述的基于时态数据的CSCL系统对于用户的兴趣是通过热门标签或者是热点的方式来获取的。标签具有动态性,表现为“生命周期”和“生命活力”。“生命周期”是指标签进入系统到退出系统之间的过程。“生命活力”的大小与标签所承载信息的质量和价值相关。

例如在教师所发表的文章资源中,用户可以通过对个人所偏爱的资源进行点击阅读、保存等动作,而这些行为将被记录在时态数据库中,按照时间段的划分,系统可以对新的数据源“标签”的“生命周期”和“生命活力”(时间因素)加以分析和利用,通过对网页上用户的保存或者点击行为进行挖掘,计算标签的“热度”,从而更客观地反映出用户的兴趣所在。除了能准确定位个人兴趣,相同的标签还能够聚合整个信息空间中的所有相似内容,实现资源的共享和归类,基于标签的浏览更能使用户获得意外的发现。用户在资源共享的过程中找到与自身拥有相同兴趣的人群,得到关于标签使用的反馈,从而影响他们未来的行为,这是具有明显的社会化性质,能更好的实现计算机支持协同学习,促进学习者之间的互动。如图2(CSCL系统的热门标签页面)所示。

而在对用户兴趣的分段存储可以由用户制定个性化信息服务来实现,首先应能够满足用户的个体信息需求,即根据用户提出的明确要求提供信息服务,或通过对用户个性、使用习惯的分析而主动地向用户提供信息服务

利用CSCL系统对用户的历史记录数据进行分析,可以根据用户的访问兴趣、访问频度、访问时间等改进服务;对CSCL系统使用记录中的序列模式进行分析,并利用分析结果协调用户与数据库之间的信息交互,开展个性化服务工作;通过对具有相似浏览行为的用户进行分组,分析其共同特征,从而准确地把握信息用户的个性和需求,及时调整服务的角度和内容,有效向用户提供更适合、更有针对性的个性化服务。

建立定制化个性化服务在此项模块内设制功能包括:

1)定制用户想要的资源。

2)书签功能,该功能类似于浏览器提供的bookmark,允许用户挑选若干个资源放入书签。

3)最新信息通告。在CSCL系统的首页中显示每天的最新资料或者消息。

4)更多的信息资源主页链接。例如在显示的首页放入用户可能使用到的资源的网站地址。

5)定制用户页面的个性化(不仅能让用户按自己的喜好来更换页面颜色外,最好有能依照自己所想学习的专业内容的要求或个人兴趣)。

6 结束语

本文讲述的是CSCL系统中的时间对比表中的记录可以获取到用户的稳定兴趣因素。针对目前的CSCL系统的发展需要,结合时态信息处理技术和数据库技术,提出一种新的结合方法。本文提出的方法不局限于CSCL系统,可以拓展到其他应用领域。

参考文献

[1]黄楠,刘爱琴.时态数据库技术[J].微机发展,2002(1).

[2]郭家义.个性化信息环境研究[J].中国图书馆学报,2004,30(3)

[3]汤庸.时态信息处理技术研究综述[J].中山大学学报:自然科学版,2003(4)

时态数据库 篇6

GIS源于加拿大地理信息系统,已经在全球范围内获得了广泛的应用[1,2]。在天气预报、火灾预警、环境监测、灾害救援等实际运用过程中[3],地质条件的变化俨然能够起到决定性的作用。而要想对未来发展趋势作出准确的预测,那么就必须严格依据相关历史数据以及目前的实际地质条件进行判断。

空间数据管理系统主要研究空间数据模型,简单来说就是空间数据的存储、表示、查询、操作及数据分析等。就目前的实际情况来看,最为常见的做法是在现有数据模型的基础上进行扩展,比如将时间属性引入到对象模型中,又比如在关系模型当中加入时间等,也就是说在空间系统中加入时间维度,以此为基础来形成时空结合的数据模型。基于这样的时空模型,无论是数据表示还是数据分析等相关环节,势必都将产生一系列问题。在传统GIS基础上,引入时间及时间管理机制,就形成了时态GIS。20世纪90年代以来,随着GIS应用的逐步深入,在环境监测以及地下工程等应用领域,时态GIS无疑成为了重点研究内容之一,较之于传统的GIS,在对空间数据的时间管理上,时态GIS技术效果俨然更佳。

输电线路系统中的数据动态更新和管理一直是输电线路管理工作的重点和难点。在不断的实践总结中,人们逐渐开始尝试利用各种信息技术(如遥感、数据库、GIS等)来对数据进行动态的更新与管理,这明显在很大程度上解决了传统模式下输电线路动态更新中所存在的诸多问题。本文提出了用时态GIS的理论,对输电线路中的空间数据建模,依据季节的变化、灾害的影响以及人工的干预等造成的输电线路GIS信息的变化,实现对空间数据的管理、更新,并基于时态GIS理论来实现对输电线路空间数据时空变化的实时跟踪,从而实现对不同时期输电线路的趋势分析及历史分析,最终达到输电线路动态更新管理的目的。

1 GIS数据管理

采集、存储、管理、分析、显示与应用地理信息系统的计算机系统是分析和处理海量地理数据的通用技术。

GIS系统由数据的获取和预处理,数据处理、分析、决策及应用,信息的输出和发布三个部分构成,如图1所示。GIS数据管理系统用于实现对地理信息数据的静态存储和管理。其中,基本地图信息是GIS的重要组成部分,基本地形图内容如下:

(1)测图单位、测图时间、秘级;

(2)坐标系统、高程系统、子午线收敛角、磁偏角;

(3)比例尺、图号及与相邻图关系;

(4)坐标格网、经纬网;

(5)地貌:等高线、山头、山脊、山谷、盆地、地质;

(6)地物:控制点、道路等。

传统的数据库技术在时态GIS中已经难以支持对时态信息的存储与查询,因此有必要建立起真正符合时空数据特性的新一代数据库技术。

2输电线路的时态GIS系统

相比于传统GIS技术,时态GIS除了具备传统GIS的所有功能外,还具有其他显著的功能。将时态GIS应用到输电线路空间数据更新管理系统中,能实现对不同时期输电线路的历史分析和趋势分析。

本文依据时态GIS系统的特点和优点,对输电线路中的空间数据建模,设计出了以时态GIS为基础的输电线路空间数据更新管理系统。此系统具备多项功能,如档案功能、分析功能、更新功能、显示功能及其他功能。

2.1档案功能

时态GIS将研究区域随时间演变的情形记录下来,即尽量存储所研究的输电线路和相关区域内的所有目标数据,并存储现实世界与数据库内的变化。如此一来,时态GIS就能够提供特定要素以及给定时间的某个区域状态等信息。

2.2分析功能

通过分析功能,可以对信息系统与数据库进行有效区分。传统GIS忽视相关变化与过程,但时态GIS具备将变化作为参照的分析能力,能够将数据内的倾向性考察出来。所以能够利用认识过程,对未来作出准确预测。

2.3更新功能

对很多已经投入使用或正在开发的GIS而言,更新方式仍然为新旧数据的更替,在系统数据库的容量提升到一定程度以后,这会造成很严重的后果。而时态GIS能够在设计期间利用合理的更新机制,在时空结构内统一组织新数据与旧数据,数据过期后也不会出现覆盖、删除的情况,从而提升了资源的利用率。

2.4显示功能

传统GIS利用图、表回答用户对何处、怎样的询问;而时态GIS还可以回答有关何时的问题,从而将地理过程与状态等变化反映出来。不仅如此,时态GIS可以对新旧数据的逻辑一致性进行检核,同时可以集成不同来源、时空分辨率与精度的数据。时态GIS可以对一些时空临界状态进行预定义,对其进行辨识与预报,用户接到通知后可及时采取相应行动。

3时空数据更新和管理

毫无疑问,时空数据库的建立是时态GIS技术的核心问题之一。所谓时空数据库,其主要包含了两大要素,即时间要素、空间要素。时空数据库是以空间数据库为基础,通过对时间要素的增加而构成的三维(无高度维)或四维数据库。较之于传统的档案数据库,时空数据库在时间要素上得到了明显的增加。由于输电线路周围的各种活动都会对空间以及属性带来直接影响,所以就必须对不同时态数据进行科学的编辑及严格的管理,以此来达到跟踪输电线路更新数据、时空变化的目的,并实现对现有数据与历史数据的趋势分析、对比分析。当找到这样一个合适的输电线路空间数据库时,就可以对输电线路的空间数据进行动态管理,使输电线路空间数据更新管理系统具有时间动态性,实现跟踪变化、预测未来的目的。本文基于时态GIS的输电线路空间数据更新管理系统,集成了对时空数据的描述、分析和显示功能。

3.1时空数据的更新

季节的变化、灾害的影响以及人工干预等都会造成输电线路GIS信息的变化,因此输电线路的数据库需充分考虑这些因素,从而实现时空数据的更新。

当发生季节变化、灾害、人工干预等情形时,会触发数据库更新事件,对空间数据进行更新,并记录日期,数据库更新日志,记录相应的更新操作。

时空数据库的及时更新保证了时态GIS信息的实时性和准确性,为后期的数据分析和数据预测奠定了基础。

3.2时空数据的管理

当对时空数据进行分析和预测时,需要执行数据库的管理操作。输电线路的空间数据具有易变性和时效性,当输电线路因为周围的各种突发情况而受到影响时,传统的数据库更新方法是产生一个新的数据库图层,对全部的输电线路空间数据进行重复保存,因而产生了巨大的数据冗余。因此,利用GIS技术改进现行的时空数据管理方法,将输电线路的时空数据管理方式由静态管理转为动态管理。传统的GIS技术描述数据的瞬时状态不具有处理数据的时间动态性。输电线路的时空数据因为时空特征明显,其动态更新管理本质上就是一种时态GIS。将时态GIS与空间数据库的版本管理技术结合起来,及时对输电线路的时空数据进行时空序列、空间分布规律和动态变化过程的反映,能达到重现历史状态、跟踪变化、预测未来的目的。

4系统实现与分析

输电线路空间数据更新管理的时空数据库的基本功能模块与传统的数据库相比具有动态性和全面性的特点。

依托数据接收平台所采集和整理的各种气象数据,通过GIS技术,开发统计气象信息展示子系统,提供气象数据、天气预报和设备监测数据展示功能。基于GIS系统的气象预测信息展示平台如图2所示。

从整体上来看,这种以时态GIS技术为基础的输电线路空间数据更新管理系统,其所包含的数据主要由时间数据、空间数据以及属性数据等构成,其中特征最为明显的即时空视距。因此,应用时态GIS方法和技术,可以真正解决输电线路数据管理中数据的动态更新管理这一传统难题。

基于时态GIS的输电线路空间数据更新管理系统有以下几大显著特点:

(1)可以从根本上达到高效存储与管理海量输电线路时空数据的目的。

(2)面对不同的时态数据,可以对其进行有效的编辑与管理,并且能够实现时态数据的建立与编辑、时间系统与时间格式的转换、时间抓取与时间匹配等。

(3)所提供的查询与检索功能将更加全面丰富,能够有效进行时间查询及综合查询。

(4)提供强大的时空分析功能。作为时态GIS的核心功能之一,时空分析功能在对输电线路空间数据的动态更新与管理工作中作出了巨大贡献,其不仅能够实现对数据时空变化的实时跟踪,同时也实现了对不同时期输电线路数据的趋势分析及历史分析,使输电线路管理者能了解线路的历史、现在和未来情况,从而为科学决策提供了有力依据。

5应用成效

本文的基于GIS系统的输电线路空间数据管理系统具有有效的分布式空间数据管理和计算能力,同时,其时序空间数据组织处理能力和时空分析预测能力为输电线路的各种灾害监测和预警提供了更加高效的技术手段。

该系统在整合资源、服务电力系统方面成效显著,具体包括:

(1)整合信息资源,搭建了全省输电线路灾害监测和预警数据管理平台;

(2)面向应用,务求实效,为决策提供了科学管理流程和数据依据,提升了服务效能;

(3)实现了对输电线路周围冰灾、火灾、风灾的数据的收集和管理,为降低常见灾害对输电线路的危害奠定了数据分析基础。

总之,基于时态GIS的输电线路空间数据更新管理系统是一个复杂的系统,需要逐步深入研究和完善。

参考文献

[1]张勇.输电线路风灾防御的现状与对策[J].华东电力,2006,34(3):28-31.

[2]熊军,林韩,王庆华,等.基于GIS的区域电网风灾预警模型研究[J].华东电力,2011,39(8):1248-1252.

时态数据库 篇7

时间是客观事物最基本的属性之一,时态数据库是数据库系统中的基本研究开发领域。目前,时态数据库技术仍处于研究与发展阶段,学术界和工业界已提出几十种时态数据模型,已经扩展到众多具体应用环境,比如空间时态数据模型Spatio-Temporal Data Model和XML时态扩展的数据模型Temporal Extension of XML Data Model,但现有时态数据模型不够成熟,没有形成完整的国际标准[1],多数研究局限于数据库的时态属性,而忽视其它信息的时态相关特征。例如,在知识库的时态特征和应用中,由于在同一模式中与时态相关的属性随时态变化的痕迹有多条需要保存,与时态无关属性的关系通常为多对一,导致存在大量因时态无关属性重复存储而造成的数据冗余,该现象在许多时态数据库中普遍存在。

鉴于关系数据库仍然是当前主流,时态关系数据模型[2,3,4]的研究体现了时态数据模型与现有模型的整合与归并,研究成果呈现了对数据对象按照时态特征分类的定义,如时间无关属性、时间相关属性和非时态属性,主体属性和主体实例[2,3,5]等,为概念模型的设计提供了参考的途径。

ER模型是构建数据库概念模型的经典方法。随着大量与时间相关的数据库应用需求不断增多,对ER模型进行时态扩展使其能准确地捕捉时间变化信息,已成为研究热点之一[6]。时态实体-关系模型TER model(Temporal Entity-Relationship model)最早由M.R.Klopprogge于1981年提出,目前,时态ER模型研究成果主要有各种改进的时态实体-关系模型TER[1,7,8](Temporal Entity-Relationship model)和嵌套关系的时态实体-关系模型NTER[9,10](Nested Temporal Entity Relationship model)模型,二者均以传统实体-关系方法为基础,在语义和图形表示方面对时态信息进行了扩展和修改[1,9,10]。但其研究忽视了其它信息随时态变化的特征,不区分对象与时态是否相关,对事务时间不能很好表达,且研究成果限于语义和图形的表示方法,而未提及从现实世界建立模型的规则,并且其研究自成体系,不考虑向得到应用较多的数学模型转化的问题。

基于数据库设计的一般步骤,针对时态对象的复杂性,本文提出了一种优化的双时态概念数据模型——基于对象时态稳定性分类特征的双时态ER模型OTSC-BTER(Object’sObject Temporal Stability Classifying Bitemporal Entity-Relationship model),该模型具有ER模型使用图形化方式表现力强、易于与用户沟通的优点;基于TER,讨论数据对象随有效时间和事务时间变化的特征,定义建立该模型的规则,更加客观地模拟现实世界,将对数据对象的时态特征分析工作放在数据库设计的概念结构设计阶段,将时态无关数据冗余的问题尽早解决;定义建立该模型的规则,更加客观地模拟现实世界,且给出向目前得到认同和应用较多的双时态概念模型BCDM (Bitemproal Conceptual Data Model)转化的方法,具有可推广应用的价值。

1 对象的时态稳定性

通常,在用ER方法对数据库的逻辑结构建模时,人们最先考虑的是对象应被抽象为实体集还是属性,并进一步确定用实体集还是联系集表述。当对象涉及时态信息时,“抽象”这一步骤就显得更为复杂,尤其是对于双时态数据库的设计,时间维有两个:事务时间和有效时间,因此,我们需要在建模之初对所有对象的时态特征进行分析。比如:对高校教师人事系统中的教工信息进行抽象,会发现需要描述的对象有:职工编号、身份证号、姓名、性别、出生日期、入校时间、职称、职务、所在院系、教授课程、工资档位、科研要求档位等等。如果用传统关系数据库设计方法对其建模的话,只能得到快照数据库和回滚数据库,而教工的职称、职务、所在院系、教授课程、工资档位、科研要求档位等信息是随时间推移会发生变化的,要将这些变化保留,需基于能表述时态信息的ER模型对这种需要支持事务时间和有效时间的双时态数据库建模。因此,有必要讨论并合理描述对象的时态稳定性。

1.1 双时态标签

对双时态数据库进行逻辑结构建模时,需要特别留意的是时间维的表示。假设把时态数据库的传统属性向量组用C表示,事务时间属性向量用T表示,有效时间向量用V表示,则时态数据库可以用C×T×V的子集表示,显然,作为传统属性的C将出现多次,这是没有必要的[10]。用双时态标签的形式可以简化对传统属性向量的存储,在此,事务时间TT={0,1,…,UC}和有效时间VT={0,1,…,Now}是双时态标签的时间元素。其中,UC(until changed),指数据库的数据在没有更新之前记录是当前的;Now表示当前时间,指数据库中的有效时间在当前依然有效[11]。由于事务时间一般是离散的时间点,因此,在处理时间元素的问题中,Allen的时间区间模型是经典的连续区间模型,不适于双时态的表述,在计算机系统中应用起来也比较麻烦,本文采用文献[11,12,13]的方法,用间断的时间区间表示离散时间点的方法处理时间元素的问题,双时态结构用双时态点、双时态组合集和双时态标签表达。

定义1 双时态点Pbt表示一个时间二元组(tt,tv),其中,tt∈TT,TT是包含UC的事务时间点的集合;tv∈VT,VT表示含有Now的有效时间点的集合。

定义2 双时态组合集Abt表示双时态点的集合,用{(tti,tv)| tti∈TT , tv∈VT }表达,其中,tti是某一个事务时间点,tv是若干个有效时间点,双时态组合集Abt表示在相同事务时间点的有效时间区间,还可以用(tti,[tvs,tve])表达,其中,tti∈TT∧tvs∈VT∧tve∈VT∧tvs≤tve,即[tvs,tve]用时间区间的方式表达了离散的有效时间点。

定义3 双时态标签Lbt表示双时态组合集的集合,用{(tt,[tvs,tve])| tt∈TT∧tvs∈VT∧tve∈VT∧tvs≤tve}表达,其中,tt是若干事务时间点,每一个[tvs,tve]均有某一个确定的tt与之对应,双时态标签表达了非时态属性组在UC和Now两个时态变量之前的时间元素特征。

文献[14]提出了有效时间的不确定性,即有效时间区间可能存在无效或不确定的时间点的问题,并定义了分离的时态元素(DTE)表达不确定的有效时间,比如:有效时间范围(小时)1到3 包括的可能的有效时间集合为{{1}, {2}, {3}, {1,2}, {1,3}, {2,3},{1,2,3}},但集合元素中并非所有时间点均有效(或称确定的),若2是无效时间点,则该时间集合将缩减为{{1}, {3}, {1,3}},因此有效时间区间[1,3]不是整体连续有效的。基于该理论,对于同一个事务时间tt ,其对应的有效时间tv若整体不连续(比如从1到now),可将其分解为若干个连续的子区间表达,如上例有效时间区间[1,3]将会视应用环境被分解为{[1],[3]}或者{[1,2],(2,3] }, 对于双时态标签中tt相同的那些双时态组合集即解决了这个问题。

1.2 时态值稳定对象与时态值变对象

讨论了时间元素的表达方法后,可使用双时态标签的形式对建模对象有关时态变化特征进行描述。现实世界的对象大体上可分为两类:一类是仅与事务时间相关的,其在数据库中值的改变主要由录入错误等主观因素造成,人们更关注的是这类对象被纠正后的值(事务的提交进行更新)。因此,其曾经的取值在历史数据库中不会被过分关注,在前文中提到的传统属性大多属于这一类;另一类则不仅与事务时间相关,而且受有效时间的影响,这类对象在有效时间区间的取值都有其特殊含义,数据库需要保存其曾经所有的取值。就像前文提到的例子,职工的姓名、性别、出生日期只要没有录入错误,其值在其存在的时间范围内一般不发生改变,即值相对时间变化较为稳定,而职称、职务等对象的值则会因职工的个人情况随时间推移而变化,且这种变化的过程不仅有有效时间的约束、在事务时间到达时修改,而且需要保存。以下定义概况了二者的时态稳定性特征:

定义4 设D为对象Obj的值域(若Obj为复杂对象其所有描述对象分别为O1,O2,…,On,对应值域为D1,D2,…,Dn,则D为D1,D2,…,Dn的笛卡尔积),若Obj的任一实例在D上所有可能的取值d,存在如下条件,称其为时态值变对象(Temporal Variable Object),记作TVO:

对∀dm ,dn∈D,若时态函数依赖TD={f|f: Abt→d },总∃Abt (i)=(tit,[tivs,tive]),Abt(j)=(tjt,[tjvs,tjve])(i,j=1,2,…,k,i≠j,k≥2),且[tivs,tive]∩[tjvs,tjve]=Φ,st: dm =f(Abt(i)), dn = f(Abt(j)),且dm≠dn成立。

需要说明的是,这里关于双时态组合集的条件主要指的是有效时间在不同区间的Abt (i)和Abt (j),由于一般情况下对录入错误数据不过分关注,因此,事务的更新主要体现在时态值变对象随有效时间变化而发生的更新上。

定义5 设D为对象Obj的值域(若Obj为复杂对象其所有描述对象分别为O1,O2,…,On,对应值域为D1,D2,…,Dn,则D为D1,D2,…,Dn的笛卡尔积),若Obj的任一实例在D上所有可能的取值d,存在如下条件,称其为时态值稳定对象(Temporal Constant Object),记作TCO:

对∀Abt (i)=(tit,[tivs,tive]), Abt (j)=(tjt,[tjvs,tjve]),(i,j=1,2,…,k,i≠j,k≥2),且[tivs,tive]∩[tjvs,tjve]=Φ,若时态函数依赖TD={f|f: Abt→d },st: dm =f(Abt(i)), dn =f(Abt(j)),则dm≡dn。

定义5对时态值稳定对象取值的时效性进行了规定:任何系统认定的双时态组合集,其事务时间和有效时间对该对象任一实例的所有(无误情况下的)可能取值均没有影响,其有效时间的范围可扩大为自对象存在起至Now。比如:对象“职工”,由以下属性描述(职工号,姓名,性别,出生年月,籍贯),若对于任何一个职工(即“职工”对象的所有实例),其职工号及其它属性在其在职期间恒不变(双时态标签Lbt可表示为(tt,[tvs,now]),tvs为实例的开始存在时间),或离职、退休后信息转至历史表中保存但其职工号不被其它职工占用(双时态标签Lbt可表示为(tt,[tvs, tve]),tvs为实例的开始存在时间,tve为实例离职或退休时间),可见,对象“职工”及其描述属性的有效时间作用是很弱的,而事务时间又可以通过系统记录保存,双时态标签在此的作用是不大的,其存在导致存储空间的浪费。

2 基于对象时态稳定性分类特征的双时态ER模型(OTSC-BTER模型)

针对时态稳定性的分析及相关定义的引入,为优化现有时态ER模型提供了依据。下面分别从数据表示、基本图元以及建立规则三方面描述基于对象时态稳定性分类特征的双时态ER(OTSC-BTER)模型。

2.1 双时态实体型的表示

传统ER模型的建立,首先要确定对象是作为属性或是实体,可根据文献[15,16]等大量资料按照成熟的分析方法抽象出系统的实体型及其属性,以及各实体型之间的联系(包括映射基数[7,15])。而对双时态ER模型,单一的实体型不足以表示对象的时态稳定性,因此,可对抽象后的实体做进一步定义:

定义6 若实体型E的属性集{A1,A2,…,An}中,任一属性Ai(i=1,2,…,n)都是时态值稳定对象,则称E为时态值稳定实体型,否则,称为时态值变实体型。

定义7 对时态值变实体型E的属性集A={A1,A2,…, An},若∃B1,B2,…,Bp∈A,1≤p≤n,且B1,B2,…,Bp∈TCO,则称E为弱时态值变实体型,反之,对∀Ai∈A,若Ai∈TVO,则称E为强时态值变实体型。

为表述方便,下文中将用TCO实体型、TVO实体型、弱TVO实体型和强TVO实体型分别表示以上四个概念。

有了时态值变实体型的强弱之分,则其表示需要进一步分析。对弱TVO实体型E的属性集{PK,A1,A2,…,Ap,T1, T2,…,Tq},若A1,A2,…,Ap均是TCO属性,而T1,T2,…,Tq均是TVO属性,PK为E的码(本文中PK在所有实体型、关系中均表示不考虑时态影响或称双时态标签取值相同的情况下的码,下文同),则E的表示存在两种情况:若PK中的主属性均为TCO,为降低数据冗余度,应将E划分为E1{PK,A1,A2,…,Ap }和ET1{ PK,T11,T12,…,T1i,Lbt1}、ET2{ PK,T21,T22,…,T2j,Lbt2}、…、ETn{ PK,Tn1,Tn2,…,Tnk,Lbtn}表示,其中,i+j+…+k=q,ET1 、ET2、…、ETn 各自的TVO属性分别受不同的双时态标签Lbt影响,E1和ET1 、ET2、…、ETn间用时态联系关联(具体见下文规则);反之,若PK中至少有一个主属性属于TVO,由于其它属性的取值依赖于码,即所有属性都属于TVO,则E是属于强TVO实体型的,不能被划分。

这里主要强调了TVO实体型中的TCO属性应从实体型中剥离,以降低数据冗余度。但在码中存在TVO属性的情况下,不能剥离TVO属性,比如下面两个例子。

表1所示的教工实体型中,职工号是码,(姓名,性别)均∈TCO,(职称,科研分值)均∈TVO,按照上述规则应将其划分为教工基本信息(职工号,姓名,性别)和教工职称科研信息(职工号,职称,科研分值,Lbt)以降低TCO属性的数据冗余。

表2所示的同一课程号为980401的课程实为在不同有效时间下的不同课程(或同一课程相关信息有变),显然,课程号是TVO属性,一般情况(课程名,总学时,实验学时,学分)的取值依赖于课程号,但由于课程号作为码与有效时间相关造成课程名等属性的时态稳定性降低,因此,该课程实体型不能剥离这些属性,且码应设定为(课程号,Lbt)。

2.2 OTSC-BTER模型基本图元

和传统ER模型一致,OTSC-BTER模型同样用图来表示,其基本图元有以下几种,如图1所示,图2为弱TVO实体型的表示方法:

需要说明的是,弱TVO实体型在进行划分时由于TVO属性依赖的双时态标签不同,可能会分离出不止一个TVO部分,比如职工的工资档位和科研要求分值档位的有效时间各不相同,则应将二者分离为不同的TVO部分,并分别与分离的TCO部分进行时态联系。

2.3 OTSC-BTER模型建立规则

由于该模型的建立基于传统ER方法,本文对基本流程不再赘述,在此主要对上节中有关时态图元的表示方法进行说明。

规则1 将需求分析得到的用户需求按照建立基于传统ER模型的规则抽象系统的实体、属性,分析其时态稳定性,分类为TCO实体型、弱TVO实体型和强TVO实体型;

规则2 划分弱TVO实体型(码为(PK,Lbt)),用分离的TCO部分和分离的TVO部分表示,二者用映射基数1:n的T联系(虚线框时态联系)连接,分离的TCO部分的主码PKC为该弱TVO实体型的PK码,分离的TVO部分的主码PKV与该弱TVO实体型的码一致,即(PK,Lbt),PK作为其外码参照分离的TCO部分的码PKC的取值;

规则3 对于连接的均为TCO实体型(包括弱TVO实体型分离的TCO部分)的联系用R联系连接,映射基数的表示方法与传统ER模型一致,连接的任一方为TVO实体型(包括弱TVO实体型分离的TVO部分)则必须用实线框的T联系连接;

规则4 对于弱TVO实体型与其它实体型的关系根据具体应用认定,用R联系连接其分离的TCO部分与TCO实体型,用实线框T联系连接其分离的TVO部分与其它实体型,原则上弱TVO实体型不直接参与其它实体型的联系;

OTSC-BTER模型首先应用于“电子信息工程学院教学管理系统”的概念建模,教师人事管理子系统的核心部分如图3所示(由于版面局限,故省略若干属性)。

3 OTSC-BTER模型与BCDM的相互转化

BCDM是TSQL2所提出的三种模型中最基本的一种,是面向显示的和面向存储的模型相互转化的中介[10],在概念上尽量与关系数据库保持兼容[17]。因此,BCDM无论从语义表达还是表示方法上都可作为关系数据库的逻辑结构设计形式(关系)。OTSC-BTER模型具备ER模型图形化、易于与用户沟通的特点,且着眼于向应用较广的TSQL2的模型基础BCDM过渡,使用的双时态标签与BCDM一致,二者便于相互转化。

3.1 OTSC-BTER模型在向BCDM转化

基于时态信息的关系数据库设计可将BCDM的作用偏向逻辑表达和存储,而概念显示的作用可由OTSC-BTER模型以图形化形式承担,设计流程由概念结构设计(OTSC-BTER模型表达)、逻辑结构设计(OTSC-BTER模型转化为BCDM)、物理结构设计(充分发挥BCDM面向存储的特点)三个基本步骤构成。其中,OTSC-BTER模型在向BCDM转化时可引用以下规则:

规则1 一个实体型转化为一个BCDM关系;

(1)一个TCO实体型转化为一个双时态标签Lbt为{(tt,[tvs,now])}的关系(tvs恒定,下同),即由若干个不同事务时间和相同有效时间区间的双时态组合集构成,其主码与TCO实体型一致;

(2)一个强TVO实体型转化为一个关系,其主码为强TVO实体型的主码PKV加上其双时态标签,即(PKV,Lbt);

(3)一个弱TVO实体型不直接转化为关系,其分离的TCO部分转化为一个双时态标签Lbt为{(tt,[tvs,now])}的关系,其主码PKC为该弱TVO实体型的PK码,分离的TVO部分转化为一个关系,其主码PKV与该弱TVO实体型的码一致,即(PK,Lbt),PK作为其外码参照分离的TCO部分的码PKC的取值;

规则2 映射基数为1:1或1:n的R联系暗含在所连接的实体型中转化,映射基数为m:n的R联系需要单独转化,具体的转化方法与E-R图向传统关系模型逻辑结构转化方法一致,本文不再赘述,文献[15,16]中均有有详细说明;

规则3 虚线框的T联系只在连接弱TVO实体型分离的TCO部分和TVO部分时出现,只表示二者之间同属于一个弱TVO实体型的时态相关性,不需要转化;

规则4 实线框的T联系转化方法与R联系基本相同,但需要注意的是主码中Lbt的处理;

(1) T联系各端中仅一端的实体型是TVO,则该实体型的码(PK,Lbt)无论是T联系被合并在其他关系中还是单独转化,均作为一个整体存在,设定外码时也应被视为一个整体;

(2) T联系各端中有多端实体型是TVO时,将牵涉到多个不同的Lbt对转化后的关系的影响,原则上取各端Lbt的交集;

对规则4(2)需要进行如下说明:

(1) 在对TVO实体型研究时,由于将其按照TCO部分与TVO部分分离,所以实线框T联系一般由TCO实体型与TVO实体型或与弱TCO实体型的TVO部分进行联系,即Lbt只存在于实线框T联系的一端,而多端存在Lbt的情况是极少的,在现实世界中存在的情况也极少;

(2) 若确实存在多端Lbt需要合并的情况,则需要取各Lbt中的所有双时态组合集Abt依次考查,若[tit,ti+1t,…,tjt]为各Lbt中所有Abt中的(j-1+1)个事务时间的交集,则依次取各事务时间在各Lbt中对应的Abt的有效时间取交集合并,组成取交集后的各Abt形成合并的Lbt。

(3) T联系可以有自己的Lbt,此时的Lbt表达联系中的信息具有自身的时态特征,如教工职称与工资1:m的T联系表示任一教工在取得某一职称的时间范围内其工资档位会晋升或降档,档位的时效性变化与实际工作绩效相关,由独立的双时态标签表达。则属于此种情况的T联系,转化时只使用自己的Lbt,不再合并相连实体型的Lbt。

(4) 一旦新的事务时间到达,则Lbt的合并需要全部再进行一次,这一点是比较繁琐的。

(5) 通过对Lbt的研究,对(2)中的方法是否可以进行改进?由于对模型中的每个元组的Lbt,其最终较为确定的Abt均为最后一条,(UC,[ tvs,tve])或者(UC,[ tvs,now]),能否将对Lbt的合并范围缩小到最后一个Abt还需要对以下两个问题进一步研究方可确定:BCDM表达实体联系时Lbt的冗余数据是否必要存在?BCDM的存储模型以及TSQL2在实现过程中表达实体联系的Lbt可否在需要时随时生成[18,19]?这两点也是今后研究的一个问题。

3.2 BCDM向OTSC-BTER模型转化

鉴于BCDM在对象时态稳定性特征分类方面的不足,将其向OTSC-BTER模型转化时相对简单,应结合双时态标签与客观世界抽象出的实体、属性、联系等对象进行分析。对任一个BCDM关系在转化时应遵循以下基本规则:

(1) 首先找出所有描述实体型的BCDM关系。一个表达实体型的BCDM关系RE,设r为RE的实例,对∀r∈RE,若r中任一元组t的双时态标签Lbt为{(tt,[tvs,now])},其中tvs恒不变,即有效时间区间恒定,则该关系RE描述的是一个TCO实体型;否则,RE描述的是一个TVO实体型,若Lbt影响的是所有属性,则该实体型用强TVO实体型表达,若Lbt影响的只是部分属性,则其描述的是弱TVO实体型,应分析哪些属性是TVO对象,用T属性表达,分离该弱TVO实体型,并用虚线框T联系将的TCO部分与TVO部分连接。以上转化后的实体型的码均为关系RE的码(PK,Lbt)中的PK;

(2) 对于描述联系的BCDM关系RR,需确定该联系描述的是R联系还是实线框T联系。R联系不涉及时变对象,设r为RE的实例,对∀r∈RR,若r中任一元组t的双时态标签Lbt为{(tt,[tvs,now])},其中tvs恒不变,即有效时间区间恒定,则该关系RR描述的是一个R联系,分析所连接的TCO实体型,将其用R联系连接;否则,RR描述的是一个T联系,分析所连接的强TVO实体型或弱TCO实体型的TVO部分,用实线框T联系连接。由于RR的双时态标签源自所连接的TVO实体型Lbt,是其运算结果,所以在向OTSC-BTER模型转化的时候,RR的双时态标签不被保留,所有的时态描述信息由TVO实体型Lbt表达。

3.3 OTSC-BTER模型完备性及数据冗余性分析

OTSC-BTER模型着眼于在概念结构设计阶段对数据对象的时态特征进行分析和描述,基本图元的定义基于对象时态稳定性分类特征,模型的正确性、完备性以及低数据冗余性可由其与BCDM间的转化中体现:

设BCDM可描述的对象空间为DS, OTSC-BTER模型可描述的为时态值稳定对象空间DSC与时态值变对象空间DSV,则有DSC∪DSV=DS;

对同一待描述的系统,设直接用BCDM抽象出的实体型集合为A,OTSC-BTER模型抽象出的TCO实体型集合为AC、强TVO实体型集合为ASV、弱TVO实体型集合为AWV,以上四个集合的基数分别为d,dc,dsv,dwv,则有dc+dsv+dwv=d且 AC∪ASV∪AWV=A;但OTSC-BTER模型对弱TVO实体型有特殊的处理,若系统内的AWV(E1,E2,…,En) ,n个弱TVO实体型分离后的TVO部分与TCO部分的个数比分别为k1,k2,…,kn,则转化后的BCDM描述的实体型集合基数将比直接用BCDM抽象出的实体型集合A多出(k1+k2+…+kn)-n,但弱TVO实体型部分的数据冗余度降为n/(k1+k2+…+kn);

由于T联系只连接与时态相关的部分,所以直接用BCDM抽象和用OTSC-BTER模型抽象区别只在于前者直接用弱TVO实体型参与联系,而后者是弱TVO实体型分离的TVO部分参与联系;前者TCO实体型与弱TVO实体型中的TCO部分的时态联系,在后者中用R联系表示。所以二者的联系集相同,对T联系双时态标签的运算方法一致。

4 结 语

本文在研究了大量时态数据信息的基础上提出了时态数据库的建模要首先分析客观对象时态特征的观点,讨论了数据对象的时态稳定性。采用间断的时间区间表示离散时间点的方法处理时间元素的问题,在提出的BTER模型中用双时态点、双时态组合集和双时态标签三个基本时态元素表达双时态结构,并定义时态值稳定对象与时态值变对象来表达事物具有的不同的时态特征。

建立的OTSC-BTER模型参考了传统ER方法和据掌握资料所提出的TER模型的各方面优势,从分析对象值稳定性和易于向成熟技术转化两个方面进行改进和优化,给出了模型的基本图元、建立规则、与BCDM相互转化的方法、改进转化方法的研究方向以及完备性及数据冗余性分析。使用OTSC-BTER模型建模的“电子信息工程学院教学管理系统”结合主流的时态信息系统构建工具,采用TempDB 2.0+MySQL 5.0+JDK 1.5+ NetBeans 6.0实现,注重双时态的表达,使得该模型比传统概念建模方法更适合于基于时态信息表示的环境。

文献[17]在时态数据库后续的研究方向这一节中提到:集中精力研究现有模型的整合与归并,为时态数据库和时态查询语言的标准化提供支持;传统数据库的应用已经非常普及,因此时态数据库的研究要以其为基础,而不应与其脱离,在其基础上逐步加入时态信息处理机制。理论的讨论与研究目的在于推广和应用,本文研究的OTSC-BTER模型基于对现实对象的时态稳定性分析,使用的双时态标签与BCDM一致,所以该模型具有易于转化和推广的优势,这与其他时态概念模型自成一体的研究方式是大为不同的,顺应了目前时态数据库发展的趋势。

动词的时态精讲 篇8

一、一般现在时

一般现在时用动词原形来表示。当主语为第三人称单数时, 动词要变为第三人称单数形式。

1. 表示经常性或习惯性的动作、存在的状态或现阶段的习惯行为。

常用的时间状语:every day, usually, always, often, sometimes, on Sunday, once a week等。

如:I go to school at 7 every morning.每天早上我七点去上学。

2.表示目前的情况, 特点或状态。

如:I am a teacher.我是教师。

She likes watching TV.她喜欢看电视。

3.表示客观存在及普遍真理或者表示格言或警句等。

如:The sun rises in the east.太阳从东方升起。

Where there is a will, there is a way.有志者事竟成。

4.在条件状语从句和时间状语从句中, 用一般现在时表将来。

如:I will tell him the news as soon as I see him.我一看见他就把消息告诉他。

He will go swimming if he is free tomorrow.如果明天有空他要去游泳。

5.begin, come, go, leave, start, stop, arrive, return, open, close等动词常用一般现在时表示按计划、规定将要发生的动作。

如:The train starts at 7∶00 pm.火车将于晚上7点出发。

二、一般过去时

一般过去时表示过去某时间发生的动作或存在的状态或过去反复发生的动作。常与two years ago, just now, yesterday, last week等时间状语连用。

在没有明确的过去时间状语的情况下, 要通过上下文或语意来判断。

如:I bought a watch for my son.我买了一个手表给我的儿子。

三、现在进行时

现在进行时表示现阶段或说话时正在进行的动作及行为, 常和now, at this time, these days等时间状语连用。句子基本结构为:be动词am/is/are+现在分词。

如:Look, they are running.看, 他们正在跑步。

Bill is working for our school team.比你正为我们的校队效力。

注意:

(1) “系动词+介词或副词”可表示正在进行的动作。

如:He is at work.他在上班。

(2) 现在进行时有时可代替一般将来时, 表示按计划即将发生的动作。但此时一般要与表将来的时间状语连用, 且只有少数动词有此用法。如:come, go, start, arrive, leave, return, set out/off等。

如:My aunt is coming tomorrow.我的阿姨明天要来。

(3) 不用进行时态的情况

表示感觉、愿望和状态的某些动词, 如see, hear, smell, taste, hope, like等。

表示拥有的动词, 如have, own, belong等。

表示理解、记忆或决定的动词, 如understand, know, remember, forget, decide等。

四、过去进行时

表示过去某段时间或某一时刻正在发生或进行的行为或动作, 常与at that time, this time yesterday, at 8 o’clock yesterday evening, when he came in连用。

句子基本结构为:was/were+doing

I was doing my homework at that time.

那个时候我正在做作业。

My sister was watching TV at 8 o'clock yesterday evening.

昨天晚上8点我妹妹正在看电视。

They were playing when he came in.

当他时来的时候, 他们正在玩耍。

五、现在完成时

1. 句子基本结构:主语+have/has+done (动词过去分词)

2. 现在完成时表示过去发生或已经完成的动作对现在造成的影响或结果。通常与already, yet, just, from then on, so far, in the past (last) few years连用。句中的谓语动词常用短暂性动词。

I have alneady finished the work.

我已经完成了这个工作。

3. 现在完成时表示从过去已经开始, 持续到现在的动作或状态, 并有可能持续下去, 常与“since+时间点”或“for+时间段”连用。句中的谓语动词常用延续性动词。

I have studied English for three years.

我学习英语已有三年时间了。

I have studied English since three years ago.

记住一个句型:It is/has been+时间段+since...

It is (has been) a long time since me met last time.

自上次见面已经很长时间了。

4. 表示从过去到现在之间曾经经历过的事, 常与never, ever, before, once, three times等连用。句中的谓语动词常用短暂性动词。

5. have/has been to...表示“曾经去过某地”;have/has gone to...表示“去了某地, 还没回来”;have/has been in/at...表示在某地呆了多久, 且须与表一段时间的状语连用。

注:若have/has been后接的是地点副词here, there时, 则不用介词to, in或at。

6. 有关短暂性动词

(1) 短暂性动词在现在完成时中不能和表示一段时间的状语连用, 但在否定句中可以和表示一段时间的状语连用。

(2) 短暂性动词不能出现在由how long引导的疑问句中, 但可以和already, never, just, ever, before等连用。

7. 短暂性动词的用法:

(1) 短暂性动词与短暂性时间 (时间点) 连用。如:

He joined the Party three years ago.他入党三年了。 (他三年前入党的)

(2) 用“It is/has been+时间段+since...”句型。如:

It is/has been three years since I bought the book.这本书我买了三年了。 (从买这本书起到现在已三年了)

(3) 短暂性动词转换成延续性动词或形容词、介词等表状态短语可与“for+时间段”或“since+时间点”连用。

六、过去完成时

1.句子基本结构:主语+had+done (动词过去分词) .

2.表示以过去某个时间为标准, 在此以前发生的动作或行为, 或在过去某动作之前完成的行为, 即“过去的过去”, 常与before, by the end of last year (term, month...) 等时间状语连用。

如:She had seen the film before she came here.

她来这儿之前已经看过这部电影了。

3.用在told, said, heard, thought等动词后的宾语从句中。

如:She said she had worked there for five years.她说她在那儿工作已有五年了。

4.用在以when, before等引导的时间状语从句中。

如:When he got outside, the bus had left.当他来时, 公交车已经离开了。

七、一般将来时

1.表示将要发生的动作或存在的状态。常与tomorrow, next day, in a few minutes等时间状语连用。

2.句子基本结构:

(1) will+do.

如:I will go fishing this afternoon.下午我会去钓鱼。

(2) be going to+do.表示即将发生的事或打算、计划或准备要做的事。

(3) come, go, arrive, leave, start, begin, return的一般现在时可以表示将来, 主要用来表示在时间上已确定或安排好的事。

如:The train leaves at six tomorrow morning.火车明天上午六点开。

(4) come, go, move, leave, stay等动词的现在进行时可以表示按计划将要发生的事。如:

I’m leaving tomorrow.明天我要走了。

They are going camping for vacation.他们度假要去野营。

Are you staying here till next week?你会在这儿呆到下周吗?

(5) 在时间状语和条件状语从句中, 用一般现在时表示将要发生的事。如:

If you come, I’ll be happy.如果你来, 我会很高兴。

I’ll give him the message, as soon as he comes back.他一回来我就给你消息。

八、过去将来时

表示从过去某个时间看将要发生的事情或存在的状态。

1.句子基本结构:

(1) would/should+do.

如:she said that she would have a party for her daughter

(2) was/were going to+do

(3) was/were doing

2.用于主句为一般过去时, 宾语从句表将要发生的事或曾打算要做的事。

3.在叙述过去的事或事情发生的经过时, 用来表示在当时看将要发生的事。

链接中考

( ) 1.—Are you going to the bank, Laura?

—No, I________to the bank already. (2011徐州)

A.have been B.have gone

C.am going D.had been

解析:考查时态及句意。由上句句意“……你打算去银行吗?不。”和“already”推测他已经去过了, 用现在完成时。have/has been+地点意为“去过某地 (已回来) ”;have/has gone+地点意为“到某地去了 (现在不在这儿) ”。故选A。

( ) 2.I_________along the road when I saw Peter.So we stopped and had a chat. (2011盐城)

A.walked B.was walking

C.would walk D.had walked

解析:考查时态。过去进行时与when连用表示:过去正在发生某事, 突然插入一个时间点。句意:我在沿马路上走的时候看到了彼得。因此我们停下聊了起来。故选B。

( ) 3.—Are Li Yan and Wang Mei still living in Pingba?

—No, they_______to Shanghai. (2011贵州)

A.had moved B.moved

C.will move D.have moved

解析:考查时态。根据句意“李岩和王玫还住在平坝吗?不, 他们已经搬到上海了”, 强调对现在造成的影响, 应该是现在完成时态。故选D。

( ) 4.—Alan, it’s late.Why not go to bed?

—Jenny hasn’t come back yet.I________for her. (2011广东)

A.waited B.have waited

C.am waiting D.was waiting

解析:考查时态。由句意“艾伦, 很晚了, 为什么还不睡?”“詹妮还没有回来。我______她”由语境分析, 艾伦现在是正在等詹妮回来。应用现在进行时态。故选C。

( ) 5.By the end of last month, I_____all the CDs of Justin Bieber. (2011上海)

A.collect B.collected C.have collected D.had collected

解析:考查过去完成时。此处by意为“到…为止”, 该句意为“到上个月末为止, 我已经将Justin Bieber全部的CD收集起来”, 表示“动作从过去已经开始一直持续到过去某个时间”, 要使用过去完成时, 故选D。

( ) 6.Now my father____his bike to work every day instead of driving. (2011上海)

A.ride B.rode C.rides D.will ride

解析:考查一般现在时。every day意为“每天”, 表示经常性, 习惯性的动作, 故该句子要使用一般现在时, 主语为第三人称单数, 故选C;选项B、D时态错误。

( ) 7.—What is Tom doing now?

—He_______basketball over there. (2011山东)

A.is playing B.will play C.has played D.was playing

法语和英语的时态比较 篇9

法语共有六中语式:直陈式, 命令式, 条件式, 分词式, 不定式, 虚拟式。其中直陈式为最常用而且最复杂, 包含的时态最多, 也是学生们最容易出错的部分。下面着重分析一下法语直陈式中的主要时态, 并与英语的时态进行对比和分析。

一、直陈式现在式

法语直陈式现在时表示说话者说话当时所发生的动作或状态。相当于英语的一半现在时, 如:

J’aime le sport

I love sports.我喜欢运动。

Qui attendez-vous?

Who are you waiting for?你在等谁呢?

La lune tourne autour de la terre

The moon turns around the earth.月亮围着地球转。

英语中有现在进行时, 表示正在进行的动作。在法语中没有这个时态。直陈式现在时就表示正在进行的动作和正在持续的状态, 但有时为强调句型:

Ils ecoutent un cours d’anglais.

They are having a english class.他们在上英语课呢

Ils est en trein de prendre le petit dejeuner.

They are having breakfast.他们正在吃早饭。

二、复合过去式

直陈式复合过去式表示与现在有联系的已经完成的过去的动作, 时间不明确。在英语中一般可以用一般过去式和现在完成时来表示, 如:

Quand est elle rentree?

When did she come back?他是什么时候回来的?

Je l’ai vu yier.

I saw him yesterday.我昨天见到他了

Je n’ai jamais entendu une chose telle que cela.

I have never heard anything like that.我从来没有听过这样的事情

Nous avons eu deux cours ce matin

We’ve had two classes this morning.我们今天上午上了两堂课。

要注意的是, 英语的现在完成时还可表示一致继续到现在的动作和状态, 但法语中一直继续到现在的动作和状态就用直陈式现在时来表示。如:

Elle est malade depuis tros jours.

She has been ill for three days.他已经生病三天了

Depuis combien de temps travaillez vous ici?

How long have you been working here?你在这里工作多久了?

三、为完成过去时

法语直陈式未完成过去时表示在过去某一段时间内持续的动作和状态, 也可描写当时的情境, 背景, 静态等。相当于英语的过去进行时, 如:

A ce moment la, elle travaillait dans un laboratoire.那时候, 他在一家实验室工作。

At that time, she was working in a laboratory.

Que faisiez vous quand nous sommes arrives?我们到达时, 你们在做什么?

What were you doing when we arrived?

未完成过去时还可以表示过去某一段时间内重复发生的动作, 但英语过去进行时不能表示这一动作, 要用一般过去时表示, 如:

Elle venais souvent nous voir l’annee derniere.他们去年经常来看我们。

She often came to see us last year.

A ce moment la, il se levait a six heures du matinet se couchat a onze heures du soir.当时, 他早上六点起床, 11点睡觉。

At that time, he got up at six o’clock ant went to bed at 11 o’clock.

四、简单过去时

直陈式简单过去时表示在过去某一确定时间内已经完成的动作, 只用于书面语言。用一叙述历史事实, 故事等。英语中没有与该时态相应的时态。可用一般过去时表示。

A son retour, ma mere me trouva au milieu de quatre instituteurs, qui m’entendaient lire lentment l’histoire du petil pouced…Mais au lieu d’admirer exploit, elle devint pale, deposa ses paquets parterre, referma le livre, et m’emporta dans ses bras, endisant:“mon dieu, mon dieu!

在他回来时, 母亲发现我贝四个老师围在中间, 他们正听我慢慢念小拇指的故事, 可我母亲不但不对我的本事表示赞赏, 反而脸色变得苍白。他把大包小包放到地上, 和上书本, 把我抱在怀里, 边走边说:我的上帝……

五、愈过去时

直陈式愈过去时表示, 在另一过去动作之前已经完成的动作, 相当于英语的过去完成时, 如:

Le film avait deja commence quand nous sommes arrivees au cinema.

The film had already started when we got to the cinema.我们到达电影院时, 电影已经开始了

Avant le jour point, ils avaient aneanti toutes les troupes ennemies.

Before daybreak, they had already wiped out all the enemy troops.拂晓前, 他们就消灭了敌人的部队

A leur aide, j’ai compris que j’avais eu tort.

With their help, I realised that I had been wrong.。在他的帮助下, 我意识到自己错了。

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【时态数据库】相关文章:

时态语态05-13

动词时态05-16

时态总复习04-17

八种时态教案05-27

进行时态用法范文05-28

动词时态改错练习06-26

初中英语时态小结04-12

英语时态总结表格05-10

初中英语的时态05-31

英语现在时态范文06-11

上一篇:框架语义分析下一篇:高职护理实训教学