使用旧的教科书来更好地掌握数据库概念,我不确定我是否具有以下正确性。任何人都可以确认或解释我可能做错了什么吗?
答案 0 :(得分:2)
我发现这种暧昧和误导,所提供的数据无济于事;看来这个例子中的大多数人都喜欢自己。
特定项目的员工参加了指定日期的会议。
项目每天最多会面一次。
- 醇>
只有一个Employee代表给定项目,但可以将Employee分配给多个项目。
Q1:这只是一个项目的会议,还是来自不同项目的人的会议?
Q2:什么是项目?这是否意味着某一天可以召开一系列项目会议,或者当天所有项目只召开一次会议?举个例子,(Tim, FQLIMS, '8/4/2013') , (Tim, MSFCCS, '8/4/2013')
;蒂姆参加了一次代表两个项目的会议,还是他当时参加了两次项目会议?
问题3:分配了什么?表示项目与分配项目相同吗?每个项目是一个人,还是一个项目负责人和更多人分配给它?
所以,解释{Employee, Project, Date}
的方法不止一种,这是我看到的两个版本:
项目由员工在日期员工会议上代表。
员工参加了日期的项目会议。
显然,数据集不够,每个项目只列出一次,而约束则允许每天召开一次会议。不可能从这样的数据集中声明函数依赖性,因此必须使用约束的语义,并且在这个例子中它是不明确的。
我将仅使用版本1,因为小数据集支持它。
版本1
项目由员工在日期的员工会议上代表。
1.0项目由员工代表。
每个项目仅由一名员工代表。 可能有多个项目由同一个Employee表示。
这显然意味着FD {Project} -> {Employee}
1.1项目在一个日期的员工会议上有代表。
每个项目在特定日期日期的员工会议上最多只能出席一次。
这导致
PrjEmp {Project, Employee} -- Project is represented by Employee
KEY {Project}
Meeting {Project, Date} -- Project was represented at staff meeting on Date.
KEY {Project, Date}