数据库范式理解例题推荐文档Word文件下载.docx
- 文档编号:20198383
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:10
- 大小:21.53KB
数据库范式理解例题推荐文档Word文件下载.docx
《数据库范式理解例题推荐文档Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库范式理解例题推荐文档Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
【例】;
举个例子就明白了。
假设一个学生有几个属性SNO学号SNAME姓名SDEPT系SAGE年龄CNO班级号G成绩对于(SNO,SNAME,SDEPT,SAGE,CNO,G)来说,G完全依赖于(SNO,CNO),因为(SNO,CNO)可以决定G,而SNO和CNO都不能单独决定G。
而SAGE部分函数依赖于(SNO,CNO),因为(SNO,CNO)可以决定SAGE,而单独的SNO也可以决定SAGEo传递函数依赖:
设R(U)是属性集U上的关系,x、y、z是U的子集,在R(U)中,若xfy,但yfx,若yf乙则xfz,称z传递函数依赖于x,记作XfTZo如果X-Y,Y-Z,则称Z对X传递函数依赖。
计算X+(属性的闭包)算法:
a.初始化,令X+=X;
b.在F中依次查找每个没有被标记的函数依赖,若“左边属性集”包含于X+,则令X+=X+U“右边属性集”,并为访问过的函数依赖设置标记。
c.反复执行b直到X+不改变为止。
检验给定的任意函数依赖A1A2.An-B是否蕴含于依赖集S:
分析:
根据属性集闭包的定义,可知A1A2.An-A1,A2,.,An+蕴含于S。
只要证明B在A1,A2,.,An+中,那么函数依赖A1A2.An-B肯定蕴含于依赖集S中求解过程:
(1)利用依赖集计算闭包
(2)如果B在闭包中,则函数依赖A1A2.An-B是否蕴含于依赖集S,否则不蕴含于S【例】广某个关系,具有属性:
A,B,C,D,E,Fo假设该关系有如下的函数依赖:
AB-C,BC-ADrD-ErCF-B检验AB-D是否蕴含于这些函数依赖中。
广因为A,B+=A,BzC,DzE,D在集合中,所以AB-D蕴含于这些函数依赖中。
厂某个关系,具有属性:
A,B,C,D,E,F。
假设该关系有如下的函数依赖:
rAB-CrBC-ADErCF-B广检验依赖:
D-A是否蕴含于这些函数依赖中厂求闭包:
D+=D,E,所以,D-A不蕴含于这些函数依赖中例4.3.3:
己知关系模式R中U二A,B,C,D,E,G,F二ABC,CA,BCD,ACDB,D-EG,BEC,CGBD,CE-AG,判断BD-AC足否属于F解:
由DEG知DE,BDBE”乂知BE-*C,CA所以BE-*A,BE-*AC”山、知,BDAC,所以BDAC被F所笙涵,即BDAC属于F*总结:
可转化为求判定函数依赖XfY是否能由F导出的问题,X+并判定Y是否是X+子集的问题。
即求F闭包的问题可转化为求属性集闭包的问题。
函数依赖的闭包:
定义:
若F为关系模式R(U)的函数依赖集,我们把F以及所有被F逻辑蕴涵的函数依赖的集合称为F的闭包,记为F+求函数依赖闭包,基于函数依赖推理规则函数依赖推理规则:
若XY-Z,贝UX-Z,Y-z(错)正确的:
若X-Y,贝UXZ-YZ若X-Y,X-Z,贝UX-YZ若X-Y,Z属于Y,则X-Z若X-Y,Y-Z,贝UX-Z若X-YZ,则X-Y,X-Z/可以把每个函数依赖的右边的属性分解,从而使其右边只出现一个属性伪传递率:
若A-B,BC-D,则AC-D范式范式第一范式(1NF):
属性,属性值,字段不可分就是无重复的列不满足1NF的数据库就不是关系数据库【例】:
第二范式(2NF):
符合1NF,每一个非主属性完全依赖于码,不能存在部分依赖,有主键,非主键字段依赖主键;
唯一性一个表只说明一个事物;
【例】:
不符合第二范式的例子:
表:
学号,姓名,年龄,课程名称,成绩,学分;
这个表明显说明了两个事务:
学生信息,课程信息;
存在问题:
数据冗余,每条记录都含有相同信息;
删除异常:
删除所有学生成绩,就把课程信息全删除了;
插入异常:
学生未选课,无法记录进数据库;
更新异常:
调整课程学分,所有行都调整。
修正:
学生:
Student(学号,姓名,年龄);
课程:
Course(课程名称,学分);
选课关系:
SelectCourse(学号,课程名称,成绩)。
满足第2范式只消除了插入异常。
第三范式(3NF):
符合2NF,并且,消除传递依赖,非主键字段不能相互依赖;
每列都与主键有直接关系,不存在传递依赖;
若所有的属性都是主属性,则属于第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息【例】:
不符合第三范式的例子:
学号,姓名,年龄,所在学院,学院联系电话,关键字为单一关键字学号;
存在依赖传递:
(学号)(所在学院)(学院地点,学院电话)存在问题:
数据冗余:
有重复值;
有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况删除异常修正:
(学号,姓名,年龄,所在学院);
学院:
(学院,地点,电话)。
总结:
1nf:
不可分2nf:
个表说明个事物,唯性3nf:
对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。
bcnf:
是3NF的改进形式BCNF意味着在关系模式中每一个决定因素都包含候选键,也就是说,只要属性或属性组A能够决定任何一个属性B,则A的子集中必须有候选键。
BCNF范式排除了任何属性对候选键的传递依赖与部分依赖。
满足BCNF条件1所有非主属性对每一个候选键都是完全函数依赖;
2所有的主属性对每一个不包含它的候选键,也是完全函数依赖;
3没有任何属性完全函数依赖于非候选键的任何一组属性。
候选键(又称候选码,候选关键字,码,candidatekey)设K是一个R(U)中的属性或属性集合(注意可以是属性集合,也即多个属性的组合),若K完全函数确定U,则K为R的候选键(Candidatekey);
通俗地说就是,能够确定全部属性的某个属性或某组属性,称为候选键。
若候选键多于一个,则选定其中一个作为主键。
*在所有依赖关系右边没有出现的属性一定是候选键的成员。
BCNF范式排除了任何属性对候选键的传递依赖与部分依赖【例1r设有关系模式R(职工名,项目名,工资,部门名,部门经理)如果规定,每个职工可参加多个项冃,各领一份工资;
每个项目只属于一个部门管理;
每个部门只有一个经理。
(1)试写出关系模式R的基本函数依赖和主码。
(2)说明R不是2NF模式的理由,并把R分解成2NF。
(3)进而将R分解成3NF,并说明理由.K解:
(1)根据题意,可知有如下的函数依赖关系=(职工名,项目名)T工资项目名r部门名部门名部门经理所以,主键为(职工名,项冃名
(2)根据
(1),由于部门名、部门经理只是部分依赖于主键,所以该关系模式不是2NF。
应该做如下分解;
R1项冃名,部门名,部门经理)R2(职工名,项目名,工资)以上两个关系模式都是2NF模式(3)R2已经是3NF,但R1不是,因为部门经理传递依赖于项目名,故应该做如下分解;
R11(项冃名,部门名R12(部门名,部门经理)分解后形成的三个关系模式R1仁R12.R2均是3NF模式。
【例22、设有关系模式R(A,B,C,D,E.F),苴函数依赖集为;
F=EtD,CtB,CEtF,B-A.请回答如下问题:
(1)指出R的所有候选码并说明原因;
(2)R最高属于第儿范式,为什么?
(3)分解R为3NF。
2解;
(1)可知A、B.D.F四个属性均不是决定因素所以只有C和E有可能构成该关系模式的主键,而C、E之间没有函数依赖关系,且根据已知的函数依赖可知,CEABCDEF,所以R的主键是CE。
(2)由于D部分依赖于主键CE,A.B部分依赖于主键CE,所以R最高属于1NF。
将个不满足2NF的关系模式分解成3NF,总的原则是将满足范式要求的函数依赖中包含的属性分解为一个关系模式,将不满足范式要求的函数依赖中所包含的属性分别分解为多个关系模式。
首先将R分解为2NF,分解如下:
R1(E,D)R2(CfB,A)R3E,F)上述三个模式中,R1fR3都已经属于3NF,但在R2中,A传递依赖于C,故应该继续分解为3NF,分解如下:
R21(C,B)R22(B,A)将R分解为R1,R21,R22,R3四个模式后,都属于3NF。
【例33.设有关系模式R(九B*C,D,E其函数依赖集为F=AB,CEiA,EtD書回答如下问题$
(1)指岀R的所有候选码,并说明理由;
(2)R最高属于第几范式(在1NF3NF范围内为什么(3)将R分解到3NF。
3.解:
(1)R的候选码为(C,E),根据已知的函数依赖可知,CEABCDE.而C和E之间不存在函数依赖关系,所以R的主键是CEq
(2)R最高属于1NF,因为CED足部分依赖关系。
(3)R分解如下:
R1=C,E.A,R2=EtDR3=A,BJ,则以上三个关系模式均属于3NF。
【例4】4、设有一个记录各个球队队员毎场比赛进球数的关系模式R(队员编号,比赛场次,进球数,球队名,队长名)如果规定,每个队员只能属于一个球队,每个球队只有一个队长乜
(1)试写岀关系模式R的基本函数依赖和主码。
(2)说明R不是2NF模式的理由,并把R分解成2N巳(3)进而将R分解成3NF,并说明理由。
4花(U矣系模式R的基本函数依赖F如下F詁队员编号-球队名,球队名-队长名,(队员编号,比赛场次)T进球数其主键为(队员编号,比赛场次。
C2)R不是2NF模式的原因是队员编号t球队名,所以(队员编号,比赛场次)-球队名是一个部分函数依赖关系,将R分解成2NF如下;
R1=队员编号,球队名,队长名R2=球队名,比赛场次,进球数(3)由于在R1中,主键为队员编号,所以从员编号-队长名是一个传递函数依赖,将R分解成:
R11=队员编号,球队名,R12-球队名,队长名则将R分解为R1仁R12,R2后均为3NF的关系模式。
设有关系模式R(A,B,C,D,E,G)上的函数依赖集为:
F=AB,BC,ADG,DE。
求解:
31.求关系模式R的所有侯选键。
解:
求出侯选键AD。
(2分)首先在F中函数依赖右边不出现的属性必在侯选键中,即AD(1分);
由于(AD)+=ABCDEG,即AD能函数决定所有的属性,所以侯选键只有一个AD(1分)。
AD+=ADBEGC32.分别求属性集G、AD、CD、BC的闭包。
G+=G(1分);
(AD)+=ABCDEG(1分);
(CD)+=CDE(1分);
(BC)+=BC(1分)33.将关系模式R保持依赖地且无损地分解成3NF,要求写出分解过程。
F=AB,BC,ADG,DEF是最小依赖集,所有属性在F中出现,将F中是每个函数依赖组成一个关系模式得保持函数依赖的分解:
AB,BC,ADG,DE(2分);
并上一个侯选键AD得无损分解:
AB,BC,ADG,DEUAD=AB,BC,ADG,DE(2分)F=AB,BC,ADG,DE34.将关系模式R无损地分解成BCNF,要求写出分解过程。
根据转换为BCNF的无损连接分解算法6.51)由于候选键为AD,F中存在不符合BCNF要求的函数依赖,所以R不是BCNF,选AB分解为:
R1=AB,R2=ACDEG;
(1分)R1上保持的函数依赖集为AfB,键为A,所以是BCNF;
R2上保持的函数依赖集为AfC,ADfG,DfE,键为AD,所以不是BCNF;
(1分)选AfC进一步分解为:
R21=AC,R22=ADEG;
(1分)R21上保持的函数依赖为AfC,键为A,所以是BCNF;
R22上保持的函数依赖为ADfG,DfE键为AD,所以不是BCNF;
选DfE进一步分解为:
R22仁DE,R222=ADG;
(1分)R221上保持的函数依赖为DfE,键为D,所以是BCNF;
R222上保持的函数依赖为ADfG,键为AD,所以是BCNF;
最后得保持无损连接特征的分解:
R1,R21,R221,R222或表示为AB,AC,DE,ADG(1分)注:
由于选择不符合BCNF要求的函数依赖有多个,因此选择次序可有不同,最后的结果也不同,原则上按上述评分标准分步给分。
35.说明分解p=R1,R2,R1(ABC)、R2(ADEG)的范式级别并说明理由答:
R1是2NF(1分),R2是1NF;
(1分)R1上的函数依赖集为:
AfB,BfC,码为:
A,不存在部分依赖,存在非主属性C对码A的传递依赖。
(1分)R2上的函数依赖集为:
ADfG,DfE码为:
AD,存在非主属性E对码AD的部分依赖。
(1分)p=R1,R2,R1(ABC)、R2(ADEG)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 范式 理解 例题 推荐 文档