某医院管理系统部分关系模式为:科室(科室号 科室名 负责人 电话) 病患(病历号 姓名 住址 联系电
某医院管理系统部分关系模式为:科室(科室号,科室名,负责人,电话)、病患(病历号,姓名,住址,联系电话)和职工(职工号,职工姓名,科室号,职位,住址,联系电话)。假设每个科室有一位负责人和一部电话,每个科室有若干名职工,一名职工只属于一个科室;一个医生可以为多个病患看病;一个病患可以由多个医生多次诊治;职位有医生、护士和其他。
a.科室和职工的所属联系类型是 (37),病患和医生的就诊联系类型是 (38)。科室关系的主键和外键分别为 (39)。对于就诊联系最合理的设计是(40),就诊关系的主键是(41)。
(37)
A.1:1
B.1:n
C.n:1
D. n:m
(38)
A.1:1
B.1:n
C.n:1
D.n:m
(39)
A.科室号、科室名
B.科室名、科室号
C.科室名、负责人
D.科室号、负责人
(40)
A.就诊(病历号,职工号,就诊情况)
B.就诊(病历号,职工姓名,就诊情况)
C.就诊(病历号,职工号,就诊时间,就诊情况)
D.就诊(病历号,职工姓名,就诊时间,就诊情况)
(41)
A.病历号,职工号
B.病历号,职工号,就诊时间
C.病历号,职工姓名
D.病历号,职工姓名,就诊时间
b.若科室关系中的科室名是唯一的,并要求指出外码。请将下述SQ1语句的空缺部分补充完整。
CREATE TABLE科室(科室号CHAR(3) PRIMARYKEY,
科室名CHAR(10) (42) ,
负责人CHAR(4),
电话CHAR(20),
(43) );
(42)
A.NOT NULL
B.UNIQUE
C. KEY UNIQUE
D.PRIMARY KEY
(43)
A.PRIMARYKEY(科室号)NOT NULL UNIQUE
B.PRIMARY KEY(科室名)UNIQUE
C.FOREIGN KEY(负责人)REFERENCES职工(职工姓名)
D.FOREIGN KEY(负责人)REFERENCES职工(职工号)
-
参考答案:B,D,D,C,B,B,D试题(37)~(43)分析本题考查数据库基本概念、数据库设计基础知识以及SQL语言。试题(37)、(38)考查数据库联系类型方面的基本概念。根据题意“每个科室有若干名职工,一名职工只属于一个科室”,因此科室和职工的所属联系类型是1:n的,试题(37)的正确答案是B。又因为“一个医生可以为多个病患看病;一个病患可以由多个医生诊治”,因此病患和医生的就诊联系类型是n:m的,试题(38)的正确答案是D。试题(39)考查数据库范式方面的基本概念。科室和病患关系都不属于第三范式的原因是:科室关系的主键是科室号,非主属性“科室名,负责人,电话”虽然不存在对键的部分函数依赖,但是存在传递依赖,即科室号→科室名→电话;病患关系的主键是病历号,非主属性“姓名,住址,联系电话”,虽然不存在对键的部分函数依赖,但是存在传递依赖,即病历号→姓名→(住址,联系电话)。综上分析,试题(39)正确的答案是D。试题(40)、(41)考查数据库设计方面的基础知识。就诊联系是多对多联系,对于多对多联系只能转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系所关联的两个多方实体的码及联系的属性,关系的码是多方实体的码构成的属性组。另外,由于病患会找多个医生为其诊治,在就诊关系模式的设计时需要加上就诊时间,以便唯一区分就诊关系中的每一个元组,即就诊关系模式的主键为(病历号,职工号,就诊时间)。综上分析,试题(40)正确的答案是C,试题(41)正确的答案是B。试题(42)正确的答案是B,因为试题要求科室名是唯一的,由于科室关系中负责人来自职工,因此应该用UNIQUE限定。试题(43)正确的答案是D,因为职工关系的主键是职工号,所以科室关系的外键负责人需要用FOREIGN KEY(负责人)REFERENCES职工(职工号)来约束。这样科室关系的完整的SQL语句如下:CREATE TABLE科室(科室号CHAR (3) PRIMARY KEY,科室名CHAR (10) UNIQUE,负责人CHAR (4),电话CHAR(20)) FOREIGN KEY(负责人)REFERENCES职工(职工号));参考答案(37)B (38)D (39)D (40)C (41)B (42)B (43)D
