范式(上)-第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、可用关系模式

一、范式的作用

根据关系模式间属性的数据依赖来评价关系模式的好坏

以下我们将基于函数依赖的范围内来讨论范式

二、范式的定义

1、数据依赖满足一定约束关系模式是范式

2、范式是符合某一级别的关系模式的集合,关系模式R为第几范式可记为R\in xNF

三、第一范式(1NF)

1、定义:

对于关系模式R,当且仅当R中的每个属性对应的域是原子的,则该关系模式R属于第一范式,即R\in 1NF

2、正面的例子:

有关系模式R,学生学号和课程编号共同组成R的主键

R(学生学号,课程编号,学生姓名,所在系,系主任,成绩)

每个属性对应的域都是原子的,满足第一范式的条件,因此关系模式R属于第一范式,即R\in 1NF

3、反面的例子

有关系模式R

R(学生学号,课程编号,学生姓名,所在系,系主任,成绩)

其所在系属性为复合属性或者其成绩属性为多值属性,则

该关系模式R不属于第一范式

4、分析

对于关系模式R:

R(学生学号,课程编号,学生姓名,所在系,系主任,成绩)属于第一范式,但是依旧存在着数据冗余、更新异常、数据不一致三个问题

四、 第二范式(2NF)

1、定义

对于关系模式R,当且仅当R\in 1NF,且R中的每一个非主属性都完全依赖于候选键时,该关系模式R属于第二范式,即R\in 2NF

2、反面例子

对于关系模式R:

R(学生学号,课程编号,学生姓名,所在系,系主任,成绩)

由于

所以

R\notin 2NF

2、正面例子

由于

 成绩完全依赖于候选键(学生学号,课程编号),而

学生姓名完全依赖于学生学号,所在系完全依赖于学生学号,系主任完全依赖于学生学号,

则将关系模式R分解为两个关系模式

R1(学生学号,课程编号,成绩)

R2 (学生学号,学生姓名,所在系,系主任)

则这两个关系模式均属于第二范式,即R1\in 2NFR2\in 2NF

消除了关系模式R中“非主属性对候选键的部分函数依赖”,解决了部分数据冗余问题部分数据更新异常问题

4、结论:

满足2NF的关系模式要比满足1NF的关系模式要好

五、第三范式(3NF)

1、定义

对于关系模式R,当且仅当R\in 2NF,且R中所有非主属性都不传递函数依赖于候选键时,该关

系模式R属于第三范式,记作 R\in 3NF

2、正面的例子

关系模式R(学生学号,课程编号,学生姓名,所在系,系主任,成绩)和

关系模式R1(学生学号,课程编号,成绩)都符合第三范式的条件,记为R\in 3NFR1\in 3NF

3、反面的例子

关系模式R2 (学生学号,学生姓名,所在系,系主任)中系主任传递函数依赖于学生学号

R2\notin 3NF

可通过将R2分解为

关系模式R3(学生学号,学生姓名,所在系)和

关系模式R4(所在系,系主任)

使得R3\in 3NFR4\in 3NF

消除了“非主属性对候选键”的传递函数依赖”,进一步消除了关系模式存在的数据冗余、更新异常和数据不一致问题

4、结论:

(1)满足3NF的关系模式要比满足2NF的关系模式要好

(2)3NF是一个可用的关系模式应该满足的最低范式要求

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值