300 likes | 452 Views
数据库系统与技术(3) --时间数据与关系演算. 汤 庸 博士 issty@mail.sysu.edu.cn www.cosoft.sysu.edu.cn. 计算机科学系 协同软件研究开发中心. 时态元素及演算. 时间模型 时间基本元素 时间算术演算 时间逻辑演算 时态关系代数. 1. 时间模型. 时态信息 随着时间变化的信息成为时态信息( Temporal Information). 1. 时间模型. 连续模型( Continuous Model) 与实数同构 可以采用插值获取相邻时间点之间的数据。.
E N D
数据库系统与技术(3) --时间数据与关系演算 汤 庸 博士 issty@mail.sysu.edu.cn www.cosoft.sysu.edu.cn 计算机科学系 协同软件研究开发中心
时态元素及演算 • 时间模型 • 时间基本元素 • 时间算术演算 • 时间逻辑演算 • 时态关系代数
1. 时间模型 • 时态信息 随着时间变化的信息成为时态信息(Temporal Information)
1. 时间模型 • 连续模型(Continuous Model) • 与实数同构 • 可以采用插值获取相邻时间点之间的数据。
1. 时间模型 • 步进模型(Stepwise Model) • 数据的状态看成时间的函数 • 两个时间点之间不能通过插值方法 • 可以用回朔法获取,时间序列上任一点的数据的值对应于上一次数据改变时保持的状态。 • 例如,下图中李明当前(Now)的身份?
1. 时间模型 • 离散模型(Discrete Model) • 两相邻时间点间无数据,例如1月和2月之间没有另一个月份 • 不能用插值方法获取,例如不能通过1月和3月的数据确定2月的数据 • 不能回朔,例如:如果4月15日发工资,4月5日时不能采用回朔法将3月的工资当成4月的工资。 • 恒定模型(Non Temporal Model) • 不随时间变化的数据,例如籍贯等;另外一些通常不考虑时变,而是在变化时采用新值进行替换,例如住址、身份、工作单位等。
2 时间基本元素-时间点 • 时间点 • 基于点的时间又称为时间点(Time Points)。这种描述方法是把时间看成一个个孤立的时间点,当时间点的粒度(Granularity)足够小时,这一个个的时间点就可以准确的描述现实世界事件发生及变化的时间。 • 如1995年3月1日,时间粒度精确到“天” 1995年3月1日0时0分0秒,系统使用的最小时间粒度是“秒”
2时间基本元素-时间点 • 时间点系统的形式化描述 令整个时间系统:I=<P,t > 其中P={p1, p2, …, pn}为时间点的有限集合。 t表示P上的时序,pi t pi+1表示pi不会出现在pi+1之后,即pi 发生pi+1之前或跟pi+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又是一个全序。
2时间基本元素-时间点 • 在传统数据库中常作为时间类型或字符串处理 • 取值范围和时间粒度取决于具体的应用
2时间基本元素-时间区间 • 时间区间 [t1,t2] 四种区间 区间含义 图例 a) [pi, pj] ●------● b) [pi, pj) ●------○ c) (pi, pj] ○------● d) (pi, pj) ○------○
2时间基本元素-时间跨度 • 时间跨度 是指持续的一段时间,表示时间的长度。例如:“一年零三个月”,“30天“。 • 与时间区间不同的是,时间跨度没有时间起点,也没有时间终点
2 时间基本元素-时间集合 • 时间集合 时间集合(Time Set)也称”时间域(Temporal Domain)”,“时间域”是一些时间区间的有穷并集,例如{[1980,1990],[1992,1994]}
2 时间基本元素-Now • 时间常量、时间变量 • 特殊的时间元素:Now • 中文意思是当前时间,是一个时间变元,随着当前时间的变化而变化,记录了时间变化的信息,它的有效值依赖于当前时间。 • 带来方便 • 带来语义失真
3 时间粒度 • 时间粒度定义 • 逻辑上讲是指描述时间数据的最小时间单位。 • 时间粒度的选取是因需要而定的 • 所有的时态数据都存在一个时态粒度的属性。 • 例如一个人的出生年月用天作最小的时间单位, • 火车时刻表用分作最小的时间单位。
3 时间粒度 • 时间粒度存在形式 • 单一粒度。数据库系统只支持一种时间粒度。 • 多个粒度。对于一个数据系统,对于不同的属性,关系可以存在不同的时间粒度。
select * from vacations, flight_departures where vacation= ‘thanksgiving’ and flight_departures.at_time overlaps (vacations.from_time, vacations.to_time);
3 时间粒度 • 时间粒度与时间量子 时间粒度的大小,要受到时间量子的约束。系统的时间量子(Chronon)是计算机所支持的最小的、不可分割的时间间隔。
3 时间粒度 • 时间粒度间的运算 粒度之间的转换Scale与Cast函数(P23)
select * from vacations, flight_departures where vacation= ‘thanksgiving’ and flight_departures.at_time overlaps (vacations.from_time, vacations.to_time); SELECT * FROM Vacations,Flight_Departures WHERR Vcation=‘Thanksgiving’AND SCALE(Flight_Depattures.At_Time AS DAY) OVERLAPS(Vactions.From_Time,Vacations.To_Time);
4 时间数据算术运算 • 点、区间、跨度(数值)、集合 • (12/2/2008) + 10 = (12/12/2008) • (12/2/2008,12/12/2008)- [12/4/2008,12/10/2008] = {(12/2/2008,12/3/2008), (12/10/2008,12/12/2008) • 函数 • 运算性质 • P65-66
5 时间数据逻辑演算 • Allen的区间代数(13种演算p27-28) • before(p,q) 是指p时间段在q时间段之前到来,而且这连个时间段是不相交的。 • during(p,q) 是指p在时间q之后发生,且p在时间段q之前结束。 • overlaps(p,q) 是指p在q之前发生,且p在q之前结束。 • meet(p,q) 是指p在q之前发生,且p的结束时间就是q的开始时间。 • starts(p,q) 是指p和q同时发生,且p在q之前结束。 • finishs(p,q) 是指p在q之后发生,且p和q在同一个时间点结束。 • equals(p,q)是指p和q在一个时间点发生,且在一个时间点结束。
5 时间数据逻辑演算 • Before (t1, t2)=After (t2, t1) • During (t1, t2)=Contains (t2, t1) • Overlaps (t1, t2)=Overlapped-by (t2, t1) • Meets (t1, t2)= Met-by (t2, t1) • Starts (t1, t2)= Started-by (t2, t1) • Finishes (t1, t2)= Finished-by (t2, t1)
p q p before q q after p p q p during q q contains p p q p overlaps q q overlapped-by p
p q p meets q q met-by p p p starts p q started-by p q p q p finishes q q finished-by p p p equals q q
5 时间数据逻辑演算 • 时间区间与时间点 • 时间点与时间点
6 时态关系代数 • 生命周期 姓名 工资 生命周期 张兰 [1992,1995], 800元 • 张兰 [1996,1999],1280元 [1992,Now] • 张兰 [2000,Now], 1900元 属性的生命周期 元组的生命周期
6 时态关系代数 • 时态关系 • 非INF • 生命周期的集合运算
6 时态关系代数 • 历史关系数据模型(HRDM)的时态关系定义 • P70-71 • Pp80-86
6 时态关系代数 • 历史关系运算 • P70-76 • 时态关系演算的形式化描述
思考题 • 主要时间模型有哪些,其中时间点、区间的数据形式与取值方法如何? • 掌握时间基本元素类型及其基本运算,试研究其形式描述与相关性质。 • 什么是元组和属性的生命周期? • 试谈谈你对时态关系、历史关系感念的理解,研究其关系运算体系。