判断是否保持函数依赖的方法

简介: 判断是否保持函数依赖的方法

解题步骤:


1.依赖投影到个分解


2.各依赖并起来是否有FD


第二步没有成立的情况下


3.没有存在的算闭包是否存在


例一:

步骤一:


R(ABCD),F={B->A,A->C},p={AB,AC,AD},p是否保持FD


AB


选一个


x0=A,x1=AC


x0=B,x1=ABC


则函数依赖有A->C,B->AC


所以映射到投影是B->A


以上仅为分析过程,最后在答题中写的过程是B->A


AC


选一个


x0=A,x1=AC


我们会发现从A就能推出AC,到下一轮划掉A,无法从C中选择两个,所以依赖只有A->C


映射到投影是A->C


AD

x0=A,x1=AC


x0=D,x1=D


函数依赖为A->C


映射到投影为空集

所以整体下来

R1(AB),F1={B->A}

R2(AC),F2={A->C}

R3(AD),F3是空集


步骤二:


F1UF2UF3=F成立


在考试中如何规范书写呢?


F={B->A,A->C}


(AB)+=ABC,(F1)={B->A}


(AC)+=AC,(F2)={A->C}


(AD)+=ACD,(F3)=


所以


F1UF2UF3=F成立


例二:


R(ABCD),F={A->B,B->C,C->D,D->A},p={AB,BC,AD},p是否保持FD


步骤一

AB

x0=A,x1=ABCD


x0=B,x1=BCDA


函数依赖A->BCD,B->CDA


映射到投影为F1={A->B,B->A}


以此类推


R2=(BC),F2={B->C,C->B}


R3=(AD),F2={A->D,D->A}


可以看到函数的依赖为B->C,C->B,A->D,D->A,对于F来说少了C->D,进入步骤三:

x0=C      x1=CDAB,即C->D可以推出来

所以p也是保持函数依赖的        


如果只有两个元素,如:


R(A,B,C,D,E,F)


F{A->BC,CD->E,B->D,BE->F,EF->A}

求{ABCD}{EFA}:


F的闭包=F1+F2


F1={A,B,C,D}={A->B,A->C,B->D}


F2={E,F,A}={EF->A,A->E,A->F}


注:以上不仅包含直接依赖,还包含传递依赖,例如:


CD->E,E->A,尽管E没有包含在{A,B,C,D}中,但是可以推出CD->A,那么就应该加CD->A这一项


所以F的闭包={A->B,A->C,B->D,EF->A,A->E,A->F}


再看G的闭包,即{A->BC,CD->E,B->D,BE->F,EF->A}

判断F中的函数依赖能不能由G导出

A->B,A->C能由G中的A->BC导出

B->D,能由G导出

其余同理,如果F中所有函数依赖都能由G导出,那么就是具有函数依赖保持性!!!!


与判断无损连接相关,一起看看吧💖💖💖


目录
相关文章
|
6月前
|
编译器 C语言
关系/条件/逻辑~操作符
关系/条件/逻辑~操作符
|
3月前
去除数组重复成员的方法
去除数组重复成员的方法
30 2
|
4月前
|
语音技术 数据安全/隐私保护
语音识别,猜猜心里数字讲解,猜数字的组合,判断语句的嵌套,嵌套语句使用很简单,我们写一个外层嵌套的条件,利用缩进,满足条件,才会执行条件2,判断语句综合案例,如何产生变量的随机数字,while循环应用
语音识别,猜猜心里数字讲解,猜数字的组合,判断语句的嵌套,嵌套语句使用很简单,我们写一个外层嵌套的条件,利用缩进,满足条件,才会执行条件2,判断语句综合案例,如何产生变量的随机数字,while循环应用
|
6月前
|
Web App开发
求最小函数依赖集:求候选键(例题讲解)超详细,易理解
求最小函数依赖集:求候选键(例题讲解)超详细,易理解
90 1
|
6月前
|
算法 测试技术 C#
【图论 状态压缩 枚举】2959. 关闭分部的可行集合数目
【图论 状态压缩 枚举】2959. 关闭分部的可行集合数目
|
6月前
函数依赖,闭包,覆盖,最小化基本集,部分函数依赖与完全函数依赖,传递函数依赖,候选键,外来建,逻辑蕴含
函数依赖,闭包,覆盖,最小化基本集,部分函数依赖与完全函数依赖,传递函数依赖,候选键,外来建,逻辑蕴含
65 0
|
11月前
集合的自反关系和对称关系
集合的自反关系和对称关系
124 1
|
安全
运算符:指数-链判断-Null判断-逻辑赋值
运算符:指数-链判断-Null判断-逻辑赋值
83 0