阅读以下说明和关系表,回答问题1~5。[说明] 已知某儿童医院的医疗数据库的模式如下: PATIENT (PNUM,PNAME,SEX,AGE) DOCTOR (DNUM,DNAME,DEPT) ORDER (PNUM,DNUM,NUMBER) 其中PNUM表示病人号,PNAME表示病人姓名,SEX表示病人的性别,AGE表示病人的年龄,DNUM表示医生工作号,DNAME表示医生的姓名,DEPT表示医生所在的科室, NUMBER表示医生给病人所看病的次数。 试定义下列完整性约束:
问答题
在PATIENT中插入病人的性别时必须为“男”或“女”,年龄在1~18岁之间。
【正确答案】正确答案:在定义PREATE时使有检查子句: CREATE TABLE PATIENT ( PNUM CHAR(4), PNAME CHAR(S) NOT NULL, SEX CHAR (2), AGE SMALLINT, PRIMARY KEY( PNUM), CHECK( SEX: '男'OR SEX = '女', CHECK(AGE > =0 AND AGE < = 18) );
【答案解析】
问答题
在ORDER中插入元组时,其中的DNUM和PNUM必须出现在PATIENT和DOCTOR中。
【正确答案】正确答案:在定义ORDER时使用权用外键约束 CREATE TABLE ORDER ( PNUM CHAR(4), DNUM CHAR(4), NUMBER REAL, PRIMARY KEY ( PNUM, DNUM), PRIMARY KEY ( PNUM ) REFERENCES PATIENT( PNUM), PRIMARY KEY (DNUM) REFERENCES DOCTOR(DNUM), )
【答案解析】
问答题
在ORDER中修改NUMBER的值必须大于0。
【正确答案】正确答案:在定义ORDER时加入检查子句 CHECK( NUMBER > 0)
【答案解析】
问答题
删除—个PATIENT中的一个元组时,必须将关系ORDER中那些具有相同的PNUM值的元组全部删除。
【正确答案】正确答案:在定义ORDER时使用外键子句: FOREIGN KEY ( PNUM ) REFERENCES PATIENT(PNUM) ON DELETE CASCADE
【答案解析】
问答题
在修改DOCTOR中的某个DNUM时,必须同时将ORDER中那些的DNUM的值页修改为新值。
【正确答案】正确答案:在定义ORDER时使作外键子句: FOREIGN KEY ( DNUM ) REFERENCES PATIENT(DNUM) ON UPDATE CASCADE
【答案解析】