ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:109.38KB ,
资源ID:5176451      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5176451.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第六章 关系模式规范化理论.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第六章 关系模式规范化理论.docx

1、第六章 关系模式规范化理论第6章 关系模式的规范化理论关系数据库的规范化设计是指面对一个现实问题,如何选择一个比较好的关系模式集合。规范化设计理论对关系数据库结构的设计起着重要的作用。关系模型有严格的数学理论基础,因此人们就以关系模型为作为讨论对象,形成了数据库逻辑设计的一个有力工具关系数据库的规范化理论。本章内容(1)关系模式的冗余和异常问题。(2)FD的定义、逻辑蕴涵、闭包、推理规则、与关键码的联系;平凡的FD;属性集的闭包;推理规则的正确性和完备性;FD集的等价;最小依赖集。(3)无损分解的定义、性质、测试;保持依赖集的分解。(4)关系模式的范式:1NF,2NF,3NF,BCNF。分解成

2、2NF、3NF模式集的算法。(5)MVD、4NF、5NF的定义。 一,关系模式设计中的问题1. 什么是好的数据库构建好的,合适的数据库模式,是数据库设计的基本问题a) 体现客观世界的信息b) 无过度的冗余c) 无插入异常d) 无删除异常e) 无更新复杂如书上的S_C_G关系。假设需要设计一个学生学习情况数据库StuDB。 下面我们以模式S_C_G(Sno,Sname,Dname,Age,Cno,Cname,Score,Pre_cno)为例来说明该模式存在的问题。下表是其一个实例。3 冗余度大:每选一门课,他本人信息和有关课程信息都要重复一次。4 插入异常:插入一门课,若没学生选修,则不能把该课

3、程插入表中。5 删除异常:如S11号学生的删除,有一门只有他选,会造成课程的丢失。6 更新复杂:更新一个人的信息,则要同时更新很多条记录。还有更新选修课时也存在这样的情况。2. 异常的原因:数据信赖的约束3. 解决方法:数据库设计的规范化:分解,每个相对的独立,依赖关系比较单纯,如分解为3NF我们采用分解的方法,将上述S_C_G分解成以下三个模式: S(Sno,Sname,age,Dname) C(Cno,Cname,Pre_cno) S_C(Sno,Cno,Score)4. 规范化设计理论包括三个内容:i 数据信赖 - 核心,研究数据之间的联系ii 范式 - 关系模式的标准iii 模式设计方

4、法 - 自动化设计的基础二, 函数依赖 ( Functional Dependency,FD)1. 函数依赖的定义:(还有非函数的依赖?,什么是函数? 给出一个值能唯一确定另外一个值?映射:一对一,多对一,一对多?)定义:函数依赖是指一个或一组属性可以(唯一)决定其它属性的值。数学的语言:设有关系模式R(U),其中U=A1,A2,An是关系的属性全集,X、Y是U的属性子集,设t和u是关系R上的任意两个元组,如果t和u在X的投影tX=uX推出tY=uY,即:tXuX = tYuY,则称X函数决定Y,或Y函数依赖于X。记为XY。在上述的关系模式S(Sno,Sname,age,Dname)中,存在以

5、下函数依赖:SnoageSnoDname.(Sno,Cno)Score .2. 几种类型的函数依赖 定义6.2(非平凡函数依赖、平凡函数依赖):一个函数依赖XY如果满足YX,则称此函数依赖为非平凡函数依赖,否则称之为平凡函数依赖。例如X, XX , XZX等都是平凡函数依赖。定义6.3(完全函数依赖、部分函数依赖):设X、Y是关系R的不同属性集,若XY (Y函数依赖于X),且不存在X X ,使XY,则称Y完全函数依赖于X,记为;(即不存在真子集仍然是函数依赖关系的函数依赖是完全函数依赖)。否则则称Y部分函数依赖于X,记为。例如,在上例关系S中, 是完全函数依赖;、 是部分函数依赖。在属性Y与X

6、之间,除了完全函数依赖和部分函数依赖关系等直接函数依赖,还存在间接函数依赖关系。如果在关系S中增加系的电话号码Dtel,从而有SnoDname, DnameDtel,于是SnoDtel。在这个函数依赖中,Dtel并不直接依赖于Sno,是通过中间属性Dname间接依赖于Sno。这就是传递函数依赖。 定义6.4(传递函数依赖):设X、Y、Z是关系模式R (U)中的不同的属性集,如果XY,YX,YZ,则称Z传递依赖于X。否则,称为非传递函数依赖。 举例说明:定义6.5 关键字(Key,候选键):在关系模式R(U)中,若KU,且满足,则称K为R的关键字。一个包含了关键字的属性集合也能够函数决定(但不是

7、完全函数决定,而是部分决定)属性全集,我们把这种包含了关键字的属性集合称为超关键字(Super Key)。例如,在上例的S(Sno,Sname,Dname,Age)、C(Cno,Cname,Pre_cno)、S_C(Sno,Cno,Score)三个关系模式中,存在以下关键字:所以,Sno、Cno和(Sno,Cno)分别是关系模式S、C和S_C的关键字 。所以,(Sno,Sname)和(Sno,Dname)都不是关键字,而是超关键字。 3 函数依赖的公理系统 (1) 函数依赖的逻辑蕴涵 例如 在上述的传递函数依赖中,由XY,YZ,推导出XZ,这可以表示为:XY,YZ XZ 其中: 表示逻辑蕴涵。

8、 一般地,函数依赖的逻辑蕴涵定义如下:定义6.6(逻辑蕴涵):设F是由关系模式R(U)满足的一个函数依赖集,XY是R的一个函数依赖,且不包含在F,如果满足F中所有函数依赖的任一具体关系r,也满足XY,则称函数依赖集F逻辑地蕴涵函数依赖XY,或称XY可从F推出。可表示为:FXY 例:SnoDname, DnameDtel, 则: SnoDtel F XY函数依赖集F的闭包F+ 定义6.7:函数依赖集F所逻辑蕴涵的函数依赖的全体称为为F的闭包(Closure),记为F+,即F+XYFXY例如,有关系R(X,Y,Z),它的函数依赖集FXY,YZ,则其闭包F+为: (2) Armstrong公理系统

9、1)独立推理规则即下面给出的Armstrong公理的三条推理规则是彼此独立的。 A1:自反律(Reflexivity) 如果YX,则XY成立,这是一个平凡函数依赖。 根据A1可以推出X、UX等平凡函数依赖(因为XU)、XYX。A2:增广律(Augmentation) 如果XY,且ZW,则XWYZ成立。 根据A2可以推出XWY、XZYZ或XWYW、XXY、XYX等。 A3:传递律(Transitivity) 如果XY且YZ,则XZ成立其他推理规则 推论1:合并规则(The Union Rule) XY,XZ XYZ推论2:分解规则(The Decomposition Rule) 如果XY,Z Y

10、,则XZ成立; (XYZ),XY,XZ推论3:伪传递规则(The Pseudo Transitivity Rule) XY,WYZ XWZ 证:(1)XY XXY(A2增广律) XZ XYYZ (A2增广律) 由上可得XYZ (A3传递律)(2)ZY YZ (A1自反律) XY (给定条件) 由上可得XZ(A3传递律)(3)XYWXWY (A2增广律) WYZ (给定条件) 由上可得XWZ(A3传递律)例6.2:设有关系模式R(A,B,C,D,E)及其上的函数依赖集F=ABCD,AB,DE,求证F必蕴涵AE。证明: AB (给定条件) AAB (A2增广律) ABCD (给定条件) ACD (

11、A3传递律) AC,AD (分解规则) DE (给定条件) AE (A3传递律) 证毕。一个重要定理 定理6.1:若Ai(i=1,2,,n)是关系模式R的属性, 则X(A1,A2,,An)成立的充分必要条件是XAi均成立 证明由分解和合并规则容易得到。 推论6.1 X是候选键的充分必要条件是X每个属性Ai。例: 1. 现有如下关系模式:R(A,B,C,D,E) ,R上存在的FD有ABE,BC,CD ,求R的一个候选键。解:A#B#E, 得 A#B#A#B#E 又B#C, 得 A#B#A#B#CE 又CD, 得 A#B#A#B#CDE因此A#B#是候选键。 也可以这样做: 先由B#C 出发,得B

12、#B#CD, 还少一个A#, 再加一个A#即可,得A#B#A#B#CDE2. 设有关系模式R (A,B,C,D),F是R上成立的FD集,F = DA,DB,试写出关系模式R的候选键,并说明理由。方法一因为: DA,DB (已知)得 DAB DD,得DABD, 但 D!C而CDC(A1自反律),我们有,CDABCD, 即 CDU因此,CD为候选键。也可以这样做:方法二DA,DB (已知)DD, 但 D!C而CDC(A1自反律),我们有,CDA, CDB, CDC, CDD, 由合并规则知:CDABCD因此,CD为候选键。 3. 关系模式R(A,B,C,D)的函数依赖集为F=ACB,求R的候选键解

13、:因为 ACB所以 ACACB所以 ACDABCD所以R的候选码是ACD 4. 有关系模式R(A,B,C,D,E,F)其函数依赖集为FED,CB,CEF,BA,判断CE为候选键。解 CED (A2 增广律) CEB CEC (A1 自反律) CEE CEF (给定条件) CEC, CB, 则 CEB, 又 BA, 所以有:CEA 由合并规则,即CEU, 为候选键按方法一 由ED知:EDE 由CB知:CBC, 又BA, 知:CABC 由合并规则知: CEABCDE, 为候选键5. 设关系R=A,B,C,D,E,F,其函数依赖集F=AB, CD, DE, EF, FC,求R的所有候选键。 解: C

14、D, CE, CE , CC, C! A, 把A加上,则有 ACA, ACB, ACU 因此AC为候选键。 又因为: DE, DF, DC, DD, 同理:AD为候选键。 同理可得:AE, AF 也为候选键。综上所述,R的候选码为:AC,AD,AE,AF。 关系模式R(A,B,C,D)的函数依赖集为F=ACB,则R的候选键为( )。6. 关系模式R(U,F),其中UW,X,Y,Z,F=WXY,WX, XZ,YW。关系模式R的候选建是什么?解法:从函数依赖集出发,把所有属性分为4类1、L类:全部出现在函数依赖的左半部2、R: 全部出现在函数依赖的右半部3、LR: 出现在函数依赖的左右两边4、N:

15、 不出现在函数依赖中可能成为候选键的有L类,LR类和N类对于L类,求出它的闭包,若包含所有属性,则说明其为候选键,且为唯一候选键。对于LR类,求出其闭包,若包含所有属性,则为候选键,若不包含,在找出其中一个属性结合。对于N类,直接加至候选键即可。L:无R: ZLR: W,X,YN:无先排除Z在LR中,W的闭包为W,Y,Z,X X的闭包为X,Z Y闭包为Y,W WX的闭包为W,X,Y,Z WY的闭包为W,Y XY的闭包为X,Y,Z,W WXY的闭包为X,Z,Y,W由此可见,可能的键为W,WZ,XY,XYW,去掉多余的属性,得:W,XY为候选键。F+很大,一般不去求它。在我们求候选键时,主要用到的

16、是属性集的闭包。属性集闭包 定义6.8(属性集闭包): 设有关系模式R(U), U= A1,A2,,An, X是U的子集, F是U上的一个函数依赖集,则属性集X关于函数依赖集F的闭包 定义为: AiAiU,且XAi可用阿氏公理从F推出即:属性(集)闭包是 那些由X用阿氏公理从F推出的属性组成的集合。例:设关系模式R(A,B,C)的函数依赖集为F=AB,BC,分别求A、B、C的闭包。 解:若XA, AB,BC(给定条件) AC (A2传递律) AA (A1自反律) =A,B,C (据定义)若X=B BB (A1自反律) BC (给定条件) =B,C (据定义) 若X=C, CC (自反律) =C

17、 (据定义)定理6.2: 设F是关系模式R(U)上的函数依赖集,U是属性全集,X,YU,则函数依赖XY是用阿氏公理从F推出的,充分必要条件是Y ;反之,能用阿氏公理从F推出的所有XY的Y都在 中。 证明:略这个定理告诉我们,只要Y ,则必有XY。于是,一个函数依赖XY能否用阿氏公理从F推出的问题,就变成判断Y是否为 子集的问题。属性集的闭包计算算法6.1:求属性集X(X U)关于U上的函数依赖集F的闭包 。输入:属性全集U, U上的函数依赖集F, 以及属性集X U。输出:X关于F的闭包 。方法:根据下列步骤计算一系列属性集合X(0),X(1), (1) 令X(0)=X,i0; (2) 求属性集

18、/*在F中寻找满足条件V X(i)的所有函数依赖VW,并记属性W的并集为B*/ (3) X(i+1)X(i) B (4)判断X(i+1)= X(i)吗? (4)若X(i+1) X(i),则用i+1取代i,返回(2); (5)若X(i+1) = X(i),则 =X(i),结束。定理6.3 Armstrong 公理是正确的,完备的。完备性:F所蕴涵的每个函数依赖都可由Armstrong 公理从F可推出。3 函数依赖集的等价和覆盖 定义6.9(函数依赖集的等价、覆盖):设F和G是关系R(U)上的两个依赖集,若F+=G+,则称F与G等价,记为F=G。也可以称F覆盖G,或G覆盖F;也可说F与G相互覆盖。

19、检查两个函数依赖集F和G是否等价的方法是:第一步:检查F中的每个函数依赖是否属于G+,若全部满足,则FG+。如若有XYF,则计算 ,如果Y , 则XYG+;第二步:同第一步,检查是否GF+;第三步:如果F G+,且GF+,则F与G等价。由此可见,F和G等价的充分必要条件是:FG+,且GF+。引理6.1:设G是一个函数依赖集,且其中所有依赖的右部都只有一个属性,则G覆盖任一左部与G(左部)相同的函数依赖集。证明:构造GXAXYF且AY由AY,XYF根据分解规则导出,从而等到G F+。反之,如果YA1A2An,而且XA1,XA2,XAn在G中可根据合并律等到F G +。由此可见,F与G等价,即F被

20、G覆盖。一个函数依赖集F可能有若干个与其等价的函数依赖集,我们可以从中选择一个较好以便应用的函数依赖集。标准至少是:所有函数依赖均独立,即该函数依赖集中不存在这样的函数依赖,它可由这个集合中的别的函数依赖推导出来。表示最简单,即每个函数依赖的右部为单个属性,左部最简单。定义6.10(最小函数依赖集):函数依赖集F如果满足下列条件,则称F为最小函数覆盖,记为Fmin:(1) F中每一个函数依赖的右部都是单个属性。(2) 对F中任一函数依赖XA,FXA都不与F等价。(3) 对于F中的任一函数依赖XA, FXAZA都不与F等价,其中Z为X的任一子集。求函数依赖集F的最小覆盖的方法是:(1) 检查F中

21、的每个函数依赖XA,若A= A1,A2,Ak,则根据分解规则,用XAi(i=1,2,k)取代XA。(2) 检查F中的每个函数依赖XA,令G=FXA, 若有 A ,则从F中去掉此函数依赖。(3) 检查F中各函数依赖XA,设X= B1,B2,Bm,检查Bi , 当A 时,即以XBi替换X。例6.5:求下列函数依赖集的最小覆盖:FAHC,CA,EHC,CHD,DEG,CGDH,CEAG,ACDH 。解:(1)用分解规则将F中的所有依赖的右部变成单个属性,可以得到以下11个函数依赖:AHC,CA,CHD,ACDH (给定) CE,CG(由CEG分解得到) EHC (给定) CGH,CGD(由CGDH分

22、解得到) CEA,CEG(由CEAG分解得到) (2) 根据阿氏公理去掉F中的冗余依赖由于从CA可推出CEA,从CA、CGD、ACDH推出CGH,因此CEA和CGH是冗余,可从F删除 。(3) 用所含属性较少的依赖代替所含属性较多的依赖。 由于CA, ACDH中A是冗余属性,因此,可用CDH代替ACDH,故删除ACDH。 最后得到F的最小覆盖为: FAHC,CA,CHD,CDH,CE,CG,EHC,CGD,CEG 6.5 关系模式的规范化一什么是范式(Normal Forms)构造数据库必须遵循一定的规则,满足特定规则的模式称为范式。 R(U|F)1. 一个关系满足某个范式所规定的一系列条件时

23、,它就属于该范式。2. 可以用规范化要求来设计数据库。3. 也可验证设计结果的合理性,用其来指导优化数据库设计过程。4. 关系规范化条件可分为几级,每级称为一个范式,记为第xNF (Normal Forms)1NF 2NF 3NF BCNF, 4NF 5NF级别越高,条件越严格5NF(4NF(BCNF(3NF(2NF(1NF.5. 范式是衡量模式优劣的标准,范式表达了模式中数据依赖之间应满足的联系。如果关系模式R是3NF,那么R上成立的非平凡FD都应该左边是超键或右边是非主属性。如果关系模式R是BCNF,那么R上成立的非平凡的FD都应该左边是超键。范式的级别越高,其数据冗余和操作异常现象就越少

24、二,第1范式(1NF) 1. 如果一个关系模式R的每个属性的域都只包含单纯值,而不是一些值的集合或元组,则称关系是第1范式,记为R1NF.或: 如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式 (理解:每个元组的每个属性只含有一个单纯值,即要求属性是原子的。)这是关系模式的基本要求,条件是最松的,只要你不硬把两个属性塞到一个字段中去。如果不满足1NF,就不是关系数据库。字段1字段2字段3 属性1属性22. 把一个非规范化的模式变为1NF有两种方法:1) 把不含单纯值的属性分解为多个属性,使它们仅含有单纯值。例:通讯方式:电话、手机,邮编,地址等。通讯方式分开:电话,邮编

25、,通讯地址。例:Name First Name, Last Name 2) 把关系模式分解,并使每个关系都符合1NF 学生(学生信息) 3. 原子属性:列的:每个字段不再分割成多个属性。行的:每个元组在表可只出现一次。4. 第一范式中一般情况下都会存在着数据的冗余和异常现象,因此关系模式需要进一步的规范化。三,第2范式 (2NF)它是在1NF的基础上建立起来的。如果关系模式R1NF,且它的任一非主属性都完全函数依赖于任一候选关键字,则称R满足第2范式,记为R2NF.(理解:不存在非主属性对关键字的部分函数依赖)例:学生(sno, cno, score, credit)是否属于2NF? (sno

26、,cno) -f Score 但 (sno,cno)-p credit因此,学生1NF。例:S(sno,sname,age,dname,dtel) 因为每个非主属性对关键字S都是完全函数依赖的,S2NF.由上例,2NF依然可有过多冗余(dtel)。继续分解,提高条件。四,第3范式(3 NF)如果R2NF,且每一个非主属性不传递依赖于任一候选关键字,则称R3NF.(理解:任一属性不依赖于其它非主属性)例:S(sno,sname,age,dname,dtel) 因为dtel属性对关键字sno是传递函数依赖的,S!3NF. 分解: S(sno,sname,age,dname) D(dname,dte

27、l)注:一个R3NF 它个每个非主属性既不部分依赖也不传递依赖于候选关键字。例:S_C_G(U)是第几范式? 2NF五,BCNF(Boyce-Codd) 在第3范式的基础上,设有R,及其函数依赖集F,X和A是R的属性集合,且A!(X,如果只要R满足X A,X就包含R的一个候选关键字,则称R满足BCNF,记为: 理解:表可不存在任何字段(主属性和非主属性)对任一候选关键字的完全函数依赖则符合BCNF. (1) 所有非主属性A对键都是完全函数依赖的(R2NF)。(2) 没有属性完全函数依赖于非键的任何属性组(R3NF)。(3) 所有主属性对不包含它的键是完全函数依赖的(新增加条件)。例,模式S (

28、NAME,SEX,BIRTH,ADDR,DNAME)的主属性为:NAME,SEX,BIRTH和ADDR,候选关键字为:(NAME,SEX)、(NAME,BIRTH)以及(NAME,ADDR)。定义中的A为(ADDR,DNAME)。显然有:例6.13:关系模式STC(SNO,TNO,CNO),SNO表示学号,TNO表示教师编号,CNO表示课程号。每一个教师只教一门课,每门课有若干教师,某一个学生选定某门课,就对应一个固定教师。试判断ST的最高范式。解由语义可得到如下的函数依赖:(SNO,CNO)TNO,(SNO,TNO)CNO,TNOCNO这里(SNO,CNO),(SNO,TNO)都是侯选关键字。因为没有任何非主属性对侯选关键字部分依赖,所以STC2NF。没有任何非主属性对侯选关键字传递依赖,所以STC3NF。但在F中有TNOCNO,而TNO不包含侯选关键字,所以STC不是BCNF关系 这里我们可以将STC(SNO,TNO,CNO)分解成ST(SNO,TNO)和TC(TNO,CNO),它们都是BCNF。 范式之间的关系 例:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1