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

【正确答案】(1)主键:职员号 外键:部门号
(2)主键:部门号,或部门名 外键:负责人代码
【答案解析】
【正确答案】(a) PRIMARYKEY
(b) FOREIGN KEY(部门号),REFERENCES部门
(c) Count(*),Sum(月工资).Avg(月工资)
(d) GROUP by 部门号 HAVING count(*)
【答案解析】
【正确答案】(1)该行不能插入“职员”关系,它违反了用户定义完整性中月工资的取值范围必须大于等于1000元,小于等于8000元
(2) 该行不能插入“职员”关系,因为职员号“60802”在表3-27中已存在,违反了实体完整性中主键必须唯一区分关系中的每一个属性
(3) 该行可以插入“职员”关系,尽管部门号、电话和办公室为空,但是它表示该职员没有分配到某个部门
【答案解析】
【正确答案】“职员”关系模式主要的问题如下
数据冗余问题。因为某部门的职员人数有多少,其办公室和电话将要重复存入多少
数据修改不一致问题。因为某部门的办公室变了可能会导致某些职员的修改了,某些职员的未修改
将关系模式修改为:职员(职员号,职员姓名,月工资,部门号)
部门(部门号,部门名,负责人代码,任职时间,办公室,电话)
【答案解析】