分享
 
 
 

范式

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

•第一范式

如果关系模式R的所有属性的值域中每个值都是不可再分解的值,则称R是属于第一范式(1NF)模式。

第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能是属性组合或组属性组成。

•第二范式

如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称R是第二范式(2NF)模式。

如果对于函数依赖W →A,如果存在XÌW有X →A成立,那么称W →A是局部依赖,否则,称W →A为完全依赖。

如果A是关系模式R的候选键的一个属性,则称A是R的主属性,否则称A是R的非主属性。

例:商品供应关系模式SUPPLY={SNO,PNO,SCITY,STATUS,PRICE,QTY}。满足的函数依赖集F={SNO →SCITY,SCITY →STATUS,PNO →PRICE,(SNO,PNO) →QTY}。检测SUPPLY是否为第二范式。

因为(SNO,PNO)→{SNO,SCITY,STATUS,PRICE,QTY},所以(SNO,PNO)为键。

在SUPPLY中,SNO?PNO为主属性,其余为非主属性。但除了QTY满足之外,其余的非主属性对键的函数依赖为部分函数依赖,所以SUPPLY不是第二范式。

分解:

SUPPLY1={SNO,PNO,QTY}

SUPPLYER={SNO,SCITY,STATUS}

PART={PNO,PRICE}

上述三个的键依次为(SNO,PNO),SNO,PNO。

第三范式:

在关系模式中,如果Y →X,X →A,且X不能决定Y和A不属于X,那么称Y → A是传递依赖。

如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。

例:SUPPLY1={SNO,PNO,QTY}

SUPPLYER={SNO,SCITY,STATUS}

PART={PNO,PRICE}

SUPPLY1和PART的非主属性间不存在任何的函数依赖,满足第三范式。

SUPPLYER中的属性SCITY和属性STATUS之间存在着函数依赖,不是第三范式。

解决方法:

将SUPPLIER分解成SUPPLIER1和SCITY1,

SUPPLIER1={SNO,SCITY}

SCITY1={SCITY,STATUS}

•BCNF

关系模式的BCNF范式是第三范式的改进形式,它建立在第一范式的基础上。

如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,称R是BCNF的模式。

从BCNF的定义中可以得出如下结论:

1.所有非主属性对键是完全函数依赖。

2.所有主属性对不包含它的键是完全函数依赖。

3.没有属性完全函数依赖于非键的任何属性组。

如果R是BCNF,则R必是第三范式,反之,不一定成立。

关系模式属于3NF,但不属于BCNF时,在操作时仍然存在插入异常、删除异常等问题,这是由于主属性对键的部分函数依赖引起的。

BCNFÍ3NFÍ2NFÍ1NF

1NF

¯消去非主属性对键的部分函数依赖

2NF

¯消去非主属性对键的传递函数依赖

3NF

¯消去主属性对键的传递函数依赖

BCNF

•候选关键字的快速求解

对于R(A1,A2,…,An)和函数依赖集F,可将其属性分为三类:

L类:仅出现在F的函数依赖左部的属性

R类:仅出现在F的函数依赖右部的属性

N类:在F的函数依赖左右两边均未出现的属性

定理:对于给定的R和F,若X是L类属性,则X必为R的任一候选关键字的成员。

定理:对于给定的R和F,若X是R类属性,则X不在R的任何候选关键字中。

定理:对于给定的R和F,若X是N类属性,则X必为R的任一候选关键字的成员。

例:对于R(A,B,C,D,E,P),F={A →D,E →D,D →B,BC →D,DC →A},求R的候选关键字。

算法:将一个关系模式分解为3NF,使它具有依赖保持性。

输入:关系模式R和R的最小依赖集Fmin。

输出:R的一个分解r={R1,R2,R3…,Rk},Ri为3NF,r具有依赖保持性。

方法:

1.如果Fmin中有一依赖X →A,且XA=R,则输出r={R},转向4。

2.如果R中某些属性与Fmin中所有依赖的左部和右部都无关,则将它们构成关系模式,从R中将它们分出去。

3.对于Fmin中的每一个Xi→Ai,都构成一个关系子模式Ri=XiAi;

4.停止分解,输出r

算法:把一个关系模式分解为3NF,使它既具有无损联接性又具有依赖保持性。

方法:

1.根据上述算法求出依赖保持性分解:

r={R1,R2,R3…,Rk}

2.判定r是否具有无损联接性,若是,转4。

3.令r=r∪{X},X是R的候选关键字。

4.输出r。

算法:把关系模式无损分解成BCNF。

输入:关系模式R和函数依赖集F。

输出:R的一个无损分解r={R1,R2,R3…,Rk}。

方法:

1.令r={R};

2.如果r中所有模式都是BCNF,则转向4;

3.如果r中有一个关系模式S不是BCNF,则在S中必能找到一个函数依赖X→A且X不是S的候选键,且A不属于X,设S1=XA,S2=S-A,用分解{S1,S2}代替S,转向2;

4.输出r。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有