模式分解(2NF、3NF)
求闭包
求属性集()关于 上的函数依赖集的闭包 。
1、令,i=0。
2、对于F中所有左边为或其子集的函数依赖,把其右边的属性加入,得到。
3、判断是否等于U,若相等,则。判断是否等于,若相等,则。否则继续执行第二步,i++。
例:有关系 ,,,求。
- 令
- 由得,
- 由得,
- 故
求候选码
1、把函数依赖集F中的属性分为L类、R类、LR类和N类。
L类:只在函数依赖左边出现的属性
R类:只在函数依赖右边出现的属性
LR类:在函数依赖左边和右边都出现的属性
N类:未在函数依赖中出现的属性
2、对于各类,有如下性质:
- 若X是L类,则X必为关系R的任一候选码
- 若X是L类,且 ,则X为唯一候选码
- 若X是R类,则X不在任何候选码中
- 若X是N类,则X必包含在任一候选码中
3、对属于L类的属性,不断的加入LR的属性,形成属性组W,求 ,若 ,则W为候选码。求出所有的Wi。
例:有关系 ,,
L类:A、B, R类:C、E, LR类:D, N类:无
则候选码中一定有AB,有,由性质2得,(A, B)为唯一候选码。
分解为2NF
若关系中,主键为W,有且,则可把关系分解为 ,。
判断R1,R2是否均符合2NF;若不符合,则继续按上述方法分解,直到符合为止。
例:有关系 ,,
已知候选码为(A, B),有,故R不符合2NF,分解为,。
R1,R2均符合2NF。
求最小依赖集
1、去掉F中所有函数依赖右边的多属性。
例:
2、去掉F中所有函数依赖左边的多属性。
例:对于,若,则
3、去掉冗余的函数依赖。
例:对于,若去掉该条函数依赖后,对于F中剩下的函数依赖,可以得到,则该条函数依赖可去除
分解为3NF(保持函数依赖)
1、求F的最小依赖集,仍记为F。
2、对于F中为出现的属性,把这些属性构成一个关系模式R0,同时把这些属性从U中除去,剩余的属性仍记为U。
3、若有,且XA=U,则算法终止,否则执行第4步。
4、对F中的所有函数依赖,按具有相同左部的原则分为k组。每一组中出现的所有属性组成的集合为,若则去掉。剩余的所有各组成一个关系模式。
例:有关系,,,
1、求F的最小依赖集
- 右边无多属性,跳过
- 左边为多属性,求得,故不可去除
- 去掉,有;去掉,有;去掉,有,故不可去除
因此,F最小依赖集为。
2、 F中所有属性均有出现,故跳过该步。
3、不满足算法终止条件,跳过该步。
4、按相同左部可分为(A, B, C),(A, D),(D, E)。他们之间彼此不存在包含关系,因此该关系模式可分解为,,。
模式分解(2NF、3NF)相关推荐
- 数据库概论之模式分解理论(理解简单明了)
模式分解理论 模式分解: 模式分解的概念: 模式分解的特性: 数据内容的等价性: 数据约束的等价性 模式分解要考虑的问题: 模式分解的分类: 无损连接分解: 无损连接分解概念: 无损连接分解的检验算法 ...
- bcnf分解算法_数据库规范化:模式分解算法(3NF,BCNF分解,附带口诀,通俗易懂)...
前言 在理解模式分解的时候,发现模式分解算法比较难懂.于是想出了一个通俗易懂的解法,并且配有速记口诀!让模式分解再也难不倒你. 知识储备 首先在了解模式分解之前,你需要对数据库规范化有一定的了解.这里 ...
- 【通俗易懂】关系模式范式分解教程 3NF与BCNF口诀!小白也能看懂
本来是为了复习数据库期末考试,结果找了一圈都没有发现比较好的解释,通过查阅资料和总结,为大家提供通俗易懂的解法,一听就会!并且配有速记口诀!介是你没有玩过的船新版本包含最小依赖集求法候选码求法 在模式 ...
- 已知:关系模式R(U,F),U=ABCD,F={A→C,C→A,B→AC,D→AC},将模式R无损失连接并保持函数依赖,分解为3NF
已知:关系模式R(U,F),U=ABCD,F={A→C,C→A,B→AC,D→AC},将模式R无损失连接并保持函数依赖,分解为3NF 解答步骤: ①求出候选码: L:B,D LR:A,C BD→ABC ...
- 模式分解详解,分解为3NF与分解为BCNF
3NF:不存在非主属性对码的传递函数依赖或部分函数依赖. 如AB-C,A->C 码为(A,B),A,B是主属性,C是非主属性,C部分函数依赖于码,即不满足3NF BCNF:每个决定因素都包含码 ...
- 【数据库系统设计】关系数据理论(函数依赖、码、范式、模式分解)
关系数据理论 6.1 为什么要学习关系数据理论 什么是好的数据库逻辑设计 什么是数据依赖 关系模式的简化表示 6.2 规范化 - 关系的规范化理论 6.2.1 函数依赖 1.函数依赖 2.平凡函数依赖 ...
- 【数据库】范式理解:1NF,2NF,3NF,BCNF,4NF详析
数据库入门(一)范式理解:1NF,2NF,3NF,BCNF,4NF详析 引言 范式种类 第一范式(1NF) 符合1NF的关系中的每个属性都不可再分 存在问题 第二范式(2NF) 在1NF基础上消除了非 ...
- 数据库六种范式详解(1NF/2NF/3NF/BCNF/4NF/5NF)
目录 数据库的基本概念 函数依赖 函数依赖的定义 函数依赖与属性的关系 六种范式 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) 巴斯-科德范式(BCNF,Boyce-Codd Norma ...
- 数据库1NF 2NF 3NF范式解释
数据库1NF 2NF 3NF范式解释 定义 范式(NF)"是什么意思.按照教材中的定义,范式是"符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度&quo ...
最新文章
- 分类算法-支持向量机(SVM)
- 算法课题(一) 贪心算法
- uvc音频传输协议_干货|太全了!常见的音频接口,你知道几种?
- 洛谷 4115 Qtree4——链分治
- java读取图片缩略方法_java 图片缩略图的两种方法
- 使用log4net记录日志到数据库(含有自定义属性)
- 【工程项目经验】Centos 编译32位程序
- New Relic性能监控(三)浏览器端监控
- mybatis分页插件 pagehelper点击末页跳到第8页
- shell卸载 simatic_西门子软件在WIN7操作系统中安装步骤和须知
- 车辆信息查询api,通过车系名称查询相关信息
- 【STM32H7教程】第2章 STM32H7的开发环境搭建
- 关于浏览器打开时自动打开部分网页(浏览器被劫持)的解决办法
- python colormap_Python matplotlib的使用并自定义colormap的方法
- formality软件使用教程
- win32 中GetLastError 关于code与信息
- 如何治理 Electron 版本淘宝直播应用崩溃?
- MySQL子查询(嵌套查询)
- Aseprite常用快捷键大全
- 【保研记录贴】西工大计算机面试