某医院管理系统部分关系模式为:科室(科室号,科室名,负责人,电话)、病患(病历号,姓名,住址,联系电话)和职工(职工号,职工姓名,科室号,职位,住址,联系电话)。假设每个科室有一位负责人和一部电话,每个科室有若干名职工,一名职工只属于一个科室;一个医生可以为多个病患看病;一个病患可以由多个医生多次诊治;职位有医生、护士和其他。
a.科室和职工的所属联系类型是( ),病患和医生的就诊联系类型是( )。科室关系的主键和外键分别为( )。对于就诊联系最合理的设计是( ),就诊关系的主键是( )。
b.若科室关系中的科室名是唯一的,并要求指出外码。请将下述SQL语句的空缺部分补充完整。
CREATE TABLE科室(科室号CHAR(3) PRIMARYKEY,
科室名CHAR(10)( ),
负责人CHAR(4),
电话CHAR(20),
( ));
问题1选项
A.1:1
B.1:n
C.n:1
D.n:m
问题2选项
A.1:1
B.1:n
C.n:1
D.n:m
问题3选项
A.科室号、科室名
B.科室名、科室号
C.科室名、负责人
D.科室号、负责人
问题4选项
A.就诊(病历号,职工号,就诊情况)
B.就诊(病历号,职工姓名,就诊情况)
C.就诊(病历号,职工号,就诊时间,就诊情况)
D.就诊(病历号,职工姓名,就诊时间,就诊情况)
问题5选项
A.病历号,职工号
B.病历号,职工号,就诊时间
C.病历号,职工姓名
D.病历号,职工姓名,就诊时间
问题6选项
A.NOT NULL
B.UNIQUE
C.KEY UNIQUE
D.PRIMARY KEY
问题7选项
A.PRIMARYKEY(科室号)NOT NULL UNIQUE
B.PRIMARY KEY(科室名)UNIQUE
C.FOREIGN KEY(负责人)REFERENCES职工(职工姓名)
D.FOREIGN KEY(负责人)REFERENCES职工(职工号)
第1题:B
第2题:D
第3题:D
第4题:C
第5题:B
第6题:B
第7题:D
本题主要考查关系模式的基础知识。
在本题中,题目告诉我们每个科室有一位负责人和若干名职工,而一名职工只属于一个科室,那么很容易我们就能知道科室与职工的所属联系类型为1:n。
另外,题目告诉我们一个医生可以为多个病患看病,一个病患可以由多个医生多次诊治,所以病患与医生的就诊联系类型为多对多。
科室关系模式的主键无疑是科室号,因为它能唯一标识一条记录,而它的外键应该是负责人,负责人也是职工,而这里应该用职工号的标识负责人的属性值,因此负责人应该是外键。
根据题目意思,就诊应该是病患与医生之间的联系,它们之间的联系是多对多,因此其联系要转换为独立的关系模式时,应该包含病患和医生关系模式的主键及自身的一些属性,如就诊时间,就诊情况。而病患的主键是病历号,而职工关系模式的主键为职工号,因此就诊关系模式为就诊(病历号,职工号,就诊时间,就诊情况),而该关系模式的主键是(病历号,职工号,就诊时间),因为这才能唯一标识一条记录。至于主键为什么不是(病历号,职工号),是因为存在同一个病人多次看同一个医生的情况,所以(病历号,职工号)不能唯一标识一条记录。
题目告诉我们科室关系中的科室名是唯一的,并要求指出外码,因此后两空应分别指出科室名是唯一的和指出外码,指出科室名是唯一的需要用到关键字UNIQUE,在前面我们知道科室关系的外码是负责人,因此指出其外码的语句为FOREIGN KEY(负责人)REFERENCES职工(职工号)。