教你们在时态数据库在电子商务中的应用
电子商务是利用计算机技术、网络技术和远程通信技术来实现整个商务(买卖)过程中的电子化、数字化和网络化。随着信息技术的不断发展,围绕Internet技术的日见成熟,公众上网人数在成倍增长、上网意识逐渐加强,电子商务的应用也开始广为普及。随着时间的积累,电子商务数据库中会保存着大量的信息,这些信息包括过去、将来和现在的,并且是同等重要的。下面就让我们一起来看看吧。
传统数据库很难体现这些数据的时态性,数据处理的时空效率无疑受到局限。为此人们提出了多种时态数据库TDB(Temporal DataBase)的理论模型,这些模型大都是以传统关系数据模型为基础的。下面对时态数据模型进行讨论,并且通过具体实例说明如何利用TimeDB实现对电子商务时态信息的数据处理。
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的时间区间,可以更简单地表示基于时态区间与时间点之间的时态关系、基于时间点之间的时态关系。
图1 Allen的13种区间关系 |
2、时态数据模型
时态数据库在处理时间问题时,最重要的两种时间是事务时间和有效时间CCNP。其中有效时间(Valid Time)是指一个对象在现实世界中发生并保持的时间,是可以反映过去、现在和将来的时间。事务时间(Transaction Time)是指一个数据库对象进行操作的时间,它记录着对数据库进行修改或更新的各种历史。
传统的关系型数据库是两维的,一为属性维,二为元组维,如合同的关系模式为:(合同号,合同名称,签约单位,签约金额,签约日期)(见表1),而时态数据库则是在传统的关系数据库的基础上加入了时间维的概念。按Spipada和Snodgrass的意见,时态数据库按功能可分为三类∶
①历史数据库。被管理对象的生命周期称为有效时间(Valid Time),对象历史由DBMS内部机制处理。
②事务数据库。其中,数据库本身被查删改的时间称为事务时间(Transaction Time),其历史由DBMS内部机制处理。
③双时态数据库,既能管理对象历史,又能管理数据库本身的历史。
针对合同的有效性问题,在合同信息中添加有效时间字段构成表2所示的N1NF信息结构,作为合同关系的历史数据库模型。
表1 某公司合同的传统信息模式
合同号 | 合同名称 | 签约单位 | 签约金额 | 签约日期 |
00001 | XXX合同 | A公司 | 10000 | 2002.5.1 |
00002 | YYY合同 | B公司 | 12000 | 2003.1.6 |
表2 某公司合同的历史数据库
合同号 | 合同 名称 | 签约 单位 | 签约 金额 | 有效时间 | |
生效日期 | 无效日期 | ||||
00001 | XXX合同 | A公司 | 10000 | 2002.6.1 | 2002.10.1 |
00002 | YYY合同 | B公司 | 12000 | 2003.1.10 | 2003.2.10 |
#p#分页标题#e#
3、时态查询语言
时态数据库使用的语言有多种,目前还没有形成较完整的国际标准,大部分时态数据查询语言只是扩展当前的查询语言,有13种被收入时态数据库专著《Temporal Database—Theory, Design and Implementation》中。其中TSQL2语言是时态数据库模型、时态数据查询语言的研究成果与SQL-92的结合,oracle数据库是当前最具代表性的时态数据库查询语言[5]。TimeDB是Andreas Steiner等人开发的一个支持双时态数据库的软件,可以支持ATSQL2–时态查询语言,下面介绍如何利用TimeDB实现合同关系的时态查询。
well1)创建合同关系
CREATE TABLE合同(合同号 integer,
合同名称 varchar(30),
签约单位 varchar(30),
签约金额 integer) AS VALIDTIME;
2)插入数据
VALIDTIME PERIOD[2006.3.10-2006.5.10] INSERT INTO 合同 VALUES(00003,‘ZZZ合同’,’C公司’,20000);
3)查询合同有效期在2002.5.1~2003.5.1间有效的合同
VALIDTIME PERIOD[2002.5.1-2003.5.1]
SELECT 合同,合同名称,签约单位,签约金额
FROM 合同;
则显示结果如下:
lidtime 合同号 合同名称 签约单位 签约金额
—————————————
002.6.1-2002.10.1] 00001 AAA合同 A公司 10000
003.1.10-2003.2.10] 00002 BBB合同 B公司 12000
以上一个简单的带有有效时间信息的数据库的创建、插入数据以及查询数据,可以看出ATSQL2在标准SQL语句中加入时态关键字VALIDTIME,这样的语句可以处理时态信息,也可以和标准SQL语句兼容,也就是标准SQL语句可以继续在支持ATSQL2的TDBMS中应用。
4、结束语
本文分析了电子商务信息中的时间因素,指出目前电子商务数据信息处理中的不足。针对目前的这种不足,结合时态信息处理技术和数据库技术,提出一种解决方法。本文提出的解决方法不局限于电子商务应用,可以拓展到电子政务等其他领域。课课家教育平台上与我们同步。
【相关文章】