数据库规范化基础知识

如何正常化数据库

程式化数据库流程图

Enot -Poloskun / Getty Images

如果您一直在使用数据库,您已经听到了术语正常化的机会。也许有人问你,“数据库是否正常化?”或者“是的BCNF.?“正常化通常被认为是一个奢侈品只有学者有时间。但是,知道标准化的原则并将它们应用于日常数据库设计任务并不是所有复杂的,而且它可能会大大提高DBMS的性能。

在本文中,我们将介绍正常化的概念,并简要介绍最常见的正常形式。

什么是正常化?

归一化是有效地组织数据库中的数据的过程。归一化过程有两个目标:消除冗余数据(例如,在多个表中存储相同的数据)并确保数据依赖项有意义(仅在表中存储相关数据)。这两个都是值得的目标,因为它们减少了数据库消耗的空间量,并确保数据逻辑存储。

正常的形式

数据库社区开发了一系列指导原则,以确保数据库已归一化。这些被称为正常形式,并从一个(最低形式的归一化形式,称为第一正常形式或1NF)到5(第五正常形式或5nF)。在实际应用中,您通常会看到1nf,2nf和3nf,以及偶尔的4nf。第五个正常形式非常罕见,本文将不会讨论。

在我们开始对正常形式讨论之前,重要的是指出他们只是指导方针和指导方针。偶尔,有必要偏离他们以满足实用的业务需求。但是,当发生变化时,可以评估他们在系统上可能拥有的任何可能的后果并占潜在不一致的必要性。也就是说,让我们探索正常形式。

第一个正常形式(1nf)

第一个正常形式(1nf)设置有组织数据库的基本规则:

  • 消除来自同一表的重复列。
  • 为每组相关数据创建单独的表,并使用唯一列或一组列标识每行(首要的关键)。

第二正常形式(2nf)

第二正常形式(2NF)进一步解决了去除重复数据的概念:

  • 满足第一正常形式的所有要求。
  • 删除应用于多个表的数据的数据子集,并将它们放在单独的表中。
  • 通过使用,在这些新表和他们的前辈之间创建关系外钥匙

第三正常形式(3nf)

第三正常形式(3nf)进一步前进:

  • 满足第二正常形式的所有要求。
  • 删除不依赖于主键的列。

Boyce-Codd正常形式(BCNF或3.5NF)

Boyce-Codd正常形式,也称为“第三和半(3.5)正常形式”,增加了一个要求:

  • 满足第三正常形式的所有要求。
  • 每个决定者都必须是一个候选人钥匙

第四正常形式(4nf)

最后,第四正常形式(4NF)有一个额外要求:

  • 满足第三正常形式的所有要求。
  • 如果没有,那么关系就在4NF中多价依赖性

请记住,这些规范化指南是累积的。对于数据库,必须首先满足1nf数据库的所有标准。

我应该正常化吗?

虽然数据库归一化通常是一个好主意,但它不是一个绝对要求。有一些情况刻意违反规则的规则是一个很好的做法。

如果您想确保数据库正常化,请从学习如何将数据库放入第一个正常形式

此页面有用吗?