我在这个 table 中检测到的函数依赖是否正确?
Are the functional dependencies I detected in this table correct?
对于这个基本问题,我很抱歉,但我对 3NF 有点吃力。这就是我所说的table:
User (Nickname, Email, Password, Name, Surname, DocumentId, Telephone, Avatar, Biography)
我认为此 table 未在第三范式中规范化,因为由于两个候选键(DocumentId 和 Telephone)存在多个函数依赖关系:
- DocumentId -> 昵称、电子邮件、密码、名字、姓氏、电话、头像、简历
- 电话 -> 昵称、电子邮件、密码、姓名、姓氏、文档 ID、头像、简历
我错了吗?我不太确定这些功能依赖性的正确性。他们正确吗?另外,我怎样才能规范化这个 table?
编辑:
指定,2个用户不能有相同的DocumentId,相同的Email,相同的电话号码。
所以这应该是另一个函数依赖:
- 电子邮件 -> 昵称、密码、姓名、姓氏、DocumentId、头像、简历、电话
https://en.wikipedia.org/wiki/Third_normal_form “如果所有属性(例如数据库列)在功能上仅依赖于主键,则称数据库关系(例如数据库 table)满足第三范式标准。 Codd 将此定义为第二范式中的关系,其中所有非素数属性仅依赖于候选键,并且对另一个键没有传递依赖性。"
从属性列表中,没有人可能知道您的数据是否为某种正常形式。你从哪里得到这个问题?这就是它告诉你的全部内容吗?
您没有告诉我们有关数据属性的足够信息,但我从属性名称中猜测有 'transitive dependencies'。
除 DocumentId
之外的所有属性看起来都与一个人有关,因此(例如)Email
可以识别一个人,并且与 [=12] 一样是候选键=].或者可能有人拥有不同的 Telephone
但共享一个 Email
?
而我希望每个人都有多个文档/DocumentId
。或者这是某个特定文档的 DocumentId
(例如他们的传记——但在那种情况下,属性 Biography
是什么?)
顺便说一句,引用 Codd 的话:不一定只有一把钥匙是 'primary'。对于 3NF,可以有多个键,每个其他属性都是相关的。 (另请注意,键可能是 compound/not 单个属性。)
对于这个基本问题,我很抱歉,但我对 3NF 有点吃力。这就是我所说的table:
User (Nickname, Email, Password, Name, Surname, DocumentId, Telephone, Avatar, Biography)
我认为此 table 未在第三范式中规范化,因为由于两个候选键(DocumentId 和 Telephone)存在多个函数依赖关系:
- DocumentId -> 昵称、电子邮件、密码、名字、姓氏、电话、头像、简历
- 电话 -> 昵称、电子邮件、密码、姓名、姓氏、文档 ID、头像、简历
我错了吗?我不太确定这些功能依赖性的正确性。他们正确吗?另外,我怎样才能规范化这个 table?
编辑:
指定,2个用户不能有相同的DocumentId,相同的Email,相同的电话号码。
所以这应该是另一个函数依赖:
- 电子邮件 -> 昵称、密码、姓名、姓氏、DocumentId、头像、简历、电话
https://en.wikipedia.org/wiki/Third_normal_form “如果所有属性(例如数据库列)在功能上仅依赖于主键,则称数据库关系(例如数据库 table)满足第三范式标准。 Codd 将此定义为第二范式中的关系,其中所有非素数属性仅依赖于候选键,并且对另一个键没有传递依赖性。"
从属性列表中,没有人可能知道您的数据是否为某种正常形式。你从哪里得到这个问题?这就是它告诉你的全部内容吗?
您没有告诉我们有关数据属性的足够信息,但我从属性名称中猜测有 'transitive dependencies'。
除 DocumentId
之外的所有属性看起来都与一个人有关,因此(例如)Email
可以识别一个人,并且与 [=12] 一样是候选键=].或者可能有人拥有不同的 Telephone
但共享一个 Email
?
而我希望每个人都有多个文档/DocumentId
。或者这是某个特定文档的 DocumentId
(例如他们的传记——但在那种情况下,属性 Biography
是什么?)
顺便说一句,引用 Codd 的话:不一定只有一把钥匙是 'primary'。对于 3NF,可以有多个键,每个其他属性都是相关的。 (另请注意,键可能是 compound/not 单个属性。)