求等价函数最小依赖集数的方法(一)

合集下载

最小函数依赖集的求法

最小函数依赖集的求法

一、等价和覆盖定义:关系模式R<U,F>上的两个依赖集F和G,如果F+=G+,则称F和G是等价的,记做F≡G。

若F≡G,则称G是F的一个覆盖,反之亦然。

两个等价的函数依赖集在表达能力上是完全相同的。

二、最小函数依赖集定义:如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。

① F中的任何一个函数依赖的右部仅含有一个属性;② F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价;③ F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。

算法:计算最小函数依赖集。

输入一个函数依赖集输出 F的一个等价的最小函数依赖集G步骤:① 用分解的法则,使F中的任何一个函数依赖的右部仅含有一个属性;② 去掉多余的函数依赖:从第一个函数依赖X→Y开始将其从F中去掉,然后在剩下的函数依赖中求X的闭包X+,看X+是否包含Y,若是,则去掉X→Y;否则不能去掉,依次做下去。

直到找不到冗余的函数依赖;③ 去掉各依赖左部多余的属性。

一个一个地检查函数依赖左部非单个属性的依赖。

例如XY→A,若要判Y为多余的,则以X→A代替XY→A是否等价?若A (X)+,则Y是多余属性,可以去掉。

举例:已知关系模式R<U,F>,U={A,B,C,D,E,G},F={AB→C,D→EG,C→A,BE→C,BC→D,CG→BD,ACD→B,CE→AG},求F的最小函数依赖集。

解1:利用算法求解,使得其满足三个条件① 利用分解规则,将所有的函数依赖变成右边都是单个属性的函数依赖,得F为:F={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G}② 去掉F中多余的函数依赖A.设AB→C为冗余的函数依赖,则去掉AB→C,得:F1={D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G}计算(AB)F1+:设X(0)=AB计算X(1):扫描F1中各个函数依赖,找到左部为AB或AB子集的函数依赖,因为找不到这样的函数依赖。

数据库之函数依赖公理体系

数据库之函数依赖公理体系

DE,DG,BEC,CGB , CGD,CEA,CEG
① F1=
ABC,CA,BCD,ACDB, DE,DG,BEC,CGB , CGD,CEA,CEG
② F21=
ABC,CA,BCD,ACDB, DE , DG , BEC , CGD , CEA,CEG
③ 对F中的任何FD:XA和X的任何真子集Z,
(F-{XA})∪{ZA}不等价于F。
每个FD左端无多余 的属性
F没有 多余的
FD
求解方法
(1)用分解规则将F中的所有函数依赖分解成右 端为单个属性的函数依赖;
Armstrong公理的推论 分解规则:若XY,且ZY,则XZ
(2)去掉F中冗余的函数依赖
(1)若X是L类属性,则X必为R的某一候选键的成 员;
(2)若X是L类属性,且X+包含了R的全部属性, 则X必为R的唯一候选键;
(3)若X是R类属性,则X不是任一候选键的成员; (4)若X是N类属性,则X必包含在R的某一候选键
中; (5)若X是R的N类属性和L类属性组成的属性集,
且X+包含了R的全部属性,则X是R的唯一候选键。
CGB,CEG
四、候选键的求解方法
1、属性分类 对于给定的关系R(U)和函数依赖集F,可将
其属性分为4类: ① L类:仅出现在F的函数依赖左部的属性; ② R类:仅出现在F的函数依赖右部的属性; ③ N类:在F的FD左右两边均未出现的属性; ④ LR类:在F的FD左右两边均出现的属性。
2、快速求解候选键的一个充分条件
对于F中任一FD:XY
① G = F-{XY};
② 求X关于G的闭包XG+; ③ 看XG+是否包含Y。如果XG+包含Y,则在G 中逻辑蕴涵XY,说明XY是多余的函数依赖, 所以F=G;如果X+不包含Y,则保留XY。

函数依赖集

函数依赖集

函数依赖集这里,我想从函数依赖性质谈起。

从函数依赖的定义我们可以知道,一个函数在A上有依赖关系的话,那么它在B上也必定有依赖关系,就像两个多面体的棱互相依靠一样。

如果把这种函数依赖的现象叫做函数依赖性质的话,我认为是恰当不过的了。

但我要纠正一下,函数依赖性质并不是说函数具有依赖性质就叫函数依赖性质,函数依赖性质也不能保证函数在其他集合上也存在依赖性质,只能说明函数在A和B上都有依赖关系。

考虑一个由三元组构成的集合,其中每一个元素分别是三个函数的定义域,则该集合是否满足函数依赖呢?我们来看看下面的集合:①=0;② =1;③=2;④=3。

那么,以上四个集合中的函数是否满足函数依赖呢?我们来看看下面的集合:①=1;②=2;③=4;④=5。

那么,以上四个集合中的函数是否满足函数依赖呢?答案肯定是否定的。

因为函数依赖性质并不是说函数在其他集合上也存在依赖性质,而仅仅是说函数在这两个集合上都有依赖性质。

上面两个集合中的函数虽然在第三个集合中满足函数依赖性质,但是却在第二个集合中不满足函数依赖性质。

我认为,函数依赖性质应该指出在这些集合中某个集合中的函数,必须满足这个集合中的函数才能满足函数依赖性质。

也就是说,函数依赖性质是指出在A和B中都有函数依赖关系的时候,一定在A中和B中都存在这个函数依赖关系,并不需要再去说明这个函数在A和B上都有依赖性质。

(1)(3)(一)。

在A中的满足函数依赖性质的数有4个:x=x^3;y=y^3;z=z^3;则它们分别在A的四个象限中。

例:两个函数a、 b,若a可导则b也可导,如果a和b分别可导且分别连续,那么一定也可导,这种函数称为无穷依赖;如果a和b同时可导,则称a和b为无穷连续,如果a和b可导且不连续,那么称a和b为无穷间断。

其实函数依赖的重点不在于有无依赖性,而在于函数在依赖的集合中是否存在。

对于这样的集合,可以用排除法。

可以用函数a-1=1代入集合:(2)(1)。

得到函数y=1^3, x=0;可以用函数b-1=-2代入集合:(3)(1)。

数据库范式与关系模式示例

数据库范式与关系模式示例

补充讲义一、范式举例BCNF.如:课程号与学号)例4:R(X,Y,Z),F={XY->Z},R为几范式?BCNF。

例5:R(X,Y,Z),F={Y->Z,XZ->Y},R为几范式?3NF。

R的候选码为{XZ,XY},(R中所有属性都是主属性,无传递依赖)二、求闭包数据库设计人员在对实际应用问题调查中,得到的结论往往是零散的、不规范的(直观问题好办,复杂问题难办了),所以,这对分析数据模型,达到规范化设计要求,还有差距,为此,从规范数据依赖集合的角度入手,找到正确分析数据模型的方法,以确定关系模式的规范化程度。

例1.已知关系模式R(U、F),其中,U={A,B,C,D,E}; F={AB→ C, B→ D, EC → B , AC→B} ,求(AB)+F.解:设X(0)=AB○1计算X(1),在F中找出左边为AB子集的FD,其结果是:AB→C,B→D∴X(1)=X(0)UB=ABUCD=ABCD 显然,X(1)≠X(0)○2计算X(2),在F中找出左边为ABCD子集的FD,其结果是:C→E,AC→B∴X(2)=X(1)UB=ABCDUBE=ABCDE 显然,X(2)=U所以,(AB)+ F=ABCDE.(等于U,所以AB是唯一候选关键字)例2.设有关系模式R(U、F),其中U={A,B,C,D,E,I};F={A→D,AB→E,B→E,CD→I,E→C},计算(AE)+解:令X={AE},X(0)=AE○1在F中找出左边是AE子集的FD,其结果是:A→D,E→C∴X(1)=X(0)UB=X(0)UDC=ACDE 显然,X(1)≠X(0)○2在F中找出左边是ACDE子集的FD,其结果是:CD→I∴X(2)=X(1)UI=ACDEI显然,X(2)≠X(1),但F中未用过的函数依赖的左边属性已含有X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI.因为,X(3)=X(2),所以,算法结束。

关系数据理论练习题及答案详细

关系数据理论练习题及答案详细

第一部分:一、求最小依赖集例:设有依赖集:F={AB-C, C-A, BC—D, ACD-B, D—EG, BE—C, CG—BD, CE f 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) +=48。

£»6,故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) +=ABCEDG,故CG—B是多余的。

删除依赖左部多余的依赖后:F3={AB—C, C—A, BC—D, CD—B, D—E, D—G, BE—C, CG—D, CE—G }CG—B与CD—B不能同时存在,但去掉任何一个都可以,说明最小依赖集不唯一。

二、求闭包例:关系模式R (U, F),其中U={A, B, C, D, E, I}, F={A—D, AB—E, BI—E, CD—I, E—C},计算(AE) +。

解:令X={AE}, X (0) =AE;计算X(1);逐一扫描F集合中各个函数依赖,在F中找出左边是AE子集的函数依赖,其结果是:A—D, E—C。

于是X (1) =AE U DC=ACDE;因为X (0)W X (1),且X (1)WU,所以在F中找出左边是ACDE子集的函数依赖,其结果是:CD—I。

于是X (2) =ACDE UI=ACDEI。

虽然X (2)W X (1),但在F中未用过的函数依赖的左边属性已没有X (2) 的子集,所以不必再计算下去,即(AE) +=ACDEI。

数据库系统概论(第4版)相关考试题目 附带答案

数据库系统概论(第4版)相关考试题目 附带答案

数据库系统概论(第4版)考试复习题目)一、单项选择题(每小题2分,共30分)1.数据库系统的三级模式是指C。

A.外模式、模式、子模式B.子模式、模式、概念模式C.模式(逻辑模式)、外模式(子模式/用户模式)、存储模式(内模式)D.逻辑模式、子模式、模式2.数据库系统的数据独立性是指B。

A.不会因为数据的变化而影响应用程序B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序C.不会因为存储策略的变化而影响存储结构D.不会因为某些存储结构的变化而影响其他的存储结构3.数据模型的主要组成要素中,用于描述系统静态特征的是A。

A.数据结构B.数据操作C.数据完整性约束D.数据联系4.关于关系数据库系统叙述错误的是D。

A.关系模型给出了关系操作的能力和特点,关系操作通过关系语言实现B.关系语言的特点是高度的非过程化C.SQL语言介于关系代数和关系演算之间D.关系操作能力可以用三种方式来表示:关系代数、元组关系演算和域关系演算5.要求关系中的元组在组成主键的属性上不能为空,这是B。

A.参照完整性规则B.实体完整性规则C.用户定义完整性规则D.域完整性规则6.在关系代数运算中,五种基本运算为D。

A.并、差、选择、投影、自然连接B.并、差、交、选择、投影C.并、差、交、选择、笛卡尔积D.并、差、选择、投影、笛卡尔积7.在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’→Y,则C。

A.Y函数决定X B.Y对X完全函数依赖C.X为关系R的候选码D.关系R属于2NF8.在关系数据库中,任何二元关系模式的最高范式必定是A。

A.BCNF B.3NF C.2NF D.1NF9.需求分析阶段得到的结果是D。

A.包括存储结构和存取方法的物理结构B.某个DBMS所支持的数据模型C.E-R图表示的概念模型D.数据字典描述的数据需求10.下面的选项中,哪些是数据库管理员的职责A。

①决定数据库中的信息内容和结构②定义数据的安全性要求和完整性约束③应用系统的需求分析和规范说明④确定系统的硬件配置并参与数据库系统的概要设计⑤决定数据库的存储结构和存取策略⑥负责设计应用系统的程序模块⑦数据库中数据的确定、数据库各级模式的设计A.①、②、⑤B.①、②、④、⑤C.①、④、⑤D.②、③、⑥、⑦11.设有两个事务T1、T2,其并发操作如下图所示,下面评价正确的是D。

最小函数依赖集F‘的最优算法

最小函数依赖集F‘的最优算法

2 属性闭包 . 2
设有 关 系模式R u ( ,F) A U, ,r _ C
一 能 由 F根 据 A ms o g 理 导 出 } r tn 公 r
= I 似
则 函数 依 赖 W - WY是冗 余 的 .在 关 系 数 X-  ̄
据 库 的设 计 中 , 多 设 计 算 法 都 是基 于一 个 无 冗 许 余 的 函数 依 赖 集 ,尤 其 是 关 系设 计 的属 性综 合 法 , 基 本 思 想 是将 具 有 相 同决 定 子 的所 有 函数 其 依 赖 中 的属 性 构 成 一个 关 系模 式 , 就要 求 给 出 这
由 函数 依 赖 的定 义 及 函数 依 赖 的 公 理 系统 ( r tn A mso g公 理 ) r ,我 们 能 由已 知 的 函数 依 赖 推 导 出新 的 函数 依 赖 ,则 在一 个 函数 依 赖集 F 中 , 可 能 会 有 冗 余 的 函数 依 赖 .例 如 :给定 关 系 模 式 R u, ( 及 函数 依 赖集 F= { 一y , z , , wY} 由 —y及 u中 , 推 出函数 依 赖 , 可
依 赖 是 现 实 世 界 属性 间相 互 联 系 的抽 象 , 数 据 是 的 内在 性 质 , 是语 义 的 体 现 , 数依 赖 的确 定 决 函 定 于 设 计 者 对 相 关语 义 的理 解 .
21 函数依赖集的闭包 .
设 有 函数依 赖集 F,它 的闭 包 就 是 能够 和用 J 推 导规 则 由 F推 导 出来 的所 有 函数 依 赖 的集 合 .
收 稿 日期 : 2 0 0 0 2— 3—2 5
称 为属 性 关 于 函数 依 赖集 F的 闭 包 .
由属 性 闭包 的定 义 可 以证 明 判 断 y 是用 A m— r

SQL Server——SQLServer中最小函数依赖集

SQL Server——SQLServer中最小函数依赖集

今天小编要和大家分享的是SQLServer中的最小函数依赖集,假设S 1和S 2是两个函数依赖集,如果所有为S 1所蕴涵的函数依赖都为S 2所蕴涵,—即S 1+是S 2+的子集,则S 2是S 1的覆盖,D B M S只要实现了S 2中的函数依赖,就自动实现S 1中的函数依赖。

如果S 2是S 1的覆盖,同时S 1是S 2的覆盖—则S 1和S 2等价,即S 1+=S 2+。

很显然,如果S 1和S 2等价,则D B M S只要实现S 1中的函数依赖,就自动实现S 2中的函数依赖,反之亦然。

当且仅当函数依赖集满足以下条件时,该函数依赖集为最小函数依赖集:1) 每个函数依赖的右边(应变量)只含有一个属性(即它是单元素集合)。

2) 每个函数依赖的左边(自变量)是不可约的—删除自变量的任何一个属性都将改变闭包S+(即会使S转变为一个不等价于原来的S的集合)。

这种函数依赖被称为左部不可约的函数依赖。

3) 删除S中任何一个函数依赖都将改变它的闭包S+,即使S转变为一个不等价于原来的S的集合。

关于第2点和第3点,在这里要指出的是,为了知道如果删除某些元素是否会改变闭包,不必要清楚地知道闭包的内容。

例如:观察大家熟悉的零件关系变量P,有下列函数依赖:P #→P N A M EP #→C O L O RP #→W E I G H TP #→C I T Y显而易见,该函数依赖集是最小依赖集:每个函数依赖中右边只含有一个属性,同样,左边也是不可约的,且任何一个函数依赖都不能被删除而不改变闭包(即不丢失信息)。

相反,下面的函数依赖集不是最小依赖集。

1 ) P #→{ P N A M E,COLOR} :第一个函数依赖的右边不是单属性集P #→W E I G H TP #→C I T Y2 ) { P #,P N A M E }→COLOR :第一个函数依赖左边的P N A M E可以删P #→PNAME 除而不改变闭包(即左边是可约的)P #→W E I G H TP #→C I T Y3 ) P #→P# :第一个函数可以删除而不改变闭包P #→P N A M EP #→C O L O RP #→W E I G H TP #→C I T Y任何一个函数依赖集至少存在一个最小函数依赖集。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

求等价函数最小依赖集数的方法(一)
求等价函数最小依赖集数
介绍
在数据库设计中,等价函数最小依赖集数是指在给定一个关系模
式R的属性集合X和Y,找到R的最小依赖集合的个数,使得X完全决定Y。

方法一:函数依赖理论
1.首先,根据函数依赖理论,我们可以得到给定的属性集合X中的
属性与Y之间的依赖关系。

2.然后,根据函数依赖关系,我们可以找到Y中不依赖于X的属性,
将它们从Y中剔除,得到新的Y。

3.接着,我们可以继续找到Y中不依赖于X的属性,并剔除,直到
Y中的属性完全依赖于X为止。

4.最后,我们得到的Y即为最小依赖集合。

方法二:覆盖迭代法
1.首先,将属性集合X和Y分别作为开始的覆盖集C,即C = {X,
Y}。

2.然后,遍历所有的函数依赖关系,并判断是否可以通过合并覆盖
集C中的某些元素来得到新的覆盖集。

3.如果可以得到新的覆盖集,将其替换原有的覆盖集C,并继续遍
历直到无法得到新的覆盖集为止。

4.最后,得到的C即为最小依赖集合。

方法三:消除冗余法
1.首先,根据函数依赖理论,我们可以得到给定的属性集合X中的
属性与Y之间的依赖关系。

2.然后,对于每个函数依赖关系,我们可以尝试从Y中剔除某个属
性,看是否仍然能够完全决定X。

3.如果剔除某个属性后仍然能够完全决定X,说明该属性是冗余的,
可以将其从Y中剔除。

4.重复上述步骤,直到Y中的属性不能再剔除为止。

5.最后,得到的Y即为最小依赖集合。

总结
求等价函数最小依赖集数是数据库设计中的重要步骤,可以通过
函数依赖理论、覆盖迭代法和消除冗余法来实现。

选择合适的方法应
根据具体情况来考虑,以得到最优的结果。

以上三种方法均可以帮助
我们找到最小的依赖集合,进而优化数据库的设计和性能。

希望本文对您了解求等价函数最小依赖集数有所帮助!
方法四:逻辑推演法
1.首先,根据给定的属性集合X和Y以及函数依赖理论,我们可以
列出所有可能的依赖关系。

2.然后,根据Y中的属性,在X中逐个推演出能够完全决定X的属
性集合。

3.对于每个推演出的属性集合,检查是否存在其他更小的依赖集合
能够完全决定X。

4.如果存在更小的依赖集合,将该推演出的属性集合剔除,并继续
推演。

5.重复上述步骤,直到无法进行推演为止。

6.最后,得到的依赖集合即为最小依赖集合。

方法五:贪心算法
1.首先,将属性集合X和Y分别作为初始的依赖集合。

2.遍历Y中的每个属性,将其移除,并检查依赖集合是否仍然能够
完全决定X。

3.如果能够完全决定X,将该属性从Y中剔除,继续处理下一个属
性。

4.如果无法完全决定X,将该属性重新加入Y中。

5.重复上述步骤,直到遍历完所有属性。

6.最后,得到的Y即为最小依赖集合。

方法六:基于属性覆盖的启发式算法
1.首先,将属性集合X和Y分别作为初始的依赖集合。

2.根据函数依赖理论,找出使得X完全决定Y的最小依赖集合。

3.遍历Y中的每个属性,从Y中剔除该属性,并检查是否还存在其
他属性能够完全决定X。

4.如果存在,将该属性加入到依赖集合中,并继续遍历剩余属性。

5.如果不存在,将该属性加入到依赖集合中,并将剩余属性从Y中
剔除。

6.重复上述步骤,直到遍历完所有属性。

7.最后,得到的依赖集合即为最小依赖集合。

总结
上述方法各有特点,可以根据具体需求和场景选择合适的方法来
求解等价函数最小依赖集数问题。

通过合理的方法选择和运用,可以
帮助我们简化数据库设计,提高数据库的性能和查询效率。

希望本文对您理解求等价函数最小依赖集数的不同方法有所帮助!。

相关文档
最新文档