




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十二章: 关系数据理论,问题的提出 规范化 数据依赖的公理系统 关系模式的分解,问题的提出,由ER模型翻译为关系模式, 得到的关系模式一定是好的吗? 一个好的设计不一定导致一个好的关系模式 ER的设计过程是主观的和复杂的 有些约束用ER无法表示 转换后的关系模式可能存在冗余,示例1,Hourly_Emps (ssn, name, lot, rating, hourly_wages, hours_worked) ssnssn, name, lot, rating, hourly_wages, hours_worked 可以用ER模型来表示 ratinghourly_wages 该约束无法用ER模型来表示 该约束引起冗余,示例1,如何判断一个关系模式是否存在问题, 如何解决问题, 使数据库设计更加合理, 是本章讨论的核心问题,问题的提出,例子: 描述学生情况的关系模式: S(S#, SD, MN, CN, G) 其中: 一个系有若干学生, 但一个学生只属于一个系 一个系只有一名负责人 一个学生可以选修多门课, 每门课可有若干学生选修 每个学生学习每一门课程有一个成绩,问题的提出,一个关系为 95001 CS 李洪 数学 90 95001 CS 李洪 数据库 90 95002 CS 李洪 数学 90 95002 CS 李洪 数据库 90 95003 MA 张力 普物 90 95003 MA 张力 数论 90 存在的问题 冗余太大: 删除异常: 删除某系学生的选课将删除系信息 插入异常: 系刚成立, 无学生; 有学生, 但未选课,问题的提出,结论: 关系模式S(S#, SD, MN, CN, G)不是好的关系模式, 好的关系模式不会发生插入异常、删除异常和冗余尽可能少 规范化理论讨论的内容: 如何发现关系模式不好, 如何改造不好的关系模式 关系模式不好是因为其中存在的数据依赖具有不好的性质 数据依赖: 实体内部各属性之间的联系, 是现实世界属性间相互联系的抽象, 是数据内在的性质, 是语义的体现 重要的两种数据依赖: 函数依赖和多值依赖,规范化,范式: 关系数据库中的关系模式是要满足一定要求的, 满足不同程度要求的称为不同的范式 第几范式是表示关系的某一种级别, 如果把范式理解成符合某一种级别的关系模式的集合, 则关系模式R为第几范式可以表示成: RXNF 各种范式之间的联系为: 5NF4NF 3NF 2NF 1NF,规范化,规范化: 有时候为了控制由于冗余带来的问题而要求关系模式满足一定的范型,可以通过模式分解来达到,这一过程称之为规范化(Normalization) 规范化目的: 改造不好的关系模式 函数依赖: 设R(U)是属性集U上的关系模式, X, Y是U的子集, 若对于R (U)的任意一个可能的关系r, r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称“X函数确定Y”或“Y函数依赖于X”, 记作XY,规范化,例子: S (S#, SN, SA,SD) X, Y含义: 假定关系r, r1和r2是其中两个元组, 如果 r1X=r2X=95001 , 从应用要求可知 r1Y=r2Y=(王立, 18, CS), 即r1和r2是一个元组, 则XY X, Y含义: X-SN, Y-SA 假定r1和r2是关系r中的两个元组, 如果 r1X=r2X=王立 , 从应用要求可知(重名) r1Y=18 而 r2Y=19, 则X Y,X,Y,规范化,注意: 函数依赖是指关系模式R的一切关系均要满足的约束条件; 函数依赖和别的数据依赖一样是语义范畴的概念(只能从属性含义上加以说明, 不能在数据上加以证明) 一些记号和术语: 若XY, 则称X为决定因素 若XY, YX , 则记作XY 若Y不函数依赖于X, 则记作X Y 非平凡函数依赖: 若XY, 但Y X, 则称XY是非平凡的函数依赖 平凡函数依赖: 若XY, 但Y X, 则称XY是平凡的函数依赖,规范化,完全函数依赖: 在R中, 如果XY, 并且对于 X 的任何真子集X, 都有X Y, 则称Y对X完全函数依赖, 记作X Y 部分函数依赖: 如果XY, 但Y不完全函数依赖于 X, 则称Y对X部分函数依赖, 记作X Y 函数传递依赖: 在R中, 如果 XY, (Y X), Y X, YZ, 则称Z对X传递函数依赖 候选码: 设K为R中的属性或属性组, 若K U, 则称K为候选码,规范化,主码: 若候选码为多个, 选其中一个为主码 主属性: 包含在任何一个候选码中的属性 非主属性:不包含在任何码中的属性 关系模式的表示: 一个关系模式可以表示成 R, 根据讨论问题需要, 以前简化表示为 R , 现在简化表示为 R 一范式(1NF):如果一个关系中的所有属性值均是原子的,则称该关系满足1NF。关系模型中的关系必须满足1NF,规范化,规范化,Company(cno, cname, Addre) dept(dno, dname, cno) employee(eno, dno, ename, salary),规范化,二范式(2NF): 若R1NF, 且每一个非主属性完全函数依赖于码, 则称R2NF 例子: 关系模式S-L-G(S#, SD, SL, C#, G) , 其中 一个系的学生只住一个地方, 码为(S#, C#), 函数依赖有: (S#, C#) G 因为S# SD, 所以(S#, C#) SD 因为S# SL, 所以(S#, C#) SL SD SL,规范化,因为非主属性SD和SL部分函数依赖于码(S#, C#), 所以S-L-C2NF 问题: 关系模式S-L-G(S#, SD, SL, C#, G)不属于2NF, 将出现 插入异常: 如果学生95001没选课, 不能插入 删除复杂: 如果一个学生只选修了1门课, 如删 修改复杂: 学生转系, 不仅修改所在系, 还修改住处 规范化: 解决办法是用投影分解, 例子中非主属性有两种,规范化,对码完全函数依赖, 例如G 对码部分函数依赖, 例如SD和SL 所以关系模式S-L-C被分解为 S-C(S#, C#, G) S-L(S#, SD, SL) 三范式(3NF): 关系模式R中若不存在这样的码X, 属性组Y以及非主属性组Z(Z Y), 使得若XY 、 YZ和Y X 成立,则称R3NF 如果关系模式R2NF,且每一个非主属性不传递依赖于任一候选关键字,则称R3NF 可以证明如果R3NF, 则每一个非主属性既不部分依赖于码, 也不传递依赖于码,规范化,例子: 关系模式S-L(S#, SD, SL)中有 S# SD, SD S#, SD SL 则S# SL 所以 S-L 3NF 问题: 关系模式S-L不属于3NF, 将出现 插入异常: 一个系刚成立, 无学生 删除异常: 某个系的学生全毕业了 修改复杂: 学生转系, 不仅修改SD, 也要修改SL 规范化: 解决方法是投影分解, 将S-L分解为 不好: S-D(S#, SD) 好: S-D(S#, SD) S-L(S#, SL) D-L(SD, SL),规范化,关系模式S-L-G(S#, SD, SL, C#, G)分解为 S-G(S#, C#, G) S-D(S#, SD) D-L(SD, SL) BCNF(Boyce Codd Normal Form): 关系模式R 1NF, 若XY且Y X时, X必含有码, 则R BCNF 由定义可得到: 所有非主属性对每一个码都是完全函数依赖的 没有任何属性完全函数依赖于非码的任何一组属性 所有主属性对每个不包含它的码也是完全函数依赖,规范化,讨论: RBCNF, 则R 3NF 若R 3NF, 则R未必属于BCNF 例如: 关系模式STJ(S, T, J), 其中每位教师(T)只教授一门课(J), 每门课有若干教师担任, 某一学生(S)选定一门课, 就对应一位固定的教师, 因此对应函数依赖可表示(S, J)T (S, T)J TJ, 候选码为(S, J)和(S, T) 结论: STJ 3NF, 但STJBCNF 存在的问题: 插入异常, 删除异常和冗余等问题 规范化: 解决办法是投影分解 ST(S, T) TJ(T, J),规范化,结论: 一个模式中的关系模式如果都属于BCNF, 那么在函数依赖的范畴内, 它已实现了彻底的分离, 已消除了插入和删除异常 3NF的不彻底性表现在可能存在主属性对码的部分依赖和传递依赖 多值依赖: 问题: 属于BCNF的关系模式可能仍然存在一些问题, 例如关系模式teaching(C, T, B), 其中某一门课由多位教师讲授, 他们使用同一套参考书, 每位教师可以讲授多门课程, 每种参考书可供多门课程使用, 该模式的码为全码, 分析该模式的一个关系,课程C 教师T 参考书B 物理 李勇 普通物理 物理 李勇 光学原理 物理 李勇 物理习题集 物理 王军 普通物理 物理 王军 光学原理 物理 王军 物理习题集 数学 李勇 数学分析 数学 李勇 微分方程 数学 李勇 高等代数 数学 张平 数学分析 数学 张平 微分方程 数学 张平 高等代数,.,.,.,(物理, 李勇),(物理, 王军),Y X Z,(数学, 李勇),(数学, 张平),(物理, 普通物理) 李勇 王军 (物理, 光学原理) 李勇 王军 (数学, 数学分析) 李勇 张平 . .,规范化,定义: 设R是属性U上的一个关系模式, X、Y、Z是U的子集, 并且Z=U-X-Y, 多值依赖X Y成立当且仅当对R的任一关系r, 给定的一对(x, z)值有一组y的值, 这组值仅决定于X的值而与Y的值无关 形式化定义: 在R的任一关系r中, 如果存在元组t和s使得tX=sX, 那么必然存在元组w, v r, w,v可以与s,t相同, 使得wX=vX=tX, 而wY=tY, wZ=sZ vY=sY, vZ=tZ, 记为: X Y 多值依赖的性质: 多值依赖具有对称性: 若X Y, 则X Z 函数依赖可以看作多值依赖的特例: 若XY, 则X Y,规范化,若X Y, 而Z=, 则称X Y为平凡的多值依赖 4NF: 关系模式R1NF, 若X Y(Y X)是非平凡的多值依赖, 且X含有码, 则称R4NF 定义说明: X中含有码, 实际上是XY, 也就是在4NF的关系模式中, 除了平凡的函数依赖和名为多值依赖而实质上是函数依赖者外, 没有其他的多值依赖 关系模式teaching中存在非平凡的多值依赖, 所以不属于4NF,规范化,存在的问题: 如果一个模式已达到BCNF, 但不是4NF, 问题是数据冗余太大 解决办法: 模式分解, 消除非平凡的非函数依赖的多值依赖 CT(C, T) CB(C, B) 只有平凡的函数依赖, 所以CT和CB都是4NF 规范化小结: 规范化目的: 消除插入、删除异常,修改复杂和数据冗余等问题 规范化实质:概念单一化 规范化过程:通过对关系模式分解来实现,数据依赖的公理系统,数据依赖的公理系统是模式分解算法的理论基础 Armstrong公理系统: 函数依赖的一个有效而完备的公理系统 逻辑蕴含: 对于满足一组函数依赖F的关系模式R, 其中任何一个关系r, 若函数依赖XY都成立, 则称F逻辑蕴含XY 一套推理规则(Armstrong公理系统): 可以求得给定关系模式的码, 可以从一组函数依赖求得蕴含的函数依赖,数据依赖的公理系统,Armstrong公理系统: 设U为属性集总体, F是U上的一组函数依赖, 于是有关系模式R, 对R来说有以下的推理规则 A1 自反律: 若YXU, 则XY为F所蕴含 A2 增广律: 若XY为F所蕴含, 且ZU, 则XZYZ 为F所蕴含 A3 传递律: 若XY和YZ为F所蕴含, 则XZ为F所蕴含 定理1: Armstrong推理规则是正确的, 即如果F成立, 则由F出发, 根据Armstrong公理导出的函数依赖总是正确的,数据依赖的公理系统,证明1: 设YXU 对R的任一关系r中的任意两个元组t, s 若tX=sX, 由YX 可得tY=sY 所以XY成立 证明2: 设XY为F所蕴含, 且ZU 对R的任一关系r中的任意两个元组t, s 若tXZ=sXZ, 则有tX=sX和tZ=sZ 又XY成立, 则有tX=sX和 tY=sY 所以tYZ=sYZ, 所以XZYZ为F所蕴含,数据依赖的公理系统,证明3: 设XY及YZ为F所蕴含 对R的任一关系r中的任意两个元组t, s 若tX=sX, 由XY可得tY=sY 又YZ成立, 则有tZ=sZ 所以XZ为F所蕴含 根据上述推理规则得到另外的推理规则 1合并规则: 若XY 和XZ, 则有XYZ 2伪传递规则: 若XY和 WYZ, 则有XWZ 3分解规则: 若XY及ZY, 则有XZ,数据依赖的公理系统,引理1: XA1 A2. Ak成立的充分必要条件是X Ai成立(由合并规则和分解规则可以证明) 定义2: F的闭包 在关系模式R中为F所蕴含的函数依赖的全体, 记作F+ 定理2: Armstrong公理系统是有效的、完备的 有效的: 指由F出发, 根据Armstrong公理导出的每个函数依赖一定在F+中(由定理1可证明) 完备的: 指F+中的每个函数依赖必定可由F出发, 根据Armstrong公理推导出来,数据依赖的公理系统,由定理2可知, 理论上是可以求得F+的, 如果有F+, 判断XY是否属于F+是非常容易的, 但实际上由F求F+有时几乎是不可能做到的, 例如从 F=XA1 , XA2 , XAn 出发可以推导出2n个函数依赖 定义3: 设F为属性集U上的一组函数依赖, X U, XF+=A|X A能由F根据Armstrong公理导出, XF+称为属性集X关于函数依赖集F的闭包 引理2(由引理1得出):设F为属性集U上的一组函数依赖, X,Y U, XY能由F根据Armstrong公理导出的充分必要条件是Y XF+,数据依赖的公理系统,判断XY是否能由F根据Armstrong问题, 转化为求XF+, 判断Y是否为XF+的子集问题 求XF+算法(输入X, F, 输出XF+) (1)令X(0)=X, i=0 (2)求B, B=A|(v)(w)(v wFv X(i)Aw) (3) X(i+1)=BX(i) (4)判断X(i+1)=X(i) (5)若不等, i=i+1, 返回(2) (6)若相等或X(i)=U, XF+ =X(i),结束,数据依赖的公理系统,例子: 已知关系模式R, U=A, B, C, D, E, F=AB C, B D, C E, EC B, AC B 求(AB)F+ (1)X(0)=AB, i=0 (2)求B, B=CD (3) X(1)=BX(0)=ABCD (4)因为X(1)X(0), 所以再找出左部为ABCD子集的那些函数依赖 (5)B=CDBE (6) X(2)=BX(1)=ABCDE (AB)F+ =ABCDE,数据依赖的公理系统,定义4: 设F, G为两个函数依赖集, 如果F+=G+, 则称F和G是等价的, 也称F覆盖G, 或称G覆盖F, 也可以说F和G互相覆盖 引理3: F+=G+的充分必要条件为FG+和GF+ 证: 必要性 F+=G+F+ G+ G+ F+ 所以 F G+ G F+ 充分性 F G+则F+ (G+ )+, 但(G+ )+= G+ 故F+ G+ 同理可证 G+ F+ 所以F+=G+,数据依赖的公理系统,引理3给出了测试函数依赖集F和G是否等价的方法: 测试FG+和GF+是否成立 例如: 测试FG+ 对每个函数依赖XY F, 测试它是否在G+中 计算X关于G+的闭包X G+ +, 然后测试Y X G+ + 定义5: 如果函数依赖集F满足下列条件, 则称F为一个极小的函数依赖集, 也称最小覆盖 (1) F中的每个函数依赖的右部为单属性 (2) F中不存在这样的函数依赖XA, 使得F-XA 与F等价,数据依赖的公理系统,(3) F中不存在这样的函数依赖XA, 使得F-XA ZA与F等价(Z X) 定理3: 每个函数依赖集F均等价于一个极小的函数依赖集Fm, Fm称为F的最小覆盖 证明: 只要能构造一个满足定义5中3个条件的覆盖Fm, 定理得证 (1) 逐一检查F中的函数依赖XY, 如Y=A1A2.An ,则用XAi | i=1,2., K取代XY (2) 逐一检查XA 令G=F-XA, 若A XG+ 则从F中去掉该函数依赖, 对所有的XA检查并处理后, 的覆盖G, G满足定义5中的(1)(2),数据依赖的公理系统,(3) 检查G中每个函数依赖XA, 设X= B1B2.Bm , 对Bi逐一做下列检查和处理 G与G-XA(X- Bi) A是否等价 如等价, 则以X- Bi取代X, 如不等价, 则X不变 所有的Bi检查完后, 令最后的X为Z 并以G- XA(Z A) 代替G G中每个XA做如此检查后, 设得函数依赖集G 显然G满足定义5中的3项, 故令G为Fm, 即Fm是可构造的,数据依赖的公理系统,关系模式R1和R2, 如果F和G等价, 那么R1的关系一定是R2的关系, 所以在R中用与F等价的依赖集G来取代F是允许的 求候选关键字的经验方法: 若属性A仅出现在所有函数依赖的右部,则它一定不包含在任何候选关键字中; 若属性A仅出现在所有函数依赖的左部,则它一定包含在某个候选关键字中; 孤立属性则它一定不包含在任何候选关键字中; 若属性A既出现在函数依赖的右部,又出现在左部,则它可能包含在候选关键字中; 在上述基础上求属性集闭包。,数据依赖的公理系统,给定关系模式R, 求候选码 例子: 对于R(ABCDE), F=AB, BC E, EDA求出R的所有候选关键字 如果K是关键字, 则有K U, 所以只要判断KF+ =U 且KF+ U (KK) (CD)F+ =CD (CDE)F+ =CDEAB (CDA)F+ =ABCDE (CDB)F+ =CDBEA,模式分解,有时候为了控制由于冗余带来的问题以及插入和删除等问题要求关系模式满足一定的范型,可以通过模式分解来达到,这一过程称之为规范化(Normalization) 有时候考虑到查询的效率,需要将满足较高范型的关系模式进行合并,这一过程称之为 Denormalization,模式分解,关系模式R(U,F)的一个分解是指 =R1, R2, , Rn, 其中U=ni=1Ui, 并且没有UiUj, 1i,j n, Fi是F在Ui上的投影 Fi是F在Ui上的投影=XY | XYF+XYUi的最小函数依赖集 模式分解的三个定义: 朴素想法: 一个关系分解成多个关系, 相应的原来一个关系中的数据就要分散到多个关系中, 要使分解有意义, 就要求后者不能丢失前者的信息,模式分解,例子: 已知R, 其中U=S#, SD, MN F=S#SD, SD MN, 由于R中存在传递函数依赖S#MN, 会发生更新异常 分解 1=R1, R2, R3 分解后Ri的关系ri是R的关系r在Ui上的投影 S# SD MN r1=S1, S2, S3, S4 S1 D1 张五 r2=D1, D2, D3 S2 D1 张五 r3=张五, 李四, 王一 S3 D2 李四 如果问S1在哪个系学习, 此 S4 D3 王一 时变得无从知道, 丢失了原 来的信息,模式分解,分解 2=R1, R2 S# SD MN r1= S1, D1, S2, D1, S1 D1 张五 S3, D2, S4, ,D3 S2 D1 张五 r2= S1,张五, S2,张五, S3 D2 李四 S3,李四, S4,王一 S4 D3 王一 通过自然连接, 可以恢复r 无损分解(分解具有无损连接性): 不丢失信息 2不能解决插入、删除异常, 由于丢失SDMN,模式分解,分解 3=R1, R2 S# SD MN r1= S1, D1, S2, D1, S1 D1 张五 S3, D2, S4, ,D3 S2 D1 张五 r2= D1,张五, D2,李四, S3 D2 李四 D3,王一 S4 D3 王一 通过自然连接, 可以恢复r 保持函数依赖: 不丢失函数依赖 保持函数依赖又具有无损连接性:,模式分解,通过例子来考察分解后的性质 R 1=R1, R2, R3 有损分解、不保持函数依赖 2=R1, R2 无损分解、保持函数依赖,模式分解,结论: 对一个模式的分解是多种多样的, 但分解后产生的模式应与原模式等价, 等价的三个不同定义: 分解具有“无损连接性” 分解要保持函数依赖 分解既要保持函数依赖又要具有无损连接性 定义3: 设=R1,R2, , Rn是R的一个分解, r是R的任意一个值, 如果满足条件r= r1 r2, , rn, 其中ri= Ui (r), 称分解具有无损连接性或简称无损分解,模式分解,定义4: 设=R1,R2, , Rn是R的一个分解, 如果 逻辑蕴含F, 称分解保持函数依赖 关系模式分解的两种准则 只满足无损分解: 最基本的要求, 发同样的查询得到查询结果相等 即满足无损分解又满足保持函数依赖,模式分解,反例: 只保持函数依赖, 而不满足无损分解要求的分解. 关系模式R(ABCD), 设F=A B, C D, 它的分解=R1(AB), R2(CD), 分解无意义 无损分解测试算法: 检测一个分解是否无损分解 输入: 关系模式R(A1, A2, ., An) R上的函数依赖集F R上的分解=R1, R2, . ,Rk 输出: 是无损分解 步骤:,模式分解,(1) 建立n列, k行的矩阵M,属性, 的K个关系模式,A1 A2 . Aj . An R1 R2 Ri . Mi, j Rk,.,.,.,Mi, j= aj 若AiUi bij 若AiUi,模式分解,(2) 对F中的每个函数依赖XY反复进行下面 的检查和处理, 直到M无变化 为止 检查X中的属性所对应的列, 找出X相等的那些行, 如果找到X相等的两行(或多行), 把相应的Y属性对应的符号改为一致, 即如果其中之一为aj, 则其他也改成aj, 如果这两个符号为bij和blj, 将它们统一成bij或blj (3)当M无变化时, 如果M中有一行变成了 a1,a2.,an, 则是无损分解, 否则不是,模式分解,例子: 关系模式R(ABCDE) =R1(AD), R2(AB), R3(BE), R4(CDE), R5(AE) 是R的一个分解, 在R上有下列函数依赖 F=A C, B C, C D, DE C, CE A, 判别是否是无损分解 解: (1)建M (2)对A C检查 b13, b23, b53 b13 对B C检查 b13, b33 b13,模式分解,=R1(AD), R2(AB), R3(BE), R4(CDE), R5(AE) ,A C,B C,模式分解,对C D检查 对DE C检查,模式分解,对CE A检查 再进行下去, M无任何变动, 由于第三行已是全a, 所以是无损分解,模式分解,定理: 算法1可以正确判断一个分解是无损分解 定理: 关系模式R, 分解 =R1, R1具有无损连接性的充分必要条件为 U1U2U1-U2F+或U1U2U2-U1F+ 保持函数依赖分解测试算法: 检测一个分解是否保持函数依赖 输入: , F 输出: 是否保持函数依赖,模式分解,(1) 令G= , 检查G是否覆盖F (2) 对F中的每个函数依赖XY进行下列检查 1)计算X关于G的闭包XG+, 检查Y是否是XG+的子集 为了计算XG+, 不必求出G, 可以分别地, 反复地计算Ui(F) (其中i=1,2,.,k)对XG+所增加的属性 Z=X 判断Z是否与Ui有关 while Z有改变 do for i=1 to k do Z=Z(Z Ui)+ Ui),Z中与Ui有关属性,是Ui(F)对XG+增加的属性,模式分解,经反复计算, 直至Z不变 Z是XG+如果YXG+, 则XY G+ 2)如果F中的所有函数依赖都属于G+ ,则保持函数依赖 例子: 关系模式R(ABCD), F=A B, B C, C D, D A, 判别=R1(AB), R2(BC), R3(CD) 是否保持函数依赖 解: U1(F) A B U2(F) BC U3(F) C D,F中的前三个函数依赖已明显在G中, 只要检验D A是否为G所蕴含,模式分解,令 Z=D 第一遍: i=1 ZU1=D A, B = Z不变 i=2 ZU2=D B, C = Z不变 i=3 ZU3=D C, D =D Z=D(D+ C, D) =D(A,B,C,D C, D) = C, D,模式分解,第二遍: i=1 ZU1=C,D A, B = Z不变 i=2 ZU2=C,D B, C =C Z=C,D(C+ B, C) =C,D(A,B,C,D B, C)= B,C,D i=3 ZU3=B,C,D C, D =C,D Z=B,C,D(C,D+ C, D) =B,C,D(A,B,C,D C, D)= B,C, D,模式分解,第三遍: i=1 ZU1=B,C,D A, B =B Z=B,C,D(B+ A,B) = A,B,C,D Z是全部属性集, 不可能再改变 所以D+ =A,B,C,D 因为A D+ 所以DA G+ 所以保持函数依赖,模式分解,对数据库设计者来说两种重要的范式: 3NF和BCNF 由于关系规范化要求不同, 出现了不同的范式, 其规范化条件越来越强, 后面的范式可以看成是前面范式的特例, 从关系规范化的发展看来, 有这些范式, 但在规范化时, 不必按此步骤顺序一步步去做, 对于数据库设计者来说1NF和2NF并不重要 一般来说属于3NF而非BCNF的关系模式不是很多, 即使出现了这种关系模式, 对数据库设计者来说, 引起的更新异常往往也不是重要的,模式分解,例子: 关系模式R(C, S, Z), 其中C-city, S-street, Z-zip, R属于3NF而非BCNF 问题: 插入异常(如不知道街道) 规范化: R1(Z,C) R2(S,Z), 都为BCNF 因为(ZCSZ)(ZC-SZ)F+, 但F中的CS Z将得不到保持 R(C,S,Z)还是合理的, 因为撇开街道, 单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电瓶组装知识培训课件
- 《三峡》教学课件 部编语文八年级上册
- 电焊机安全使用培训课件
- XmAb-662-生命科学试剂-MCE
- Dog-hair-and-epithelia-extract-生命科学试剂-MCE
- 北京八十中数学考试题及答案
- 2-5-Triphosphoribosyl-3-dephospho-CoA-生命科学试剂-MCE
- 福州历史中考试题及答案
- 肛肠科考试题及答案
- 感官图形考试题及答案
- 厨房燃气安全管理办法
- 即时零售配送骑手管理痛点破解报告 2025
- 神经重症患者镇痛镇静治疗中国专家共识解读
- 教科版2025小学二年级科学教学发展规划计划
- 《铁路路基施工与维护》高职高速铁路施工与维护全套教学课件
- 安全生产隐患排查表汇编
- 岗位竞技活动方案
- 大气监测培训课件
- 2025年深圳中考物理试卷真题(含答案)
- 中国高熔体强度聚丙烯行业市场调查报告
- 2025年课标卷高考地理真题(解析版)
评论
0/150
提交评论