数据关系模式设计的标准化
把关系模式R分解成p以后,如何测试分解p是否为有损分解方法:
1.根据分解模式和属性列表
列:分解模式
行:属性
比如R(ABC) 分为p=(AB,AC) 满足F(A—>C)
列表
A |
B |
C |
|
AB |
|||
AC |
填表
若分解模式中包含属性 则填a下标i,i为对应列数。
若分解模式中不包含属性 则填b下标为ji,j为行号,i为列号
所以表填完结果为:
A |
B |
C |
|
AB |
a1 |
a2 |
b13 |
AC |
a1 |
b22 |
a3 |
2.修改表中元素 根据FD X——>Y
若FD X——>Y,则在X属性列找是否有相同的值:
若有,则到y属性下修改。(修改规则:有a则改为和a相同的,没有a则修改成 b下标小的那个相同。
若没有,则不用修改
所以例题修改如下F(A——>C)
A |
B |
C |
|
AB |
a1 |
a2 |
a3 |
AC |
a1 |
b22 |
a3 |
3.若修改的最后一张表格中,有一行全为a,则称为无损分解,否则为有损分解
所以例题将b13改为a3
所以此题为无损分解
如何判断是否保持函数依赖的分解
设F属性集U上的FD集,Z是U的子集,F在Z上的投影用 兀z(F)①表示
若p=(R1,R2.......)是R的一个分解,F是R上的FD集,如果①式的所有并集 的集合蕴涵F集合,则则称分解保持函数依赖集
例题 设关系R(ABC),F是R上成立的FD集,F={ B——>C,C——>A},p={AB,AC}是R上的一个分解,那么分解p是否保持FD集F。
1.求F在AB上的投影
兀AB(F)=
AB可以是
A——>B:A的集合闭包:A+=A 没有B所以不成立
B——>A :B的集合闭包:B+=BCA 有A所以,成立,则 兀AB(F)={B——>A}
同样方法求在AC上的投影
兀AC(F)=
AC可以是
A——>C:A+=A 没有C所以 不成立
C——>A :C+=CA 有A所以 成立
则兀AC(F)={C——>A}
2.求投影的并集
兀AB(F)U兀AC(F)={B——>A,C——>A}②
3.判断F是否被②式蕴含
因为都有C——>A,所以F中这个不用判断,判断B——>C B+=BA 没有C
注意:::判断闭包时要在②式中判断。
所以 这个题p不保持FD集G
怎么求候选键
①先找到关系R的最大超键
例如 R(ABCD) F={B——>C,D——>A} p={BC,AD}
最大超键就是 ABCD
②
先在每一个F中 通过求闭包方式 划去冗余的属性
例如 最大超键ABCD 先从F中 B——>C 所以把C划去,再从D——>A 划去A 所以此时候选键有可能是BD,再看从D——>A开始,可以划去A,再看 B——>C可以划去C,所以候选键可能是BD
③ 把可能候选键验证 看是否候选键闭包集是全集U
例如
BD闭包集=ABCD=U,所以BD是候选键
怎么判断范式级别?
例题 中判断p中的级别,p={BC,AD}
先在BC,AD在F中做投影,然后在投影的集合中找出候选键
主属性:
如果A是关系模式R的候选键中的属性,那么称A是R的主属性,否则A是R的非主属性。
第1范式
定义:如果关系模式R的每个关系r的属性值都是不可分的原子值
第2范式
定义 如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键
局部依赖:对于FD,W——>A,如果存在X属于W,有X——>A成立,那么称W——>A是局部依赖
否则 完全依赖
第3范式
设F是关系模式R的FD集,如果对于FD中每个X——>Y,都有X是R的超键,或者Y的每个属性都是主属性。
BCNF
设F是关系模式R的FD集,如果对于FD中每个X——>Y,都有X是R的超键
转载于:https://www.cnblogs.com/fmust/p/9050344.html
数据关系模式设计的标准化相关推荐
- 关系模式设计的问题 函数依赖
关系模式设计的问题 一.关系模式设计的问题 张表 1.假设有描述学生选课及住宿情况的关系模式 S-L-C CSno,Sname,Ssex,Sdept,Slol,Cno,Grade) 主键(Sno,Cn ...
- 关系模式设计优化(数据库学习重点,难点)
关系模型潜在的问题 1.添加异常(当在关系中添加数据时可能会导致数据的不一致) 2.修改异常(随意的修改关系中的一行记录也可能导致数据的不一致) 3.删除异常(当删除一定数量的记录时可能会导致一些其他 ...
- DBMS-数据库设计与E-R模型:E-R模型、约束、E-R图、E-R扩展特性、E-R图转换为关系模式、UML建模...
设计过程概览 1. 设计阶段 ·最初阶段:刻画未来数据库用户的数据需求,产品为用户需求规格说明: ·概念设计阶段(conceptual-design phase):(关注描述抽象数据及其联系,通常使用 ...
- 关系模式(关系模式必须遵循)
关系模式和关系是什么意思? 关系模式和关系:描述模式描述关系的静态结构,由模式名.关系模式所包含的属性及属性值所满足的条件组成模式定义. 委托代理关系有哪些内涵及模式? 委托代理关系有5种模式 (1) ...
- 【数据库】 关系模式的规范化理论----一文让你轻松理解其中奥秘
文章目录 关系模式设计中存在的问题 关系的形式化定义 数据依赖的基本概念 函数依赖 非平凡函数依赖.平凡函数依赖 完全函数依赖和部分函数依赖 传递函数依赖 关键字和超关键字 数据依赖的公理系统 函数依 ...
- 学习关系模式并了解如何辨别范式
1. 什么是关系模式? 关系模式:关系模式相当于一张二维表的框架,在这个框架下填入数据,称为关系模式的一个实例,或者叫关系(R) R(A1,A2,A3-Ai):R是关系名,Ai是关系的属性名.一个关系 ...
- MOOC战德臣数据库课程自用笔记_2_关系模式
关系模式 一. 关系模式研究内容 一个关系就是一个Table 关系模型就是处理Table的,有三个部分: 描述DB各种数据的基本结构形式(Table/Relation) 描述Table与Table之间 ...
- 企业级数据仓库:数据仓库概述;核心技术框架,数仓理论,数据通道Hive技术框架,HBase设计,系统调度,关系模式范式,ER图,维度建模,星型/雪花/星座模式,数据采集同步,业务数据埋点,数据仓库规范
文章目录 第一章 数据仓库概述 1.1 数据仓库简介 1.1.2 什么是数据仓库? 1.1.3 OLTP 与 OLAP 1.2 数据仓库技术架构 1.3 课程目标 第二章 核心技术框架 2.1 数据仓 ...
- 关系模式规范化(设计范式)
目录 数据库之六大范式详解 1. 第一范式 1NF 规范化: 2. 第二范式 2NF 候选码: 主属性: 函数依赖: 判断一个关系是否属于第二范式: 改进: 3. 第三范式 3NF 改进 结论 4. ...
最新文章
- Too many links;mkdir
- 重磅!PyTorch 中文手册已开源!理论、实践、应用都有了!
- 推荐算法炼丹笔记:序列化推荐算法Bert4Rec
- 迭代加深搜索与埃及分数求解
- Java后端:10w行级别数据的Excel导入优化记录
- 项目管理平台(总结篇二)
- Python3.x 基础练习题100例(91-100)
- python无法使用物理网卡_Python 实现监控所有物理网卡状态
- MS-SQL的智能脚本智能提示失效丢失
- Liunx安装 jemalloc == 内存管理工具
- vue el-date-picker 直接赋值不生效、数据绑定无效
- 前端调用websocket的3种不同写法
- java fastjson解析json_fastjson解析json数据 Java类
- 怎么查看Java的源代码
- 用python生成一段关于文字的二维码(关于刷网课的)
- 电脑蓝牙音箱,有效解决笔记本电脑连接不了蓝牙音箱的办法
- office教程:如何给excel表格重命名工作表
- 30段超实用CSS代码
- java8精简的jre,精简版jre,只有9M多哦!
- 超强指南!1分钟学会给电脑磁盘分区!
热门文章
- leetcode算法题--数组中出现次数超过一半的数字
- mongodb消息服务器,win10 MongoDB 3.6 服务端配置
- 基于linux操作系统Mysql的基本操作(一)
- CodeSalt | Python数据结构的实现 — 链表
- docker 与tomcat整合
- FoxPro 常用内部函数
- xhan/qqbot试用
- B/S模式下如何使软件屏蔽系统热键
- maskrcnn用于目标检测_用于目标检测的池化渐进网络(Pooling Pyramid Network)
- 查看主机内各组件参数——Cpu、内存、显卡、主板、硬盘(不拆主机方式)