文档详情

2015广东海洋大学高级数据库技术考点.doc

发布:2017-06-05约1.03万字共16页下载文档
文本预览下载声明
1、时态数据库建表、设计,面向对象模型创建、定义 时代数据库的建表: CREATE TABLE prescription ( patient_name VARCHAR(10) , doctor_name VARCHAR(10), drug_name VARCHAR(30), dose VARCHAR(30) ) AS VALIDTIME; ? 向表格插入记录 会引起TempDB做时态归并操作 1、VALIDTIME PERIOD [ DATE 2010-03-01 - DATE 2010-05-01 ) INSERT INTO prescription VALUES ( p1 , dom , va , 30mg ); 2、 VALIDTIME PERIOD [ DATE 2013-02-01 - now ) INSERT INTO prescription VALUES ( p2 , d1 , erythromycin , 30mg ); 3、 VALIDTIME PERIOD [ DATE 2010-01-01 - DATE 2012-03-01 ) INSERT INTO prescription VALUES ( p1 , ‘dom , ‘vb , 30mg ); 4 、 VALIDTIME PERIOD [ DATE 2010-02-01 - DATE 2012-04-01 ) INSERT INTO prescription VALUES ( p1 , dom , erythormycin , 30mg ); 5 、 VALIDTIME PERIOD [ DATE 2010-01-01 - DATE 2010-01-15 ) INSERT INTO prescription VALUES ( p1 , dom , erythormycin , 30mg ); ? 查询表格记录 VALIDTIME SELECT * FROM prescription; 或: VALIDTIME PERIOD (begin(VALIDTIME(p)), now) SELECT * FROM prescription p; 查询所有看过dom医生的病人姓名。 SELECT patient_name FROM prescription where doctor_name = ‘dom; 查询曾服过红霉素的病人姓名及其服药期间。 VALIDTIME SELECT patient_name FROM prescription where drug_name = erythromycin; 说明:查询结果为所有服过红霉素的病人姓名及其服药期间的集合。如果病人连续服用此药,即集合中有若干服药期间首尾相连,TSQL2会将这些服药期间自动归并为一个更大的时间区间。 查询与红霉素同时服用的其他药品名、服用此药的病人姓名以及同时服用的期间。 VALIDTIME SELECT p1.patient_name, p2.drug_name FROM prescription AS p1, prescription AS p2 where p1.drug_name = erythromycin AND p2.drug_name erythromycin AND p1.patient_name = p2.patient_name; 4、删除用例 ? 不引起分裂操作的时态数据删除 VALIDTIME PERIOD [DATE 2011-01-01 - DATE 2012-05-01) DELETE FROM prescription; ? 引起分裂操作的时态数据删除 例 删除病人b2在2010-01-10——2010-02-01期间服用penicillin记录。 VALIDTIME PERIOD [ DATE 2010-01-10 - DATE 2010-02-01) DELETE FROM prescription WHERE patient_name=p1 AND drug_name=erythromycin; 对于Student和CourseOffering之间的联系,我们称由前者到后者为takes,而反之为taken。、 面向对象数据模型的创建: 面向对象方法与数据库技术结合,首先就要建立面向对象的数据模型。数据模型通常由三个组成部分:数据结构,数据操作和数据约束 面向对象数据模型(Object Oriented Da
显示全部
相似文档