2015广东海洋大学高级数据库技术考点.doc
文本预览下载声明
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
显示全部