【发布时间】:2013-12-13 11:57:28
【问题描述】:
我要求创建一个至少有 5 个表的图书馆系统的 3NF。根据我对标准化的理解,我做了这个。我只是想确认我的作品是否已经在 3NF 中标准化?或者我要怎么做才能在 3NF 中做到这一点?
【问题讨论】:
-
我唯一推荐的就是清理你的列名。在所有表中使用 BookID。
-
好的。这已经在 3NF 中了吗?
-
如果没有功能依赖列表,就无法真正评估模式是否处于任何特定的正常形式。即使没有 FD,我也怀疑 BorrowedBooks 表可能存在问题。
-
我认为这是一个学习练习,而不是真正的业务问题?首先,为自己准备一个可以绘制正确 ER 图的体面的建模工具。您的图表实际上没有用,因为它没有显示相关信息(缺少候选键、外键和基数)。没有看到模式应该满足的一组依赖项,没有人可以肯定地说关于 3NF。我猜这里有些东西可能违反了 3NF。但这只是基于列名的猜测。
-
基于列名和我对键的解释的最佳猜测——是的。但这并不能使它成为一个好的设计。
{OtherAuthor}邀请NULLs如果一本书有两个以上怎么办?自增键不是灵丹妙药,您需要候选键进行逻辑设计和考虑范式;然后稍后您可以在派生物理模型时添加代理键 (ID) - 例如{Book, Borrower, BorrowedDate}。
标签: database-design normalization database-normalization