第六章
关系数据理论
范式相关
其实大二上课时也就从范式开始
才觉得数据库终于学到点该学的东西
因为说实话之前的章节,或许很难,但在之前的开发时
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(人员编号,职位编号,考试成绩)