数据管理正常化

发表于 2021-12-18 09:36:46
标准化是什么意思?
规范化是重新组织数据库中的数据以满足两个基本要求的过程:

没有数据冗余,所有数据只存储在一处。
数据依赖是逻辑的,所有相关的数据项都存储在一起。
规范化很重要,原因有很多,但主要是因为它允许数据库占用尽可能少的磁盘空间,从而提高性能。

规范化也称为数据规范化。

数据规范化期间的第一个目标是通过将数据冗余逻辑分组在一起来检测和删除所有重复数据。每当一个数据依赖于另一个数据时,这两个数据应该存储在该数据集中的邻近位置。

通过消除所有异常并将非结构化数据组织成结构化形式,规范化极大地提高了数据集的可用性。可以更轻松地可视化数据,更有效地提取洞察力,并且可以更快地更新信息。随着冗余合并在一起,错误和重复进一步使数据更加混乱的风险降低了。最重要的是,规范化的数据库占用更少的空间,摆脱了许多磁盘空间问题,并显着提高了其整体性能。

下面列出了三种主要的归一化类型。注:“NF”是指“范式”。

第一范式 (1NF)
1NF 中的表必须遵守一些规则:

每个单元格必须只包含一个(原子)值。

表中的每一列都必须唯一命名。

列中的所有值都必须属于同一个域。

第二范式 (2NF)
2NF 中的表必须在 1NF 中并且没有任何部分依赖(例如,每个非主属性必须依赖于表的主键)。

第三范式 (3NF)
3NF 中的表必须在 2NF 中,并且对主键没有传递函数依赖。

以下两个 NF 也存在,但很少使用:

博伊斯-科德范式 (BCNF)
3NF 的更高版本,Boyce-Codd 范式用于解决如果存在一个以上候选键可能导致的异常。也称为 3.5 范式,BCNF 必须在 3NF 中并且在所有函数依赖项( X → Y )中,X 应该是一个超级键。

第四范式(4NF)
对于 4NF 中的表,它必须在 BCNF 中并且没有多值依赖关系。

前三个 NF 是由关系数据模型之父 EF Codd 在 1970 年代初期派生的。当今几乎所有的关系数据库引擎都使用他的规则。

一些关系数据库引擎并不严格满足所有规范化规则的标准。一个例子是 Microsoft 在 Access 2007 数据库应用程序中引入的多值字段功能。关于这些功能现在是否使这些应用程序失去成为真正的关系数据库管理系统的资格,数据库界一直存在激烈的争论。

帮助中心|标签云|免责声明|申请修改|世界地图|锐阔网

Copyright©GMT+8, 2024-5-2 17:25

京ICP备2021033201号

京公网安备11010502050698号

快速回复 返回顶部 返回列表