我已经获得了大学的任务,其中一个问题是描述3NF的重要性。
我理解规范化是为了消除数据冗余。
任何帮助或资源都会有很大的帮助。
答案 0 :(得分:0)
规范化是数据库设计的重要组成部分,由E F Codd在70年代定义。正如您所知,它减少了表(关系)中数据的重复,但它保持了参照完整性 - 信息是相同的,但可能更优化。它有成本 - 更多的表,与外键关系有关。这通常会在数据库上添加抽象。
由于您需要专门针对3NF,因此应确保:
- 关系R(表)是第二范式(2NF)
- R的每个非素数属性都不可传递地依赖于R的每个超级密钥。
该表应首先在第一范式(1NF)和第二范式(2NF)中标准化,因此最终在3NF中。 此外,表中的行应仅依赖"除了键#34;如果一组字段的内容适用于多个主键,则应将其放在另一个表中。
例如,如果您在拥有该员工家乡的数据库中有 employee 表,那么您可能会有几个与家乡纽约重复的行。这个家乡可以分为另一个表 hometown ,主键和列名,与员工相关(通过 EmployeeHometown 表),其中只有曾经被列入纽约(没有重复)。 在单独的桌子上检查5个家乡比通过100名员工获得他们的家乡要容易得多。