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

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

解题步骤:


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导出,那么就是具有函数依赖保持性!!!!


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


目录
相关文章
|
移动开发 vr&ar
数据库系统概论——关系代数详解
关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是利用对关系的运算来表达查询的。任何运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。关系代数的运算对象是关系,运算结果亦为关系。集合运算符将关系看成元组的集合从关系的“水平”方向即行的角度来进行运算专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作。
2731 1
数据库系统概论——关系代数详解
|
存储 自然语言处理 前端开发
领域驱动设计(DDD)-基础思想
一、序言     领域驱动设计是一种解决业务复杂性的设计思想,不是一种标准规则的解决方法。在领域驱动设计理念上,各路大侠的观点也是各有不同,能力有限、欢迎留言讨论。 二、领域驱动设计 DDD是什么 wiki释义:     领域驱动设计(英语:Domain-driven design,缩写 DDD)是一种通过将实现连接到持续进化的模型[1]来满足复杂
8770 0
|
10月前
|
数据采集 监控 数据管理
数据管理最容易混淆的3个概念:元数据、数据元、元模型
本文深入解析数据领域三大核心概念:“元数据”“数据元”“元模型”,从定义、用途到实际应用,清晰区分三者区别。元数据是“数据的说明书”,描述数据来源与使用方式;数据元是“最小数据单元”的标准,确保数据统一与规范;元模型是“模型的设计规则”,指导模型合理构建。三者相辅相成,是数据治理不可或缺的基础。掌握它们,助你提升数据管理效率,避免踩坑。
|
算法 vr&ar
保持无损连接的BCNF分解算法
保持无损连接的BCNF分解算法
581 1
|
存储 数据采集 人工智能
AllData数据中台架构全览:数据时代的智慧中枢
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
AllData数据中台架构全览:数据时代的智慧中枢
|
存储 机器学习/深度学习 人工智能
C 408—《数据结构》易错考点200题(含解析)
408考研——《数据结构》精选易错考点200题(含解析)。
1779 27
|
vr&ar
分解为BCNF范式的方法(详细讲解)
分解为BCNF范式的方法(详细讲解)
722 1
|
测试技术 uml
『软件工程13』浅谈面向对象方法,统一建模语言UML
该文章介绍了面向对象方法的基本概念及其在软件工程中的应用,并详细探讨了统一建模语言(UML)的各种图示及其在系统设计中的作用。
『软件工程13』浅谈面向对象方法,统一建模语言UML
|
存储 前端开发 数据库
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用
本文介绍了一个基于Python Flask框架的图书管理系统,该系统具备登录界面,并实现了基本的增删改查功能,适合作为课程设计使用。
712 3
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用