参考答案:
【问题1】 图2-1 补充完整的实体联系图 【问题3】
(1)业主编号,房号
主键:房号
外键:无
(2)员工号,所在部门号
主键:员工号
外键:所在部门号
(3)部门号,部门负责人
主键:部门号
外键:部门负责人
(4)收费类型,单位,单价
主键:收费类型
外键:无
(5)房号,业主编号,收费日期,数量
主键:房号,业主编号,收费日期
外键:房号,员工号
【问题2】
(a)n,或m,或*
(b)n,或m,或*
(c)1
(d)n,或m,或*
(e)1
(f)n,或m,或*
业主关系属于第2范式。
问题是当某业主有多套住房时,属性“业主编号,姓名,房屋面积,工作单位,联系电话”等信息在业主关系表中重复存储,存在数据冗余。
详细解析:
【问题1】
根据题意,业主关系中信息主要包括:业主编号、姓名、房号、房屋面积、工作单位、联系电话等,因此,空(1)应填写“业主编号,房号”。又因为房号可唯一标识一条业主信息,所以以“房号”为主键。完整的关系模式如下:
业主(业主编号,房号,姓名,房屋面积,工作单位,联系电话)
根据题意,员工信息主要包括:员工号、姓名、出生年月、性别、住址、联系电话、所在部门号、职务和密码等,因此,空(2)应填写“员工号,所在部门号”。又因为员工号可唯一标识一条员工信息,所以“员工号”为主键。根据题意,一个员工只能属于一个部门,“所在部门号”应参照部门关系的“部门号”,因此,“所在部门号”为外键。完整的关系模式如下:
员工(员工号,所在部门号,姓名,出生年月,性别,住址,联系电话,职务,密码)
部门信息主要包括:部门号、部门名称、部门负责人、部门电话等,因此,部门关系的空(3)应填写“部门号,部门负责人”,显然该关系的主键为“部门号”。又因为部门关系的“部门负责人”应参照员工关系的“员工号”,因此,“部门负责人”为外键。
根据题意分析收费标准关系的空(4)应填写“收费类型,单位,单价”,这样收费信息关系可以根据收费类型(如水费、电费或物业费)去收费标准关系中查出单价来计算收费金额。显然收费标准关系的主键为“收费类型”。
收费信息的空(5)应填写“房号,业主编号,收费日期”,由于“房号,业主编号,收费日期”能唯一确定该关系的每一个元组,故“房号,业主编号,收费日期”为关系的主键。又由于房号、员工号分别为业主和员工关系的主键,故“房号,员工号”为收费信息关系的外键。完整的关系模式如下:
收费信息(房号,业主编号,收费日期,收费类型,收费金额,员工号)
【问题2】
根据题意,一个员工可以为多个业主收费,同样一个业主也可以有多个员工为其收费,因此业主和收费员之间的收费联系为多对多。故空(a)应填写*,空(b)应填写*。
因为一个员工只能属于一个部门,所以部门与员工之间的隶属联系是一对多的。故空(c)应填写1,空(d)应填写*。
根据题意,职务不同员工可以有不同的权限,所以权限和员工之间的合法联系是一对多。
又由于收费员收费时必需根据收费类型(如水费、电费或物业费)到收费标准关系中查出单价来计算收费金额,所以需要增加一个收费标准关系,以及收费标准到收费联系的连线。
【问题3】
由业主关系可知:房号→业主编号,业主编号→姓名,房号→姓名,所以存在传递依赖房号→姓名。故业主关系属于第2范式。业主关系存在的问题是当某业主有多套住房时,属性“业主编号,姓名,房屋面积,工作单位,联系电话”等信息在业主关系表中重复存储,存在数据冗余。