数据库五课件

上传人:无*** 文档编号:241431070 上传时间:2024-06-25 格式:PPTX 页数:45 大小:428.79KB
返回 下载 相关 举报
数据库五课件_第1页
第1页 / 共45页
数据库五课件_第2页
第2页 / 共45页
数据库五课件_第3页
第3页 / 共45页
点击查看更多>>
资源描述
讲授:麻淑芳 时间:2012年2月数据库实用教程第五章 规范化设计5.1 关系模式的设计问题5.2 函数依赖5.3 关系模式的分解特性5.4 关系模式的范式5.5 模式的进一步规范化*第五章 规范化设计 本章讨论如何设计关系数据库,设计关本章讨论如何设计关系数据库,设计关系数据库的核心问题是关系模式的设计。系数据库的核心问题是关系模式的设计。关系数据库的关系数据库的规范化设计理论规范化设计理论即即“模式设计理论模式设计理论”数据依赖数据依赖研究数据之间的联系研究数据之间的联系范范 式式 关系模式的标准关系模式的标准 模式设计方法模式设计方法 规范化的方法规范化的方法5.1 关系模式的设计问题 一个关系模型包括外延和内涵两个方面内一个关系模型包括外延和内涵两个方面内容:容:外延外延就是通常所说的关系、表或当前值。内涵内涵是对数据的定义以及数据完整性约束的定义,一般把内涵成为关系模式。数据的定义数据的定义包括对关系、属性、域的定义和说明。数据完整性约束数据完整性约束包括静态约束(涉及数据依赖、主键、值域的设计)和动态约束(定义各种操作对关系值得影响)。泛关系模式与数据库模式 关系模式的一般形式关系模式的一般形式:R R 其中:U U 为组成关系R的全部属性的集合,即UA1,An。D D 为域的集合,即属性的取值范围的集合。Dom Dom 为U与D之间的映象。F F 为属性U上的一组约束,即数据依赖集。例:学习关系SC(SNO,CNO,GRADE)中存在如下数据依赖:(SNO,CNO)GRADE 泛关系模式与数据库模式由于D和Dom对关系模式设计影响不大,故关关系模式的一般形式可简化为系模式的一般形式可简化为:R R 称为:称为:泛关系模式泛关系模式其中:属性集U中的每个属性Ai对应一个值域Di,而不同的属性可以有相同的值域。满足上述制约条件F的关系关系用符号r r表示,关系r是关系模式的当前值,是元组的集合。r r表示的关系表示的关系 称为:称为:泛关系泛关系例如,在关系模式STUDENT中:U=SNO,SNAME,CNO,CNAME,GRADE F=(SNO,CNO)GRADE,SNOSNAME,CNOCNAME 泛关系模式与数据库模式在实际使用时,R(U)和r可能不是恰当的形式,需要将将R R(U U)替换为一个关系模式的)替换为一个关系模式的集合:集合:=R=R1 1,R Rk k 称为:称为:数据库模式数据库模式其中,每个Ri的属性是U的子集,且有 R1R2 Rk=U;对数据库模式的每一个关系模式Ri赋予一个当前值,就得到了一个数据库实例。例:关系模式STUDENT(U)可替换为=R1,R2,R3U=SNO,SNAME,CNO,CNAME,GRADE R1=SNO,SNAMER2=CNO,CNAMER3=SNO,CNO,GRADE 关系模式的冗余和异常问题如果一个关系模式设计的不好,就会出如果一个关系模式设计的不好,就会出现数据冗余、异常、不一致等问题,常现数据冗余、异常、不一致等问题,常见的有:见的有:数据冗余:数据冗余:是指同一个数据在系统中多次重复出现。在数据库管理中,数据冗余一直是影响系统性能的大问题。操作异常:修改异常、插入异常、删除操作异常:修改异常、插入异常、删除异常。异常。5.2 函数依赖 关系可定义为笛卡儿积的一个子集,要使这个子集有意义,需要对关系的值作各种限制,这种限制称为数据完整性约束条件数据完整性约束条件。数据完整性约束主要有两种:数据完整性约束主要有两种:值域的限制值域的限制:由DBMS完整性子系统实现。数据依赖数据依赖:描述了数据之间存在的联系,即属性与属性之间的对应关系。在数据库规范化设计中起着关键的作用。其中,函数依赖函数依赖是基本的一种依赖,它是关键码概念的推广。函数依赖的定义定义定义5.15.1:设有关系模式R(U),X和Y是属性集U的子集,如果对于R的任何一个关系r中的任意两个元组t和s,对应于X的属性分量的值相等时,对应于Y的属性分量的值也相等,即:只要有tX=tX,就有sY=sY,则称“X X函数决定函数决定Y Y”或称“Y Y函函数依赖于数依赖于X X”,其符号表示为:X XY Y。对于R上的每一个XY都称为一个函数依赖(简称FD)。FDFD也可以描述为:也可以描述为:对于r中属性或属性组属性或属性组X X的每一个值,r中属性或属性组属性或属性组Y Y只有只有一个值与之对应。函数依赖的逻辑蕴涵定义定义5.25.2:设 F 是关系模式 R(U)上成立的函数依赖集,X和Y是属性集U的子集。如果从F推导出的XY也在R(U)上成立,那么称F F逻辑蕴涵逻辑蕴涵 XY XY,记为:F F XYXY定义定义5.35.3:设F是关系模式R(U)上成立的函数依赖集,X和Y是属性集U的子集。F的所有逻辑蕴涵组成的集合称为函数依赖集函数依赖集F F的闭的闭包包,记为:F F+。F+=XY|FXY即:从给定的函数依赖集合F推出的所有函数依赖组成的集合,称为F的闭包。函数依赖的推理规则设U是关系模式R的属性集,F是R上成立的一组函数依赖集,X、Y分别是U上的子集,则存在如下推理规则:FDFD公理(函数依赖公理):公理(函数依赖公理):自反性:自反性:若YXU,则XY在R上成立。增广性:增广性:若XY在R上成立,且ZU,则XZYZ在R上成立。传递性:传递性:若XY和YZ在R上成立,则 XZ在R上成立。定理定理5.15.1:如果XY是从F用推理规则导出,那么XY在F+中。函数依赖的推理规则例:已知关系模式R(ABC),F=AB,BC,求F+根据FD推理规则,可推出F的F+有43个FD。其中:据自反性可得出27个FD:函数依赖的推理规则据增广性可得出7个FD:据传递性可得出9个FD:函数依赖的推理规则 定义定义5.45.4:对于函数依赖 XY,如果YX,那么称XY是一个“平凡的平凡的FD”FD”;否则称为“非平凡的非平凡的FD”FD”。平凡的FD没有实际意义,根据自反性就可推出。我们感兴趣的是非平凡的FD,只有非非平平凡的凡的FDFD才和“真正的”完整性约束条件相关完整性约束条件相关FDFD公公理理是FD的一个正确的、完备的推理规则集。函数依赖的推理规则FDFD推理规则推理规则 合并性:合并性:若 XY,XZ,则 XYZ。分解性:分解性:若 XY,ZY,则 XZ。伪传递性:伪传递性:若XY,YWZ,则 XWZ。复合性复合性:若XY,WZ,则XWYZ。通用一致性定理:通用一致性定理:若XY,WZ,则X(WY)YZ。从并规则和分解规则可得到下面的定理。定理定理5.25.2:如果A1An是关系模式R的属性集,那么XA1An成立的充分必要条件是XAi(i=1,n)成立。FD和关键码的联系定义定义5.55.5:设有关系模式R(U),X是属性集U的一个子集。如果XU在R上成立,那么称X是R的一个超键超键。如果XU在R上成立,但对于X的任一真子集X1都有X1U不成立,那么称X是R的一个候选键候选键。另,如果A是关系模式R的候选键X中属性,那么称A是R的主属性主属性;否则称A是R的非主属非主属性。性。属性集的闭包 实际使用中,经常要判断能否从从已已知知的的FDFD集集F F推推导导出出FD FD XYXY,那么可先求出F的闭包F+,然后再看XY是否在F+中。定定义义5.65.6:设F是属性集U上的FD集,X是U的子集,那么(相对于F)属性集X的闭包用X X+表示,它是一个从F集使用FD推理规则推出的所有满足XA的属性A的集合:X X+=A|A A|A U U,XAXA F F+定理定理5.35.3:XY能用FD推理规则推出的充分必要条件是YX+FD集的最小依赖集关系模式 R(U)上的两个函数依赖集F和G,如果有F+=G+,则称F和G是等价的函数依赖集等价的函数依赖集。定义定义5.75.7 设F是属性集U上的FD集,如果F Fminmin为F的一个最小依赖集最小依赖集,那么Fmin应满足下列四个条件:F+min=F+每个FD的右边都是单属性右端无冗余属性 对于F中任一函数依赖XA,其FXA与F不等价;Fmin中没有冗余的FD对于F中任一函数依赖XA,对于任意ZX,FXAZA与F不等价。每个FD左端无冗余属性。显然,任何一个F至少存在一个最小依赖集Fmin。5.3 关系模式的分解特性定义定义5.85.8:设有关系模式R(U),R1、Rk都是R的子集,U=R1Rk,关系模式R1、Rk的集合用表示,=R1,Rk,用代替R的过程称为关系模式关系模式R R的分解的分解。称称为R的一个分解,也称为数据库模式数据库模式。泛关系模式 数据库模式 R =R1,Rk r =r1,rk 泛关系(元组的集合)数据库实例(数据库)模式分解的问题把把R R分解成分解成的目的的目的:为了消除数据冗余和操作异常现象。对于分解的意义,可以从两个角度来考虑对于分解的意义,可以从两个角度来考虑:和r是否等价,即是否表示同样的数据?用“无损分解无损分解”特性表示。在模式R上有一个FD集F,在的每一个模式Ri上也有一个FD集Fi,那么F1,Fn与F是否等价?用“保持依赖保持依赖”特性表示。无损分解定定义义5.95.9:设R是一个关系模式,F是R上的一个FD集,数据库模式=R1,Rk是R的一个分解。如果在R中满足F的每一个关系r,都有下式成立:则称分解相对于F是“无无损损联联接接分分解解”简称“无无损损分分解解”,否则称为“损损失失分分解解”。其中符号Ri(r)表示:关系r在模式Ri属性上的投影。r的投影联接表达式R1(r)Rk(r)用符号m m(r)(r)表示:无损分解设=R1,R2,,Rk是关系模式R上的一个分解,r是R上的任一关系,ri=Ri(r)(1ik),则有下列性质:r r m m(r)(r)若若s=ms=m(r),(r),则则RiRi(s)=r(s)=ri i m m(m(m(r)=m(r)=m(r)(r)幂等性幂等性注:上述性质的先决条件:r是R的一个关系另:模式分解能消除数据冗余和操作异常,并能使数据库中存储悬挂元组悬挂元组,即存储泛关系中无法存储的信息。无损分解的测试方法u算法算法5.15.1(追踪算法):(追踪算法):输入:输入:关系模式R(A1,An),R上成立的FD集F,R的一个分解=R1,Rk。输出:输出:判断相对于F是否具有无损分解特性具体步骤具体步骤:构造一张k k行行n n列列的表格,每列对应一个属性Aj(1jn),每行对应一个模式Ri(1ik):如果Aj在Ri中,那么在表格的第i行第j列处填上符号aj,否则填上符号 bij无损分解的测试方法u算法算法5.15.1(追踪算法):(追踪算法):反复检查F中的每一个FD,并修改表格中的元素,修改方法是修改方法是:取F中的一个FD XY,如果表格中有两行在X分量上相等,在Y分量上不相等,那么修改Y,使这两行在Y分量上也相等。修改原则是:修改原则是:i i)如果Y的分量中有一个是aj,那么另一个也修改成aj ii ii)如果没有aj,那么用其中一个bij替换另一个符号(尽量把下标ij改成较小的数)。一直到表格不能修改为止,这个过程称为Chase过程 若修改到最后一张表格中有一行是全有一行是全a a,即a1a2an,那么相对于相对于F F是无损联接分解是无损联接分解。无损分解的测试方法定理定理5.45.4:设=R1,R2是R上的一个分解,F是R上的FD集,那么分解分解相对于相对于F F是无损分是无损分解解的充分必要条件是:R1R2R1-R2 R1R2R1-R2 或或 R1R2R2-R1 R1R2R2-R1例:设R(ABC),F=AB在R上成立,1=AB,AC。试分析此分解是否为无损分解。R1R2=ABAC=A;R1-R2=AB-AC=B;满足AB;模式1=AB,AC是无损分解。保持函数依赖的分解如果关系模式在分解后不能保持FD,那么在数据库中就会出现异常现象。因此,关系模式R到=R1,Rk的分解,应使FD集F被F F在这些在这些R Ri i上的投影上的投影所逻辑蕴涵逻辑蕴涵。定义定义5.105.10 设F是属性集U上的FD集,Z是U的一个子集,F F在在Z Z上的一个投影上的一个投影用Z Z(F F)表示,定义为:定义定义5.11 5.11 设=R1,Rk是R的一个分解,F是R上FD集,如果有那么称分解分解保持函数依赖集保持函数依赖集F F。保持函数依赖的分解 从定义5.10可知 ,从定义5.11可知 。因此,在分解保持函数依赖情况下有 根据定义5.11,测试一个分解是否保持FD,比较可行的方法是:逐步验证F中每个FD是否被 逻辑蕴涵。保持函数依赖的分解 如果F的投影不蕴涵F,而我们又用=R1,Rk表达R,很可能会有一个数据库实例满足投影后的依赖,但不满足F。对的更新也就有可能使r违反FD。如果某个分解能保持FD集,那么在数据输入或更新时,只要每个关系模式本身的FD约束被满足,就可以确保整个数据库中数据的语义完整性不受破坏,显然这是一种良好的特性。小结 本节讨论的关系模式分解的两个特性实际上涉及到两个数据库模式的等价性问题。包包括括:数据等价数据等价和依赖等价依赖等价两个方面。数数据据等等价价是指两个数据库实例应表示同样的信息内容,用“无无损损联联接接”来衡量。如果是无损联接分解,那么反复投影和自然联接都不会丢失信息。依依赖赖等等价价是指两个数据库模式应有相同的依赖集闭包。在依赖集闭包相同的情况下,数据的语义是不会出差错的。5.4 关系模式的范式关系模式设计的好与坏,用什么标准来衡量?这个标准就是关系模式关系模式的范式的范式(Normal Forms,简记为NFNF)。范式有1NF、2NF、3NF、BCNF等多种。范式的种类与数据依赖(FD)有着直接的联系。第一范式定义定义5.125.12:如果关系模式R的每个关系r的属性值都是不可分的原子值不可分的原子值,那么称R R是第一范是第一范式式(First Normal Form,简称1NF1NF)的模式。满足1NF的关系称为规范化的关系规范化的关系,否则称为非规范化的关系非规范化的关系。关系数据库研究的关系都是规范化的关系。既使关系模式是1NF,但很可能具有数据冗余和操作异常现象。因此需把关系模式作进一步的规范化。第二范式定义定义5.135.13 对于FD WA,如果存在XW有 XA成立,那么称WAWA是局部依赖是局部依赖(A A局部局部依赖于依赖于W W);否则成WAWA是完全依赖是完全依赖,也称“左部不可约依赖左部不可约依赖”。定义定义5.145.14 如果A是关系模式R的候选键中的属性,那么称A是R的主属性主属性;否则称A是R的非主属性非主属性。定义定义5.155.15 如果关系模式R1NF,并且R中每个非主属性非主属性都完全函数依赖于完全函数依赖于R的候选键,称R是第二范式(第二范式(2NF2NF)的模式)的模式。如果数据库模式中每个关系模式都是2NF,则称数据库模式为2NF2NF的数据库模式的数据库模式。第二范式在关系模式R中消除非主属性对候选键的局非主属性对候选键的局部依赖部依赖的方法:算法算法5.2 5.2 分解成分解成2NF2NF模式集的算法模式集的算法设关系模式R(WXYZ),主键是WX,R上还存在FD XZ(也就是WXZ是一个局部依赖)。此时应把此时应把R R分解成两个模式:分解成两个模式:R R1 1(XZXZ)主键是主键是X X R R2 2(WXYWXY)主键是)主键是WX,WX,外键是外键是X X(References RReferences R1 1)如果R1 1和R2 2还不是2NF,则重复上述过程,一直到数据库模式中每一个关系模式都是2NF为止。第三范式定义定义5.165.16 如果XY,YA,且不存在YX和AY,则称X XA A是传递依赖是传递依赖(A A传递依赖于传递依赖于X X)。定义定义5.175.17 如果关系模式R1NF,并且R中每个非主属性非主属性都不传递依赖于不传递依赖于R R的候选键的候选键,那么称R是第三范式第三范式(3NF)(3NF)的模式的模式,如果数据库模式中每个关系模式都是3NF,则称其为为3NF3NF的数据库模式的数据库模式。第三范式在关系模式R中消除非主属性对候选键的传非主属性对候选键的传递依赖递依赖的方法:算法算法5.3 5.3 分解成分解成3NF3NF模式集的算法模式集的算法设关系模式R(WXY),主键是W,R上还存在FD XY,这样WY就是一个传递依赖。此时应把此时应把R R分解成两个模式:分解成两个模式:R R1 1(XYXY)主键是主键是X X R R2 2(WXWX)主键是)主键是WX,WX,外键是外键是X X(References RReferences R1 1)如果R1 1和R2 2还不是3NF,则重复上述过程,一直到数据库模式中每一个关系模式都是3NF为止。第三范式由5.13和定义5.16可以知道,局部依赖的存在必定蕴含着传递依赖的存在。也就是,如如果果R R是是3NF3NF模式,那么模式,那么R R也是也是2NF2NF模式。模式。局部依赖局部依赖和传递依赖传递依赖是模式产生冗余和异常的两个重要原因两个重要原因。由于3NF模式中不存在非主属性对候选键的局部依赖和传递依赖,因此消除了很大一部分存储异常,具有较好的性能。定义定义5.185.18 设F是关系模式的FD集,如果对F中每个非平凡的FD XY,都有X是R的超键,或者Y的每个属性都是主属性,那么称R R是是3NF3NF的模式的模式。3NF3NF的等价定义的等价定义BC范式在3NF模式中,并未排除主属性对候选键的传递依赖,仍有可能有冗余和异常现象。为了规范化这种情况,提出了“BCNF”。定义5.19 如果关系模式R1NF,并且R中每个属性属性都不传递依赖于传递依赖于R R的候选键的候选键,那么称R R是是BCNFBCNF的模式的模式。如果数据库模式中每个关系模式都是BCNF,称其为BCNFBCNF的数据库模式的数据库模式。BC范式从定义5.17和定义5.19可以知道,如果如果R R是是BCNFBCNF模式,那么模式,那么R R也是也是3NF3NF模式。模式。定义定义5.205.20 设F是关系模式的FD集,如果对F中每个非平凡的FD XY,都有X是R的超键,那么称R R是是BCNFBCNF的模式的模式。BCNFBCNF的等价定的等价定义义由由BCNFBCNF的定义也可得出如下结论:的定义也可得出如下结论:1.非主属性对关键码完全函数依赖;2.主属性对不包含它的关键码也是完全 函数依赖;3.没有属性完全依赖非关键码的任何属 性组。分解成BCNF模式集的方法输入输入:关系模式R的属性集合U U,R上成立的FD集F F。输出输出:R的一个无损分解无损分解=R1,Rk,满足每个Ri相对Ri(F)是BCNF模式集。方法方法:置初值置初值:=R;如果中所有模式都是BCNF,则转;如果中有一个关系模式Ri不是BCNF,根据定义5.20,知Ri中必存在一个非平凡FD XA,有X不包含Ri的超键,且AX。此时把Ri分解成R Ri1i1=XA=XA和R Ri2i2=R=Ri i-A-A,即用分解Ri1,Ri2代替Ri,转;分解结束,输出。这样得到的能保证是无损分解无损分解,并且每个Ri都是BCNF,但不一定不一定保证能保持能保持FDFD。分解成3NF模式集的方法输入:关系模式R的属性集合U,R上成立的FD集F输出:R的一个无损分解无损分解=R1,Rk,满足每一个Ri相对Ri(F)是3NF,且保持保持F F。方法:先求出F的最小函数依赖集Fmin,把Fmin中那些左部相同的FD用合并性合并起来。将Fmin中的每个FD XY构成一个模式XY,即一个Ri在构成的模式集中,如果每个模式都不包含R的候选键,那么把候选键作为一个模式放入模式集中。这样得到的模式集(R的一个分解)既是无损分无损分解解,又能保持保持FDFD,并且每个Ri都是3NF。模式设计方法的原则关系模式R相对于函数依赖集F分解成数据库模式=R1,Rk,一般应具有三个一般应具有三个特性:特性:是BCNF模式集,或3NF模式集;无损分解,即对于R上任何满足F的泛关 系r应满足r=m(r)保持函数依赖集F,即模式分解并不单指把泛关系模式分解成数据库模式,也可以把数据库模式转换成另一个数据库模式。分解和转换的关键关键是要“等价”地分解。模式设计方法的原则模式设计方法应符合三条原则模式设计方法应符合三条原则:表达性、分表达性、分离性、最小冗余性离性、最小冗余性。表达性表达性涉及两个数据库模式的数据等价和依赖等价问题,分别用无损联接和保持函数依赖来衡量。分离性分离性是指在关系中只存储有直接联系的属性值,即应该将有间接联系的属性值放在不同的模式,分离的基准是一系列范式。最小冗余性最小冗余性要求分解后的模式个数和模式中属性总数应最少。但实际使用中为了便于查询,并不一定要达到最小冗余。p经常不断地学习,你就什么都知道。你知道得越多,你就越有力量pStudyConstantly,AndYouWillKnowEverything.TheMoreYouKnow,TheMorePowerfulYouWillBe写在最后谢谢大家荣幸这一路,与你同行ItS An Honor To Walk With You All The Way演讲人:XXXXXX 时 间:XX年XX月XX日
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!