某医院管理系统部分关系模式为:科室(科室号,科室名,负责人,电话)、病患(病历号,姓名,住址,联系电话)和职工(职工号,职工姓名,科室号,职位,住址,联系电话)。假设每个科室有一位负责人和一部电话,每个科室有若干名职工,一名职工只属于一个科室;一个医生可以

admin2012-05-25  35

问题 某医院管理系统部分关系模式为:科室(科室号,科室名,负责人,电话)、病患(病历号,姓名,住址,联系电话)和职工(职工号,职工姓名,科室号,职位,住址,联系电话)。假设每个科室有一位负责人和一部电话,每个科室有若干名职工,一名职工只属于一个科室;一个医生可以为多个病患看病;一个病患可以由多个医生多次诊治;职位有医生、护士和其他。
a.科室和职工的所属联系类型是(37),病患和医生的就诊联系类型是(38)。科室关系的主键和外键分别为(39)。对于就诊联系最合理的设计是(40),就诊关系的主键是(41)。
b.若科室关系中的科室名是唯一的,并要求指出外码。
请将下述SQL语句的空缺部分补充完整。CREATETABLE科室(科室至号CHAR(3)PRIMARYKEY,科室名CHAR(10)(42),负责人CHAR(4),电话CHAR(20),(43));
(43)

选项 A、PRIMARYKEY(科室号)NOTNULLUNIOUE
B、PRIMARYKEY(科室名)UNIOUE
C、FOREIGNKEY(负责人)REFERENCES职工(职工姓名)
D、FOREIGNKEY(负责人)REFERENCES职工(职工号)

答案D

解析 本题考查数据库基本概念、数据库设计基础知识以及SQL语言。试题(37)、(38)考查数据库联系类型方面的基本概念。根据题意“每个科室有若干名职工,一名职工只属于一个科室”,因此科室和职工的所属联系类型是1:n的,试题(37)的正确答案是B。又因为“一个医生可以为多个病患看病;一个病患可以由多个医生诊治”,因此病患和医生的就诊联系类型是n:m的,试题(38)的正确答案是D。试题(39)考查数据库范式方面的基本概念。科室和病患关系都不属于第三范式的原因是:科室关系的主键是科室号,非主属性“科室名,负责人,电话”虽然不存在对键的部分函数依赖,但是存在传递依赖,即科室号→科室名→电话;病患关系的主键是病历号,非主属性“姓名,住址,联系电话”,虽然不存在对键的部分函数依赖,但是存在传递依赖,即病历号→姓名→(住址,联系电话)。综上分析,试题(39)正确的答案是D。试题(40)、(41)考查数据库设计方面的基础知识。就诊联系是多对多联系,对于多对多联系只能转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系所关联的两个多方实体的码及联系的属性,关系的码是多方实体的码构成的属性组。另外,由于病患会找多个医生为其诊治,在就诊关系模式的设计时需要加上就诊时间,以便唯一区分就诊关系中的每一个元组,即就诊关系模式的主键为(病历号,职工号,就诊时间)。综上分析,试题(40)正确的答案是C,试题(41)正确的答案是B。试题(42)正确的答案是B,因为试题要求科室名是唯一的,由于科室关系中负责人来自职工,因此应该用UNIOUE限定。试题(43)正确的答案是D,因为职工关系的主键是职工号,所以科室关系的外键负责人需要用FOREIGNKEY(负责人)REFERENCES职工(职工号)来约束。这样科室关系的完整的SQL语句如下:CREATETABLE科室(科室号CHAR(3)PRIMARYKEY,科室名CHAR(10)UNIQUE,负责人CHAR(4),电话CHAR(20))FOREIGNKEY(负责人)REFERENCES职工(职工号));
转载请注明原文地址:https://kaotiyun.com/show/y2TZ777K
0

相关试题推荐
最新回复(0)