数据库管理系统 第三范式 (3NF)

发表于 2021-12-18 11:53:51
第三范式 (3NF) 是什么意思?
第三范式 - 或 3NF - 是一组数据库规范化概念的一部分,其中还包括第一范式 (1NF) 和第二范式 (2NF)。

这些想法可以追溯到数据科学家 Edgar Codd 和他在 1970 年代的工作——为 IBM 工作,Codd 提出了这些概念来处理关系数据库工作。

这三种“规范形式”或规范化往往会使非专业数据库管理员或数学家的人感到困惑。

然而,这里有一个简单的方法来考虑第三范式,以及它之前的两个范式。

正如您可能想象的那样,与维度复杂性非常相似,第一范式与其后面的形式相比非常基本。对于第二范式也是如此。

以下是这三个连续概念中每一个的基本定义。

第一范式 (1NF)
第一个范式只是确保每个数据字段包含一个值,而不是一个复合值或多个值。

这相当容易理解,查看一个图表,例如,其中的数据表可能具有表内容的以下标识符 — 姓名、电话号码、州和国家/地区,以及标识记录编号的主键。

为了符合第一个范式,您需要浏览整个表格并确保这些表格都没有多个值。

第二范式 (2NF)
第二范式的想法并不那么直接或简单。

专家将第二范式定义为“消除重复组”和“消除数据库关系之间的任何部分依赖关系”。

如果这听起来令人困惑,您也可以将 2NF 视为“减少存储在内存中的冗余数据”的尝试。

例如,如果表中有一条记录标识了表上用户的给定状态,并且它被 100 个不同的用户引用了 100 次,那么您不希望单独存储所有这些冗余值。

您想要引用一次状态,并将其添加到这 100 个用户帐户中。您不希望将“管理员”一词存储在包含 100 个不同管理员的表中。这只是不好的数据卫生。

因此,当您遵循第二范式时,您正在重组表关系以确保它们相当独立,以实现此目标。

第三范式 (3NF)
现在,这是第三范式的定义:

“如果非素数属性没有传递依赖,则关系是第三范式的(并且也是第二范式......)”

这是重要的部分:非主要属性没有传递依赖。

此外,在符合 3NF 的表中,没有非主键属性与主键具有传递依赖关系。

同样,这与数据库表中项目之间的关系有关,但它更复杂。这是考虑第三范式的一种简单方法——它确保这些字段不会有基于更改的异常——管理插入、更新和删除。

可以说它保留了无损数据库转换,并且消除了功能依赖性。

所以总的来说,这是以正确的方式设计数据表的过程,以便每个值都具有独立性,并且您的程序更改不会在您执行它们时损坏数据表的其他部分。

当您考虑使用候选键和主键以这种方式设计数据库时,这很容易理解。

您还可以理解相互关联的三个级联范式——规范化按照这些步骤进行。

也许一个系统符合第一范式,但不符合其他两个。

但是,由于集合的先决条件性质,它不会仅符合第二或第三范式。

简而言之就是这样——同样,3NF 意味着记录的各个部分是独立的,因此更改不会导致意外后果。

这意味着在关系数据库设计中以不同的方式对数据进行排序。

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

Copyright©GMT+8, 2024-5-5 13:06

京ICP备2021033201号

京公网安备11010502050698号

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