数据库系统概论(二)关系规范化理论

关系规范化理论(一)

一、Dependence理论基础定义

关系规范化理论:Dependence理论,涉及如何构建好的关系库模式,以及如何改进已有的关系库模式。

数据依赖:每种关系数据库都会有许多不同的属性,而这些属性之间会存在各种各样的关系。而对应的关系之间所体现的属性间,决定与被决定的关系就是数据依赖。而这种属性间的关系是我们设计和评价数据库的关键。

规范化:关系模式调优的一种机制,它是以数据依赖为出发点,采用模式分解等措施,消除关系间一些无意义的依赖,达到解决数据操作异常、数据冗余等问题。

二、函数依赖

只有一对多和一对一的情况会存在函数依赖,多对多无法形成函数依赖。 这里需要注意如果是多对一,若X和Y之间是1:n关系,则函数依赖的形式是 Y---->X ,多的决定少的。

1.平凡依赖与非平凡依赖

给定的关系模式中,若X和Y都是U的子集,且 X—>Y ,Y与X的包含关系决定了是不是平凡。

Y ⊈X,则称X→Y是非平凡的函数依赖

Y⊆X, 则称X→Y是平凡的函数依赖

2.完全函数依赖和部分函数依赖

给定的关系模式中,若X和Y都是U的子集,且 X——>Y ,从X中选出真子集X′,X′和Y的决定关系决定了它们是完全依赖还是部分依赖。这在第二范式的定义中非常重要。

X′↛ Y ,则称Y对X完全函数依赖。

X′→Y ,则称Y不完全函数依赖于X,或Y对X部分函数依赖

3.传递函数依赖

给定的关系模式中,若X和Y都是U的子集,若X→Y ,且Y⊈X,Y↛X,并且Y→Z, Z⊈Y, 则称Z对X传递函数依赖。

若X→Y且Y→X,则 X←→Y,称Z直接依赖于X。

4.候选码与主码

给定关系模式R<U,F>,若K⊆U,且K——>U,则称K为R的候选码,如果候选码有多个,则选其中的一个作为主码。

包含在候选码中的属性称为主属性,其余的称为非主属性。

5.超键 super key

只要含有候选码中的属性就算做超键,可以包含其他冗余的元素。

6.外码  foreign key

如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键则该属性集是关系模式R1的外码或外键。

三、范式

在这里插入图片描述

Normal form ,符合预设规则的关系模式的集合, 一共有五种,越往里受到的规则约束越强,我们一般只学习到 BCNF 。只要能写成关系数据库,最起码符合第一范式。

在关系规范化理论中,可以通过模式分解等方法,将一个低级别的关系模式转化为若干个高级别的关系模式集合,这中提高约束程度的过程就是规范化。

1.第一范式

若函数中的所有属性都是不可分的基本数据项,则R∈1NF。这种就是直接列出所有的关系,不多加处理,是最原始的关系模式。这种模式的数据操作会包含各种冗余和异常,只有懒人才直接使用这种关系模式。

2.第二范式

若R∈1NF,且每一个非主属性完全函数依赖于码,就称为第二范式。这里要理解完全函数依赖的意思,就是所有的非主属性都依赖于所有的主属性。
在这里插入图片描述

2NF分解算法:
请添加图片描述

3.第三范式

对于每一个非平凡的函数关系,或者左边是超键,或者右边仅由主属性构成。即表中每一列都要与主键直接相关,而非间接相关。

每一个非主属性既不部分依赖于码,也不传递依赖于码。(完全函数依赖且不传递)

在这里插入图片描述

4.BC范式(这个比较难理解,这里是我个人的理解)

满足BC范式的关系将消除任何属性(主属性和非主属性)对关系键的部分函数依赖和传递函数依赖。不存在 “部分函数依赖和传递函数依赖” ,就是BC范式。二、三范式的完全函数依赖,都是针对非主属性对主属性而言的,而BC范式将这个约束扩大到,主属性对于每一个不包含它的码,也是完全函数依赖。

简单的说法:属于BCNF的关系模式,每个非平凡依赖的左边必须包括侯选建

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值