我目前在 DB 类中并正在通过规范化工作,并且遇到了一些麻烦。我希望我能得到一些帮助来解决这个问题。我已经搜索了最后 30 分钟,但没有找到任何有助于解决我的问题的东西,但希望我没有在寻找错误的东西。
问题如下:
考虑普遍关系
EMPLOYEE (ID, First, Last, Team, Dept, Salary)
具有以下功能依赖集 F
ID -> First
ID -> Last
First, Last -> ID
Last -> Team
ID -> Dept
ID -> Salary
Salary -> Dept
识别候选键并将 Employee 分解为 3NF 中保留依赖关系的关系。
对于候选键,我很挣扎,因为在做边图时,每个属性都有传入的依赖项。没有没有出现在依赖项的 RHS 上的属性。我认为可能让我感到困惑的是,虽然ID确实决定了一切,但First, Last决定了ID. 那么ID两者First, Last都将成为候选键吗?
我知道解构,Last -> Team并且Salary -> Dept是可传递的,但ID具有直接依赖关系ID -> Dept并且ID-> Salary已经给出。
这是否意味着我只需要两张桌子,
(ID, First, Last, Salary)
并且
(Last, Team)?
或者基于上面的候选键问题,我需要
(ID, First, Last)
(ID, Salary, Dept)
(Last, Team)
让我知道是否需要任何其他信息。谢谢你。