首页 > 编程知识 正文

mysql中什么是第三范式,数据库中的三大范式

时间:2023-05-04 20:57:33 阅读:163026 作者:4116

数据库六种范式的细节

关系数据库中的关系满足一定要求时,满足不同程度要求时是不同的范式。 满足最低要求的是第一范式,简称1NF; 在第一范式的基础上满足进一步要求的称为第二范式,简称2NF,其馀范式类推。 各种范式之间存在以下关系。

如下图所示。

1 .第一范式1NF

定义:属于第一种范式关系的所有属性都是不可分离的。 这意味着数据项是不可分离的。

理解:第一范式强调数据表的原子性,是其他范式的基础。 如下图所示,数据库不符合第一种模式。

上表将商品这一数据项分为名称和数量两个数据项,不符合第一范式关系。 修改后如下图所示。

上表符合第一正规关系。

但在日常生活中仅有第一范式规范表格还不够,仍然存在数据冗余过大、删除异常、插入异常、纠正异常等问题。 在这种情况下,需要引入规范的概念,将其转换为更标准化的表格,减少数据依赖。

规范化:一个低层关系模式可以通过模式分解转换为几个高层范式的关系模式集合。 这个过程称为规范化。

2 .第二范式2NF

定义:如果如意蜗牛关系r属于第一范式,且每个非主属性完全函数依赖于其中一个候选码,则关系r属于第二范式。

这里需要理解非主属性、候选代码和完全函数依赖的概念。

候选代码:如果关系中的属性组的值能够唯一标识元组,但不能有该元组的子集,则该属性组称为候选代码。 如果关系中有多个候选代码,请选取其中一个主代码。

在以下所有内容中,主代码或候选代码简称为代码。

例如,在下图所示的学生表中,由于学号和名字都能够唯一地识别元组,所以该表的候选代码为学号和名字,只要能够自由选定其中一个主代码,就将学号作为主代码。

学号

姓名

年龄

性别

101

聪明的牛排

19

女人

102

ajdbmh

21

男人

103

威武大山

20

男人

104

李琛

19

女人

105

欧阳慧

20

女人

主属性:所有候选代码的属性称为主属性。 不包含在任何候选代码中的属性称为非主属性或非代码属性。

以上的学生表中,学校号码和名字是其关系的主属性,年龄和性别是非主属性。

函数依赖:设r(u )为属性集u上的关系模式,x,y为u的子集。 对于r(u )的任何一个可能的关系r,如果r有2个元组的x上的属性值相等,y上的属性值不相等,则y函数依赖于x或x函数来决定y。

完全函数依赖:设r(u )为属性集u上的关系模式,x,y为u的子集。 如果y函数依赖于x,而对于x的任意真子集x’,y不函数依赖于x’,则称y完全依赖于x。 注意:如果y函数依赖于x,而y不完全函数依赖于x,则称y依赖于x子函数。

理解:第二正则表达式意味着每个表都需要一个数据项(作为关键字或主键),而其他数据项与关键字或主键一一对应。 这意味着其他数据项完全依赖于关键字或主键。 由此可见,单一主属性的关系都属于第二范式。

判断某个关系是否属于第二范式:

找到数据表中的所有代码

找出所有的主属性和非主属性;

确定所有非主属性都依赖于代码的子函数。

以上学生表为例,表中代码为学号(代码可以是学号或姓名,这里假设代码为学号),非主要属性为性别、年龄)及其他主要属性),学号确定时,性别、年龄也是唯一确定的,所以学生表的设计

举出不满足第二范式的关系吧。

有关系模式s-l-c(Sno,Sdept,Sloc,Cno,Grade ),其中SnO,Sdept,Sloc,Cno,Grade将学生的学号、所属的系、住所、课号、班级如果S-L-C的代码为(Sno,Cno ),则表明存在以下函数依赖关系。

由于非主属性Sloc、Sdept的完整函数与代码无关,因此可以看到关系模型s-l-c(SnO、Sdept、Sloc、Cno、Grade )不符合第二正则表达式。

3 .第三范式3NF

定义:非主控属性与代码无关,也不依赖于代码。

首先必须理解传递函数所依赖的概念。

理解:第三范式的要求在满足第二范式的前提下,任何非主属性都不依赖于其他非主属性。 也就是说,基于第二范式,消除传递依赖。

在下图的S-L关系中,Sloc依赖于Sno传递函数,因此该关系不属于第三范式。

ign="center">

4. BC范式 BCFN

定义: 关系模式R中,若每一个决定因素都包含码,则R属于BCFN。

理解: 根据定义我们可以得到结论,一个满足BC范式的关系模式有:

所有非主属性对每一个码都是完全函数依赖;

所有主属性对每一个不包含它的码也是完全函数依赖;

没有任何属性完全函数依赖于非码的任何一组属性。

例如有关系模式C(Cno, Cname, Pcno),Cno, Cname, Pcno依次表示课程号、课程名、先修课。可知关系C只有一个码Cno,且没有任何属性对Cno部分函数依赖或传递函数依赖,所以关系C属于第三范式,同时Cno是C中的唯一决定因素,所以C也属于BC范式。

5. 第四范式 4NF

定义: 限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。

理解: 显然一个关系模式是4NF,则必为BCNF。也就是说,当一个表中的非主属性互相独立时(3NF),这些非主属性不应该有多值,若有多值就违反了4NF。

6. 第五范式 5NF

第五范式有以下要求:

(1)必须满足第四范式;

(2)表必须可以分解为较小的表,除非那些表在逻辑上拥有与原始表相同的主键。

第五范式是在第四范式的基础上做的进一步规范化。第四范式处理的是相互独立的多值情况,而第五范式则处理相互依赖的多值情况。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。