很难看出他们之间的不同之处.我知道我们说2NF是"全部的关键",而3NF是"只是关键".

参考Smashery的这个伟大的答案:What are 1NF, 2NF and 3NF in database design?

3NF使用的示例与2NF完全相同-它是一个仅依赖于一个键属性的字段.3NF的示例与2NF的示例有何不同?

谢谢

推荐答案

Suppose that some relation satisifies a non-trivial functional dependency of the form A->B, where B is a nonprime attribute.

如果A不是超键但却是候选键的真子集,则违反2NF

如果A不是超键,则违反3NF

您已经注意到,3NF要求只是2NF要求的一个特例(但并不是真的很特殊).2NF本身并不是很重要.重要的问题是A是否是超密钥,而不是A是否恰好是候选密钥的某一部分.

Database相关问答推荐

Kusto:从一个表中复制行并追加到同一集群中的另一个表中

如何使用聚合管道从对象数组中获取正确的百分比

使用 Npgsql 执行年龄查询并在 .NET 应用程序中返回结果?

获取总和列的比率

将数据集上传到 Hub 时停止运行时会导致什么?

如何在 Angular 中使用 IndexedDB?

如何在 SQL Server 中将索引从一个表复制到另一个表

MongoDB 单文档大小限制为 16MB

在 Oracle 的 Check 语句中使用子查询

如何设计 SaaS 数据库?

MySQL workbench:如何将 mysql 数据库导出到 .sql 文件?

使用 java 查询 MySQL 数据库

Redis: Get key and value on expiration

JPA:处理 OptimisticLockException 的模式

C++ SQL 数据库库比较

使用 C3P0 的 JDBC 连接池

Android SQLite 数据库,为什么要删除表并在升级时重新创建

字符串列上的postgresql索引

为什么 OODBMS 不像 RDBMS 那样普遍?

Windows phone 7 的本地 Sql 数据库支持