设有员工实体Employee(员工号,姓名,性别,年龄,电话,家庭住址,家庭成员,关系,联系电话)。其中,“家庭住址”包括邮编、省、市、街道信息;“家庭成员,关系,联系电话”分别记录了员工亲属的姓名、与员工的关系以及联系电话,且一个员工允许有多个家庭成员。
员工实体EmPloyee的主键为 (40) ;该关系属于 (41) ;为使数据库模式设计更合理,对于员工关系模式Employee (42) 。
A.只允许记录一个亲属的姓名、与员工的关系以及联系电话
B.可以不作任何处理,因为该关系模式达到了3NF
C.增加多个家庭成员、关系及联系电话字段
D.应该将家庭成员、关系及联系电话加上员工号作为一个独立的模式
参考答案:D
解析:
[分析]: 因为一个员工可以有多个家庭成员,为了唯一区分Employee关系中的每一个元组,其主键应为(员工号,家庭成员)。
在关系模式Employee中,员工号→(姓名,性别,年龄,电话,家庭住址),即非主属性(姓名,性别,年龄,电话,家庭住址)不完全依赖于码(员工号,家庭成员),所以,Employee属于1NF。1NF存在四个问题:冗余度大、引起修改操作的不一致性、插入异常和删除异常。例如,如果某员工有3个家庭成员,那么该员工关系中“员工号,姓名,性别,年龄,电话,家庭住址”将重复出现3次,为了将数据库模式设计得更合理,应该消除冗余,即将家庭成员、关系、联系电话加上员工号设计成为一个独立的模式。