伙计们,您将如何创建此表的第二种形式(主键是:{isbn,copy}):
isbn AB-1234-X
authorID IC45
authorName I.Conn
title最终幕
副本2
分类Detectivefiction
userID xyz44
2 回答
将您的分类和作者放在单独的表中,如下所示:
书桌:
伊斯本 AB-1234-X
作者ID IC45
标题最后的帷幕
复制2
分类ID 1
用户ID xyz44
作者表:
作者ID
作者姓名
分类:
分类ID
分类名称
一个关系在 2NF iff
- 它在 1NF 中,并且
- 每个非主要属性都依赖于每个候选键的整体(而不仅仅是任何候选键的一部分)
唯一的候选键是 {isbn, copy}。所以问题变成了三个问题。
- 这种关系在 1NF 中吗?
- 是否有任何非主属性 {authorID、authorName、title、classification、userID} 仅依赖于 {isbn}?
- 是否有任何非主属性 {authorID、authorName、title、classification、userID} 仅依赖于 {copy}?
你怎么看?
之后 。. .
然后,我将创建具有属性的单独表:isbn、autorID、autorName、title、分类和另一个具有属性的表:isbn、copy、userID。
是的。在“关系说话”中,您用这两个投影替换了原始关系 R。
- R 1 = { isbn, 复制, 用户 ID}
- R 2 = { isbn , authorid, authorname, 标题, 分类}
如果你做的正确,你应该能够通过在 {isbn} 上加入 R 1和 R 2来再次创建 R。
现在 R 1和 R 2都在 2NF 中。(我认为这是作业问题的重点。)您可能需要考虑 R 1和 R 2是否在
- 3NF
- BCNF
- 4NF
- 5NF
还是以后。. .
非正式地说,一个关系在 3NF iff
- 它在 2NF 中,并且
- 没有传递依赖。
当我说“它在 2NF 中”时,我的意思是所讨论的关系在 2NF 中,并且它还没有在3NF、BCNF、4NF 或 5NF 中。
R 1和R 2的范式是什么?你会想解释你的推理,否则你的讲师可能会让你看起来很愚蠢。我们不希望这样。
- R 1 = { isbn, 复制, 用户 ID}
- R 2 = { isbn , authorid, authorname, 标题, 分类}
再晚一点。. .
R 1在 5NF 中。R 2在 2NF 中。
R 2不在 3NF 中,因为“isbn”和“authorname”之间存在传递依赖。
- isbn->authorid,和
- authorid->作者名
通过用这两个投影(R 3和 R 4)替换 R 2来消除这种传递依赖。
- R 1 = { isbn, copy , userid} (5NF)
- R 3 = { isbn , authorid, 标题, 分类}
- R 4 = { authorid , authorname}
我认为标题和分类之间没有功能依赖关系。