函数依赖里面,函数依赖公理,Armstrong公理以及属性闭包的定义都有必要仔细学习

1.逻辑蕴含基本定义

2.Armstrong公理和推论–可以用来判断一个函数依赖X -> Y 是否逻辑蕴含于函数依赖集F

Armstrong推论(三个规则)的推出过程

使用Armstrong公理判断逻辑蕴含的例题(这个就要自己多练练就熟悉了)

3.函数依赖集F闭包(F+)和属性集闭包(X+)的概念

首先理解什么是F+ (函数依赖集F的闭包)

例题


属性闭包

简单来说,属性闭包X+指的就是 所有X可以决定的属性的集合
我们也可以用属性闭包判断 X - > Y 是否蕴含于F

一道求属性闭包的例题


(1)求A+,先把A所决定的所有的属性依次扫描:
A+=A
A0=AB (因为有A -> B存在,所以A决定了B,就把B和A放在一起)
A1=ABC (由于A0=AB, AB中的B又决定了C(B->C),所以我们把C也加入属性闭包的集合中)
ABC没有可以决定的属性了,因此最终A+=ABC
(2)求属性集AD的闭包(AD+)
这道题和(1)题同理,
首先看F中是否有AD直接决定的属性,看了一下,发现没有 AD-> a 的情况存在
然后,我们考虑AD中的A或D是否有直接决定的属性,扫描一下,发现有!
AD+=AD
AD0=ADB (因为有A->B,所以把B加入属性闭包)
AD1=ADBC (因为第二项是B->C,所以把C也加入属性闭包)
因此最后 AD+ = ADBC
(3)第三题就自己做吧~~ 不展示过程啦,道理是一样的

4.关于求候选键的技巧

如果一道题中,给了依赖关系让我们求候选键,最佳方式是利用属性闭包算法来做,比如下面的题:

解题

我们先依次求ABD的属性闭包:
A+ = A
B+ = B
D+ = DAB
由于D决定了AB,但是没有决定C,CD在一起可以决定ABCD,所以第一题中R的候选键是CD

数据库基础(4)函数依赖公理和推论(Armstrong公理),属性闭包和求候选键的技巧相关推荐

  1. 数据库基础1—函数依赖 多值依赖

    在数据库知识中有讲到数据库的函数依赖,好几种依赖,希望能进行一下总结: 一.函数依赖(Functional Dependency)的概念 函数依赖是数据依赖的一种,它反映属性或属性组之间相依存,互相制 ...

  2. 系统架构师(软考)----数据库基础

    数据库系统结构 三级模式 外模式:有多少个用户就有多少个 外部视图 用户看到的或使用到的那部分数据 概念模式:全局只有一个 全体数据的逻辑结构 内模式:内部视图 存储记录的类型.存储域 两级映像: 外 ...

  3. 基本函数依赖和候选键_白话详解数据库函数依赖和Armstrong公理及其引理

    一.函数依赖 1. 函数依赖 定义:设 R(U) 是属性集合 U={ A1, A2, ... , An } 上的一个关系模式,X, Y 是 U 上的两个子集,若对 R(U) 的任意一个可能的关系 r ...

  4. 函数依赖与 Armstrong公理

    函数依赖的定义: 如果存在模式(id,name),其中id是主码. 那么函数依赖可以写为id->name 满足函数依赖(a->b)的条件 对实例中的所有元组对t1和t2,如果t1[a]=t ...

  5. 数据库基础_关系与关系模式

    文章目录 前言 一.函数依赖的一般概念 1. X->Y 函数依赖 2.Sample 3.概念_各种依赖关系 二.键,各种键 1.候选键.超码 2.全键 3.外键 4.主属性与非主属性(非码属性) ...

  6. 【数据库复习】函数依赖

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...

  7. 【数据库】数据库基础

    数据库基础 正文开始@Assassin 目录: 数据库基础 1. 基本概念: 2. 常用数据模型: 3. 常用SQL操作: 4. 关系型数据库: 4.1 索引: 5. 数据库完整性: 6. 关系数据理 ...

  8. 数据库基础内容(超级详细)

    数据库基础 文章目录 数据库基础 数据库基本概念 概述: MySql运行机制: 数据库结构简介 数据库软件 Mysql安装准备: Mysql服务安装 MySQL卸载: Mysql登录: SQL语言的概 ...

  9. 【数据库基础】正则化(Normalization)P1:UNF、1NF、2NF、3NF

    写下此文,希望能深入浅出地总结[正则化]的要点 此为正则化第二部分:[数据库基础]正则化(Normalization)P2:BCNF,MVD,4NFhttps://blog.csdn.net/YFY2 ...

  10. 数据库基础(常见面试题)

    数据库基础(面试常见题) 一.数据库基础 1. 数据抽象:物理抽象.概念抽象.视图级抽象,内模式.模式.外模式 2. SQL语言包括数据定义.数据操纵(Data Manipulation),数据控制( ...

最新文章

  1. 浙江大学软件学院2020年保研上机模拟练习 7-2 Distance of Triples
  2. 如果卷积神经网络存在根本性的缺陷,你会怎么看?
  3. Java基础学习总结(18)——网络编程
  4. 2018年10月17日普级B组【模拟赛】
  5. 团队DevOps实践之一
  6. VLFeat在matlab中的使用
  7. c++绝对值函数_Python自带自定义高阶函数实战
  8. -1.#IND,1.#INF 的判断
  9. JDK的安装 - JDK8(1.8.0_301)
  10. 3dmax如何删除多余的时间帧
  11. [OpenCV] 练习题实现代码 使用 cv.addWeighted 函数在文件夹中创建图像的幻灯片放映,并在图像之间进行平滑过渡
  12. Springboot中自定义文件映射
  13. 通用产品 云OA SaaS三管齐下
  14. Element-UI(一) 表格table中实现“加载更多”的功能
  15. 视频是新时代的文本,微信也不得不认了!
  16. 三阶PLL环路参数计算
  17. 论文 | 知识图谱自动构建 Automatic Knowledge Graph Construction
  18. 【Java课堂】接口详解
  19. 深度学习Dya1-初识Python(Python环境搭建及numpy、matplotlib包安装)
  20. 如何评价架构的优劣(转)

热门文章

  1. 在华为服务器 RH 2288H V2上装 windows 2008
  2. Qt笔记——MOC(莫克)
  3. hql中 oracle当前时间,hql oracle 比较 日期时间
  4. 套料排版代码python_XSuperNEST全自动套料解决方案
  5. java的三种流程控制语录_Java 流程控制语句
  6. 链表的基本操作(单链表)
  7. ftok函数(file to key)
  8. 读写分离_摸手教程基于ShardingSphereJDBC的MySQL读写分离
  9. python测试用例不通过发送报告_python+unittest 多用例测试执行失败的问题
  10. c++ 创建文件夹_C/C++编程笔记:vscode搭建C/C++环境,初学编程可收藏