文档介绍:第六章 关系数据理论
问题:给出一组数据,如何构造一个适合于
它们的数据模型?
数据依赖(理论核心) ★
规范化 ★
关系框架的分解 ★
1
2021/7/17
数据依赖
关系模型的形式化定义(规范化理论的背景)
数据依赖
函数依赖(FD)
2
2021/7/17
关系模型的形式化定义
1、关系模型的五元组定义:R < U,D,DOM,F >
R — 关系名,U — 属性组,D — 域,
DOM — 映射(属性与域之间的联系),
F — 数据依赖(属性与属性之间的联系)
2、关系模型的三元组定义:R < U,F >
当且仅当 U 上的一个关系 r 满足 F 时,r 称为关系模式R<U,F>的一个关系。
3
2021/7/17
数据依赖
1、定义
数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,它是现实世界属性间相互联系的抽象。
2、种类
函数依赖
数据依赖 多值依赖
连接依赖
4
2021/7/17
函数依赖的定义
设R(U)是属性集U上的关系模式。X,Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作XY。
X称为这个函数依赖的决定属性集。
学号姓名
学号年龄
学号性别
学号籍贯
具体关系的函数依赖
关系框架的函数依赖
5
2021/7/17
完全依赖
在R(U)中,如果XY,并且对于X的任何一个真子集X’都有X’Y,则称Y对X完全依赖,记作X Y。
部分依赖
若XY但Y不完全依赖于X,则称Y对X部分函数依赖,记作X Y。
传递依赖
在R(U)中,如果XY,YZ,且YX,ZY,YX,则称Z对X传递依赖。记作X Z。
f
p
函数依赖的种类
传递
SC ( SNO , CNO , SD , Grade )
6
2021/7/17
课堂练习
已知关系模式SLC(S#,SD,SL,C#,G),
学号 系 住址 课程号 成绩
规定每个系的学生只住一个地方,
写出关系模式中的所有函数依赖。
S#SD, SDSL, S# SL,
(S#,C#)G, (S#,C#)SD, (S#,C#)SL
f
p
p
传递
7
2021/7/17
公理
F1(自反性):若XY,则 XY 或 XX。
F2(增广性):若XY,则 XZYZ 或 XZY。
F3(传递性):若XY,YZ,则 XZ。
推理规则
F4(伪增性):若XY,WZ,则 XWYZ。
F5(伪传性):若 XY,YWZ,则 XWZ。
F6(合成性):若 XY,XZ,则 XYZ。
F7(分解性):若 XYZ,则 XY,XZ。
FD公理及推理规则
8
2021/7/17
课堂练习
1、已知关系框架R(A,B,C,D,E,P)及其上的函数依赖集合F={ A→B,C→P,E→A,CE→D },则R的候选码是( )。
①AC ②BC ③CE ④CD
2、给定关系框架R(A,B,C,D ,E)及其上的函数依赖集合F={ CD→A,B→C,D→E },则R的候选码是( )。
①CD ②BC ③BD ④AE
3、设关系框架R上的函数依赖集合F={ B→D,CA→E },则利用FD公理和规则可推出( )。
①CB→B ②EA→D ③DA→B ④AB→AD
4、已知关系模式r(a,b,c,d,e)及其上的函数相关性集合f={a→d,b→c ,e→a },该关系模式的候选关键字是( ) 。
B. be D. de
9
2021/7/17
规范化
【目的】通过研究关系之间的等价问题,找出一些方法来指导我们定义数据库的逻辑结