关系的无损链接、函数依赖的判断

1.关系的无损连接

首先什么是有损,什么是无损连接?
答:有损:不能还原    无损:可以还原

无损连接分解:指将一个关系模式分解成若干个关系模式后,通过直燃链接和投影运算仍然能还原到原来的关系模式。

这里先讲判断无损连接的两种方法:
① 适用于分解为两个关系模式的运算

1.分别求出 R1∩R2 →(R1-R2)  和  R1∩R2 →(R2-R1); 
2.然后看是否和函数依赖F有对应。若有对应,即为无损连接。

例如  :
R = {A, B, C}, F={ A→B }, 则 P1 = { R1(AB), R2(AC) }、P2 = { R1(AB), R2(AC) }, 是不是无损分解?

R1∩R2 = A;
R1-R2 = B;
R2-R1 =C;
由①.1 可知:即:A→B 或 A→C
A→B和函数依赖F{ A→B } 有对应,即是无损连接。

② 表格法
直接看例子理解会好些
例如
 将一个具有函数依赖: 学号→姓名,课程号→课程名,(学号,课程号)→ 分数的关系模式:成绩(学号,姓名,课程号,课程名,分数),分解为:成绩(学号,课程号,分数);学生(学号,姓名);课程(课程号,课程名)。让你判断分解是否具有无损连接性。
答:本题目关系划分为成绩、学生、课程三个关系,所以解决本题目适用于表格法。

1. 初始表格:

  学号 姓名 课程号 课程名 分数
成绩 a1 b12 a3 b14 a5
学生 a1 a2 b23 b24 b25
课程 b31 b32 a3 a4 b35

注:

表格第一行:原关系中所拥有的一系列属性。

表格第一列:拆分分解成的关系名称。

a1:由题目知道成绩(学号,课程号,分数);学号在成绩中 ,所以用a,又因为第一列 所以是a1。

b12:姓名不在拆分分解成的成绩关系中,故用b,又因为在第一行第二列,所以b12。

其它以此类推。

2. 然后根据函数依赖进行表格变化,达到最终目的。

经变换后表格:

  学号 姓名 课程号 课程名 分数
成绩 a1 a2 a3 a4 a5
学生 a1 a2 b23 b24 b25
课程 b31 b32 a3 a4 b35

注:

表格变换依据规则如下:

依据函数依赖中关系→学号,表中即 a1→a2, a1→b12 ;即可以把 b12也换成 a2。最后看能否组成一行全部是 a 的序列。若能,则分解是无损的。

本题中第一行组成了全a序列,即说明分解是无损的。

函数依赖判断

函数依赖:是数据依赖的一种,它反映属性或属性组之间相依存,互相制约的关系,即反映现实世界的约束关系。

保持函数依赖即是保持分解前后的这种约束关系。

举个简单易懂的例子。

现有关系R(A,B ,C),函数依赖F{ A→B, B→C }。

(1)分解为R1 (A,B),R2(B,C),问是否保持函数依赖?

答:R1包含有 A→B, R2包含有 B→C。包含了函数依赖F中全部依赖关系,所以保持了函数依赖 。

(2)分解为R1 (A,B),R3(A,C),问是否保持函数依赖?

答:虽然R1包含有 A→B,但是R2并没有包含出 B→C的关系约束。即分解后整个关系并没有完整包含题目中函数依赖F中的函数依赖关系。故没有保持函数依赖 。

爱 Yang

关系的无损链接、函数依赖的判断相关推荐

  1. 【数据库系统设计】关系数据理论(函数依赖、码、范式、模式分解)

    关系数据理论 6.1 为什么要学习关系数据理论 什么是好的数据库逻辑设计 什么是数据依赖 关系模式的简化表示 6.2 规范化 - 关系的规范化理论 6.2.1 函数依赖 1.函数依赖 2.平凡函数依赖 ...

  2. 【关系数据库设计基础理论 - 候选关键字、无损连接性、函数依赖的判断】

    答: ①:计算候选关键字就是拿4个选项去计算他的闭包,如果闭包中包含了R的所有属性并且为最小集,那这个就是他的候选键 CD+是:CD,C什么也决定不了,D能推出A -> CDA ,A又能推出E ...

  3. 无损链接分解_一点都不能少!伯克利研究人员提出深度学习锻造无损数据压缩新方法...

    From: BAIR 编译: T.R 数据压缩对于高速传输和高密度保存至关重要.近日来自伯克利的研究人员基于深度学习提出了一种可广泛应用的有效无损数据压缩方法,基于bits-back编码和非对称数字系 ...

  4. 类和对象总结及用法 计算点到点距离 线与线的关系 计算三角形平行四边形面积周长 判断形状

    1.类和对象简介 类和对象的关系:类是对象的抽象,而对象是类的特例,即类的具体表现形式. 类和对象的区别:类是对象的模板,类是抽象的不占用内存,对象是具体的,占用储存空间. 类中主要包括数据和成员函数 ...

  5. 位置关系C语言,C++/STL实现判断平面内两条线段的位置关系代码示例

    概念 平面内两条线段位置关系的判定在很多领域都有着广泛的应用,比如游戏.CAD.图形处理等,而两线段交点的求解又是该算法中重要的一环.本文将尽可能用通俗的语言详细的描述一种主流且性能较高的判定算法. ...

  6. python 判断url链接是否有效 判断文件下载链接是否有效

    其实非常简单 from urllib import requestwith request.urlopen("http://down.dbcxz1.net/20181105/BigBaiCa ...

  7. 数据库原理——关系模式的范式的简明判断

  8. 【券商报告】大类资产配置专题研究:商品价格与信用利差的关系——附下载链接

    来源 | 华西证券 从宏观层面看,商品价格上涨对信用债总体不利:但从中观层面看,黑色. 有色和化工债利差在相关商品价格上涨时却倾向于收敛.结论上,2021年信用利差依然 面对走阔压力,商品价格上涨可为 ...

  9. 软件设计师 - 超键、无损连接、函数依赖

    1.闭包 在函数依赖集F下由α函数确定的所有属性的集合为F下α的闭包,记为α+ . 闭包算法: result:=α; while(result发生变化)dofor each 函数依赖β→γ in F ...

最新文章

  1. python中string的操作函数
  2. ci框架 反向代理配置_《网站建设》Nginx配置反向代理
  3. 每天一道LeetCode-----只可能有'.'和'*'的字符串正则匹配
  4. Airbnb: React Native 从选择到放弃
  5. play 连接mysql_Play framework 2.x 连接mysql | 学步园
  6. [LeetCode] #22 Generate Parentheses
  7. bzoj3524 [Poi2014]Couriers
  8. C# DataSet转JSON
  9. python皮同_皮同 - 雷克·莱尔顿中文维基 - 灰机wiki
  10. [XHTML Tutorial] 走向XHTML标准 (4)(XHTML Syntax)
  11. 绑定host域名 修改手机hosts域名
  12. go语言构造函数的创建以及赋值使用
  13. 超越极限:阿里云最新ASPLOS论文解读 | 凌云时刻
  14. Java虚拟机类加载机制浅谈
  15. 研磨设计模式读书笔记
  16. 好看的php表格样式,分享四个非常好看实用的CSS样式表格
  17. DEA各种模型原理及stata代码实现
  18. iOS 系统分享功能
  19. 微信号下方菜单如何设置
  20. Meta分析和网状Meta分析速成班( 2019年12月28-29日 上海)

热门文章

  1. Web APIs三、DOM事件进阶
  2. 2022-09-15 Windows11 C盘下面看不到AppData
  3. python第一天---------了解python
  4. Null Aware Anti Join 速记
  5. 【golang】协程和线程的区别
  6. windows常用命令大全
  7. maximal munch规则
  8. C++ 那些被遗漏的细节2 map emplace emplace_hint
  9. 关于MCU封装的选型
  10. ANSYS Topology Optimization拓扑优化技术在轻量化设计应用概述