参考答案:
【问题1】 【问题2】
联系名称可不做要求,但不能出现重名。
(1)
(a)部门号,名称
(b)编号,内容,接收人
(c)编号,标题
(d)公告编号,员工号(注:编号,员工号也正确)
(2)消息关系模式的主键:编号,接收人
外键:接收人、发送人
阅读公告关系模式的主键:公告编号,员工号
外键:公告编号,员工号
【问题3】
不属于命名冲突。因为这两个属性分别属于两个不同的关系模式,可以通过“关系名.属性名”区别,即可以用“消息.编号”和“公告.编号”来区别。
详细解析:
本题考查数据库概念结构设计及概念结构向逻辑结构转换的过程。
此类题目要求考生认真阅读题目对现实问题的描述,经过分类、聚集、概括等方法,从中确定实体及其联系。题目已经给出了4个实体,需要根据需求描述,给出实体间的联系。
【问题1】
根据题意“一个员工只对应一个岗位,但一个岗位可对应多名员工”,可以得出员工与岗位之间的对应联系类型为n:1。
由“一条消息可以发送给多个接收人,一个接收人可以接收多条消息”,可以得出员工与消息之间的收发联系类型为1 :n:m。
由“一份公告对应一个发布部门,但一个部门可以发布多份公告”,可以得出部门与公告间的所属联系类型为1 :n。
由“一份公告可以有多个员工阅读,一个员工可以阅读多份公告”,可以得出公告与员工之间的阅读联系类型为n:m。
完整的E-R图如下:
【问题2 】
(1)根据题意,完整的关系模式如下:
部门(部门号,名称,部门经理,电话)
员工(员工号,姓名,岗位号,部门号,电话,密码)
岗位(岗位号,名称,权限)
消息(编号,内容,接收人,消息类型,接收时间,发送时间,发送人)
公告(编号,标题,名称,内容,发布部门,发布时间)
阅读公告(公告编号,员工号,阅读时间)
(2)消息关系模式和阅读公告关系模式的主键和外键的分析如下:
根据题意,消息关系模式的主键为(编号,接收人)。由于接收人、发送人都应参考员工关系的员工号,因此接收人、发送人为消息关系的外键。根据题意,阅读公告关系模式的主键为(公告编号,员工号)。外键为公告编号,员工号。因为公告编号应参考公告关系的编号,而编号是公告关系的主键,所以公告编号是阅读公告关系的外键;又因为员工号应参考员工关系的员工号,而员工号是员工关系的主键,所以公告关系的员工号为外键。
【问题3】
不属于命名冲突。因为这两个属性分别属于两个不同的关系模式,可以通过“关系名.属性名”区别,即可以用“消息.编号”和“公告.编号”来区别。