database-normalization - 是否存在只有一个属性的关系是非素数的,并且关系在 2NF 而不是在 3NF?
问题描述
是否只有一个属性的关系是非素数(所有其他属性都是素数),并且关系在2NF 但不是在 3NF?
解决方案
如果我解释这个权利,你问这个:
“假设有一个只有一个非关键属性/列的关系/数据库表。该表是否有可能是第二个 NF/范式,但不是第三个?”
答案是否定的。具有一个非关键属性的关系也总是在第三个 NF 中。
你可以这样想条件1-3:
- 要在第一个 NF 中,表的属性值不能包含枚举,并且每个表行都必须是唯一的。
- [只有当表有复合键时,它才可能不在第二个 NF 中。]要在第二个 NF 中,不能有任何仅依赖于部分键的非键属性。不依赖于 FULL 键的每个非键属性必须与它们所依赖的键部分一起隔离到它们自己的关系中。(当然,原表中的key是没有变化的)
- [只有至少有两个非关键属性的表才可能不在第三个 NF 中。]要在第三个 NF 中,不能有任何仅依赖于其他非关键属性的非关键属性关键属性。同样,它们需要被隔离到它们自己的关系中,您通常需要为此创建一个密钥。在原始表中,您将留下一个外键。
如您所见,要使第三个 NF 失败,您至少需要两个非关键属性,因为一个需要依赖于另一个。如果非关键属性少于两个并且表已经在第二个 NF 中,那么它也将在第三个 NF 中。
推荐阅读
- php - 根据排名查找重复项
- html - 浏览器放大/缩小是否与不同的屏幕尺寸相同?
- java - Android Studio 3.1.3 错误:java.lang.ClassNotFoundException: org.gradle.api.internal.component.Usage
- symfony - 首次设置字段的时间戳
- django - 将 django 网站运行到服务器时,“模块”对象不可迭代
- .htaccess - 使用动态查询字符串将旧格式重写为新的动态等效格式
- navision - 在 NAVISION 女士发布项目日志后,如何修改页面 (31) 项目列表
- ios - iOS 12 深度数据捕获错误代码 11800
- c++ - 在 C++ 中打印 bool 数据类型的值
- pdf - PDF合并警告