1、数据库系统与技术(3)-时间数据与关系演算汤汤 庸庸 博士博士 计算机科学系计算机科学系协同软件研究开发中心协同软件研究开发中心1 协同软件研究开发中心时态元素及演算n时间模型n时间基本元素n时间算术演算n时间逻辑演算n时态关系代数2 协同软件研究开发中心1.时间模型n时态信息 随着时间变化的信息成为时态信息(Temporal Information)3 协同软件研究开发中心1.时间模型n连续模型(Continuous Model)n与实数同构n可以采用插值获取相邻时间点之间的数据。4 协同软件研究开发中心1.时间模型n步进模型(Stepwise Model)n数据的状态看成时间的函数n两个时
2、间点之间不能通过插值方法n可以用回朔法获取,时间序列上任一点的数据的值对应于上一次数据改变时保持的状态。n例如,下图中李明当前(Now)的身份?5 协同软件研究开发中心1.时间模型n离散模型(Discrete Model)n两相邻时间点间无数据,例如1月和2月之间没有另一个月份n不能用插值方法获取,例如不能通过1月和3月的数据确定2月的数据n不能回朔,例如:如果4月15日发工资,4月5日时不能采用回朔法将3月的工资当成4月的工资。n恒定模型(Non Temporal Model)n不随时间变化的数据,例如籍贯等;另外一些通常不考虑时变,而是在变化时采用新值进行替换,例如住址、身份、工作单位等。
3、6 协同软件研究开发中心2 时间基本元素-时间点n时间点n基于点的时间又称为时间点(Time Points)。这种描述方法是把时间看成一个个孤立的时间点,当时间点的粒度(Granularity)足够小时,这一个个的时间点就可以准确的描述现实世界事件发生及变化的时间。n如1995年3月1日,时间粒度精确到“天”1995年3月1日0时0分0秒,系统使用的最小时间粒度是“秒”7 协同软件研究开发中心2时间基本元素-时间点n时间点系统的形式化描述令整个时间系统:I其中Pp1,p2,pn为时间点的有限集合。t表示P上的时序,pi t pi+1表示pi不会出现在pi+1之后,即pi 发生pi+1之前或跟p
4、i+1同时发生。由此我们可以得到:piP,pitpi;关系t系在P上是自反的;pi,pjP,若pitpj 且pj pi;则pj=pi;关系t系在P上是反对称的;pi,pj,pkP,若pitpj且pjpk;则pi pk;关系t系在P上是传递的;因此,I是一个偏序。同时,对pi,pjP,或者pitpj 或者pj piI,因此I又是一个全序。8 协同软件研究开发中心2时间基本元素-时间点n在传统数据库中常作为时间类型或字符串处理n取值范围和时间粒度取决于具体的应用9 协同软件研究开发中心2时间基本元素-时间区间n时间区间 t1,t2 四种区间 区间含义 图例 a)pi,pj -b)pi,pj)-c)
5、(pi,pj -d)(pi,pj)-10 协同软件研究开发中心2时间基本元素-时间跨度n时间跨度 是指持续的一段时间,表示时间的长度。例如:“一年零三个月”,“30天“。n与时间区间不同的是,时间跨度没有时间起点,也没有时间终点 11 协同软件研究开发中心2 时间基本元素-时间集合n时间集合 时间集合(Time Set)也称”时间域(Temporal Domain)”,“时间域”是一些时间区间的有穷并集,例如1980,1990,1992,1994 12 协同软件研究开发中心2 时间基本元素-Nown时间常量、时间变量n特殊的时间元素:Nown中文意思是当前时间,是一个时间变元,随着当前时间的变
6、化而变化,记录了时间变化的信息,它的有效值依赖于当前时间。n带来方便n带来语义失真 13 协同软件研究开发中心3 时间粒度n时间粒度定义n逻辑上讲是指描述时间数据的最小时间单位。n时间粒度的选取是因需要而定的n所有的时态数据都存在一个时态粒度的属性。n例如一个人的出生年月用天作最小的时间单位,n火车时刻表用分作最小的时间单位。14 协同软件研究开发中心3 时间粒度n时间粒度存在形式n单一粒度。数据库系统只支持一种时间粒度。n多个粒度。对于一个数据系统,对于不同的属性,关系可以存在不同的时间粒度。15 协同软件研究开发中心select*select*from vacations,flight_d
7、epartures from vacations,flight_departures where vacation=where vacation=thanksgivingthanksgiving and and flight_departures.at_time overlapsflight_departures.at_time overlaps(vacations.from_time,vacations.to_time)(vacations.from_time,vacations.to_time);16 协同软件研究开发中心3 时间粒度n时间粒度与时间量子 时间粒度的大小,要受到时间量子的约
8、束。系统的时间量子(Chronon)是计算机所支持的最小的、不可分割的时间间隔。17 协同软件研究开发中心3 时间粒度n时间粒度间的运算粒度之间的转换Scale与Cast函数(P23)18 协同软件研究开发中心select*select*from vacations,from vacations,flight_departuresflight_departures where vacation=where vacation=thanksgivingthanksgiving and and flight_departures.at_timeflight_departures.at_time ov
9、erlaps overlaps(vacations.from_timevacations.from_time,vacations.to_timevacations.to_time);SELECT*SELECT*FROM FROM Vacations,Flight_DeparturesVacations,Flight_DeparturesWHERR WHERR VcationVcation=ThanksgivingThanksgivingANDANDSCALE(Flight_Depattures.At_TimeSCALE(Flight_Depattures.At_Time AS DAY)AS D
10、AY)OVERLAPS(Vactions.From_Time,Vacations.To_TimeOVERLAPS(Vactions.From_Time,Vacations.To_Time););19 协同软件研究开发中心4 时间数据算术运算n点、区间、跨度(数值)、集合n(12/2/2008)+10=(12/12/2008)n(12/2/2008,12/12/2008)-12/4/2008,12/10/2008=(12/2/2008,12/3/2008),(12/10/2008,12/12/2008)n函数n运算性质nP65-6620 协同软件研究开发中心5 时间数据逻辑演算1.Allen的区
11、间代数的区间代数(13种演算种演算p27-28)nbefore(p,q)是指p时间段在q时间段之前到来,而且这连个时间段是不相交的。nduring(p,q)是指p在时间q之后发生,且p在时间段q之前结束。noverlaps(p,q)是指p在q之前发生,且p在q之前结束。nmeet(p,q)是指p在q之前发生,且p的结束时间就是q的开始时间。nstarts(p,q)是指p和q同时发生,且p在q之前结束。nfinishs(p,q)是指p在q之后发生,且p和q在同一个时间点结束。nequals(p,q)是指p和q在一个时间点发生,且在一个时间点结束。21 协同软件研究开发中心5 时间数据逻辑演算nB
12、efore(t1,t2)=After(t2,t1)nDuring(t1,t2)=Contains(t2,t1)nOverlaps(t1,t2)=Overlapped-by(t2,t1)nMeets(t1,t2)=Met-by(t2,t1)nStarts(t1,t2)=Started-by(t2,t1)nFinishes(t1,t2)=Finished-by(t2,t1)22 协同软件研究开发中心p before q q after p p during q q contains p p overlaps q q overlapped-by p pppqqq23 协同软件研究开发中心p meet
13、s q q met-by p p starts p q started-by p p finishes q q finished-by p p equals q ppppqqqq24 协同软件研究开发中心5 时间数据逻辑演算n时间区间与时间点n时间点与时间点25 协同软件研究开发中心6 时态关系代数n生命周期 姓名 工资 生命周期张兰 1992,1995,800元 张兰 1996,1999,1280元 1992,Now 张兰 2000,Now,1900元属性的生命周期元组的生命周期26 协同软件研究开发中心6 时态关系代数n时态关系n非INFn生命周期的集合运算27 协同软件研究开发中心6 时态关系代数n历史关系数据模型(HRDM)的时态关系定义nP70-71nPp80-8628 协同软件研究开发中心6 时态关系代数n历史关系运算nP70-76n时态关系演算的形式化描述29 协同软件研究开发中心思考题n主要时间模型有哪些,其中时间点、区间的数据形式与取值方法如何?n掌握时间基本元素类型及其基本运算,试研究其形式描述与相关性质。n什么是元组和属性的生命周期?n试谈谈你对时态关系、历史关系感念的理解,研究其关系运算体系。30