数据库范式浅谈

关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件。

第一范式(1NF):规范条件中需要满足的最基本的一条,关系的每一个分量必须是一个不可分的数据项,换句话所,就是表中不允许有表

例如,下表中成绩是可分的数项,成绩又分为数学成绩和英语成绩,所以该表不符合关系模型要求

第二范式(2NF):  属于第一范式且每一个非主属性完全依赖于任何一个候选码,那么它也属于第二范式。属于2NF必属于1NF。

第三范式(3NF):   属于第二范式且每一个非主属性不传递依赖于码,那么它也属于第三范式。属于3NF必属于2NF。

BCNF:通常认为是修正的第三范式,也称扩充的第三范式。属于第三范式且没有任何属性完全函数依赖于非码的任何一组属性。属于BCNF必属于3NF,反之未必成立。


以下通过三个例子,简单分析,便于理解。

例1:(2NF)

关系模式R的属性集为{A, B, C, D, E},函数依赖集F = {AB→CE, E→AB, C→D},则R的最高范式为B)。

A. 1NF B. 2NF C. 3NF D. BCNF

分析:

就函数依赖分析:AB->C,AB->E,E->A,E->B,C->D,由此推出R的候选键为AB和CE,(候选码首先得可以推出其余所有关系,如AB可以得到C,E。C可以得到D,即AB间接得到D。)因为AB->D,C->D,D属性完全依赖于C(非码),所以排除BCNF,AB->CE(CE不能推AB),C->D,有AB->D(传递依赖于码),排除3NF,因为C E D都完全依赖于AB,(AB的真子集不能推出C D E)所以为第二范式2NF。

例2:(3NF)

设关系模式R(A, B, C, D)上的函数依赖集F = {AB→D, AC→BD, B→C},则R最高范式是(C)。

A. 1NF B. 2NF C. 3NF D. BCNF

分析:

就函数依赖分析:AB->D,AC->B,AC->D,B->C,由此可以推出R的候选码为AB,AC。分析候选码AC,AC->C,B->C,B为非码,推出C,所以排除(BCNF:没有任何属性完全函数依赖于非码的任何一组属性),B D完全依赖于AC,很容易看出,函数依赖中不存在传递依赖,所以为3NF。


例3(BCNF)

设关系模式R(X,Y,Z)上的函数依赖集F={Y->Z,Y->X,X->YZ},则R最高范式是(D

A. 1NF B. 2NF C.3NF D. BCNF

就函数依赖分析:Y->Z,Y->X,X->Y,X->Z,有此可以推出R的候选码为X,Y。分析X,X->Y,X->Z,虽然Y->X,但Y是码,X->Y,Y->X,所以不存在传递依赖。所以为BCNF。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuhuimingc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值