无损连接分解(-127)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
否则称为Y对X部分函数依赖,记作
X pY (S#,C#)f G
(S#,C#) p SN
快速热身2:找出S中的另一部分函数依赖
函数依赖
传递函数依赖
在R(U)中,如果
X Y,Y Z,Y X,且Z Y
则称Z对X传递函数依赖
S# SD,SD DEAN
快速热身2:找出职工工资表中的传递函数依赖
如果X Y,但Y X,则称其为非平凡的函数依 赖,否则称为平凡的函数依赖 如(S#,SN) SN是平凡的函数依赖
思考:一个关系模式有n个属性,那么 在它上面成立的所有可能的函数依赖有 多少个?非平凡的函数依赖又有多少个?
函数依赖
部分函数依赖
在R(U)中,如果XY,且对于任意X的真子集X′,
都有X′ Y ,则称Y对X完全函数依赖,记作 X f Y
关 系 模 式 R(A,B,C,D), 码 为 AB, 给 出 它 的
一个函数依赖集,使得R属于1NF而不属于2NF
3NF
S_SD(S# , SN , SD , DEAN)
不良特性
插入异常:如果系中没有学生,则有关系的信息就无 法插入
删除异常:如果学生全部毕业了,则在删除学生信息 的同时有关系的信息也随之删除了
函数依赖
超码:设K为R< U , F >的属性或属性组,若K U, 则称K为R的超码
候选码:设K为R< U , F >的超码,若K f U,则
称K为R的候选码
主码:若R(U , F)有多个候选码,则可以从中选定一 个作为R的主码
主属性:包含在每一个候选码中的属性,称作主属性
全码:关系模式的码由整个属性组构成,如SPJ
A
B
C
D
a1
b1
c1
d1
a1
b2
c1
d2
a2
b2
c2
d2
a2
b3
c2
d3
a3
b3
c2
d4
检验:A→C?C→A?AB→D? 辨识:
满足依赖的关系:依赖在模式的某个关系实例上成立 模式上成立的依赖:依赖在模式的所有关系实例上都
成立
练习
A
B
C
1
2
3
4
2
3
5
3
3
找出可能的函数依赖
函数依赖
平凡函数依赖
若R1NF,且每个非主属性完全依赖于码,则称 R2NF
消除非主属性对码的部分依赖 如S2NF,因为 (S#,C#)p SN (S#,C#)p SD
2NF
改造
非主属性有两种,一种完全依赖于码,一种部分依 赖于码。 将S分解为:
快速热身
SC(S# , C# , G) S_SD(S# , SN , SD , DEAN)
唉,剪不断,理还乱
信息的不可表示问题
插入异常:如果没有职工具有8级工资,则8级工资的工 资数额就难以插入
删除异常:如果仅有职工赵明具有4级工资,如果将赵 明删除,则有关4级工资的工资数额信息也随之删除了
信息的冗余问题
数据冗余:职工很多,工资级别有限,每一级别的工资 数额反复存储多次
更新异常:如果将5级工资的工资数额调为620,则需要 找到每个具有5级工资的职工,逐一修改
更新异常:如果学生转系,不但要修改SD,还要修改 DEAN,如果换系主任,则该系每个学生元组都要做 相应修改
数据冗余:每个学生都存储了所在系的系主任的信息
3NF
定义
关性系组模Y及式非R主< 属U性, ZF(Z>中,Y)若,不使存得在下这式样成的立码,X,属
关系模式的设计问题
解决之道:分解! 分解!! 再分解!!!
哇,原来生活可以如此简单
职工
级别
赵明
4
钱广
5
孙志
ቤተ መጻሕፍቲ ባይዱ
6
李开
5
周祥
6
级别 4 5 6
工资 500 600 700
关系模式的设计问题
有关学生的关系模式S(S# , SN , SD , DEAN , C# , G)
S# SN SD DEAN C#
不良特性
插入异常:如果学生没有选课,关于他的个人信息 及所在系的信息就无法插入
删除异常:如果删除学生的选课信息,则有关他的 个人信息及所在系的信息也随之删除了
更新异常:如果学生转系,若他选修了k门课,则 需要修改k次
数据冗余:如果一个学生选修了k门课,则有关他 的所在系的信息重复
2NF
定义
提纲
关系模式的设计问题 函数依赖 范式 函数依赖的推理规则 模式分解
关系模式的设计问题
示例
考虑为管理职工的工资信息而设计一个关系模式
职工 赵明 钱广 孙志 李开 周祥
级别 4 5 6 5 6
工资 500 600 700 600 700
关系模式的设计问题
问题:麻烦! 麻烦!! 好麻烦!!!
函数依赖
函数依赖
设R(U)是属性集U上的关系模式,X , Y U, r是 R(U) 上的任意一个关系,如果成立
对t , s r,若t[X] = s[X],则t[Y] = s[Y] 那么称“X函数决定Y”,或“Y函数依赖于X”,记 作XY 称X为决定因素
如S# SN, (S#,C#) G
函数依赖
范例
关系模式S(S# , SN , SD , DEAN , C# , G)
主码:(S#,C#) 函数依赖:
(S#,C#) f G
S# SN,(S#,C#) p SN S# SD,(S#,C#) p SD
SD DEAN
范式
定义
范式是对关系的不同数据依赖程度的要求 通过模式分解将一个低级范式转换为若干个高级
范式的过程称作规范化(概念的纯粹化)
1NF 2NF 3NF BCNF 4NF
5NF
1NF
定义
关系中每一分量不可再分。即不能以集合、序列等 作为属性值
S#
C#
S1 {C1,C2,C3}
S#
C#
S1
C1
S1
C2
S1
C3
1NF
分量是否需要再分,与具体应用有关。如果用到 值的一部分,则需要进一步分割
姓名 王军 张立 李明
生日 68.7.10 69.7.10 80.3.28
姓名 年 王军 68 张立 69 李明 80
月日 7.10 7.10 3.28
如果只是查询出生日期,则它满足1NF 如果查询两人生日是否相同,则只比较月、日, 需要将生日分解,就不满足1NF 如果比较两人的生肖呢?
2NF
关系模式S(S# , SN , SD , DEAN , C# , G)
G
S01 杨明 D01 思齐 C01 90
S02 李婉 D01 思齐 C01 87
S01 杨明 D01 思齐 C02 92
S03 刘海 D02 述圣 C01 95
S04 安然 D02 述圣 C02 78
S05 乐天 D03 省身 C01 82
快速热身1:它存在哪些问题? 望闻问切:不良的数据依赖
X pY (S#,C#)f G
(S#,C#) p SN
快速热身2:找出S中的另一部分函数依赖
函数依赖
传递函数依赖
在R(U)中,如果
X Y,Y Z,Y X,且Z Y
则称Z对X传递函数依赖
S# SD,SD DEAN
快速热身2:找出职工工资表中的传递函数依赖
如果X Y,但Y X,则称其为非平凡的函数依 赖,否则称为平凡的函数依赖 如(S#,SN) SN是平凡的函数依赖
思考:一个关系模式有n个属性,那么 在它上面成立的所有可能的函数依赖有 多少个?非平凡的函数依赖又有多少个?
函数依赖
部分函数依赖
在R(U)中,如果XY,且对于任意X的真子集X′,
都有X′ Y ,则称Y对X完全函数依赖,记作 X f Y
关 系 模 式 R(A,B,C,D), 码 为 AB, 给 出 它 的
一个函数依赖集,使得R属于1NF而不属于2NF
3NF
S_SD(S# , SN , SD , DEAN)
不良特性
插入异常:如果系中没有学生,则有关系的信息就无 法插入
删除异常:如果学生全部毕业了,则在删除学生信息 的同时有关系的信息也随之删除了
函数依赖
超码:设K为R< U , F >的属性或属性组,若K U, 则称K为R的超码
候选码:设K为R< U , F >的超码,若K f U,则
称K为R的候选码
主码:若R(U , F)有多个候选码,则可以从中选定一 个作为R的主码
主属性:包含在每一个候选码中的属性,称作主属性
全码:关系模式的码由整个属性组构成,如SPJ
A
B
C
D
a1
b1
c1
d1
a1
b2
c1
d2
a2
b2
c2
d2
a2
b3
c2
d3
a3
b3
c2
d4
检验:A→C?C→A?AB→D? 辨识:
满足依赖的关系:依赖在模式的某个关系实例上成立 模式上成立的依赖:依赖在模式的所有关系实例上都
成立
练习
A
B
C
1
2
3
4
2
3
5
3
3
找出可能的函数依赖
函数依赖
平凡函数依赖
若R1NF,且每个非主属性完全依赖于码,则称 R2NF
消除非主属性对码的部分依赖 如S2NF,因为 (S#,C#)p SN (S#,C#)p SD
2NF
改造
非主属性有两种,一种完全依赖于码,一种部分依 赖于码。 将S分解为:
快速热身
SC(S# , C# , G) S_SD(S# , SN , SD , DEAN)
唉,剪不断,理还乱
信息的不可表示问题
插入异常:如果没有职工具有8级工资,则8级工资的工 资数额就难以插入
删除异常:如果仅有职工赵明具有4级工资,如果将赵 明删除,则有关4级工资的工资数额信息也随之删除了
信息的冗余问题
数据冗余:职工很多,工资级别有限,每一级别的工资 数额反复存储多次
更新异常:如果将5级工资的工资数额调为620,则需要 找到每个具有5级工资的职工,逐一修改
更新异常:如果学生转系,不但要修改SD,还要修改 DEAN,如果换系主任,则该系每个学生元组都要做 相应修改
数据冗余:每个学生都存储了所在系的系主任的信息
3NF
定义
关性系组模Y及式非R主< 属U性, ZF(Z>中,Y)若,不使存得在下这式样成的立码,X,属
关系模式的设计问题
解决之道:分解! 分解!! 再分解!!!
哇,原来生活可以如此简单
职工
级别
赵明
4
钱广
5
孙志
ቤተ መጻሕፍቲ ባይዱ
6
李开
5
周祥
6
级别 4 5 6
工资 500 600 700
关系模式的设计问题
有关学生的关系模式S(S# , SN , SD , DEAN , C# , G)
S# SN SD DEAN C#
不良特性
插入异常:如果学生没有选课,关于他的个人信息 及所在系的信息就无法插入
删除异常:如果删除学生的选课信息,则有关他的 个人信息及所在系的信息也随之删除了
更新异常:如果学生转系,若他选修了k门课,则 需要修改k次
数据冗余:如果一个学生选修了k门课,则有关他 的所在系的信息重复
2NF
定义
提纲
关系模式的设计问题 函数依赖 范式 函数依赖的推理规则 模式分解
关系模式的设计问题
示例
考虑为管理职工的工资信息而设计一个关系模式
职工 赵明 钱广 孙志 李开 周祥
级别 4 5 6 5 6
工资 500 600 700 600 700
关系模式的设计问题
问题:麻烦! 麻烦!! 好麻烦!!!
函数依赖
函数依赖
设R(U)是属性集U上的关系模式,X , Y U, r是 R(U) 上的任意一个关系,如果成立
对t , s r,若t[X] = s[X],则t[Y] = s[Y] 那么称“X函数决定Y”,或“Y函数依赖于X”,记 作XY 称X为决定因素
如S# SN, (S#,C#) G
函数依赖
范例
关系模式S(S# , SN , SD , DEAN , C# , G)
主码:(S#,C#) 函数依赖:
(S#,C#) f G
S# SN,(S#,C#) p SN S# SD,(S#,C#) p SD
SD DEAN
范式
定义
范式是对关系的不同数据依赖程度的要求 通过模式分解将一个低级范式转换为若干个高级
范式的过程称作规范化(概念的纯粹化)
1NF 2NF 3NF BCNF 4NF
5NF
1NF
定义
关系中每一分量不可再分。即不能以集合、序列等 作为属性值
S#
C#
S1 {C1,C2,C3}
S#
C#
S1
C1
S1
C2
S1
C3
1NF
分量是否需要再分,与具体应用有关。如果用到 值的一部分,则需要进一步分割
姓名 王军 张立 李明
生日 68.7.10 69.7.10 80.3.28
姓名 年 王军 68 张立 69 李明 80
月日 7.10 7.10 3.28
如果只是查询出生日期,则它满足1NF 如果查询两人生日是否相同,则只比较月、日, 需要将生日分解,就不满足1NF 如果比较两人的生肖呢?
2NF
关系模式S(S# , SN , SD , DEAN , C# , G)
G
S01 杨明 D01 思齐 C01 90
S02 李婉 D01 思齐 C01 87
S01 杨明 D01 思齐 C02 92
S03 刘海 D02 述圣 C01 95
S04 安然 D02 述圣 C02 78
S05 乐天 D03 省身 C01 82
快速热身1:它存在哪些问题? 望闻问切:不良的数据依赖