收藏 分享(赏)

数据库系统原理 闭包.doc

上传人:eukav 文档编号:5153925 上传时间:2019-02-10 格式:DOC 页数:3 大小:32.50KB
下载 相关 举报
数据库系统原理 闭包.doc_第1页
第1页 / 共3页
数据库系统原理 闭包.doc_第2页
第2页 / 共3页
数据库系统原理 闭包.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、闭包就是由一个属性直接或间接推导出的所有属性的集合,例如: f=a-b,b-c,a-d,e-f 由 a可直接得到 b和 d,间接得到 c,则 a的闭包就是a,b,c,d以下是写的比较科学规范的顶一记求解方法设 X和 Y均为关系 R的属性集的子集,F 是 R上的函数依赖集,若对 R的任一属性集 B,一旦 XB,必有 BY,且对 R的任一满足以上条件的属性集 Y1 ,必有YY1,此时称 Y为属性集 X在函数依赖集 F下的闭包,记作 X。计算关系 R的属性集 X的闭包的步骤如下:第一步:设最终将成为闭包的属性集是 Y,把 Y初始化为 X;第二步:检查 F中的每一个函数依赖 AB,如果属性集 A中所有

2、属性均在 Y中,而 B中有的属性不在 Y中,则将其加入到 Y中;第三步:重复第二步,直到没有属性可以添加到属性集 Y中为止。 最后得到的 Y就是 X。例 1,设关系 R(A,B,C,D,E,G)有函数依赖集 F=ABC,BCAD,DE,CGB,求 AB的闭包。解:首先从 AB出发,令 X=A,B,由于函数依赖 ABC 左边的所有属性都在 X中,所以可以把右边的 C添加到 X中,这时 X=A,B,C。其次考虑函数依赖 BCAD,左边 B、C 均在 X中,右边 D不在 X中,将其添加到 X中,此时X=A,B,C,D。再考虑函数依赖 DE,同理可将 E添加到 X中,此时 X=A,B,C,D,E。上述

3、方法再不能向 X中添加属性,所以得到A,B=A,B,C,D,E。如果知道如何计算任意属性的闭包,那么就能检验任意函数依赖 XY 是否被函数依赖集 F逻辑蕴涵,其步骤如下:第一步:计算 X的闭包 X;第二步:判断 Y是否被 X 所包含,如果 YX,说明 F逻辑蕴涵函数依赖 XY;否则说明 F不会逻辑蕴涵函数依赖 XY。例如: 在例 1中得到属性 D在A,B 中,所以 F逻辑蕴涵 ABD。现在判断函数依赖 DA 是否被函数依赖集 F逻辑蕴涵。计算D,得到D=D,E,由于 A不在D中,所以该函数依赖不蕴涵于给定的函数依赖集F。如果要求候选码的话就是他的闭包包括了属性集的所有属性就是候选码。但要求其子

4、集都不是超码,既不能推出其所有的属性。数据库闭包和候选码求解方法闭包概念以下是写的比较科学规范的闭包求解方法,设 X 和 Y 均为关系 R 的属性集的子集,F 是R 上的函数依赖集,若对 R 的任一属性集 B,一旦 XB,必有 BY,且对 R 的任一满足以上条件的属性集 Y1 ,必有 YY1,此时称 Y 为属性集 X 在函数依赖集 F 下的闭包,记作X 。 计算关系 R 的属性集 X 的闭包的步骤如下: 第一步:设最终将成为闭包的属性集是 Y,把 Y 初始化为 X; 第二步:检查 F 中的每一个函数依赖 AB,如果属性集 A 中所有属性均在 Y 中,而 B中有的属性不在 Y 中,则将其加入到

5、Y 中; 第三步:重复第二步,直到没有属性可以添加到属性集 Y 中为止。 最后得到的 Y 就是X例(1): 设有关系模式 R(U,F),其中 U=A,B,C,D,E,I ,F=AD,AB E,BI E,CDI,E C ,计算(AE) +解: (1) 令 X=AE,X(0)=AE(2)在 F 中寻找尚未使用过的左边是 AE 的子集的函数依赖,结果是: AD , EC;所以 X(1)=X(0)DC=ACDE, 显然 X(1)X(0).(3) 在 F 中寻找尚未使用过的左边是 ACDE 的子集的函数依赖, 结果是: CDI ;所以 X(2)=X(1)I=ACDEI。虽然 X(2)X(1),但 F 中

6、寻找尚未使用过函数依赖的左边已经没有 X(2 )的子集,所以不必再计算下去,即 (AE)+=ACDEI。说白话一点:闭包就是由一个属性直接或间接推导出的所有属性的集合。例如:f=a-b ,b-c ,a-d,e-f;由 a 可直接得到 b 和 d,间接得到 c,则a 的闭包就是a,b,c,d候选码的求解理论和算法对于给定的关系 R(A1,A2,An)和函数依赖集 F,可将其属性分为 4 类:L 类 仅出现在函数依赖左部的属性。R 类 仅出现在函数依赖右部的属性。N 类 在函数依赖左右两边均未出现的属性。LR 类 在函数依赖左右两边均出现的属性。定理:对于给定的关系模式 R 及其函数依赖集 F,若

7、 X(XR)是 L 类属性,则 X 必为R 的任一候选码的成员。推论:对于给定的关系模式 R 及其函数依赖集 F,若 X(XR)是 L 类属性,且 X+包含了 R 的全部属性;则 X 必为 R 的唯一候选码。例(2):设有关系模式 R(A ,B,C,D),其函数依赖集 F=DB,B D ,AD B,AC D,求 R 的所有候选码。解:考察 F 发现,A ,C 两属性是 L 类属性,所以 AC 必是 R 的候选码成员,又因为(AC) +=ABCD,所以 AC 是 R 的唯一候选码。定理:对于给定的关系模式 R 及其函数依赖集 F,若 X(XR)是 R 类属性,则 X 不在任何候选码中。定理:对于给定的关系模式 R 及其函数依赖集 F,若 X(XR)是 N 类属性,则 X 必包含在 R 的任一候选码中。推论:对于给定的关系模式 R 及其函数依赖集 F,若 X(XR)是 L 类和 N 类组成的属性集,且 X+包含了 R 的全部属性;则 X 是 R 的唯一候选码。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 数据库

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报