第五章关系数据库设计理论

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第五章关系数据库设计理论5.1引言5.2函数依赖5.3范式5.4多值依赖和4NF5.1关系模式的设计问题5.1.1异常问题描述一个客观事实的一组数据重复出现在一个关系中,造成冗余数据,进而使得数据的存储发生异常现象。研究表明,造成异常现象的原因,问题就出在关系模式的属性组合上。什么样的关系模式才不会出现数据的异常现象,这就是关系模式的规范化设计要解决的问题,满足一定规范化程度的关系模式才是合理需要的关系模式。指数据的冗余现象、修改异常、插入异常、删除异常。isbnTitlePagetypePricepressNameauthor7-04-001968.xo.719概率论与数理统计403数学5.80高教出版社盛骤7-04-001968.xo.719概率论与数理统计403数学5.80高教出版社谢世干7-04-001968.xo.719概率论与数理统计403数学5.80高教出版社潘承义7-111.06887-4可靠性模型与应用270数学19.00机械出版社蒋仁言7-111.06887-4可靠性模型与应用270文学19.00机械出版社左明健7-5327-1224.91.717基督山伯爵1248文学18.00译文出版社大仲马7-5327-1224.91.321三个火枪手982文学16.70译文出版社大仲马7-5327-0924.81.489乱世佳人1320文学16.10译文出版社米切尔7-200-02999-8王子与贫儿255文学13.00北京出版社马克.土温7-5063-0281-01.280金盏花250文学5.20作家出版社琼瑶7-5063-0149-01-148月朦胧.鸟朦胧234文学4.90作家出版社琼瑶7-5063-0513-51.512碧云天288文学4.30作家出版社琼瑶存在异常问题的关系实例返回5.2函数依赖5.2.1函数依赖的定义元组中的数据之间存在各种数据依赖现象,其中一种是函数依赖。不同形式的函数依赖将揭示出不同的数据异常现象。设关系模式R有属性集U,X、Y是U的子集,t、s是R的实例中的任意两个元组,t[X]、t[Y]、s[X]、s[Y]分别表示对应元组在属性子集上的取值,如果:t[X]=s[X],有:t[Y]=s[Y],则称:Y函数依赖于X,或X函数决定Y简记为:X→Y(可用X→Y表示没有依赖关系)例:Book(isbn,title,page,type,price,pressName,authorName)有:isbn→titleisbn→pageisbn→typeisbn→priceisbn→pressNameisbn→authorName5.2.2函数依赖和键码1.超键码关系R有属性集{A1,A2,….An,B1,B2,….Bm)如果:A1A2….An→B1B2….Bm则:A1A2….An为R的超键码。且:A1A2….AnBiA1A2,….AnBiBj…………………….A1A2….AnBiBj….Bn皆为R的超键码。其中:n,m≥1的整数,i=0~n,j=0~m,i≠j2.键码关系R的属性集合:A1A2….An→B1B2….BmA1A2….An的真子集T:T→B1B2….Bm则:A1A2….An为R的键码。5.2.3逻辑蕴含关系R有函数依赖集F成立,另一个函数依赖集T也成立,若满足F的关系实例也满足T,则称F蕴含于T。例:R(A,B,C)有:A→B,B→C,则:A→C中把A→B,B→C记为F,把A→C记为T。5.2.4函数依赖的推理规则判断函数依赖的蕴含关系是判断关系模式规范化的基础,因此,由已知函数依赖集推导其他函数依赖集的推倒规则是判断关系模式是否规范的重要依据。分解规则:把一个A1A2….An→B1B2….Bm分解成一组:A1A2….An→B1,A1A2….An→B2,….,A1A2….An→Bm合并规则:把一组函数依赖合并成一个函数依赖。平凡依赖:A1A2….An→B1B2….Bm中B是A的子集。非平凡依赖:B不完全在A中。完全非平凡依赖:B完全不在A中。平凡依赖规则:A1A2….An→B1B2….Bm与A1A2….An→C1C2….Cm等价其中:C是B的子集,但C不在A中。依据上面规则,函数依赖左边有右边的属性时,可删除右边。以简化函数依赖的形式。Armstrong公理:自反律:如果{B1,B2,….,Bm}∈{A1,A2,….,An},则A1A2….An→B1B2….Bm属平凡依赖。增长律:如果{B1,B2,….,Bm},任何的C1,C2,….,Ck,存在A1A2….AnC1C2….Ck→B1B2….BmC1C2….Ck。传递律:A1A2….An→B1B2….Bm,B1B2….Bm→C1C2….Ck则A1A2….An→C1C2….Ck5.2.5属性集的闭包5.2.6正则覆盖判定一个具体的函数依赖是否蕴含于已知函数依赖集的方法。在数据库中,对关系的操作必须保证原有函数依赖不变,这需要DBMS的检测处理,为减少检测开销,应使闭包不受改变的情况下对函数依赖集进行简化,正则覆盖就是简化使用的方法。关系模式的分解为消除关系模式R中的异常,把R中的属性分开,构成两个新的关系模型。分解的两个准则:1)关系模式分解后原有的信息不丢失。称为无损连接。2)分解后保持原有函数依赖仍然成立。分解R(A1,A2,….An),成为:X(B1,B2,….Bm),Y(C1,C2,….,Ck)应满足的条件:1){A1,A2,….,An}={B1,B2,….,Bm}∪{C1,C2,….,Ck}2)πX(R)={t[B1,B2,….Bm]∣t∈R}有相同元组。3)πY(R)={t[C1,C2,….,Ck]∣t∈R}无相同元组。isbnTitlePagetypePricepressNameauthor7-04-001968.xo.719概率论与数理统计403数学5.80高教出版社盛骤7-04-001968.xo.719概率论与数理统计403数学5.80高教出版社谢世干7-04-001968.xo.719概率论与数理统计403数学5.80高教出版社潘承义7-111.06887-4可靠性模型与应用270数学19.00机械出版社蒋仁言7-111.06887-4可靠性模型与应用270文学19.00机械出版社左明健7-5327-1224.91.717基督山伯爵1248文学18.00译文出版社大仲马7-5327-1224.91.321三个火枪手982文学16.70译文出版社大仲马7-5327-0924.81.489乱世佳人1320文学16.10译文出版社米切尔7-200-02999-8王子与贫儿255文学13.00北京出版社马克.土温7-5063-0281-01.280金盏花250文学5.20作家出版社琼瑶7-5063-0149-01-148月朦胧.鸟朦胧234文学4.90作家出版社琼瑶7-5063-0513-51.512碧云天288文学4.30作家出版社琼瑶Book分解:Book(isbn,title,page,type,price,pressName,author)为:BookFirst(isbn,title,page,type,price,pressName)BookSecond(isbn,authorName)isbnTitlePagetypePricepressName7-04-001968.xo.719概率论与数理统计403数学5.80高教出版社7-111.06887-4可靠性模型与应用270数学19.00机械出版社7-5327-1224.91.717基督山伯爵1248文学18.00译文出版社7-5327-1224.91.321三个火枪手982文学16.70译文出版社7-5327-0924.81.489乱世佳人1320文学16.10译文出版社7-200-02999-8王子与贫儿255文学13.00北京出版社7-5063-0281-01.280金盏花250文学5.20作家出版社7-5063-0149-01-148月朦胧.鸟朦胧234文学4.90作家出版社7-5063-0513-51.512碧云天288文学4.30作家出版社BookFirstisbnauthor7-04-001968.xo.719盛骤7-04-001968.xo.719谢世干7-04-001968.xo.719潘承义7-111.06887-4蒋仁言7-111.06887-4左明健7-5327-1224.91.717大仲马7-5327-1224.91.321大仲马7-5327-0924.81.489米切尔7-200-02999-8马克.土温7-5063-0281-01.280琼瑶7-5063-0149-01-148琼瑶7-5063-0513-51.512琼瑶BookSecond返回5.3关系模式的范式关系模式的范式NF(NormalForm)是衡量关系模式好坏的一种标准。目前已采用的NF标准有如下五个级别:4NFBCNF3NF2NF1NF5.3.1第一范式1NF关系R中的所有属性取值都是原子性的,称R的关系模式是1NF的。这是DBMS对关系模式的最低规范化要求。属性取值是否是原子的,取决于对事实重要程度的决定。如:属性adress若不重要,可取值一个大地方名,是原子性的;若很重要,则取详值:省、市、区、街道、门牌号,这样取值的属性是非原子性的。5.3.2第二范式2NF有A1,A2,….,An→B非平凡依赖存在,{A1,A2,….,An}是关系R的键码,B是任意非键码,称这样的关系模式是2NF的。如:Author(ID,name,birthplace,birthday,nowAge)ID→namebirthplacebirthdaynowAge其中的birthday→nowAge表明该关系模式存在传递依赖,不是3NF的。5.3.3第三范式3NF关系模式的规范化程度并非越高越好,因为高规范化的模式可能是经多次分解后得到的。为恢复原模式的信息需连接这些模式,但这种连接可能出现原模式的函数依赖得不到保持的现象。模式无法达到BCNF要求时,最好使其达到3NF条件要求。有A1,A2,….,An→B非平凡依赖存在,{A1,A2,….,An}或是关系R的超键码,或B是某个键码的组成部分。这样的关系模式是3NF的。例:3NF关系模式bookStore(reader,store,manager)合理存在的依赖:store→manager,readermanager→store。模式的键码:{reader,manager}、{store,reader};不是{store,manager}或单个的属性。由此可知store→manager是一个BCNF违例。依这个违例,分解bookStore成:{sotre,manager}{store,reader}。但发现再连接后不能保持原函数依赖readermanager→store。为防止这种问题的出现,凡满足3NF的关系模式,不再对其分解。5.3.4BC范式BCNF有A1,A2,….,An→B非平凡依赖存在,{A1,A2,….,An}是关系R必然的超键码,这样的关系模式是BCNF的。如:关系book和关系bookFirst都存在函数依赖:isbn→titlepagetypepricepressName在book(isbn,title,page,type,price,pressName,author)中由于键码是{isbn,author},而函数依赖的左边isbn不是超键码,这就违背了BCNF的条件,所以,关系模式book不是BCNF的。在bookFirst(isbn,title,page,type,price,pressName)中由于键码是{isbn},而函数依赖的左边isbn是超键码,满足BCNF的条件,所以,关系模式bookFirst是BCNF的。分解成BCNF模式的算法1)找到一个违背BCNF条件的非平凡依赖,并在依赖的右边划入尽量多的依赖左边的属性。2)分解原关系模式为属性重叠的两个关系模式,其中一个包含违例中的所有属性,另一个

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功