2022年时态数据库归类 .pdf

上传人:Q****o 文档编号:26154814 上传时间:2022-07-16 格式:PDF 页数:5 大小:527.84KB
返回 下载 相关 举报
2022年时态数据库归类 .pdf_第1页
第1页 / 共5页
2022年时态数据库归类 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年时态数据库归类 .pdf》由会员分享,可在线阅读,更多相关《2022年时态数据库归类 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1.时态数据库的定义区别于传统的关系型数据库(RDBMS),时态数据库(Temporal Database)主要用于记录那些随着时间而变化的值的历史,而这些历史值对应用领域而言是重要的,这类应用有:金融、保险、预订系统、决策支持系统等。目前时态数据库还没有像如Oracle 、 SQL Server等大型关系数据库那样的产品。在当前时态数据库技术尚未完全成熟的现状下,DBMS提供商不会轻易把时态处理功能引入现有的DBMS 中,因此,利用成熟的RDBMS 数据库,建立时态数据库的中间件,在现阶段是一个较好的选择,因此就应运而生TimeDB 和 TempDB了。2.时态数据库的类型时态数据库理论提出

2、了三种基本时间:用户自定义时间、有效时间和事务时间。同时把数据库分为四种类型:快照数据库、回滚数据库、历史数据库和双时态数据库。1)用户自定义时间:指用户根据自己的需要或理解定义的时间。时态数据库系统不处理用户自己定义的时间类型。因此,用户自定义时间是和应用相关的,不在时态数据库处理的范围之内。2)有效时间(Valid-Time):指一个对象在现实世界中发生并保持的时间,即该对象在现实世界中语义为真的时间,包含Valid-From和 Valid-To两个值。它可以指示过去、现在和未来。例如,考虑事实?小明从2003 年到 2007 年是大学生 ?,那么时间区间2003, 2007是事实?小明是

3、大学生 ?的有效时间区间,该事实在该时间区间内为真。有效时间可以是时间点、时间点的集合、时间区间或者时间区间的集合,或者是整个时间域。有效时间由时态数据库系统解释并处理,在查询的过程中对用户透明。用户也可以显式地查询和更新有效时间。3)事务时间(Transaction-Time):指一个数据库对象发生操作的时间,是一个事实存储在数据库、或者在数据库中发生改变的时间,包含Transaction-From和Transaction-To两个值。 当用户对数据库状态进行更改时,会产生各种操作历史,事务时间真实地记录了数据库状态变更的历史。有时也称事务时间为系统时间。4)快照数据库:快照数据库是反映现实

4、世界某一瞬间情况的数据模型。它记录了特定时刻的数据库状态。快照数据库采用这样的假设:一个存储在数据库中的元组,一定是真实世界中的有效事实。5)历史数据库:数据库中被管理对象的生命周期是对象的有效时间,每一个元组记录了数据的一个 ?历史?状态。历史数据库中没有约束时间的表示方法,可以是时间点的集合、时间区间或者区间集合等形式表示。6)回滚数据库:数据库中被管理对象的生命周期是事务时间的数据库。它保存了数据库中事务提交、状态演变的历史状态。7)双时态数据库:数据库中元组包含一个系统支持的有效时间和一个系统支持的事务时间的数据库,称为双时态数据库。双时态数据库具备了快照数据库、历史数据库和回滚数据库

5、的特点,存储了现实世界和数据库系统的变更历史。8)Now :Now的中文意思是当前时间,是一个时间变元,随着当前时间的变化而变化,记录了随时间变化的信息,它的有效值依赖于当前时间。但在很多应用当中,now值还能表示 ?过去?和?未来?时间,这就是now 语义的研究课题,它对于提高时态系统查询效率具有比较重要的意义。3.时态数据库脚本ATSQL 的使用时态数据处理构件根据ATSQL2 的语法引入了Now 、Beginning和 Forever三个变元。Beginning和 Forever分别表示时态数据处理构件所能表示的时间起点和终点。Now表示当前时间。 每次执行操作时必须使Now绑定到一个固

6、定的值(操作执行的当前时间),名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 这样后继操作才能正常进行。在下面的ATSQL2 中表示的这几个单词是具有具体的含义的。ATSQL2 的数据定义语句包括以下几项功能:创建表、创建视图、删除表、删除视图。ATSQL2 语言和普通SQL语句一样,使用?create table?关键字创建数据库表,关键字? as validtime?用于指示系统创建具有有效时间支持的数据库表。1)创建员工表

7、Employee, 是在标准的创建表SQL结尾,加入AS VALIDTIME 关键字即可。CREATETABLE Employee( ID VARCHAR( 30) NOTNULL , NAME VARCHAR( 50) NOTNULL ) AS VALIDTIME; 2) 插入一条记录的ATSQL, 需要通过VALIDTIME PERIOD来指定一个时间范围的,其他部分和标准 SQL一样VALIDTIME PERIOD 1981-1985) Insert into Employee values (112, Jack);3) 记录查询 : 查询所有记录, 在标准 SQL前加 VALIDTIM

8、E关键字即可 ,查询指定时间段的记录,可以通过PERIOD关键字指定时间区间:VALIDTIME SELECT*FROM Employee; VALIDTIME PERIOD 1983-1986) SELECT * FROM Employee; VALIDTIME PERIOD 1983-forever) SELECT * FROM Employee;4) 向员工表里添加人员信息插入记录前后分别如表 3-1 和表 3-2 所示VALIDTIME period date 2008-1-1 now) Insert into Staff Values ( 132202, Zhang Jinning,

9、 信息部 );5) 为employee表创建一个视图,该视图包含所有1999-9-9 前离职的工人信息,其中VALIDTIME(R)表示取元组R的有效时间区间:Create view employee_v as Validtime select * from employee Where VALIDTIME(employee) before date 1999-9-9; 6) 删除员工表的ATSQL和一般的 SQL语句一样,如下DROP TABLE Employee; 7) 几个查询相关的概念快照查询 :查询当前时刻的数据库状态。对于非时态表(快照数据库),快照查询是一种向上兼容的查询方式,可

10、以查询非时态数据库的数据。对于时态表(历史数据库或回滚数据库) ,快照查询截取当前数据库状态,返回当前状态下的查询结果。顺序查询 :顺序查询是一种时态查询,通过关键字VALIDTIME 或者 TRANSACTIONTIME 指示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 系统执行哪个时间维(有效时间维、事务时间维,或者两个维度)的时态查询。在这种查询中系统运用时态代数操作自动处理元组的时间戳(有效时间、 事务时间, 或两者的

11、结合) 。非顺序查询 :执行非顺序查询时,系统不再根据时态代数操作解释时间戳,只是把有效时间和事务时间当作普通的用户定义属性对待。非顺序查询适合特殊的查询需求,例如查询条件涉及状态的变化的查询。时态归并 :时态归并是作用于时态数据库的一种重构操作23 。归并把具有相同属性值并且时间戳相邻或重叠的元组合并成一个元组,归并的过程保持时态数据库的状态不被改变。4.时态数据的变元时态数据处理构件根据ATSQL2 的语法引入了Now 、Beginning和 Forever 三个变元。Beginning和 Forever分别表示时态数据处理构件所能表示的时间起点和终点。Now表示当前时间。每次执行操作时必

12、须使Now绑定到一个固定的值(操作执行的当前时间),这样后继操作才能正常进行。时态数据处理构件使用重写底层比较过程的方法绑定Now的语义。它把Now 、Beginning和Forever分别用以下三个具体的时间值表示:Now = 9999-01-01 00:00:00 ;Beginning = 1000-01-01 00:00:00 ;Forever = 9999-12-31 23:59:59. 因为使用了特殊值表示这三个变元,一方面使得时态数据处理构件能处理的时间范围比原商业数据库能处理的时间范围小,另一方面使得原商业数据库底层对时间类型数据的比较算子有了新的意义。例如,如果当前时间是200

13、7年12月1日,考虑?2009-1-1Now ?的意义时,应当先把Now替换为 2008-07-18 ,比较结果为真。在 TimeDB中 Now只是当前时间的别名。在时态插入语句的执行过程中,Now作为一个标记被替换为语句执行的当前时间。5.时态数据库的应用介绍(2)- 时态数据库之TimeDB前面介绍了TimeDB (http:/ SBJS96a,SBJS96b ,SBJS98。它可以认为是关系数据库的一个前端,把时态数据库语句转换为关系型数据库的脚本进行执行,它的运用场景如下所示。TimeDB是传统的数据库管理系统的前端软件,应用程序中使用的时态ATSQL语句,通过TimeDB转换后形成标

14、准的SQL语言和操作,这些标准SQL语句和操作传入到后台数据库中操作实际的数据。TimeDB支持 ATSQL2 语言和时态模型,实现了时态查询、时态更新、时态视图和部分的时态完整性约束等基本的时态功能。TimeDB 2.0 版本使用 Java 语言开发,具有平台无关的有点;基于JDBC访问数据库,目前仅支持 Oracle 、Sybase 和 IBM的 Cloudscape s JBMS 三种数据库,下一版本可能支持Microsofts Access、SQL Server 7.0、Informix等数据库;具有较友好的用户界面;优化了辅助表的创建过程;具有可以供Java 应用程序调用的接口TDB

15、CI ,可供 Java 应用程序调用以执行ATSQL2 语句。 TimeDB2.0的程序运行界面如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - TDBCI提供的接口函数如下所示/ 设置访问参数publicboolean setPrefs(String Path, int DBMS, String JDBCDriver, String URL); / 初始化 / 清除执行 ATSQL 语句所需的表publicboolean

16、createDB(); publicboolean clearDB(); / 打开或者关闭数据库publicboolean openDB(String Login, String Password); publicvoid closeDB(); / 执行 ATSQL语句public ResultSet execute(String stmt); 其中 setPrefs是用来设置TimeDB的相关访问参数的,如下所示if (t.setPrefs(C:TimeDB 2.2, / Path to TimeDB2.0 directory 1, / Using Oracle DBMS oracle.jd

17、bc.driver.OracleDriver, / Oracles JDBC driver jdbc:oracle:thin:1521:ORCL) / URLcreateDB 是用来创建一些基础表,以便支持执行ATSQL的,而 clearDB 则是清除这些表,对数据库而言,只需要开始的时候调用createDB 一次即可。openDB 和 closeDB 有点类似于我们操作数据库的时候,打开Connection连接的操作,每次查询事务,都需要先执行openDB的操作,事务提交后,调用closeDB 来关闭数据库。执行 ATSQL语句只有一个函数execute ,它返回的是TimeDB定义的 Re

18、sultSet对象,而ResultSet对象可以获取每一个ResultRow 对象, ResultRow 对象通过row.getColumnValue(i)和 row.getColumnType(i)函数调用只能拿到列的值和对应值的类型,结果类型是字符类型。返回的类型名称有:number ? smallint ? float? numeric ? integer ? double longint ? real ? interval date ? period ? char ? varchar 6.如何应用 TimeDB的时间数据库技术由于我们的产品技术主要是基于.NET 基础上开发的,而Tim

19、eDB是基于 Java 的应用技术,因此可以考虑通过包装TimeDB成为 WebService 的应用,然后通过.NET 客户端进行访问,实现时间数据库技术的应用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 初始化数据库基础信息TimeDB是基于关系型数据库之上的一个模块,在做时间数据库相关的脚本( ATSQL )解析前,它需要一些基础表和记录来存储相关的信息,因此需要初始化所建立的数据库。初始化数据库可以通过执行安装目录下

20、的SQL脚本而进行(位置为X:TimeDB 2.2scriptsinitDB) , 如 Oracle 调用 initOracle脚本, Sybase 数据库调用 initSybase脚本。另外,也可以通过调用TDBCI 的接口 createDB 创建这些基础表。使用 Java 创建基于TimeDB查询操作的WebService TDBCI公开了一些供Java 应用程序调用的API 函数,为了使得 .NET的应用程序也能在TimeDB中执行 ATSQL脚本,我们把对TDBCI的调用封装成了WebService 。开发环境: MyEclipse6.01、Tomcat5.5 、Java SDK1.6

21、 、Oracle 10g 、TimeDB2.0。实现步骤:1、 使用 MyEclipse创建 WebService 项目,配置好Tomcat 服务器2、 引用 Oralce 的 JDBC类和 TimeDB开发所需的类3、 创建具体的WebService 服务类,提供返回结果查询和无结果的查询接口,并实现接口函数4、 部署 WebService 到 Tomcat 中使用 .NET客户端对WebService 进行访问,执行ATSQL 实现步骤:1、 引用包装好的WebService 2、 调用相应的接口,使用ATSQL语句创建业务表3、 调用相应的接口实现ATSQL 数据操作(查询、插入、删除等)创建业务表:和在关系数据库(如Oracle )中创建表不同,创建时间数据库表需要调用 TimeDB的接口,执行ATSQL而实现。 ATSQL2是一个 SQL标准 . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁