通过示例理解数据库相关概念(五、无损连接,无损分解,依赖保持性等)
上篇记录了范式相关的概念和示例,原则上所设计的数据库应该满足范式。对于不满足范式的关系模式,解决的主要办法就是进行分解。
无损连接和无损分解
上例子:
关系模式R=(A,B,C,D,E),R1 = (A,D),R2 = (A,B),R3 = (B,E),R4 = (C,D,E),R5=(A,E)
F={A→C,B→C,C→D,DE→C,CE→A},
分解r ={R1,R2,R3,R4,R5}。验证: r 是否是无损分解。
所谓无损连接,无损分解是表达的是一个一个意思。主要目的是看通过 分解r和关系依赖集F 能否推出关系模式R。常用的方法如下,就称为表格法吧。
具体做法:标记关系中已知的元素对应为a,待定的为b,目标是使某一行全部变为a,则说明可以推出原关系模式R,为无损连接分解,否则不是无损连接分解。
A | B | C | D | E | |
R1 | a1 | a4 | |||
R2 | a1 | a2 | |||
R3 | a2 | a5 | |||
R4 | a3 | a4 | a5 | ||
R5 | a1 | a5 |
F={A→C,B→C,C→D,DE→C,CE→A},
第一步、由A->C,看A和C列,R1,R2和R5都存在属性A,都不存在属性C,所以此时C先待定,填b13(通常以小的为准)
A | B | C | D | E | |
R1 | a1 | b13 | a4 | ||
R2 | a1 | a2 | b13 | ||
R3 | a2 | a5 | |||
R4 | a3 | a4 | a5 | ||
R5 | a1 | b13 | a5 |
F={A→C,B→C,C→D,DE→C,CE→A},
第二步、由B->C,看B和C列,R2和R3都存在属性B,由R2对应的B,C可知,R3中的C也待定,填b13
A | B | C | D | E | |
R1 | a1 | b13 | a4 | ||
R2 | a1 | a2 | b13 | ||
R3 | a2 | b13 | a5 | ||
R4 | a3 | a4 | a5 | ||
R5 | a1 | b13 | a5 |
F={A→C,B→C,C→D,DE→C,CE→A},
第三步、由C->D,看C和D列,由R1的C和D知,对与C,D两列,C中b13可以推出D中a4。
A | B | C | D | E | |
R1 | a1 | b13 | a4 | ||
R2 | a1 | a2 | b13 | a4 | |
R3 | a2 | b13 | a4 | a5 | |
R4 | a3 | a4 | a5 | ||
R5 | a1 | b13 | a4 | a5 |
F={A→C,B→C,C→D,DE→C,CE→A},
第四步、由DE->C,看D,E和C列,由R4的DEC三列,a4,a5可确定a3。
A | B | C | D | E | |
R1 | a1 | b13 | a4 | ||
R2 | a1 | a2 | b13 | a4 | |
R3 | a2 | b13变a3 | a4 | a5 | |
R4 | a3 | a4 | a5 | ||
R5 | a1 | b13变a3 | a4 | a5 |
F={A→C,B→C,C→D,DE→C,CE→A},
第五步、由CE->A,看C,E和A列,由R5的CEA三列,a3,a5可确定a1。
A | B | C | D | E | |
R1 | a1 | b13 | a4 | ||
R2 | a1 | a2 | b13 | a4 | |
R3 | a1 | a2 | b13变a3 | a4 | a5 |
R4 | a1 | a3 | a4 | a5 | |
R5 | a1 | b13变a3 | a4 | a5 |
最终推出,R3行全部为a.。即为无损连接分解。
依赖保持性:
对于分解后的关系,仍然保持原函数依赖关集F的关系,则称该分解具有依赖保持性。
上例子:
例6 设r ={R1,R2,R3},其中R1=ABD,R2=BCE,R3=DE, F={A→BD,D→A,C→BE,E→D,C→A}。
判断:r是否保持函数依赖集F。
这里引入一个概念,投影。 读作函数依赖集F在AB上的投影,具体使用如下,慢慢体会,不好言传,否则就是离散数学的式子。
= { A→BD,D→A }
= { C→BE }
= { E→D }
= {A→BD,D→A,C→BE,E→D}至于C→A完全可以由传递依赖C→BE,E→D,D→A,得到,所以 = {A→BD,D→A,C→BE,E→D,C→A} = F
故r是保持函数依赖的分解。
最后体会一句话:无损分解性保证了模式分解不丢失信息,而保持函数依赖性则可以解决数据异常操作的现象。
通过示例理解数据库相关概念(五、无损连接,无损分解,依赖保持性等)相关推荐
- 分解为具有无损连接性和依赖保持性的3NF的方法以及例子
分解为具有无损连接性和依赖保持性的3NF的方法以及例子 通用方法 例子 通用方法 输入:关系模式R<U, F> 输出:具有无损连接性和函数依赖保持性的3NF分解ρ = {R1, R2, - ...
- 深入理解数据库中的各种连接
按照我的理解,我将数据库中的连接分类为广义内连接和外连接,如下图,稍后我将解释我为什么这么分. 1 广义内连接(交叉连接) 所有的广义内连接的核心和共同点是完全基于笛卡尔积原理的,两个表进行笛卡尔积运 ...
- 数据库分解-含孤立属性的三范式无损连接保持依赖分解——以S-T表为例
对于不含孤立属性的对于Student表而言: {sno,sname,ssex,sage,sdept,cno,cname,cpno,Ccredit,Grade} 令A=Sno, B=Sname, C=S ...
- 软件设计师 - 超键、无损连接、函数依赖
1.闭包 在函数依赖集F下由α函数确定的所有属性的集合为F下α的闭包,记为α+ . 闭包算法: result:=α; while(result发生变化)dofor each 函数依赖β→γ in F ...
- Oracle数据库:oracle内连接inner join on,多表查询各种自链接、内连接、外连接的练习示例
Oracle数据库:oracle内连接inner join on,多表查询各种自链接.内连接.外连接的练习示例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得 ...
- 三十五、SQL和数据库相关概念
@Author : By Runsen @Date : 2020/5/14 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘 ...
- bcnf分解算法_【数据库】转换成BCNF的保持无损连接的分解
转换成BCNF的保持无损连接的分解 算法1: 例3:关系模式R,其中U={C,T,H,R,S,G}, F={CS→G,C→T,TH→R,HR→C,HS→R},将其分解成BCNF并保持无损连接. 例4: ...
- MongoDB数据库的介绍和连接(非常详细、易懂)
下面是对MongoDB数据库的详细介绍.环境搭建和数据库的连接,希望可以帮助到有需要的小伙伴~ 文章目录 MongoDB数据库介绍 为什么要使用数据库 什么是数据库 MongoDB的环境搭建 Mong ...
- 数据库相关概念与编程使用方式
数据库相关概念与编程使用方式 CSDN主页:jcLee95 邮箱:291148484@163.com 1. 数据库基本术语 1.1 数据库(DB) 是一个长期存储在计算机内的.有组织的.可共享的.统一 ...
- 数据库第五次试验:数据库的安全性
数据库第五次试验:数据库的安全性 前言 一.实验目的 二.实验要求 三.实验原理.方法和手段 四.实验组织运行要求 五.实验条件 六.实验步骤 七.思考题 八.实验报告 前言 为了帮助同学们完成痛苦的 ...
最新文章
- golang中的二维数组和二维切片
- Oracle私房菜之安装Oracle 11g
- office2010 启动man_Office2010打开慢速度怎么办?
- tensorflow随笔-队列管理器QueueRunner-生产者与消费者
- JavaScript实现graphBridges图桥算法(附完整源码)
- angularjs与PHP,我应该混合AngularJS与PHP框架吗?
- SmartDraw2008破解过程总结
- 使用jquery ajax代替iframe
- 如何使用sdkmanager命令行接受SDK package的license
- 当前服务器文件夹不存在,供应商文件夹不存在,无法创建
- codevs1287 矩阵乘法
- 矩阵分解——三角分解(二)
- python自动化办公excel-自动化办公:python操作Excel
- 将新项目上传到SVN服务器
- 江西省萍乡市谷歌高清卫星地图下载
- 【开源】STC12C5A60S2开发板
- xshell 免费版本下载
- 【电子签名】如何使用Adobe Acrobat Pro DC给PDF文件添加自己的电子签名、选项勾选和日期填写
- JAVA性能优化,让程序更快更稳定
- oracle账号过期和账号被锁
热门文章
- 简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW个人网站制作成品 web网页制作与实现
- 剑指Offer_编程题(用两个栈实现队列/旋转数组的最小数字(O(n) + 二分O(lgn))/斐波那契数列/跳台阶)
- 考虑一个包含n个元素的普通二叉最小堆数据结构,它支持最坏情况时间代价为O(lgn)的操作INSERT和EXTRACT-MIN。请给出一个势函数Φ,使得INSERT的平摊代价为O(lgn),EXTRAC
- 一、无线通信中,工作频率与带宽的关系
- vs括号对齐和vs设置背景图片
- 目录穿越及文件包含漏洞
- 全民一起VBA实战篇 专题2 第三回 VBA已有Sort方法,欲排序何必再写循环
- 快速取消PPT中所有动画效果
- 人工智能AI对客户服务的影响正在形成
- 关于ABAP调试中的F5,F6,F7,F8的区别和用法