您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第3章__关系数据库规范化理论
主要内容第3章关系数据库规范化理论3.1关系模式中的异常现象3.2函数依赖理论3.3范式3.4规范化实例3.1关系模式中的异常现象假定有如下关系S:S(SNO,SNAME,SSEX,CNO,CNAME,GRADE)这个关系模式存在如下问题:(1)数据冗余(2)不一致性(3)插入异常(4)删除异常4.1问题的提出为了克服这些异常,将S关系分解为如下3个关系:S1(SNO,SNAME,SEX)主码为SNOS2(SNO,CNO,GRADE)主码为(SNO,CNO)S3(CNO,CNAME)主码为CNO3.2函数依赖理论3.2.1函数依赖的定义定义1:(当X确定时,Y属性只有唯一值与之对应)定义2:设X→Y是一个函数依赖,若YX,则称X→Y是一个平凡函数依赖。(若不特别说明,总是讨论非平凡依赖)定义3:设X→Y是一个函数依赖,并且对于任何X'X,X'→Y都不成立,则称X→Y是一个完全函数依赖。即Y函数依赖于整个X,记作X→Y。f3.2函数依赖理论定义4:设X→Y是一个函数依赖,但不是完全函数依赖,则称X→Y是一个部分函数依赖,或称Y函数依赖于X的某个真子集,记作X→Y。(只有当候选码中存在多属性时,才讨论部分依赖)定义5:设R(U)是一个关系模式,X,Y,ZU,如果X→Y(YX,Y→X),Y→Z成立,则称Z传递函数依赖于X,记为X→Z。\p\t3.2函数依赖理论3.2.2函数依赖与属性关系设R(U)是属性集U上的关系模式,X、Y是U的子集:•如果X和Y之间是1∶1关系(一对一关系),则存在函数依赖X→Y和Y→X。•如果X和Y之间是1∶n关系(一对多关系),则存在函数依赖Y→X。•如果X和Y之间是m∶n关系(多对多关系),则X和Y之间不存在函数依赖。3.2函数依赖理论补充:Armstrong公理:设A、B、C、D是给定关系模式R的属性集的任意子集,并把A和B的并集A∪B记为AB,则其推理规则可归结为3条。•自反律:如果BA,则A→B。这是一个平凡的函数依赖。•增广律:如果A→B,则AC→BC。•传递律:如果A→B且B→C,则A→C。3.2函数依赖理论由Armstrong公理可以得到以下推论。•自合规则:A→A。•分解规则:如果A→BC,则A→B且A→C。•合并规则:如果A→B,A→C,则A→BC。•复合规则:如果A→B,C→D成立,则AC→BD。4.2函数依赖4.2.4闭包及其计算定义6:设F是关系模式R的一个函数依赖集,X,Y是R的属性子集,如果从F中的函数依赖能够推出X→Y,则称F逻辑蕴涵X→Y。定义7:被F逻辑蕴涵的函数依赖的全体构成的集合,称为F的闭包,记为F+。4.2函数依赖定义8:设F是属性集U上的一组函数依赖,XU,则属性集X关于F的闭包X定义为X={A|A∈U且X→A可由F经Armstrong公理导出},即X={A|X→A∈F+}。定义9:一个关系模式R(U)上的两个依赖集F和G,如果F+=G+,则称F和G是等价的,记作F≡G。4.3范式和规范化4.3.1什么叫范式满足最低要求的关系称它属于第一范式的,在此基础上又满足了某种条件,达到第二范式标准,则称它属于第二范式的关系,如此等等,直到第五范式。一个较低范式的关系,可以通过关系的无损分解转换为若干较高级范式关系的集合,这一过程就叫作关系规范化。4.3范式和规范化4.3.2范式的判定条件与规范化1.第一范式(1NF)定义10:设R是一个关系模式,R属于第一范式当且仅当R中每一个属性A的值域只包含原子项,即不可分割的数据项。(关系必须满足1NF讨论范式才有意思)2.第二范式(2NF)定义11:设R是一个关系模式,R属于第二范式当且仅当R是1NF,且每个非主属性都完全函数依赖于主码。4.3范式和规范化3.第三范式(3NF)定义12:设R是一个关系模式,R属于第三范式当且仅当R是2NF,且每个非主属性都非传递函数依赖于主码。4.BC范式(BCNF)定义13:对于关系模式R,若R中的所有非平凡的、完全的函数依赖的决定因素是码,则R属于BCNF。(当且仅当R是2NF,且所有属性都非传递函数依赖于主码)4.4关系模式的分解4.4.2无损分解的定义和性质1.无损分解的概念无损分解指的是对关系模式分解时,原关系模式下任一合法的关系值在分解之后应能通过自然联接运算恢复起来。定义14:设ρ={R1,R2,…,Rk}是关系模式RU,F的一个分解,如果对于R的任一满足F的关系r都有:则称这个分解ρ是函数依赖集F的无损分解。4.4关系模式的分解2.验证无损分解的充要条件如果R的分解为ρ={R1,R2},F为R所满足的函数依赖集合,则分解ρ具有无损分解的充分必要条件为:R1∩R2→(R1-R2)或R1∩R2→(R2-R1)4.4关系模式的分解4.4.3无损分解的测试方法输入:关系模式R(A1,A2,…,An),它的函数依赖集F以及分解ρ={R1,R2,…,Rk}。输出:确定ρ是否具有无损分解。方法:(1)构造一个k行n列的表,第i行对应于关系模式Ri,第j列对应于属性Aj。如果Aj∈Ri,则在第i行第j列上放符号ai,否则放符号bij。4.4关系模式的分解(2)逐个检查F中的每一个函数依赖,并修改表中的元素。其方法如下:取F中一个函数依赖X→Y,在X的分量中寻找相同的行,然后将这些行中Y的分量改为相同的符号,如果其中有aj,则将bij改为aj;若其中无aj,则改为bij。(3)这样反复进行,如果发现某一行变成了al,a2,…,ak,则分解ρ具有无损分解;如果F中所有函数依赖都不能再修改表中的内容,且没有发现这样的行,则分解ρ不具有无损分解。4.4关系模式的分解4.4.4保持函数依赖的分解定义15:设有关系模式R,F是R的函数依赖集,Z是R的一个属性集合,则称Z所涉及到的F+中所有函数依赖为F在Z上的投影,记为πZ(F),有:πZ(F)={x→y|x→y∈F+且xyZ}定义16:设关系模式R的一个分解ρ={R1,R2,…,Rk},F是R的依赖集,如果F等价于,则称分解ρ具有依赖保持性。1NF2NF3NF(一个关系至少达到该范式才是可用的)BCNF4NF5NF关系规范化小结消除非主属性对码的部分函数依赖消除非主属性对码的传递函数依赖消除主属性对码的传递函数依赖消除非平凡且非函数依赖的多值依赖消除不是由候选关键字蕴含的连接依赖范式分解的一般步骤•找出关系的候选码•列出关系的主属性和非主属性集合•若存在非主属性对码的部分依赖,则该关系只满足1NF,消除后可达2NF•若存在非主属性对码的传递依赖,则该关系只满足2NF,消除后可达3NF•若存在主属性对码的传递依赖,则该关系只满足3NF,消除后可达BCNF补充:在关系模式STC(S,T,C)中,S表示学生,T表示教师,C表示课程。若:每位教师只讲授一门课,每门课由若干教师讲授;每个学生选修一门课程对应一个固定教师。则:F={(S,C)-T,T-C}主属性:S,C,非主属性T。问STC最高达几范式?为什么?
本文标题:第3章__关系数据库规范化理论
链接地址:https://www.777doc.com/doc-3827425 .html