查找所有功能依赖项
Find all functional dependencies
我有一个很长的练习,一切都依赖于列出所有功能依赖项的第一部分。但这太模棱两可了——你能帮我列出它们吗?当然,我做了一些事情,但我觉得还不够。
这是我的 FD:
SocialIN -> EmpName
ProjectID -> ProjectName
ProjectID -> Location
后面还要转成BCNF,不想漏掉任何东西。我几个小时都找不到依赖关系。我错过了一些吗?我放了没用的东西吗?
请注意,在数据中,SocialIN 值 987 映射到 "Giroux, Jill" 和 "Williams, Tot",因此如果数据正确,则 SocialIN ⟶ EmpName FD 不正确。事实上,我认为 table/image 中的数据是错误的。很可能存在错误,Jill 和 Tot 应该具有不同的 SocialIN 值。然后,作为 Mike Sherrill 'Cat Recall' ,{SocialIN, ProjectID} ⟶ Hours FD 应该成立。
但是,假设数据正确,则 FD EmpName ⟶ SocialIN 成立(而不是反向 FD),FD {EmpName, ProjectID} ⟶ Hours 成立。
不仅 FD ProjectID ⟶ ProjectName 保存在数据中,而且 ProjectName ⟶ ProjectID 也保存在显示的数据中。鉴于此,ProjectName ⟶ Location 也成立,{EmpName, ProjectName} ⟶ Hours 也成立。
还有多个琐碎的FD不值得一提(比如EmpName ⟶ EmpName)。
因此,我认为给定数据中完整的非平凡 FD 集是:
- EmpName ⟶ SocialIN
- 项目 ID ⟶ 项目名称
- 项目 ID ⟶ 位置
- 项目名称 ⟶ 项目 ID
- 项目名称⟶位置
- {EmpName, ProjectName} ⟶ 小时
- {EmpName, ProjectID} ⟶ 小时数
如果 Gill 和 Tot 的映射不正确并且它们具有不同的 SocialIN 值,那么您可以添加:
- SocialIN ⟶ EmpName
- {SocialIN, ProjectName} ⟶ 小时
- {SocialIN, ProjectID} ⟶ 小时
我有一个很长的练习,一切都依赖于列出所有功能依赖项的第一部分。但这太模棱两可了——你能帮我列出它们吗?当然,我做了一些事情,但我觉得还不够。
这是我的 FD:
SocialIN -> EmpName
ProjectID -> ProjectName
ProjectID -> Location
后面还要转成BCNF,不想漏掉任何东西。我几个小时都找不到依赖关系。我错过了一些吗?我放了没用的东西吗?
请注意,在数据中,SocialIN 值 987 映射到 "Giroux, Jill" 和 "Williams, Tot",因此如果数据正确,则 SocialIN ⟶ EmpName FD 不正确。事实上,我认为 table/image 中的数据是错误的。很可能存在错误,Jill 和 Tot 应该具有不同的 SocialIN 值。然后,作为 Mike Sherrill 'Cat Recall'
但是,假设数据正确,则 FD EmpName ⟶ SocialIN 成立(而不是反向 FD),FD {EmpName, ProjectID} ⟶ Hours 成立。
不仅 FD ProjectID ⟶ ProjectName 保存在数据中,而且 ProjectName ⟶ ProjectID 也保存在显示的数据中。鉴于此,ProjectName ⟶ Location 也成立,{EmpName, ProjectName} ⟶ Hours 也成立。
还有多个琐碎的FD不值得一提(比如EmpName ⟶ EmpName)。
因此,我认为给定数据中完整的非平凡 FD 集是:
- EmpName ⟶ SocialIN
- 项目 ID ⟶ 项目名称
- 项目 ID ⟶ 位置
- 项目名称 ⟶ 项目 ID
- 项目名称⟶位置
- {EmpName, ProjectName} ⟶ 小时
- {EmpName, ProjectID} ⟶ 小时数
如果 Gill 和 Tot 的映射不正确并且它们具有不同的 SocialIN 值,那么您可以添加:
- SocialIN ⟶ EmpName
- {SocialIN, ProjectName} ⟶ 小时
- {SocialIN, ProjectID} ⟶ 小时