第六章
关系数据理论
范式相关
其实大二上课时也就从范式开始
才觉得数据库终于学到点该学的东西
因为说实话之前的章节,或许很难,但在之前的开发时
JDBC相关也都学过了,并不算完全新的东西……
为什么要学习关系数据理论
问题提出






什么是数据依赖

完整性约束的一种表现形式

数据依赖

数据依赖的主要类型

关系模式的简化表示
关系模式的形式化定义

简化表示


规范化

函数依赖

函数依赖




平凡函数依赖和非平凡函数依赖

完全函数依赖和部分函数依赖

传递函数依赖



码




老师讲解





平凡依赖:学号和课程号能决定学号
范式



表中不能有表
第二范式










2NF解决了非主属性的部份依赖
第三范式











定义

不存在传递函数依赖

3NF消除了非主属性的传递依赖
BC范式




定义


小结



老师讲解







(商店编号,商品编号) →部门编号
(商店编号,部门编号) →负责人
(商店编号,商品编号) →库存数量R的候选码是 (商店编号,商品编号)
(商店编号,商品编号) →部门编号———->商店编号,商品编号——>部门编号、商店编号
所以存在传递依赖
不存在部分依赖,是2NF
转成3NF:R1 (商店编号,商品编号,库存数量,部门编号)
R2 (商店编号,部门编号,负责人)

(队员编号,比赛场次) →进球数
队员编号→球队名
球队名→队长名
主键是 : (队员编号,比赛场次)2NF:
R1={队员编号,比赛场次,进球数} ,
R2={队员编号,球队名,队长名} ,3NF:
R21(队员编号,球队名) , R22(球队名,队长名)

例六:MC–>名次
Sno,Cno——->MC
Cno, MC——–>Sno
全码,没非主属性,决定因素是码
4、5、6都是BCNF
7:T—>C T是决定因素,但不是码,所以不是BCNF
数据依赖的公理系统


Armstrong公理系统

导出规则

函数依赖闭包



求属性集X 关于F的闭包XF+



Armstrong公理系统的有效性与完备性

函数依赖集等价的概念

最小依赖集






小结

老师总结














F一定是F闭包的子集





第二步第三步没顺序,做题看情况




例七:A是候选码
例八:AD

例五:两个候选码,X 和 Y 是主属性 X–>y,z Y —> x,z 没传递依赖, 决定因素也都是码 所以是BC范式
例六:A E BC CD都是候选码 都是主属性,起码3NF B—>D 决定因素B不是码 所以不是BCNF

人员编号→(姓名,性别)
职位编号→职位名称
(人员编号,职位编号)→考试成绩
主码为(人员编号,职位编号)
R1(人员编号,姓名,性别)
R2(职位编号,职位名称)
R3(人员编号,职位编号,考试成绩)