范式 依赖

 

1NF:每一字段只存储一个值,属性不能再分;

2NF:如果一个表属于1NF,任何属性只依赖于关键字。不存在部分依赖

3NF:如果一个表属于2NF非主属性都不传递依赖于候选键(不存在传递依赖)

BCNF:设R是一个关系模式,且每个属性(包括主属性)都不传递依赖于R的候选键

若一个关系模式R不是3NF,就会产生插入异常、删除异常、更新异常和数据冗余度等问题。所以一般情况下,关系模式应至少达到3NF

函数依赖和多值依赖是两种最重要的数据依赖。如果只考虑函数依赖,则属于BCNF的关系模式规范化程度为最高。如果考虑多值依赖,则属于4NF的关系模式规范化程度为最高。

规范化是减少数据冗余和数据异常的一种分解过程。

1.考到范式的一个选择题

设有一个关系模式RABCD),函数依赖集F={ABBCCDDA},那么R共有4个侯选码。R的每个属性都不可分,其可达到的最高范式是BCNF

试题分析:

       只要能推导出整个属性组U{ABCD},况且没有多余元素就是候选码。在这个关系模式中,单个的ABCD都能推导出U,况且只有自身一个元素无多余元素,所以都是候选码。

       传递依赖的完整定义:设有关系模式RU),XYZ是属性或属性组,如果有XYYZ而且YX不成立、Z不是Y的子集、Z不是X的子集。注意,而且后面的三个条件必须都成立,才能称之为传递依赖。

很多人可能误认为R中存在传递依赖如,由ABBC尽管可以得出AC,但是C并不传递依赖A,因为由CDDA可知CA,不满足传递依赖定义中的条件“YX不成立”。但是,AC是成立的,因为它可根据Armstrong推理系统中的传递律(注意,不是传递依赖,不要把两者搞混了),只是不符合传递依赖的定义罢了。

       根据BCNF的定义可知,满足BCNF定义的关系模式中的每一个函数依赖的左部都含有候选码,显然,R满足BCNF的要求。

下面再看一个例题:已知关系RABCDE)和函数依赖集F{ABDBCEDC}R的每个属性均不可分,则R能满足的最高范式是2NF

试题分析:根据函数依赖集能推导出全部属性,而且没有多余属性的属性或者属性组就是候选码。由ABDDC可得ABC,根据Armstrong推理系统中的自反律、合并规则可得ABBC,又BCE,所以ABE因此AB能推出所有属性,而且不含多余属性,所以它是候选码R只有AB这一个候选码。显然,非主属性CE都是传递依赖于AB,所以R不是3NF

那么非主属性E是否部分函数依赖于码AB呢?首先来看部分函数依赖的定义:在关系模式R(U)中,对于属性组XY,如果有XY,并且对于X的任何一个真子集X’都不能得出X Y,则称YX完全函数依赖。而如果XY,但Y不完全函数依赖于X,则称YX部分函数依赖。可见部分函数依赖是在完全函数依赖的基础上定义的,也就是说不满足完全函数依赖就是部分函数依赖。

该题中,根据Armstrong推理系统可得ABE,属性组AB的真子集有AB、空集φ,但由单个的A不能得出AE,由单个的B也不能得出BE,空集φ显然也不能得出φ→E,所以E是完全函数依赖AB同理,可以得出其它非主属性CD都是完全函数依赖码AB,所以R2NF

Armstrong推理

自反律:若属性集Y 包含于属性集X,属性集X 包含于U,则X→Y R 上成立。(此处X→Y是平凡函数依赖)

增广律:若X→Y R 上成立,且属性集Z 包含于属性集U,则XZ→YZ R 上成立。

传递律:若X→Y Y→ZR 上成立,则X →Z R 上成立。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值