我是数据库新手,我目前正在处理一项任务,我必须从已规范化为 3NF 的表数据创建 ERD。
我的问题是我有一个来自 1NF 的复合键,但所有非键属性似乎都依赖于两个主键。现在我正在尝试将它从 2NF 转换为 3NF,但我不确定我是否仍然可以拥有复合密钥。
我是数据库新手,我目前正在处理一项任务,我必须从已规范化为 3NF 的表数据创建 ERD。
我的问题是我有一个来自 1NF 的复合键,但所有非键属性似乎都依赖于两个主键。现在我正在尝试将它从 2NF 转换为 3NF,但我不确定我是否仍然可以拥有复合密钥。
您可以拥有每种正常形式的复合键。
实际上,当您以 形式编写函数依赖项时A->B
,A和B都指的是属性集。这就是为什么它们是大写的;大写字母代表集合论中的集合。
...所有非键属性似乎都依赖于两个主键...
只有一个主键。在您的情况下,一个主键具有多个属性。
但是,可能有不止一个候选键。在规范化中,每个候选键都同样重要。例如,如果您尝试识别传递依赖关系,则需要寻找与每个候选键相关的传递性,而不仅仅是主键。