数据库系统基础讲义第15讲关系模式设计之规范化形式
- 格式:pdf
- 大小:779.75 KB
- 文档页数:31
关系数据库设计目录第1章简介 (1)第2章函数依赖 (1)1 函数依赖的定义 (1)2 关系的键码 (2)3 超键码 (3)4 函数依赖规则 (3)2 平凡依赖规则 (3)3 传递规则 (4)第3章模式设计 (4)1 问题的提出 (4)2 问题的根源 (5)1 完全依赖和部分依赖 (5)2 传递依赖 (6)3 解决的途径 (7)2 第2范式(2NF ) (7)3 第3范式(3NF ) (8)4 BC范式(BCNF ) (8)4 分解的原则 (9)5 分解的方法 (12)1 模式分解的两个原则 (12)2 模式分解的3种方法 (13)3 把关系模式分解成BC 范式的方法总结 . ......................................................146 关系模式规范化小结 (15)第4章多值依赖 (16)1 属性独立性带来的冗余 (16)2 多值依赖的定义 (17)3 第4范式 (18)4 分解成第4范式 (18)第5章总结 (19)第1章简介关系数据库是由一组关系组成,所以关系数据库的设计归根到底是如何构造关系,即如何把具体的客观事物划分为几个关系,而每个关系又有哪些属性组成。
在我们构造关系时,经常会发现数据冗余和更新异常等现象,这是由于关系中个属性之间的相互依赖性和独立性造成的。
关系模型有严格的数学理论基础,并形成了关系数据库的规范化理论,这为我们设计出合理的数据库提供了有利的工具。
第2章函数依赖1 函数依赖的定义为了便于了解函数依赖(functional dependency)的概念,先看一个具体的关系实例。
例考虑学生关系Student ,该关系中涉及的属性包括学生的学号(Sno )、姓名(Sname )、所在系(Sdept )、系主任姓名(Mname )、课程名(Cname )和成绩(Grade )。
学生关系Student 的实例如表1所示。
表1 学生关系Student 实例在这个实例中,我们可以看到属性之间存在某些内在的联系由于一个学号值对应一个学生,一个学生只在一个系,因而当“学号”确定。
数据库设计和规范化教程第一章:数据库设计介绍在现代信息技术时代,数据库是组织、管理和存储数据的重要组件。
数据库设计的目标是为了实现高效、可靠和安全的数据存储和访问。
本章将介绍数据库设计的基本概念和原则,包括数据模型、关系数据库和实体-关系图等内容。
第二章:实体关系图设计实体关系图(ER图)是数据库设计的重要工具。
本章将介绍如何使用ER图来表示实体、属性、关系和约束。
涵盖了ER图的基本符号、关系类型、基本操作和规范化过程等内容。
第三章:规范化理论规范化是数据库设计的关键步骤,它可以帮助我们消除冗余数据、提高数据存储效率并确保数据的一致性。
本章将详细介绍规范化的理论,包括函数依赖、范式和关系模式等内容。
第四章:第一范式第一范式是数据库规范化的最基本要求。
本章将解释第一范式的概念和规则,并介绍如何将一个非规范化的数据库设计转化为第一范式。
第五章:第二范式和第三范式在第四章的基础上,本章将介绍第二范式和第三范式的概念和规则。
通过进一步细化数据结构,我们可以提高数据库的性能和可维护性。
第六章:其他范式除了第一范式、第二范式和第三范式,数据库规范化还有其他范式,如BCNF和第四范式等。
本章将对这些范式进行讲解,并介绍何时应该使用它们。
第七章:数据类型和约束在数据库中,数据类型和约束能够帮助我们定义数据的格式和范围。
本章将介绍常见的数据类型和约束,并讨论如何选择和使用它们。
第八章:索引和性能调优索引是加快数据库查询速度的重要手段之一。
本章将介绍索引的原理和使用方法,并讨论如何进行性能调优以提高数据库的访问效率。
第九章:数据库安全和备份数据库的安全性和备份是保护数据不被恶意攻击和意外损坏的重要措施。
本章将介绍数据库安全的基本原则和技术,并讨论如何进行有效的数据备份和恢复。
第十章:数据库设计的最佳实践本章将总结数据库设计的一些最佳实践,包括合理命名、文档化、版本控制和团队协作等方面。
最佳实践的遵循可以提高数据库的可维护性和可扩展性。
数据库系统之三--数据建模与数据库设计课程1:基本知识与关系模型课程2:数据库语言-SQL课程3:数据建模与数据库设计课程4:数据库管理系统实现技术数据库系统第15讲关系模式设计之规范形式Research Center on I ntelligentC omputing for E nterprises & S ervices,H arbin I nstitute of T echnology战德臣哈尔滨工业大学教授.博士生导师黑龙江省教学名师教育部大学计算机课程教学指导委员会委员战德臣教授数据库的规范性设计需要分析数据库Table中的属性在取值方面有什么依存关系?数据库设计过程中应遵循什么样的原则数据库设计理论❑数据依赖理论❑关系范式理论❑模式分解理论BCNF 3NF 2NF 1NF 4NF 5NF 函数依赖部分函数依赖/完全函数依赖传递函数依赖多值依赖联结依赖如何避免数据库的一致性问题—数据库的规范性设计无损连接分解保持依赖分解战德臣教授基本内容1. 关系的第1NF和第2NF2. 关系的第3NF和Boyce-Codd NF3. 多值依赖及其公理定理4. 关系的第4NF重点与难点●一组概念:1NF, 2NF, 3NF, BCNF, 4NF;多值依赖●熟练应用数据库设计的规范化形式,判断数据库设计的正确性及可能存在的问题关系的第1范式和第2范式Research Center on I ntelligentC omputing for E nterprises & S ervices,H arbin I nstitute of T echnology战德臣哈尔滨工业大学教授.博士生导师黑龙江省教学名师教育部大学计算机课程教学指导委员会委员战德臣教授[Definition]1NF若关系模式R(U)中关系的每个分量都是不可分的数据项(值、原子),则称R(U)属于第一范式,记为:R(U) 1NF。
示例:Star( name, address (street, city))Star不属于1NF, 因为属性address仍包含了street和city两个属性,其分量不是原子。
不符合1NF 符合1NF(1)关系的1NF多值属性复合属性1NF 要求关系中不能有复合属性、多值属性及其组合战德臣教授不符合1NF的处理将非1NF转换为1NF情况行对象列对象结构对象聚集对象示例:Star( name, address (street, city))Star( name, address) 或者Star(name, street, city )将复合属性处理为简单属性;将多值属性与关键字单独组成一新的关系引入新的数据模型处理:Object-Oriented Data Model(1)关系的1NF战德臣教授[Definition]2NF若R(U)∈1NF 且U中的每一非主属性完全函数依赖于候选键,则称R(U)属于第二范式,记为:R(U)∈2NF。
示例:R(S#, SN, SD, CN, G)其中,S#:学号, SN:姓名, SD:班级, CN:课程, G:成绩。
函数依赖:S#→SN, S#→SD, {S#, CN}→G候选键:{S#,CN} ,非主属性:SN和SD。
因为:{S#, CN} {SN、SD} ,所以R不属于2NF。
将其分解为R 1(S#, SN, SD), R 2(S#, CN, G), 则R 1∈2NF,R 2∈2NF。
p第二范式消除了非主属性对候选键的部分依赖。
(2)关系的2NF战德臣教授课后思考:举出一些满足第2范式的实例和不满足第2范式的实例练习:下列模式是否满足第2范式? 怎样使其满足第2范式?●学生(学号, 姓名, 班级, 课号, 课程名, 成绩, 教师, 教师职务)☐候选键:{学号, 课号} U ; 非主属性:姓名、课程名☐部分依赖:{学号, 课号} 课程名;{学号, 课号} 姓名●员工(员工码, 姓名, 出生日期, 联系电话,最后学历, 毕业学校, 培训日期, 培训内容)☐候选键:{员工码, 培训日期} U ;非主属性:姓名,出生日期☐部分依赖:{员工码, 培训日期} { 姓名, 出生日期};●图书(书号, 书名, 出版日期, 出版社, 书架号, 房间号)☐候选键:书号U ; 非主属性:候选键外其他属性☐无部分依赖:书号每一个属性;fpp p f f f (2)关系的2NF关系的第3范式和Boyce-Codd 范式Research Center on I ntelligentC omputing for E nterprises & S ervices,H arbin I nstitute of T echnology 战德臣哈尔滨工业大学教授.博士生导师黑龙江省教学名师教育部大学计算机课程教学指导委员会委员战德臣教授[Definition]3NF若R(U,F)∈2NF 且R中不存在这样的情况:候选键X,属性组Y ⊆U和非主属性A, 且A ∉X, A ∉Y , Y ⊄X, Y X,使得X →Y,Y →A成立。
满足以上条件则称R(U)属于第三范式,记为:R(U)∈3NF。
第3范式消除了非主属性对侯选键的传递依赖示例:Store(Sid,Pid,Did,Mgr)其中,Sid:商店, Pid:商品, Did:经营部,Mgr:经理。
函数依赖:{Sid, Pid} →Did,{Sid, Did}→Mgr候选键:{Sid,Pid} ,非主属性:Mgr。
因为:{Sid, Pid}→Did, {Sid, Did}→Mgr ,所以R不属于3NF。
将其分解为R 1(Sid,Pid,Did),R 2(Sid,Did,Mgr),则R 1∈3NF,R 2∈3NF。
(1)关系的3NF战德臣教授练习:下列模式是否满足第3范式? 怎样使其满足第3范式?●学生(学号,系号,系主任)☐候选键:学号U ; 非主属性:系主任☐传递依赖:学号→系号,系号→系主任☐无部分依赖所以:满足第2NF但不满足第3NF.●员工(员工码,姓名,部门,部门经理)☐候选键:员工码U ; 非主属性:部门经理☐传递依赖:员工码→部门,部门→部门经理☐无部分依赖所以:满足第2NF但不满足第3NF.关系模式设计如满足第3范式,则一定能满足第2范式;反之则不然。
f f 课后思考:举出一些满足第3范式和不满足第3范式但满足第2范式的实例(1)关系的3NF(1)关系的3NF战德臣教授关系模式分解成3NF示例:R(A,B,C,D,E, F, G)函数依赖集合{ A→B, A→C, C→D, C→E, E→FG }候选键:A; 有传递依赖,R不满足3NF。
分解规则:将每一个函数依赖单独组成一个关系ρ={ R1(A, B), R2(A, C), R3(C, D) , R4(C, E) , R5(E, F, G) }可以看出:每一个模式都属于3NF也可以合并一些关系:ρ={ R12(A, B, C), R34(C, D, E) , R5(E, F, G) }战德臣教授[Definition]BCNF若R(U,F)∈1NF, 若对于任何X →Y ∈F (或X →A ∈F), 当Y ⊄X (或A ∉X)时,X必含有候选键,则称R(U)属于Boyce-Codd范式,记为:R(U)∈BCNF。
示例:邮编(城市, 街道, 邮政编码)函数依赖:{ 城市,街道} →邮政编码; 邮政编码→城市邮政编码→城市. 候选键:{ 城市,街道} U因不含候选键:邮政编码 城市;所以不满足BCNF因无传递依赖,所以满足第3范式;示例:选课(学号, 课程号, 教师编号)假设规定每位教师只开一门课,则有: { 学号,课程号}→教师编号; 教师编号→课程号. 显然:该模式满足第3范式但不满足Boyce-Codd范式。
f (2)关系的BCNF(2)关系的BCNF战德臣教授[定理]若R(U,F) ∈BCNF, 则R(U,F)∈3NF。
证明:用反证法证明,设R(U,F) ∈BCNF,但R(U,F)∉3NF,依据3NF定义,则必有一传递依赖存在:设该传递依赖为X→Y,Y→A, 其中X候选键,A∉X, A∉Y, Y X, 显然X⊄Y,因A∉Y, 则Y→A将违反BCNF的定义(任一函数依赖都包含候选键,而Y不是候选键)。
故定理得证。
证毕。
有传递依赖的或者说不满足3NF的,也一定不满足BCNF课后思考:举出一些满足BCNF和不满足BCNF但满足第3范式的实例(2)关系的BCNF战德臣教授关系模式分解成BCNF示例:R(A,B,C,D,E, F, G)函数依赖集合{ A→B, A→C, C→D, C→E, E→FG }候选键:A; 有不依赖于候选键的其他函数依赖,R不满足BCNF。
分解规则:将左侧不含候选键的函数依赖单独组成一个关系, 将包含候选键的组成一关系ρ={ R1(C, D), R2(C, E), R3(E, F, G) , R4(A, B, C) }可以看出:R1 ∈BCNF; R2 ∈BCNF; R3 ∈BCNF; R4 ∈BCNF;也可以将R1和R2合并:ρ={ R12(C, D, E), R3(E, F, G) , R4(A, B, C) }多值依赖Research Center on I ntelligentC omputing for E nterprises & S ervices,H arbin I nstitute of T echnology战德臣哈尔滨工业大学教授.博士生导师黑龙江省教学名师教育部大学计算机课程教学指导委员会委员(1)多值依赖的定义战德臣教授[Definition]多值依赖对R(U), 设X, Y⊆U, 若对于R(U)的任一关系r, 若元组t∈r, s∈r, t[X] =s[X], 则必有u∈r, v∈r使得:(1) u[X]=v[X]=t[X]=s[X](2) u[Y]=t[Y]且u[U-X-Y] = s[U-X-Y](3) v[Y]=s[Y]且v[U-X-Y] = t[U-X-Y]均成立,则称Y多值依赖于X, 或说X多值决定Y, 记作X→→Y。
(2)多值依赖的特性战德臣教授多值依赖的特性1)直观地,对于X给定值,Y有一组值与之对应(0或n个)且这组Y值不以任何方式与U-X-Y中属性值相联系,有X→→Y。
2)若交换t, s 的Y值而得到的新元组仍在r中,则X→→Y。
3)X, Y不必不相交,u,v可以与t,s相同。
4)函数依赖是多值依赖的特例。
5)令Z=U-X-Y,有X→→Z, 若Z=φ, 则必有X→→Y。
示例:R = { 课程名C, 教师名T, 上课时间H, 教室R, 学生名S,成绩G},则有:C →→HR, T→→HR,但不存在C →→H及C →→R。