3nf的重要性是什么

What is the importance of the 3nf

我接到了大学作业,其中一个问题是描述 3NF 的重要性。

我理解规范化是为了消除数据冗余。

任何帮助或资源都会有很大帮助。

规范化 是数据库设计的重要组成部分,由 E F Codd 在 70 年代定义。如您所知,它减少了 table(relation) 中的数据重复,但保持了参照完整性——信息相同但可能更优化。它有一个成本 - 更多 tables,与外键关系有关。这通常会在数据库上添加抽象。

由于您需要专门针对3NF,因此应确保:

  • The relation R (table) is in second normal form (2NF)
  • Every non-prime attribute of R is non-transitively dependent on every superkey of R.

table 应该首先在第一范式 (1NF) 和第二范式 (2NF) 中归一化,然后最终在 3NF 中归一化。 table 中的行也应该只依赖于 "Nothing but the key"。如果一组字段的内容适用于多个主键,则应将其放在另一个table.

例如,如果您在数据库中有 employee table,而该员工的家乡可能有多个与家乡 New York 相同的行。这个家乡可以分到另一个table 家乡 有主键和像名字的列,和员工相关(通过EmployeeHometown table),纽约只会列出一次(没有重复)。 在单独的 table 上检查 5 个家乡,比遍历 100 名员工,获取他们的家乡要容易得多。