关系型数据库三范式

1、概念

    关系模型满足的确定约束条件称为范式。

    根据满足约束条件的级别不同,范式由低到高分为:1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、BNF(BC范式)、4NF(第四范式),不同级别的范式性质不同。

2、第一范式(1NF)

    1NF是最低的规范化要求。如果关系R中所有属性的值域都是简单域,其元素(即属性)不可再分,是属性项而不是属性组,那么关系模型R是满足第一范式的。通俗点也就是说一张关系表中,所有的字段的值都必须是不可再拆分的。例如:表1所示结构就不满足1NF的定义。

                                                                                      表1  不满足1NF的结构

职工工号职工姓名住址
9527周星星XXX省XXX市XXX区XXX街道

    表1不满足第一范式,分解后满足第一范式如表2所示。

                                                                                      表2  满足1NF的结构

职工工号职工姓名所在省所在市所在区详细地址
9527周星星XXX省XXX市XXX区XXX街道XXX号

3、第二范式(2NF)

    如果一个关系 R 属于 1NF,且所有的非主属性都完全依赖于主属性,则称之为第二范式(也就是除了主键以外的其他字段,都必须完全依赖于主键)。例如表3所示结构就不满足第二范式。

                                                                                      表3  不满足第二范式的结构

学号姓名课程号课程名
S0001周星星N0001如来神掌

    表3的结构满足1NF,其中“学号”和“课程号”为主键,但是“课程名称”只依赖于“课程号”,即只依赖主键的一部分(部分依赖),所以不符合2NF。可以将表3作拆分,得到如下表4、表5的结构:

                                                                                                    表4

学号姓名
S0001周星星

                                                                                                    表5

课程号课程名
N0001如来神掌

4、第三范式(3NF)

    如果一个关系 R 属于 2NF,且每个非主属性不传递依赖于主属性,这种关系是 3NF。为了理解这种关系,将以表6中的字段作为讲解。

                                                                                                    表6

职工姓名薪资级别薪资(元)
周星星B8000

     表6中所示,“职工姓名”为主键,其他属性都完全依赖于主键;但是“薪资”会根据“薪资级别”的变化而变化,即确定了“职工姓名”,就确定了姓名为“周星星”这名职工的“薪资级别”,确定了“薪资级别”,才能确定具体的“薪资”;所以除主键外其他字段存在传递依赖,不满足3NF。将表6进行拆分来满足3NF,如下表7、8。

                                                                                                    表7

职工姓名薪资级别
周星星B

                                                                                                    表8

薪资级别薪资(元)
B8000

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值