参考答案:
【问题1】(8分)
(1)业主编号,房号 (0.5分)
主键:房号 外键:无 (0.5分)
(2)员工号,所在部门号 (1分)
主键:员工号 外键:所在部门号,职务 (1分)
(3)部门号,部门负责人 (1分)
主键:部门号 外键:部门负责人 (1分)
(4)收费类型,单位,单价 (0.5分)
主键:收费类型 外键:无 (0.5分)
(5)房号,业主编号,收费日期,数量 (1分)
主键:房号,业主编号,收费日期,收费类型
外键:房号,员工号,收费类型 (1分)
【问题2】(5分)
(a)n,或m,或* (0.5分)
(b)n,或m,或* (0.5分)
(c)1 (0.5分)
(d)n,或m,或* (0.5分)
(e)1 (0.5分)
(f)n,或m,或* (0.5分)
【问题3】(2分)
业主关系属于第2范式(1分);
存在的问题:当某业主有多套住房时,属性“业主编号,姓名,工作单位,联系电话”等信息在业主关系表中重复存储,存在数据冗余(1分)。
详细解析:
本题考查数据库概念结构设计、概念至逻辑结构转换及范式的判定等内容。
此类题目要求考生认真阅读题目,根据题目的需求描述,给出实体间的联系。
【问题1】
该问题要我们补充完整各关系模式中缺失的属性并给出各关系模式的主键和外键。要补充各关系模式缺失的属性应该根据题目的描述来完成。第1空是要我们补充业主缺失的属性,根据题目的描述,我们可以知道业主的信息有:业主编号,姓名,房号,房屋面积,工作单位,联系电话,因此第1空应该填(业主编号,房号);第2空是要我们补充员工缺失的属性,根据题目的描述,我们可以知道员工的信息有:员工号,姓名,出生年月,性别,住址,联系电话,所在部门号,职务和密码,因此第2空应该填(员工号,所在部门号);同样的道理我们可以知道第3空应该填(部门号,部门负责人),第5空应填(房号,业主编号,收费日期,数量)。第4空前面有所不同,它主要是通过给出的表来找出其属性的,从题目给出的收费标准表中我们可以看出收费标准应该有收费类型、单位、单价三个属性。如果题目再考难一点,可能会存在一些隐蔽点的属性,考试时也应该注意。
主键是能唯一标识一条记录的属性组,而外键是其他关系模式的主键。那么结合题目的描述我们可以知道,业主关系的主键为房号;员工关系的主键为员工号,因为它能唯一标识一个员工;部门关系的主键为部门号;收费标准关系的主键为收费类型;收费信息关系的主键为(房号,业主编号,收费日期,收费类型)。
外键是其他关系模式的主键。业主关系没有外键;员工关系的外键是所在部门号、职务,其中所在部门号是部门关系的主键,职务是权限关系的主键;部门关系的外键是部门负责人,部门负责人列出的是负责人的员工号,而员工号是员工关系的主键;收费标准没有外键;收费信息的外键有房号、员工号、收费类型,其中房号是业主关系的主键,员工号是员工关系的主键,收费类型是收费标准的主键。
【问题2】
根据题意可知,业主和收费员之间的联系类型为多对多;部门与员工之间的联系类型为1对多,因为一个部门可以有多个员工,而一个员工只能属于一个部门;员工与权限之间的联系类型为多对1,因为可以是多个员工拥有同一种权限,而一个员工只能拥有一种权限。
另外,本题中还要求我们补充完整图中实体、联系和联系的类型。从题目的描述我们可以知道,还有一个实体收费标准在图中没有给出,那么它肯定是与收费有关系的,因为收费要按照收费标准来进行,从题目的意思来看,不同的收费类型应采用不同的收费标准,因此收费标准的联系类型应该也是多端。
【问题3】
本题主要考查我们对范式定义的理解。由于在前面已经讲到,业主关系的主键是房号,是一个单属性的主键,那么就不存在部分依赖,因此是满足第2范式的,但在该关系中,房号-->业主编号,业主编号-->姓名,存在传递函数依赖,因此不满足第3范式。
当某业主有多套住房时,属性“业主编号,姓名,工作单位,联系电话”等信息在业主关系表中重复存储,存在数据冗余。