1 / 14

数据库系统概论 An Introduction to Database System 第 6 章 关系数据理论

数据库系统概论 An Introduction to Database System 第 6 章 关系数据理论. 第 6 章 关系数据理论. 6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 * 6.4 模式的分解. 6.3 数据依赖的公理系统. 函数依赖的推导公理( Armstrong 公理) 函数依赖与属性关系 闭包及其计算 函数依赖集的最小集 候选关键字的求解理论和算法. 一、函数依赖的推导公理( Armstrong 公理). 设关系模式 R <U , F > , X , Y , Z , W  U 有以下的推理规则:

Télécharger la présentation

数据库系统概论 An Introduction to Database System 第 6 章 关系数据理论

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 数据库系统概论 An Introduction to Database System 第6章 关系数据理论

  2. 第6章 关系数据理论 6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 *6.4 模式的分解

  3. 6.3 数据依赖的公理系统 • 函数依赖的推导公理(Armstrong公理) • 函数依赖与属性关系 • 闭包及其计算 • 函数依赖集的最小集 • 候选关键字的求解理论和算法

  4. 一、函数依赖的推导公理(Armstrong公理) 设关系模式R <U,F >,X,Y,Z,W U 有以下的推理规则: A1.自反律(Reflexivity):若Y  X  U,则 X →Y A2.增广律(Augmentation):若X→Y ,则 XZ→YZ A3.传递律(Transitivity):若X→Y及 Y→Z ,则X→Z

  5. 根据A1,A2,A3这三条推理规则可以得到以下推论:根据A1,A2,A3这三条推理规则可以得到以下推论: • 合并规则:由X→Y,X→Z,有X→YZ (A2, A3) • 伪传递规则:由X→Y,WY→Z,有XW→Z (A2, A3) • 分解规则:由X→YZ,则X→Y,X→Z (A1, A3) 定理: Armstrong公理是正确的,完备的。

  6. 二、函数依赖与属性关系 属性间有三种关系,但并不是每种关系中都存在函数依赖 • X和Y之间是“1:1”关系,则存在函数依赖X→Y,Y→X (X←→Y) • X和Y之间是“N:1”关系,则存在函数依赖X→Y • X和Y之间是“M:N”关系,则不存在函数依赖

  7. 三、闭包及其计算 • 定义:设关系模式R(U,F),则称所有用Armstrong公理从F推导出的函数依赖X→Ai中Ai的属性集合为X的属性闭包,记为X+。 • 定理:设关系模式R(U,F),X,Y U,则从F推出X→Y的充要条件是Y X+。

  8. 三、闭包及其计算 算法:求属性集X关于U上的函数依赖集F 的属性闭包X+ 输入:U,F,X 输出:X+ 步骤:计算X(i)(i=0,1,2…) (1)令X(0)=X,i=0 (2)求X(i+1)=X(i)A 其中A是这样的属性:在F中寻找尚未使用过的左边是X(i)的子集的函数依赖:Yj→Zj (j=1,2…),其中Yj X(i),即在Zj中寻找X(i)中未出现过的属性集合A,若无这样的A则转(4) (3)判断是否有X(i+1)= X(i),若是则转(4);否则转(2) (4)输出X(i),即为X+ 注:对于(3)的停止条件,以下四种方法是等价的: • X(i+1)= X(i) • 当发现X(i)包含了全部属性(X(i)为侯选码) • 在F中未用过的函数依赖的左边属性已没有X(i)的子集 • 在F中的函数依赖的右边属性中再也找不到X(i)中未出现过的属性

  9. 三、闭包及其计算 [例] 设关系模式R(U,F),其中U={A,B,C,D,E,I} F={A→D,AB→E,BI→E,CD→I,E→C} 计算: (AE)+ 解:(1)令X={AE} X(0)=AE (2)在F中找出左边是AE子集的函数依赖,结果是A→D,E→C 所以,X(1)=X(0)DC=AEDC (3)判断X(1)≠X(0) 继续(2) 在F中找出尚未使用过的左边是AEDC子集的函数依赖,结果是:CD→I 所以,X(2)=X(1)I=AEDCI,判断X(1)≠X(0),继续(2) 但是,F中未用过的左边是AEDCI子集的函数依赖已经没有了,结束 (4)输出X(2) 即(AE)+=AEDCI

  10. 四、函数依赖集的最小集 1.等价和覆盖 • 定义:一个关系模式R(U)上的两个函数依赖集F和G,如果F+=G+,则称F和G是等价的,记作F≡G。(在关系模式R<U,F>中为F所逻辑蕴含的函数依赖的全体叫作 F的闭包,记为F+。) • 如果F≡G,则称G是F的一个覆盖,反之亦然。

  11. 四、函数依赖集的最小集 2.函数依赖的最小集 • 定义:对于给定的函数依赖F,当满足下列条件时,称为F的最小集,记作F’: (1)F’的每个依赖的右部都是单个属性 (2)对于F’中的任何一个函数依赖X→A,F’-{X→A}与F’不等价 (3)对于F’中的任何一个X→A和X的真子集Z,(F’-{X→A})∪{Z→A}与F’都不等价 其中(2)保证了在F中不存在多余的函数依赖 (3)保证了F中每个函数依赖的左边没有多余的属性。 • 定理:每个函数依赖集F与它的最小函数依赖集F’等价。

  12. 3.计算最小函数依赖集算法 输入:一个函数依赖集 输出:F的一个等价最小依赖集G 方法: (1)应用分解规则,使F中每一个依赖的右部属性单一化 (2)去掉各依赖左部多余的属性 具体做法:一个一个地检查F中左边是非单属性的依赖,例如XY→A 要判断Y是否是多余的,则以X→A代替XY→A,判断是否 等价? 只要在F中求X+,若X+包含A,则Y是多余的属 性;否则Y不是多余的属性,依次判断其他属性即可消 除各依赖左边的多余属性。 (3)去掉多余的依赖 具体做法: 从第一个依赖开始,从F中去掉它(假设依赖为X→Y), 然后在剩下的依赖中求X+,看X+是否包含Y,若包含则 去掉X→Y;若不包含Y,则不能去掉X→Y。依次判断, 直到最后一个依赖判断完成。

  13. 3.计算最小函数依赖集算法 [例] 设有依赖集: F={AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG} 计算其等价的最小依赖集。 解:(1)将依赖右边属性单一化,结果为: F1={AB→C,C→A,BC→D,ACD→B,D→E,D→G,BE→C,CG→B,CG→D,CE→A,CE→G} (2)在F1中去掉各依赖左部多余的属性 对于CE→A,由于有C→A,则E是多余的。 对于ACD→B,由于(CD)+=ABCDEG ,则A是多余的。 删除依赖左部多余的属性后: F2={AB→C,C→A,BC→D,CD→B,D→E,D→G,BE→C,CG→B,CG→D,CE→G} (3)在F2中去掉多余的依赖 对于CG→B,由于(CG)+=ABCDEG,则是多余的。删除多余的依赖后: F3={AB→C,C→A,BC→D,CD→B,D→E,D→G,BE→C,CG→D,CE→G} 则F3是F等价的最小依赖集。

  14. 下课了。。。 下课了!

More Related