当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server:时态数据库的时间间隔

MSSQL
SQL Server 2005返回刚刚插入的数据条目id值
SQL Server 2000的视图中必须小心使用*符号
SQL Server 2005 SSIS技巧:动态目的文件名
SQL 2005 sa islock用户不能正常登录的现象
讲解无法打开用户默认数据库的解决方法
SQL Server中如何快速获取表的记录总数
SQL Server数据库简体繁体数据混用的问题
讲解SQL Server海量数据导入的最快方法
通向MySQL神秘王国的图形化之路
如何配置一个安全稳定的SQL Server数据库
SQL Server取得网站路径的几种方法及比较
一些文档中没有介绍的SQL Server DBCC命令
讲解SQL Server危险扩展存储删除和恢复
详细讲解删除SQL Server日志的具体方法
SQL查询效率:100w数据查询只需要1秒钟
SQL Server中多行多列连接成为单行单列
SQL Server 2000数据库FOR XML查询概述
带你深入了解数据库设计中的英文术语表
实例讲解实现SQL下的字符串拆分具体方法
通过作业调度建立SQL Server的自动备份

MSSQL 中的 SQL Server:时态数据库的时间间隔


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 141 ::
收藏到网摘: n/a

在文章开始呢,小编先介绍一下时态数据库,时态数据库是包含历史数据或同时也包含当前数据的数据库。如果说数据是事实信息的一种编码表达形式,那么时态数据就是与时间相关事实信息的编码表达形式。

我们现在就开始开发一些合适的表示符号。最初的,同时也是最基本的步骤是将时间间

隔定义为一个基本单位,而不是像前文中作为一对分离值处理。

时间间隔到底是什么?可以在时间间隔(从日期4到日期1 0)中供应零件P 1。但“从日期4到日期1 0指的是什么呢?很显然,它包括日期56789—那么起始终止日期(日期4和日期1 0)是否包含在内呢?有时我们希望时间间隔包含起始终止日期,而有时则希望它不包括起始终止日期。如果时间间隔包含开始日期4,那么我们说时间间隔对于起始日期是封闭的;否则说它对于起始日期是开放的。同样,如果时间间隔包含日期1 0,那么我们说时间间隔对于终止日期是封闭的;否则说它对于终止日期是开放的。

按照惯例,用括号把起始终止日期括起来表示时间间隔,圆括号表示时间间隔在此点上

是开放的,方括号则表示时间间隔在此点上是封闭的;例如,从日期4到日期10的时间间隔有如下四种:

[d 0 4d 1 0]

[d 0 4d 1 0)

(d 0 4d 1 0]

(d 0 4d 1 0)

注意:可能认为半开半闭的时间间隔有点奇怪,不过这四种时间间隔各有实际意义,实

际上常常会用到这种半开半闭的时间间隔。全封闭的时间间隔则很直观,我们会在下文中经

常使用。

如果用诸如[d 0 4d 1 0]的形式来表示时间间隔,那么就可以将S P F R O M TO中的属性F ROMTO合并起来,用单个属性D U R I N G来表示,它的值域为interval type。这样做的一个直接好处是避免了从{ S #F R O M }{ S #TO }

中随意选择一个作为主码;另一个直接好处是不会对起始终止时间是否封闭产生歧义,因为

可以用[d 0 4d 1 0][d 0 4d 1 0)(d 0 4d 1 0](d 0 4d 1 0)四种形式来表示时间间隔。还有一个好处是不再需要时间间隔约束“在FROM - TOTO对应的时间点不能早于F R O M对应的时间点”,因为已经在时间间隔类型中隐含地包括了约束“ F R O MTO”。第4个好处是不需要讨论哪些是非真正码的“时态码”,很多约束也可以得到简化。