《关系数据库模式规范化设计》由会员分享,可在线阅读,更多相关《关系数据库模式规范化设计(54页珍藏版)》请在金锄头文库上搜索。
1、,关系数据库模式规范化设计,技术创新,变革未来,5.1 规范化的意义和基本假设 5.2 基本概念 5.3 模式规范化 5.4 规范化算法,第5章 关系数据库规范化方法,泛关系假设 认为存在一个包含应用体所有属性的大表,使得数据库中的每个表都是该大表的投影。,5.1 规范化的意义和基本假设, 表格中所有的行都具有相同的形式(称为关系模式 关系模式中的属性个数是固定的,每个属性都要命名,并且在同一个关系模式中,任何两个属性名都不相同 每个属性都是不可分解的 任何两个元组都不相同 属性的先后次序和元组的先后次序是无关紧要的,关系数据库五个条件,5.1 规范化的意义和基本假设,属性在数据库中有唯一性
2、脱离实体讨论属性有意义 可以将规范化过程数学化 泛关系假设是合理的 泛关系假设为规范的关系数据库设计提供基础,泛关系假设的意义,5.1 规范化的意义和基本假设,U表示泛模式; 前面的大写A、B、C、表示单个属性; 小写字母a、b、c、表示属性值; 表后面的大写、X、Y、Z表示属性集合或关系模式;关系模式也用(A,B,C)形式表示;命了名的关系模式用R(X),R(Y),R(A,B,C)等形式表示,对应的关系用r(X),r(Y),r(A,B,C)等形式表示。 XY表示X和Y的并,XA或AX表示X和A的并; 不区分A和A,也不区分AB和A,B;,5.1 规范化的意义和基本假设,定义1(投影): 设X
3、、Y是两个关系模式,它们满足YX,t(X)是一个元组,r(X)是一个关系,tY是从t(X)上获得的Y上的值,称rY= tY t(X)在r(X)中 为r(X)在Y上的投影。 定义2(自然联结): 设X、Y是两个关系模式,且XY,r(X)和s(Y)是相应的两个关系,r和s的自然联结r s为: r s t(XY)tXr tY s 如果X和Y不相交,则自然联结就是两个关系的笛卡尔积。显然自然联结运算是可交换可结合的。,5.2 基本概念,定义3:令 = X1,X2,Xn是一组关系模式,r(X)是一个关系,其中X= X1X2Xn。定义如下映射: s 投影映射:将关系r(X)映射到它的投影 r Xi | i
4、 = 1 , 2 , , n。 s 连接映射 :将关系 ri ( Xi ) | i = 1 , 2 , , n映射到 r1( X1 ) r2 ( X2) rn( Xn)。 投影连接映射: 。,5.2 基本概念,定理1 令 =(X1,X2,Xn)是一组关系模式,r(X)是一个关系,其中X= X1X2Xn。则有 (r(X) r(X) 若s = (r(X),则sXi = rXi, i = 1 , 2 , , n ( (r(X) = (r(X),5.2 基本概念,定义4函数依赖(functional dependency , FD):R(U)为一个关系,XU,YU。如果对R中的任何二个元组s和t,只要
5、sX=tX 就有sY=tY,则称X函数决定Y(或称Y函数依赖于X),记为X Y。 当XY时,X Y是平凡的, 否则为非平凡函数依赖。,5.2 基本概念,例2 设有一个关系模式 R(EMP#,E_NAME,RANK,SALARY,DEPT#, D_NAME) 根据经验,我们不难知道应该有下列函数依赖: (1) EMP# (E_NAME,RANK,SALARY) (2) EMP# (DEPT#,D_NAME) (3) DEPT# D_NAME (4) RANK SALARY,5.2 基本概念,定义5 R(U)为一个关系模式,XU,A为U中的单个属性。定义: s简单函数依赖:右端为单个属性的非平凡函
6、数依赖,即形为X A的函数依赖。 s完全函数依赖:对于X A,如果不存在X的真子集X,使得X A成立,则称A完全函数依赖于X,否则称A部分函数依赖于X。 s原子函数依赖:如果一个简单函数依赖又是完全函数依赖,则称其为原子函数依赖(属性不能再少了)。,5.2 基本概念,定义6(键):设R(A1 A2 An)为一个关系,F为其上的FD集,X为A1 A2 An的一个子集,若X A1 A2 An 成立,则称X为R的一个超键,若无X的真子集X,使得X A1 A2 An成立,则称X为候选键(简称键)。 称出现在键中的属性为键属性,不出现在任何键中的属性称为非键属性。如果某个属性集是另一个关系模式的键,则在
7、本关系模式中称其为外部键。,5.2 基本概念,定义7(蕴含): 如果只要依赖集F成立就有依赖f成立,则称依赖集F蕴含了依赖f,记为F|=f。所有被F所蕴含的依赖所组成的集合称为F的闭包,用于导出某个依赖集所蕴含的所有依赖的规则称为推理规则。,5.2 基本概念,Armstrong公理: F1(自反律):若XY,则X Y F2(增广律):若X Y,WZ,则X W Y Z F3(传递律):若X Y,Y Z,则X Z,5.2 基本概念,定理3 下列推理规则是正确的。 F4(伪传递):若X Y,YW Z,则X W Z F5(合并):若X Y,X Z,则X Y Z F6(分解):若 X Y Z,则X Y,
8、X Z 定理4 如果A1,A2,An是关系模式U上的属性,那么X A1A2An成立当且仅当X Ai (i=1,2,n)成立 。,5.2 基本概念,定义8 (函数依赖集的闭包):给定函数依赖集F,F所蕴涵的所有函数依赖的集合称为F的闭包,记为F+。 例3 设有关系模式 (ABC),函数依赖集F = A B,B C ,求F+。 根据Armstrong公理,下面均是F+中的函数依赖。 A ,A A,B ,A B, AB ,AB A,AB B, ABC ,ABC A, 一共有43个函数依赖。,5.2 基本概念,定义9 (属性集的闭包):给定属性集X和函数依赖集F,称X+ = A | X AF+为X关于
9、F的闭包。 对给定的函数依赖集F和一个函数依赖f:XY,F|=f当且仅当X关于F的闭包X+Y。,5.2 基本概念,定义10 (函数依赖的投影):设R为一个关系模式,F为其上的函数依赖集,X为R的一个子集, 称F+中属性属于X的函数依赖的全体为F在X上的投影,记为X(F)或FX。即 X(F) Y Z | Y Z F+且YZX,5.2 基本概念,定义11(覆盖与等价): 设F和G是两个函数依赖集。若G+ = F+,则称G与F是等价的。也称G为F的一个覆盖(或F为G的一个覆盖),即它们互为覆盖。 检验F和G是否等价是容易的,即只要检验G+ F和G F+即可。我们介绍其中一个,G F+的检验方法。对任
10、意XYG,计算X关于F的闭包X+,若X+ Y,则说明XYF,所以G F+成立,否则G F+不成立。,5.2 基本概念,如果两个函数依赖集G与F是等价的,那么我们就选择较为简单的那个进行讨论。同时我们更希望对于一个函数依赖集,能有一个最简单的等价函数依赖集。 定义12(最小覆盖):设G为F的一个无冗余覆盖,如果G中的函数依赖都是原子函数依赖,则称G为F的一个最小覆盖,记为Fmin。,5.2 基本概念,第一范式(1NF):关系模式中若属性不可再分,则称该模式是第一范式。 定义13(2NF):对于1NF模式R和R上的函数依赖集F,如果所有的非键属性都完全函数依赖于键,则称R关于F属于第二范式(简称2
11、NF)。,5.2 基本概念,定义14(3NF):对于1NF模式R和R上的函数依赖集F,如果每个原子函数依赖X AF+满足下面两个条件之一: 1) X是一个键; 2) A是一个键属性。 则称R关于F属于第三范式(简称3NF)。 定义15 BC范式(Boyce_Codd,BCNF):对于1NF模式R和R上的函数依赖集F,如果每个原子函数依赖X AF+都满足X是一个键,则称该模式关于F属于BC范式(简称BCNF)。,5.2 基本概念,例4 考虑如下关系模式 R(ABCDEG) F = ABGCDE,D EG,BG DE 显然,ABG为R的键,而DE是部分依赖于键的,所以R不是2NF模式。,5.2 基
12、本概念,R(ABCDEG) F = ABGCDE,D EG,BG DE ,R1:(ABCG) F1= ABGC ABG为键。,R2:(BGDE) F2= D EG, BG DE BG为键。,2NF,2NF,5.2 基本概念,R2:(BGDE),F2= D EG,BG DE ,R21:(DE) F2= D E , D为键。,R22(BGD) F2= D G,BG D BG为键。,3NF,3NF,5.2 基本概念,R22(BGD),F2= D G,BG D ,R221:(GD) F2= D G D为键。,R222:(BD) F2= BD为键。,BCNF,BCNF,5.2 基本概念,5.2 基本概念
13、,数据库的等价性(回顾),数据等价是一种需求 数据库等价是这种需求的具体表现 数据模式等价是数据库等价的实现方式,1)等价的意义,2)等价性的定义-数据库等价,()= , ()= ,数据库的等价性(回顾),两个数据库DB和DB是等价的当且仅当存在完全映射和,满足: 将DB的一致数据库状态映射到DB的一致数据库状态;将DB的一致数据库状态映射到DB的一致数据库状态。 ( (DB ) ) = DB并且 ( (DB ) ) = DB。 对任何DB的数据库状态,保持了DB的属性值;对任何DB的数据库状态,保持了DB的属性值,2)等价性的定义-数据库等价,数据库的等价性(回顾),设RS和RS是两个数据模
14、式, DB和DB 是在RS和RS定义下建立的任意数据库。如果DB和DB是等价的,那么就称RS和RS是等价的。,2)等价性的定义-模式等价,数据库的等价性(回顾),定义16(数据库变换):设S1 和S2是两个数据库,一个数据库变换是S1 到S2的一个映射,由于数据库有两部分,所以该映射也有两部分。 :r和c ()= ), c(),5.3 模式规范化,这是一个通用的数据库变换,可以是将一个关系分解为多个关系,或将多个关系合并为一个关系,或者是将多个关系变换到多个关系。这是一般意义上的逻辑数据库设计。 模式规范化是将一个关系模式(一般为泛关系模式)分解为多个规范的关系模式,从数据库变换角度来讲,r和
15、c 分别为关系r和函数依赖集F在X1 ,X2,Xn上的投影。因此,规范化的工作在于如何将U分解为( X1,X2,Xn ),其中U = X1 X2Xn。,5.3 模式规范化,定义17(规范化):设有关系模式R(U)和其上的函数依赖集F,规范化算法将U映射到一组关系模式X1 ,X2,Xn,其中U = X1 X2Xn且 Xi (i = 1, 2, , n)属于某种范式(xNF);并将F映射到FX1,FX2,FXn,其中FXi为F在Xi上的投影。,5.3 模式规范化,定义17(规范化) :()| (,) 或 ()| ,5.3 模式规范化,定义18(数据库等价性):两个数据库DB和DB是等价的当且仅当存
16、在完全映射和,满足: 1) 将DB的一致数据库状态映射到DB的一致数据库状态;将DB的一致数据库状态映射到DB的一致数据库状态。 2) ( (DB ) ) = DB并且 ( (DB ) ) = DB。 3) 对任何DB的数据库状态,保持了DB的属性值;对任何DB的数据库状态,保持了DB的属性值,5.3 模式规范化,所谓数据库的一致状态,是指数据库中的数据是正确的,即满足该数据库的各种约束条件;保持属性值是指一个数据库中任何属性的值在另一个数据库中都出现,并且在后一个数据库中不出现前一个数据库所没有的属性值。 推论: 如果RS正确表示了应用体的现实数据世界,而RS和RS等价,则RS也正确表示了应用体的现实数据世界。,5.3 模式规范化,规范化 :()| (,) 一个好的规范化算法应是: 持函数依赖 具有无损连接性。,5.3 模式规范化,算法1 无损连接的测试 1、 构造一张k行n列的表格,每列对应一个属性Aj(1jn),每行对应一个模式Xi(1ik)。如果Aj