问答题
试题二(15 分)
阅读以下说明和表,回答问题1 至问题4,将解答填入答题纸的对应栏内。
[说明]
某公司信息管理系统的需求分析和部分关系模式设计的结果描述如下:
1.公司有多个部门,每个部门有一名负责人、一间办公室、一部电话、多名职员,每个职员最多属于一个部门,负责人也是一名公司职员。
2.公司职员的月工资大于等于1000 元且小于等于8000 元。
3.数据库的部分关系模式设计如下:
职员(职员号,职员姓名,月工资,部门号,办公室,电话)
部门(部门号,部门名,负责人代码,任职时间)
4.“职员”和“部门”的关系示例分别如表2-1 和表2-2 所示。
[表2-1]

[表2-2]
问答题
[问题1](4 分)
根据上述说明,请给出
(1)“职员”关系模式的主键和外键。
(2)“部门”关系模式的主键和外键。
【正确答案】(1)主键:职员号(1 分) 外键:部门号(1 分)
(2)主键:部门号,或部门名(1 分) 外键:负责人代码(1 分)
【答案解析】
问答题
[问题2](4 分)
【正确答案】(a)PRIMARYKEY
(b)FOREIGN KEY(部门号) REFERE|NCES 部门
(c)count(*),Sum(月工资),Avg(月工资)
(d)GROUP by 部门号HAVING
注:以上答案中的单词可以小写。
【答案解析】
问答题
[问题3](3 分)
对于表2-1、表2-2 所示的“职员”和“部门”关系,请指出下列各行是否可以插入“职员”关系,为什么?
【正确答案】(1)该行不能插入“职员”关系,它违反了用户定义完整性中月工资的取值范围必须大于:等于1000 元,小于等于8000 元。(1 分)
(2)该行不能插入“职员”关系,因为职员号“60802”在表2-1 中已存在,违反了实体完整性中主键必须唯一区分关系中的每一个属性。(1 分)
(3)该行可以插入“职员”关系,尽管部门号、电话和办公室为空,但是它表示该职员没有分配到某个部门。(1 分)
【答案解析】
问答题
[问题4](4 分)
原来的“职员”关系模式存在什么问题?在不增加新关系模式的前提下,请给出修改后的“职员”和“部门”关系模式。
【正确答案】“职员”关系模式主要的问题是:数据存在大量冗余且可能产生数据修改的不一致。
修改后的关系模式为:
职员(职员号,职员姓名,月工资,部门号)
部门(部门号,部门名,办公室,电话,负责人代码,任职时间)
【答案解析】