并且对于每一个非平凡函数依赖XY
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ 结论: 所有非主属性都完全函数依赖于每个码 所有主属性都完全函数依赖于每个不包含它的码 没有任何属性完全函数依赖于非码的任何一组属性
❖ 3NF与BCNF的关系?
第四范式
1. 多值依赖 ❖ 定义:设R(U)是属性集U上的一个关系模式,X, Y,
Z是U的子集,Z = U-X-Y,若R(U)的任意一个关系, 对于(X, Z)的每个值,存在Y的一组值与其对应, 且Y的这组值仅仅决定于X值而与Z值的无关,则: ❖ Z为空时,称X Y 为平凡的多值依赖 ❖ Z非空时,称X Y 为非平凡的多值依赖
4NF 5NF
第一范式
第一范式:若关系模式R中的所有属性都是不可
分的基 本数据项,则R∈1NF
❖ 2.第二范式:如果第R(二U,F范)∈式1NF,并且R中的
每个非主属性都完全函数依赖于主码,则
R(U,F)∈2NF
❖ 例: S-L-C(Sno,Sdept,SLOC,Cno,Grade)
❖ 有:Sno P →SLOC,不是2NF。
6.2.1wk.baidu.com关系模式中的码
1.候选码:设K为R (U,F)中的属性或属性组,若K f→U,则K为R候选码。(K为决定R全部属性值的 最小属性组)。
主码:关系R (U,F)中可能有多个候选码,则选其 中一个作为主码。
全码:候选码为整个属性组。
主属性与非主属性:
在R (U,F)中,包含在任一候选码中的属性称为主 属性,不包含在任一候选码中的属性称为非主属 性
9812101
计算机
2公寓
DB
80
9812101
计算机
2公寓
OS
85
9821101 信息 1公寓
C
90
9821101 信息 1公寓
DS
84
9821102 信息 1公寓
OS
78
存在问题
❖ 数据冗余问题 ❖ 数据更新问题 ❖ 数据插入问题 ❖ 数据删除问题
6.2 关系规范化
❖6.2.1 关系模式中的码 ❖6.2.2 范式
第6章 关系数据库规范化理论
• 6.1 函数依赖 • 6.2 关系规范化 • 6.3 关系模式的规范化
6.1 函数依赖
❖ 定义:如果有一个关系模式R(A1,A2,…,An),X 和Y 为{A1,A2,…,An}的子集,那么对于关系R中的任意 一个X值,都只有一个Y 值与之对应,则称X函数 决定Y,或Y函数依赖于X。
❖ 插入异常:当新建一个系时,若还没有招 收学生,则无法插入;
第三范式
❖ 定义:如果R(U,F)∈2NF,并且所有非主属性 都不传递依赖于主码,则R(U,F)∈3NF。
❖ 3NF基本上能消除冗余和更新异常
❖ 对S-L(Sno,Sdept,SLOC) ∵Sno传递→SLOC, ∴不是3NF
分解过程
X pY
• 6.如果X→Y(非平凡函数依赖,并且 Y—/→X)、Y→Z,则称Z传递函数依赖于 X。
示例
❖ 例1:有关系模式:SC (Sno,Sname,Cno,Credit,Grade)
❖ 则函数依赖关系有:
Sno→Sname (Sno, Cno)→ Sname (Sno, Cno)→ Grade
例:SC(SNO,CN示O,例Grade)
候选码:(SNO,CNO),也为主码 主属性:SNO,CNO,非主属性:Grade
例:教师_课程(教师号,课程号,授课学年)
语义:一个教师在一个学年可以讲授多门课程,而 且一门课程在一个学年也可以由多个教师讲授,同 一个学年可开始多门课程。
候选码:(教师号,课程号,授课学年)
传f递
v 例2:有关系模式:S示例
(Sno,Sname,Dept,Dept_master) v 函数依赖关系有:
Sno f Sname
由于:Sno f Dept ,Dept f Dept_master 所以有:Sno 传递 Dept_master
为什么要讨论函数依赖
Sno Sdept SLOC Cno Grade
❖ 2. 如果Y不函数依赖于X,则记作X—/→Y。
❖ 3. 如果X→Y,则称X为决定因子。
❖ 4. 如果X→Y,并且Y→X,则记作X←→Y。
v 5. 如果一X→些Y,术并语且对和于符X的号一(个任续意)真子集X’
都有X’ —/→Y,则称Y完全函数依赖于X,记作:
X f Y
如果X’→Y成立,则称Y部分函数依赖于X,记作:
例:Student(Sno, SName, Sdept, Sage)
Sno→SName, Sno→Sdept, Sno→Sage
例: SC(Sno, Cno, Grade)
(Sno, Cno)→Grade
一些术语和符号
❖ 1. 如果X→Y,但Y不包含于X,则称X→Y是 非平凡的函数依赖。如不作特别说明,我们 总是讨论非平凡函数依赖。
❖ 然后,将依赖于这些主码的属性放置到相应 的表中
S-L(Sno,Sdept, Sloc) C(Cno) S-C(Sno, Cno, Grade)
❖ 最后,去掉只由主码的子集构成的表,最终 分解为:
S-L(Sno,Sdept, Sloc)
S-L(Sno,Sdept, Sloc)存在问题
❖ 数据冗余 :有多少个学生就有多少个重 复的Sdept和SLOC;
❖ 对于不是候选码的每个决定因子,从表中 删去依赖于它的所有属性;
❖ 新建一个表,新表中包含在原表中所有依 赖于该决定因子的属性;
❖ 将决定因子作为新表的主码。
❖ S-L分解后的关系模式为:
S-D(Sno, Sdept) S-L(Sdept, Sloc)
BCNF
❖ 定义:若 R∈1NF,并且对于每一个非平凡函数依 赖X Y,X必含有码,则R∈BCNF。
称这样的表为全码表
6.2.1 关系模式中的码(续)
外码:用于关系表之间建立关联的属性 (组)。
定义:若R(U,F)的属性(组)X (X属于U)是另一个关系S的主码, 则称X为R的外码。
6.2.2 范式
❖ 关系数据库中的关系要满足一 定的要求,满足不同程度要求 的为不不同的范式。 1NF
2NF 3NF BCNF
分解办法
❖ 首先,对于组成主码的属性集合的每一个 子集,用它作为主码构成一个表。
❖ 然后,将依赖于这些主码的属性放置到相 应的表中。
❖ 最后,去掉只由主码的子集构成的表。
❖ 对于S-L-C表,首分先解分示解为例如下形式的三张表:
S-L(Sno,…) C(Cno,…) S-C(Sno, Cno,…)
❖ 3NF与BCNF的关系?
第四范式
1. 多值依赖 ❖ 定义:设R(U)是属性集U上的一个关系模式,X, Y,
Z是U的子集,Z = U-X-Y,若R(U)的任意一个关系, 对于(X, Z)的每个值,存在Y的一组值与其对应, 且Y的这组值仅仅决定于X值而与Z值的无关,则: ❖ Z为空时,称X Y 为平凡的多值依赖 ❖ Z非空时,称X Y 为非平凡的多值依赖
4NF 5NF
第一范式
第一范式:若关系模式R中的所有属性都是不可
分的基 本数据项,则R∈1NF
❖ 2.第二范式:如果第R(二U,F范)∈式1NF,并且R中的
每个非主属性都完全函数依赖于主码,则
R(U,F)∈2NF
❖ 例: S-L-C(Sno,Sdept,SLOC,Cno,Grade)
❖ 有:Sno P →SLOC,不是2NF。
6.2.1wk.baidu.com关系模式中的码
1.候选码:设K为R (U,F)中的属性或属性组,若K f→U,则K为R候选码。(K为决定R全部属性值的 最小属性组)。
主码:关系R (U,F)中可能有多个候选码,则选其 中一个作为主码。
全码:候选码为整个属性组。
主属性与非主属性:
在R (U,F)中,包含在任一候选码中的属性称为主 属性,不包含在任一候选码中的属性称为非主属 性
9812101
计算机
2公寓
DB
80
9812101
计算机
2公寓
OS
85
9821101 信息 1公寓
C
90
9821101 信息 1公寓
DS
84
9821102 信息 1公寓
OS
78
存在问题
❖ 数据冗余问题 ❖ 数据更新问题 ❖ 数据插入问题 ❖ 数据删除问题
6.2 关系规范化
❖6.2.1 关系模式中的码 ❖6.2.2 范式
第6章 关系数据库规范化理论
• 6.1 函数依赖 • 6.2 关系规范化 • 6.3 关系模式的规范化
6.1 函数依赖
❖ 定义:如果有一个关系模式R(A1,A2,…,An),X 和Y 为{A1,A2,…,An}的子集,那么对于关系R中的任意 一个X值,都只有一个Y 值与之对应,则称X函数 决定Y,或Y函数依赖于X。
❖ 插入异常:当新建一个系时,若还没有招 收学生,则无法插入;
第三范式
❖ 定义:如果R(U,F)∈2NF,并且所有非主属性 都不传递依赖于主码,则R(U,F)∈3NF。
❖ 3NF基本上能消除冗余和更新异常
❖ 对S-L(Sno,Sdept,SLOC) ∵Sno传递→SLOC, ∴不是3NF
分解过程
X pY
• 6.如果X→Y(非平凡函数依赖,并且 Y—/→X)、Y→Z,则称Z传递函数依赖于 X。
示例
❖ 例1:有关系模式:SC (Sno,Sname,Cno,Credit,Grade)
❖ 则函数依赖关系有:
Sno→Sname (Sno, Cno)→ Sname (Sno, Cno)→ Grade
例:SC(SNO,CN示O,例Grade)
候选码:(SNO,CNO),也为主码 主属性:SNO,CNO,非主属性:Grade
例:教师_课程(教师号,课程号,授课学年)
语义:一个教师在一个学年可以讲授多门课程,而 且一门课程在一个学年也可以由多个教师讲授,同 一个学年可开始多门课程。
候选码:(教师号,课程号,授课学年)
传f递
v 例2:有关系模式:S示例
(Sno,Sname,Dept,Dept_master) v 函数依赖关系有:
Sno f Sname
由于:Sno f Dept ,Dept f Dept_master 所以有:Sno 传递 Dept_master
为什么要讨论函数依赖
Sno Sdept SLOC Cno Grade
❖ 2. 如果Y不函数依赖于X,则记作X—/→Y。
❖ 3. 如果X→Y,则称X为决定因子。
❖ 4. 如果X→Y,并且Y→X,则记作X←→Y。
v 5. 如果一X→些Y,术并语且对和于符X的号一(个任续意)真子集X’
都有X’ —/→Y,则称Y完全函数依赖于X,记作:
X f Y
如果X’→Y成立,则称Y部分函数依赖于X,记作:
例:Student(Sno, SName, Sdept, Sage)
Sno→SName, Sno→Sdept, Sno→Sage
例: SC(Sno, Cno, Grade)
(Sno, Cno)→Grade
一些术语和符号
❖ 1. 如果X→Y,但Y不包含于X,则称X→Y是 非平凡的函数依赖。如不作特别说明,我们 总是讨论非平凡函数依赖。
❖ 然后,将依赖于这些主码的属性放置到相应 的表中
S-L(Sno,Sdept, Sloc) C(Cno) S-C(Sno, Cno, Grade)
❖ 最后,去掉只由主码的子集构成的表,最终 分解为:
S-L(Sno,Sdept, Sloc)
S-L(Sno,Sdept, Sloc)存在问题
❖ 数据冗余 :有多少个学生就有多少个重 复的Sdept和SLOC;
❖ 对于不是候选码的每个决定因子,从表中 删去依赖于它的所有属性;
❖ 新建一个表,新表中包含在原表中所有依 赖于该决定因子的属性;
❖ 将决定因子作为新表的主码。
❖ S-L分解后的关系模式为:
S-D(Sno, Sdept) S-L(Sdept, Sloc)
BCNF
❖ 定义:若 R∈1NF,并且对于每一个非平凡函数依 赖X Y,X必含有码,则R∈BCNF。
称这样的表为全码表
6.2.1 关系模式中的码(续)
外码:用于关系表之间建立关联的属性 (组)。
定义:若R(U,F)的属性(组)X (X属于U)是另一个关系S的主码, 则称X为R的外码。
6.2.2 范式
❖ 关系数据库中的关系要满足一 定的要求,满足不同程度要求 的为不不同的范式。 1NF
2NF 3NF BCNF
分解办法
❖ 首先,对于组成主码的属性集合的每一个 子集,用它作为主码构成一个表。
❖ 然后,将依赖于这些主码的属性放置到相 应的表中。
❖ 最后,去掉只由主码的子集构成的表。
❖ 对于S-L-C表,首分先解分示解为例如下形式的三张表:
S-L(Sno,…) C(Cno,…) S-C(Sno, Cno,…)