IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 数据库工程师基础学习7----规范化与armstrong公理系统 -> 正文阅读

[嵌入式]数据库工程师基础学习7----规范化与armstrong公理系统

1,规范化
在这里插入图片描述
在这里插入图片描述
这里学号与课程号为主码,也是唯一候选码.
上图这样的关系模式就是第一范式形式.
它的问题是,姓名与学院会出现多次,因为可以选择多门课,而且有多个学生.这就是数据冗余问题.
因为要修改大量重复数据,可能会导致更新异常,有一些没有修改.

插入异常就是:如果有新入学的学生,还未选课,由于这里课程号为主码之一,根据实体完整性约束,课程号不能为空,就造成了插入异常.

删除异常就是:如果管理学院的学生信息需要删除,这样就将管理学院也删除了,不希望这样.希望保留学院,然后删除学生信息.
在这里插入图片描述
第一范式的表中,存在非主属性部分依赖于码(如:姓名部分依赖于(学号,课程号)),如果没有部分依赖,就叫做第二范式.
如上图,我们将第一范式的表分解为两部分,第一部分,学号为码,第二部分,(学号,课程号)为码.就建立了两个第二范式的关系模式.

但是第二范式的情况,还有数据冗余的问题.如果一个学院有1000个学生,那么这个学院名称就出现1000次在表中.
在这里插入图片描述
这里紫色的话很重要.
在上面的第二范式中,由于第一个表的学号决定学院编号,学院编号决定学院名称.这就构成了一个传递函数依赖.

这里不可以将学生信息存一个表,学院信息存一个表,这样就失去关联了,所以在学生表后面必须加一个学院编号.

通过将第一范式转化为第三范式形式.就解决了前面提到的四个问题.

在这里插入图片描述
在这里插入图片描述
如果有b决定c,那么这个第三范式就不是一个bc范式.

对于函数依赖,分为完全函数依赖,部分函数依赖与传递函数依赖.
在这里插入图片描述
码指的是候选码.
这里第三条性质一旦成立,如d决定f,那么就会存在传递依赖.
在这里插入图片描述
来看学生表,选修课程与兴趣爱好都多值依赖于学号,并且兴趣爱好与选修课程之间没有关系.我们就将他化简为两个第四范式
在这里插入图片描述
这里的书目表,它的作者多值依赖于isbn编号.排名也多值依赖于isbn编号,但是作者决定排名,这两个之间不是独立的.这种情况下书目这个表就是一个4范式.它有非平凡多值依赖,但是其中有函数依赖.(上面是说书目1)

对于书目的关系模式,可以进行分解.四范式的表,一般会比较简洁.只存在几个多值依赖.
在这里插入图片描述
在这里插入图片描述
现在我们求候选码,可以使用如上方法.就是利用一个候选码可以决定全码.

这里我们看到,题目上没有哪个属性组合可以决定,学生和时间,那么学生,时间就一定在候选码里.
在这里插入图片描述
这里ab决定c,ac决定d.
就可以知道ab是abcd的候选码.
ab决定a,b(自身)是成立的.
ab决定c,就有了abc,再来推出d

所以第一小问选d.

第二小问,首先R一定是一个第一范式形式,那么R是不是一个第二范式,就要看R是否存在非主属性对码的部分函数依赖.一旦存在部分函数依赖就需要,
:属性组合,并且属性组合中有一个可以单独决定一个非主属性.
可以看到题中的,属性组很多,但是能单独决定的很少.比较后得到是一个第二范式.

在这里插入图片描述
那么R是不是一个第三范式呢?
这里注意(时间,学生)决定(教室,时间),一个属性组可以决定另一个属性组.
这样就存在了传递函数依赖.
在这里插入图片描述
这种情况就不是传递函数依赖,因为它违反了y不能是x的子集.还有一个限制是,y不能决定x.
所以这里还需要检查(教室,时间)不能决定(时间,学生)

第二小问选b,最高到2范式
第三小问选c,本身就是码,也就不会存在部分和传递函数依赖.注意bc范式找的是所有主属性对于不包含它的码,完全函数依赖.上面的定义将ab决定a的情况排除了.

2,armstrong公理系统
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这就是自反率,代表情况就是之前常用的ab决定a.这里给出了理论支持.

这里的传递率,可以看出是传递函数依赖的推广,我们可以说传递函数依赖一定是传递率的体现,但是满足传递率不一定是传递函数依赖关系,因为还有很多限制.
在这里插入图片描述
这就是合并规则的例子.
在这里插入图片描述
并且合并规则还可以推广到左边.

在这里插入图片描述
分解规则例子如上
在这里插入图片描述
这里的F并不是F+,F+是由F推导出来的全部.
在这里插入图片描述

以上是属性的闭包定义.A可以推出u.
在这里插入图片描述
例题如上:这个例题采用的是分步计算.并且可以看到,
AD是U的一个候选码.
在这里插入图片描述
这里我们求候选码,需要将U中的所有属性分为这四类.
其中结论一,x必为R的任一候选码的成员,意思是:所有候选码中包含x.同理的还有NLR成员,如果他们组合后的属性集为U,则必为R的唯一候选码.
在这里插入图片描述
在这里插入图片描述
例子如上,前面的√,×,o表示一定在候选码,一定不在候选码,可能在也可能不在.
首先将一定在的结合起来,如果可以得到U,那么就是唯一候选码
在这里插入图片描述
这道题,发现一定在的属性结合起来得不到U,那么就需要进行第三步,将A与可能在的属性,一 一结合起来,找到所有的候选码.(注意可能不止一个候选码.)

这里的L和NLR为什么一定在候选码里?因为如果不在右边,就说明,没有属性可以决定他们,必须带上他们自己,让自己决定自己.

同理,R一定不在候选码中,因为这个属性不决定其他任何属性,那么候选码中有没有它,不影响结果,候选码定义又要求真子集不能是候选码,所以R必不可能在候选码中.
在这里插入图片描述
这里的第一条,就是所有函数依赖右边必须为一个属性,如a→bc就不行,应该改为a决定b,a决定c.
第二条,例子就是,a→d,d→e,与a→e的效果等价,所以a→e就是冗余的.
第三条,要求左边没有冗余的属性,如ac决定d,那么取ac一个子集,如c,c不能决定d,说明a不是冗余的.再取子集d,a可以决定d,说明c是冗余的,可以去掉.

3,模式分解及分解后的特性.
在这里插入图片描述
这里特别注意,这个无损运算的定理,只适用于两个子模式的情况.
看下面的例子,其中ρ1表示第一个关系为(a,b),ρ2表示第二个关系为(b,c).
那么我们根据定理就需要求出1,2,3,然后第四步看是否依赖关系在F的闭包中(由F推导而来),
可以看到第一个分解不是无损分解.第二个分解是无损分解.
在这里插入图片描述
保持函数依赖就是:分解后的表制约关系并起来等于F的闭包.
那么对于这三个例子来说,都没有保持函数依赖.
因为(1)a1a2决定a3,但是分解的a2,a3都不在一张表里,怎么会有依赖关系
同理(2)(3)也一样.前提必须分解前F中一个函数依赖的涉及元素必须在一张表,才可能保持函数依赖.

本章的后续内容讲的是如何将一个关系模型分为多个关系模型,并且保持无损连接.考试不考.

以下为本章真题
在这里插入图片描述
答案为d,b
第一题,左边不是不能有单属性,而是不能有冗余的属性.
第二题:选b,
在这里插入图片描述
答案为:b,c,d,c
在这里插入图片描述
答案为a,d,d
这两道题可以更好理解范式之间的关系.
第二道题,的部分依赖表现在,(学院,课程号)为码,但是学院可以单独决定很多属性.所以不属于第二范式.
同时,存在学院决定学院领导,而学号可以决定学院,这里有了传递依赖,造成了数据冗余,所以将49题d选项中s表再拆分才可以形成第三范式形式.

这里还有一个,课程号决定课程.使得需要分成三个表,否则就会出现部分依赖.不会出现传递依赖.
注意这里,学号课程名是决定不了成绩的,因为课程名并不能决定课程号.
在这里插入图片描述
答案为:d,c
其中注意第二题,a,b选项中存在传递关系.可以得到wx决定z,所以结果错误.
在这里插入图片描述
答案为,a,d
其中,第一问,求候选码最后一步是求属性的闭包.属性闭包的求法就是一个个∪起来.
第二问,我们在看c是否决定abe,或者c决定d时,不能只看F,而应该看F的闭包.
在这里插入图片描述
答案为a,b,c
其中第二题,bcnf一定不会有传递函数依赖.说明bc范式不能保证关系的实体完整性.
在这里插入图片描述
选项为,d,c,b
这里由第一条性质,e决定c,得到aeb决定c
在这里插入图片描述
答案为c,c
在这里插入图片描述
选项为:b,c,d
在这里插入图片描述
答案为:b,c,d
在这里插入图片描述
在这里插入图片描述

答案为,d,cb,d
注意这里第一题的第二小问,表面上看,AB为主码,并且B决定c,这个角度看是第一范式.
但是,注意第三范式是消除非主属性对主属性的部分和传递函数依赖,所以非主属性只有E,所以为第三范式.但是不是bc范式,因为主属性之间存在部分依赖关系(ac主码时,c决定d.)传递函数依赖(ad主码时,b决定c)

所以选c
第二题的第二问,满足四范式,需要将多值传递放在一张表中.选d
在这里插入图片描述
答案为:c,a,c,b,c
其中第一题的第三小问,是否保持函数依赖.在这里是成立的,可以看到,这里判断保持函数依赖只要看分解表中是否包含F的全部关系.

后面两道题需要记忆.
在这里插入图片描述
答案为:d,d,a,b
这里需要注意最后一道题,r1保证了(a→b,a→c,c→d)后面的保证了(aeg之间的关系.)
在这里插入图片描述

答案为b,d
在这里插入图片描述
答案为:c,c,a
第二题不需要多说.
第一题,首先需要认真表述后面的两句话.
其次,是cbnf就一定是第三范式.
所以选c
在这里插入图片描述
答案为:d,b,c
首先第一问是多对多,虽然一个员工在同一时间只能存在于一个部门,但是表中联系会出现一个员工对应多个部门的情况.
其次,第三问,部门号,电话必须在一张表中,并且只有这两列.
还有工作表中需要存入调入时间和调出时间.
从这里可以看到,工作表就像是一张联系的表.其他的是实体表.这里面需要有调入调出时间.
在这里插入图片描述
答案为:b,c
注意,第二小问说的是,a决定b没有丢失,丢失了后面一个依赖关系.所以r1多出来的c属性,没有关系.
在这里插入图片描述
答案为:b,c,d,d
这里的第三小问,由于存在复合属性,所以不属于1范式关系模式.
第四小问,存在多值依赖,所以需要构造一个4范式,并且有(关系,联系电话)两个属性与(家庭成员)是存在依赖关系,所以需要放在同一张4范式表.
在这里插入图片描述
答案为:d,c,a,d
其中第二题,会发现,4范式原来是用来解决多值属性的问题的.

在这里插入图片描述
这道题选b,d
其中主属性为a,d,那么一定不存在部分函数依赖.在F中有传递函数依赖.所以为二范式.
这里可以知道我们一般看的就是F集,而不是其闭包.
另外对于bc范式,课本上例子给的就是传递依赖的例子.并且是主属性b传递依赖于(b,c),说明bc范式并不是只看主属性与不包含他的码.
在这里插入图片描述
这道题选c.
因为u2-u1依赖于u1∩u2也可以.这里注意决定→方向是正确的.对于多值依赖无损连接,课本上没讲.
在这里插入图片描述
答案为:d,a,a
第一题,如果左边不包含码,那么一定存在传递函数依赖.注意一定是从F出发,看非主属性是怎么来的.是传递来的,还是部分依赖.

第二题,平凡的多值依赖,一定是4范式的关系模式.
并且还涉及了多值传递的性质,c选项x→→z-y
在这里插入图片描述
第一题选d,d的形式如上.不满足1nf
在这里插入图片描述
下面来看第二题,首先,判断部分函数依赖和传递函数依赖,
首先应该找到主属性,这是最关键的.
其次,可以看到,将文字抽象成符号,可以有助于理解题意.
在这里插入图片描述
这就是平凡和非平凡函数依赖

码指候选码,题目中的码指的是一个完整的候选码.

答案为:a,d,d
其中第二小题的这个分解就是保持函数依赖的分解.将函数依赖关系分到两个关系模型中来写.

注意第三小题,选d.
前面提到过,平凡的函数依赖,就是(a,b)决定a.
平凡的多值依赖需要知道整个表的属性组才能判断,在选课表中,并不只有x,y两个属性组.所以不是平凡的多值依赖.

其中非函数依赖的多值依赖,就可以理解为普通的多值依赖,在这道题中,这个多值依赖比较特殊.
在这里插入图片描述
答案为a,c,d

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:35:28  更:2022-04-01 23:37:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:41:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码