版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章关系模式的规范化设计——关系模式的规范化关系模式的规范化设计所要解决的问题什么是“好”的关系数据模式如何评价一个好的关系数据模式如何设计一个“好”的关系数据模式关系模式的规范化设计主要内容关系模式的设计问题关系模式规范化的基本概念和理论关系模式分解的理论基础和算法关系模型中的基本概念关系模式:对关系的型的描述
R(U,D,Dom,F)R为关系名U为组成该关系的属性集合D为属性组U中属性所来自的域Dom为属性向域的映像的集合F为属性间数据的依赖关系集合关系模式的规范化关系模型中的基本概念关系模式:
R(D1/A1,D2/A2,…,Dn/An)或R(A1,A2,…,An)
A1,A2,…,An为属性名域名及属性向域的映像为属性的类型、长度。
学生(学号,姓名,性别)关系模式的规范化关系模型中的基本概念候选键:关系中能唯一标志一个元组的某一属性组(单一属性)
若有多个候选键,选择其中的一个,作为主键。学生(学号,姓名,性别)关系模式的规范化关系模型中的基本概念主属性:包含在任意候选键中的属性称为主属性。非主属性:不包含在任一候选键中的属性称为非主属性。关系模式的规范化关系模型中的基本概念数据依赖:是一个关系内部属性与属性之间的一种约束关系。是数据内在的性质,是语义的体现。关系模式的规范化
【例】比如某学校需要建立一个信息管理系统,要求该信息管理系统能管理各系学生课程学习的相关信息,具体包括学生信息、所在系信息、学生选修课程的信息等。每个学生有一个学号,并属于一个系每个系只有一名主任学生要选修多个课程每个学生选修每一门课有一个成绩R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)关系模式的设计问题候选键:(学生学号,课程名称)主属性:学生学号,课程名称关系模式的设计问题学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)数据冗余:学生所在系信息的冗余;关系模式的设计问题学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)数据冗余:学生所在系信息的冗余;系主任信息的冗余关系模式的设计问题学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)数据冗余:学生所在系信息的冗余;系主任信息的冗余修改异常:学生更换系;关系模式的设计问题学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)数据冗余:学生所在系信息的冗余;系主任信息的冗余修改异常:学生更换系;系更换主任关系模式的设计问题学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)【思考】
能否插入(2008308023,杨敏,自动化系,null,null)?关系模式的设计问题学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)插入异常:如果学生没有选修课程,则学生信息无法插入关系模式的设计问题学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)【思考】
能否插入(null,null
,数学系,张云,null,null)?关系模式的设计问题学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)插入异常:如果学生没有选修课程,则学生信息无法插入如果新成立一个系,但还没有学生,则系的信息无法插入关系模式的设计问题学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)【思考】
2008309023号学生只选修了数据库一门课,现在把他的成绩取消,删除后果?关系模式的设计问题学生学号学生姓名所在系系主任课程名称成绩20083070012008307001200830700120083070022008307002200830800120083080022008309023陈昊陈昊陈昊崔政崔政冯月黄聪杨敏计算机系计算机系计算机系计算机系计算机系自动化系自动化系自动化系王林王林王林王林王林赵磊赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程数据库9387859584838990R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)删除异常:如果2008309023号学生只选修了数据库一门课,删除选课信息把学生的信息也删除了。关系模式的设计问题学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)存在数据冗余
学生所在系信息的冗余系主任信息的冗余
修改异常
学生更换系系更换主任
插入异常
如果学生没有选修课程,则学生信息无法插入如果新成立一个系,但还没招收学生,则系的信息无法插入删除异常
如果某学生只选修了一门课程,删除该学生的选课元组会把该学生的信息也删除掉关系模式的设计问题
【例】比如某学校需要建立一个信息管理系统,要求该信息管理系统能管理各系学生课程学习的相关信息,具体包括学生信息、所在系信息、学生选修课程的信息等。每个学生有一个学号,并属于一个系每个系只有一名主任学生要选修多个课程每个学生选修每一门课有一个成绩R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)关系模式的设计问题数据依赖:
关系内部属性与属性之间的一种约束关系,它是现实世界事物相互联系的抽象。
数据依赖的类型:函数依赖(FunctionalDependency,FD)多值依赖(MultivaluedDependency,MVD)函数依赖学号20083070022008307002课程名称操作系统计算机网络学号和所在系存在函数依赖学号和课程名称不存在函数依赖【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)函数依赖学号20083070022008308001所在系计算机系自动化系函数依赖
设有关系模式R,其属性集为U,有X
U,Y
U。若对于R的任意一个可能的关系r(R),设t1
r,t2r,若t1[X]=t2[X],则t1[Y]=t2[Y]。称Y函数依赖X,或X函数决定Y,记为X→Y,X称为决定子,也称决定因素。若Y不函数依赖X,记为X
Y。
函数依赖【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)函数依赖存在哪些函数依赖?学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389函数依赖F:
F={学生学号→所在系,所在系→系主任,(学生学号,所在系)→系主任,(学生学号,课程名称)→成绩,……}函数依赖
【例】比如某学校需要建立一个信息管理系统,要求该信息管理系统能管理各系学生课程学习的相关信息,具体包括学生信息、所在系信息、学生选修课程的信息等。每个学生有一个学号,并属于一个系每个系只有一名主任学生要选修多个课程每个学生选修每一门课有一个成绩【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)学生学号→学生学号(学生学号,所在系)→学生学号(学生学号,所在系)→所在系函数依赖学生学号课程名称所在系系主任成绩学生姓名若Y
X,显然X→Y成立,称为平凡函数依赖,否则称为非平凡函数依赖。
平凡的函数依赖:非平凡的函数依赖:函数依赖学生学号→成绩课程名称→成绩函数依赖【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)学生学号课程名称所在系系主任成绩学生姓名学生学号→成绩课程名称→成绩∕∕(学生学号,课程名称)→成绩函数依赖【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)(学生学号,课程名称
)→所在系学生学号课程名称所在系系主任成绩学生姓名函数依赖
设X,Y是关系R属性集,且X≠Y,若X→Y,且不存在X’
X,使X’→Y,则称Y完全依赖于X,记为XY。否则称Y部分依赖于X,记为XY。(学生学号,课程名称
)→成绩学生学号→所在系(学生学号,课程名称
)→所在系所在系
→系主任fpff函数依赖【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)学生学号课程名称所在系系主任成绩学生姓名学生学号→系主任函数依赖【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)学生学号课程名称所在系系主任成绩学生姓名在R(U)中,X
U、Z
U,若存在Y
U,Y
X,Z
Y,使得X→Y,Y→Z,且Y→X不成立,则称Z对X传递函数依赖。函数依赖(学生学号,课程名称
)→(学生学号,学生姓名,所在系,系主任,课程名称,成绩)函数依赖【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)学生学号课程名称所在系系主任成绩学生姓名
若关系R(U,F)中某一属性或属性组K的值可以唯一标识一个元组,而其任意一个真子集无此特性,则称K为候选键(候选码)。函数依赖设K为R(U,F)中的属性或属性组,若KU,则K为R的候选键。函数依赖(学生学号,课程名称)→成绩(学生学号,课程名称)→学生姓名(学生学号,课程名称
)→所在系(学生学号,课程名称
)→系主任【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)学生学号课程名称所在系系主任成绩学生姓名fp传递p范式的概念数据依赖满足一定约束的关系模式称为范式根据约束的程度,范式有多个级别1971年~1972年,E.F.Codd系统地提出了1NF、2NF、3NF的概念,讨论了关系模式的规范化问题。1974年,Codd和Boyce又共同提出了一个新范式,即BCNF。1976年Fagin又提出了4NF。后又有人提出了5NF。范式范式的概念“第几范式”表示关系的某一种级别,可称某一关系模式R为第几范式。将“范式”理解成符合某一级别的关系模式的集合,则R为第几范式就可以写成R∈xNF。5NF
4NF
BCNF
3NF
2NF
1NF范式例如:R(学生学号,学生姓名,所在系,课程名称,成绩)学生学号学生姓名所在系成绩操作系统数据库计算机网络
对于关系模式R,当且仅当R中的每个属性对应的域值都是不可分割的,该关系模式R属于第一范式,即R
1NF。第一范式域值可再分范式关系中的每个元组,对应的每个属性不具有任何子结构。R
1NF范式【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)f(学生学号,课程名称)→成绩(学生学号,课程名称)→所在系(学生学号,课程名称)→学生姓名(学生学号,课程名称)→系主任p传递p学生学号课程名称所在系系主任成绩学生姓名范式【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)R1(学生学号,课程名称,成绩)R2(学生学号,学生姓名,所在系,系主任)
学生学号课程名称成绩学生学号所在系系主任学生姓名范式【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)R1(学生学号,课程名称,成绩)R2(学生学号,学生姓名,所在系,系主任)
学生学号课程名称成绩学生学号所在系系主任学生姓名f(学生学号,课程名称)→成绩(学生学号,课程名称)→所在系(学生学号,课程名称)→学生姓名(学生学号,课程名称)→系主任p传递p范式【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)R1(学生学号,课程名称,成绩)R2(学生学号,学生姓名,所在系,系主任)
学生学号课程名称成绩学生学号所在系系主任学生姓名(学生学号,课程名称)→成绩学生学号→所在系学生学号→学生姓名学生学号→系主任ff传递ff(学生学号,课程名称)→成绩(学生学号,课程名称)→所在系(学生学号,课程名称)→学生姓名(学生学号,课程名称)→系主任p传递p【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)范式学生学号学生姓名所在系系主任课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002陈昊陈昊陈昊崔政崔政冯月黄聪计算机系计算机系计算机系计算机系计算机系自动化系自动化系王林王林王林王林王林赵磊赵磊操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389R1R2学生学号课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389学生学号学生姓名所在系系主任2008307001200830700220083080012008308002陈昊崔政冯月黄聪计算机系计算机系自动化系自动化系王林王林赵磊赵磊【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)存在数据冗余
学生所在系信息的冗余系主任信息的冗余
修改异常
学生更换系系更换主任
插入异常
如果学生没有选修课程,则学生信息无法插入如果新成立一个系,但还没招收学生,则系的信息无法插入删除异常
如果某学生只选修了一门课程,删除该学生的选课元组会把该学生的信息也删除掉关系模式的设计问题数据冗余:
学生所在系信息的冗余;系主任信息的冗余修改异常:
学生更换所在系;系更换系主任范式R1R2学生学号课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389学生学号学生姓名所在系系主任2008307001200830700220083080012008308002陈昊崔政冯月黄聪计算机系计算机系自动化系自动化系王林王林赵磊赵磊插入异常:如果学生没有选修课程,则学生信息无法插入如果新成立一个系,但还没招收学生,则系的信息无法插入范式R1R2学生学号课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389学生学号学生姓名所在系系主任2008307001200830700220083080012008308002陈昊崔政冯月黄聪计算机系计算机系自动化系自动化系王林王林赵磊赵磊范式删除异常:如果某学生只选修了一门课程,删除该学生的选课元组会把该学生的信息也删除掉R1R2学生学号课程名称成绩2008307001200830700120083070012008307002200830700220083080012008308002操作系统计算机网络编译原理操作系统计算机网络计算机网络软件工程93878595848389学生学号学生姓名所在系系主任2008307001200830700220083080012008308002陈昊崔政冯月黄聪计算机系计算机系自动化系自动化系王林王林赵磊赵磊范式【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)R1(学生学号,课程名称,成绩)R2(学生学号,学生姓名,所在系,系主任)
学生学号课程名称成绩学生学号所在系系主任学生姓名f(学生学号,课程名称)→成绩学生学号→所在系学生学号→学生姓名学生学号→系主任f传递ff(学生学号,课程名称)→成绩(学生学号,课程名称)→所在系(学生学号,课程名称)→学生姓名(学生学号,课程名称)→系主任p传递p对于关系模式R,当且仅当R
1NF,且R中每一个非主属性都完全函数依赖候选键时,该关系模式R属于第二范式,即R
2NF。
第二范式范式消除了“非主属性对于候选键的部分函数依赖”,消除了原模式的部分数据冗余,以及由此产生的部分更新异常。结论:满足2NF的关系模式要比满足1NF的关系模式要好。R
2NFR1(学生学号,课程名称,成绩)R1,R22NFR2(学生学号,学生姓名,所在系,系主任)R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)
范式R
2NFR1(学生学号,课程名称,成绩)R1,R22NFR2(学生学号,学生姓名,所在系,系主任)R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)
范式存在的数据冗余系信息的冗余
修改异常
系更换主任
插入异常
如果新成立一个系,但还没招收学生,则系的信息无法插入范式【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)R1(学生学号,课程名称,成绩)R2(学生学号,学生姓名,所在系,系主任)
R3(学生学号,学生姓名,所在系)R4(所在系,系主任)
学生学号学生姓名所在系系主任2008307001200830700220083080012008308002陈昊崔政冯月黄聪计算机系计算机系自动化系自动化系王林王林赵磊赵磊R2所在系系主任计算机系自动化系王林赵磊学生学号学生姓名所在系2008307001200830700220083080012008308002陈昊崔政冯月黄聪计算机系计算机系自动化系自动化系R3R4数据冗余:系主任信息的冗余范式【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)R1(学生学号,课程名称,成绩)R2(学生学号,学生姓名,所在系,系主任)
R3(学生学号,学生姓名,所在系)R4(所在系,系主任)
学生学号学生姓名所在系系主任2008307001200830700220083080012008308002陈昊崔政冯月黄聪计算机系计算机系自动化系自动化系王林王林赵磊赵磊R2所在系系主任计算机系自动化系王林赵磊学生学号学生姓名所在系2008307001200830700220083080012008308002陈昊崔政冯月黄聪计算机系计算机系自动化系自动化系R3R4修改异常:系更换主任范式【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)R1(学生学号,课程名称,成绩)R2(学生学号,学生姓名,所在系,系主任)
R3(学生学号,学生姓名,所在系)R4(所在系,系主任)
学生学号学生姓名所在系系主任2008307001200830700220083080012008308002陈昊崔政冯月黄聪计算机系计算机系自动化系自动化系王林王林赵磊赵磊R2所在系系主任计算机系自动化系王林赵磊学生学号学生姓名所在系2008307001200830700220083080012008308002陈昊崔政冯月黄聪计算机系计算机系自动化系自动化系R3R4插入异常:如果新成立一个系,但还没招收学生,则系的信息无法插入范式【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)R1(学生学号,课程名称,成绩)R2(学生学号,学生姓名,所在系,系主任)
R3(学生学号,学生姓名,所在系)R4(所在系,系主任)
f(学生学号,课程名称)→成绩学生学号→所在系学生学号→学生姓名学生学号→系主任f传递f学生学号所在系系主任学生姓名学生学号所在系学生姓名所在系系主任(学生学号,课程名称)→成绩学生学号→所在系学生学号→学生姓名所在系→系主任ffff
对于关系模式R,当且仅当R
2NF,且R中所有非主属性都不传递依赖于候选键时,该关系模式R属于第三范式,记作R
3NF,即R中每一个非主属性既不部分依赖于候选键,也不传递依赖于候选键。第三范式范式范式【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)R1(学生学号,课程名称,成绩)R2(学生学号,学生姓名,所在系,系主任)
R3(学生学号,学生姓名,所在系)R4(所在系,系主任)
f(学生学号,课程名称)→成绩学生学号→所在系学生学号→学生姓名学生学号→系主任f传递f学生学号所在系系主任学生姓名学生学号所在系学生姓名所在系系主任f(学生学号,课程名称)→成绩学生学号→所在系学生学号→学生姓名所在系→系主任fffR2
3NFR3,R43NF范式【例】R(学生学号,学生姓名,所在系,系主任,课程名称,成绩)R1(学生学号,课程名称,成绩)R2(学生学号,学生姓名,所在系,系主任)
R3(学生学号,学生姓名,所在系)R4(所在系,系主任)
R2
3NFR3,R43NF消除了“非主属性对于候选键的传递函数依赖”,消除了原模式的数据冗余,以及由此产生的更新异常。结论:满足3NF的关系模式要比满足2NF的关系模式要好。3NF是一个可用的关系模式应该满足的最低范式。1NF2NF3NF去除非主属性对于键的部分函数依赖去除非主属性对于键的传递函数依赖R(学生学号,学生姓名,所在系,系主任,课程名称,成绩
)
R1(学生学号,课程名称,成绩)R2(学生学号,学生姓名,所在系,系主任)R1(学生学号,课程名称,成绩)R3(学生学号,学生姓名,所在系)R4(所在系,系主任)范式关系模式的规范化将一个低一级的关系模式转化为若干高一级关系模式的集合,称为关系模式的规范化。范式【例】在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程.假设每个学生可以选修多门课程,每门课程可以由多名学生来选修,每个老师只能讲授一门课程,每门课程可以由多个老师来讲授。某一学生选定了某一门课就确定了一个固定的教师。思考:
存在哪些函数依赖?该关系模式的候选键是什么?有哪些主属性?哪些非主属性?该关系模式最高满足第几范式?范式STJ980019800298003980049800598001980019800298003000100010001000200020003000400030003C语言程序设计C语言程序设计C语言程序设计C语言程序设计C语言程序设计数据结构操作系统数据结构数据结构STJ(S,T,J)范式F={(S,J)→T;T→J:(S,T)→J}候选键:(S,J)或(S,T)STJ
3NF【例】在关系模式STJ(S,T,J)中,假设每个学生可以选修多门课程,每门课程可以由多名学生来选修,每个老师只能讲授一门课程,每门课程可以由多个老师来讲授。某一学生选定了某一门课就确定了一个固定的教师。SJTSTJ(S,J)→TT→J(S,T)→JfpfJ传递依赖于候选键(S,J)J部分依赖于候选键(S,T)范式STJ
3NF没有任何非主属性对候选键的传递依赖或部分依赖。存在主属性对候选键的传递依赖或部分依赖。【例】在关系模式STJ(S,T,J)中,假设每个学生可以选修多门课程,每门课程可以由多名学生来选修,每个老师只能讲授一门课程,每门课程可以由多个老师来讲授。某一学生选定了某一门课就确定了一个固定的教师。范式STJ980019800298003980049800598001980019800298003000100010001000200020003000400030003C语言程序设计C语言程序设计C语言程序设计C语言程序设计C语言程序设计数据结构操作系统数据结构数据结构STJ(S,T,J)范式存在什么问题?
对于关系模式R
1NF,若时X必含有候选键,则R
BCNF。关系模式R,若R中的所有非平凡的、完全的函数依赖的决定因素是关键字,则R
BCNF。BC范式范式ST(S,T)
BCNF
TJ(T,J)
BCNF
F={(S,J)→T;T→J:(S,T)→J}候选键:(S,J)或(S,T)分解STJ(S,T,J)范式【例】在关系模式STJ(S,T,J)中,假设每个学生可以选修多门课程,每门课程可以由多名学生来选修,每个老师只能讲授一门课程,每门课程可以由多个老师来讲授。某一学生选定了某一门课就确定了一个固定的教师。
BC范式的性质R中没有任何属性完全函数依赖于非候选键的任何一组属性。R中所有非主属性对每一个候选键都是完全函数依赖;R中所有主属性对每一个不包含它的候选键也是完全函数依赖;结论:排除了任何属性对候选键的传递依赖与部分依赖,BCNF比3NF好。范式
BC范式一个模式中的所有关系模式都属于BCNF,在函数依赖范畴内,已实现了彻底的分离,已消除了插入和删除的异常。范式【例】学校中某一门课程由多个教员讲授,他们使用同一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。
课程C
教员T
参考书B
----------------------
物理
李勇
普通物理学王军
光学原理
--------------------数学刘勇
数学分析张平
微分方程
高等代数
------------------------计算数学张平数学分析周峰……….范式课程C教员T参考书B物理李勇普通物理学物理李勇光学原理物理王军普通物理学物理王军光学原理数学刘勇数学分析数学刘勇微分方程数学刘勇高等代数数学张平数学分析数学张平微分方程数学张平高等代数计算数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论