【笔记】数据库的六大范式及其相互关系 您所在的位置:网站首页 目前游戏中不能达成哪种关系 【笔记】数据库的六大范式及其相互关系

【笔记】数据库的六大范式及其相互关系

2024-07-09 19:33| 来源: 网络整理| 查看: 265

文章目录 概述第一范式-1NF第二范式-2NF第三范式总结

数据库范式_360百科

概述 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式。各种范式呈递次规范,越高的范式数据库冗余越小。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

满足最低要求的叫第一范式,简称1NF;在第一范式的基础上满足进一步要求的称为第二范式,简称2NF,其余范式以此类推。六大范式之间关系如下:

5 N F ⊂ 4 N F ⊂ B C N F ⊂ 3 N F ⊂ 2 N F ⊂ 1 N F 5NF \subset 4NF \subset BCNF \subset 3NF \subset 2NF \subset 1NF 5NF⊂4NF⊂BCNF⊂3NF⊂2NF⊂1NF

在这里插入图片描述 范式的严格程度按上面的层级关系依次递增,后面的范式必须在满足前面范式的基础上增加该范式独有规范才能称为满足该范式。

一般说来,数据库只需满足第三范式(3NF)就行了。

第一范式-1NF

定义:数据库表中的字段都是单一属性的,不可再分。

简单的说,每一个属性都是原子项,不可分割。(保证每列不可拆)

1NF是关系模式应具备的最起码的条件,如果数据库设计不能满足第一范式,就不称为关系型数据库。也就是说,只要是关系型数据库,就一定满足第一范式。

检查是否满足第一范式有如下几种方法:

属性的值是否超出定义的范畴(无关值)属性的定义是否存在重复或交叉检查是否有重复属性组(可拆分为多个属性)

例如:

时间(2020年12月13日 18:29:02)可以分为日期(2020年12月13日)和时间(18:29:02)地址(河北省张家口市桥东区朝阳西大街18号)可以分为省(河北省)市(张家口市)县/区(桥东区)地址(朝阳西大街18号)

仅用第一范式来规范表格是远远不够的,依然会存在数据冗余过大、删除异常、插入异常、修改异常的问题,此时就需要引入规范化概念,将其转化为更标准化的表格,减少数据依赖。

规范化: 低级的关系模式通过模式分解可以转化为若干个高一级范式的关系模式的集合,这个过程叫做规范化。

第二范式-2NF

定义:数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖,即符合第二范式。

简单来说:保证一张表只描述一件事情

函数依赖-百度百科。 如果一个表中某一个字段A的值是由另外一个字段或一组字段B的值来确定的,就称为A函数依赖于B。

2NF可以减少插入异常,删除异常和修改异常。

简单的说,一方面,第二范式肯定要满足第一范式,否则就没有必要谈第二范式。

另一方面,当某张表中的非主键信息不是由整个主键函数来决定时,即存在依赖于该表中不是主键的部分或者依赖于主键一部分的部分时,通常会违反2NF。

例如:学号决定了学生信息,订单编号好决定了订单信息,商品编号决定商品信息,这都是直接依赖(2NF可以容纳3NF所不可容纳的“传递依赖”?)

第三范式

定义:在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合3NF。

简单来说:保证每个属性都与主键直接相关、消除传递依赖、消除冗余:保证一种信息只在一个表中出现

例如:学号决定了学生信息,也决定了他所在的院系班级,但是他的院系班级是由学生这个主体为桥梁所决定的,存在传递依赖,因此需要单拉出一张表来存储,以满足3NF

第三范式规则查找以消除没有直接依赖于第一范式和第二范式形成的表的主键的属性。可以为没有与表的主键关联的所有信息建立了一张新表。每张新表保存来自源表的信息和它们所依赖的主键。这样便可升级为第三范式。

总结

数据库设计规范化能让我们更好地适应变化,使你能够改变业务规则、需求和数据而不需要重新构造整个系统。

补充:一般来说第一范式最好理解,第二和第三范式容易混淆:

2NF:非主键列是完全依赖于主键,还是依赖于主键的一部分;3NF:非主键列是直接依赖于主键,还是直接依赖于非主键列。

关键点还是在于区分部分依赖和传递依赖,区分方式是:

案例:

订单编号商品编号商品名称商品单价商品数量本商品总价00101A12200102B24800103C361800201A13300202B261200203C3927

分析: 订单编号好决定了订单信息,商品编号决定商品信息,这都是直接依赖,但是对于本表来说,订单编号+商品编号合起来作为联合主键,这时商品名称就属于是部分依赖

拓展阅读:

规范化、标准化、归一化、正则化数据库之六大范式详解数据库-第一范式、第二范式、第三范式、BC范式、第四范式简析数据库设计教程系列——数据库范式数据库三范式 - 五月的仓颉 - 博客园数据库三大范式通俗解释


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有