数据库系统原理DatabaseSystemPrincipl.ppt
《数据库系统原理DatabaseSystemPrincipl.ppt》由会员分享,可在线阅读,更多相关《数据库系统原理DatabaseSystemPrincipl.ppt(83页珍藏版)》请在三一办公上搜索。
1、数据库系统原理Database System Principles,四川大学计算机学院段 磊2011.9,第六章 关系数据库理论,意义 提供分析和判断数据库模式好坏的准则 指导设计好的数据库模式 难易度 本章是本书最难的部分之一 对于应用设计十分有用,2023/10/14,数据库系统概论-第6章,3,本章目录,6.1 问题的提出6.2 规范化6.3 数据依赖的公理系统6.4 模式的分解,2023/10/14,数据库系统概论-第6章,4,6.1 问题的提出什么是不好的数据库设计,我们目前为止掌握的知识尚无法解决大量的具体设计问题,即关系模式该如何选择。应用数据库应该由多少个表组成?每个表有哪些字
2、段?本章从理论上解决关系数据库的逻辑设计问题。,2023/10/14,数据库系统概论-第6章,5,关系模式,一个关系模式应当是一个五元组。R(U,D,DOM,F)F是本章开始引入的数据依赖集。由于D和DOM对模式设计关系不大,因此我们在本章中把关系模式看作是一个三元组:R 当且仅当U上的一个关系r满足F时,r称为关系模式R的一个关系。关系,作为一张二维表,我们对它有一个最起码的要求:每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。,2023/10/14,数据库系统概论-第6章,6,数据依赖,我们的任务是研究模式设计,研究设计一个“好”的(没有“毛病”的)关系模
3、式的办法。数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。现在人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖(Functional Dependency,FD)和多值依赖(Multivalued Dependency,MVD)。,2023/10/14,数据库系统概论-第6章,7,函数依赖,函数依赖极为普遍地存在例如,描述学生的关系,可以有学号(SNO),姓名(SNAME),系名(SDEPT)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习。因而当“学号”值确定之后,姓名和该生所在系
4、的值也就被唯一地确定了。上述值的确定就象数学函数:自变量x确定之后,相应的函数值f(x)也就唯一地确定。我们说SNO函数决定SNAME和SDEPT,或者说SNAME,SDEPT函数依赖于SNO,记为:SNOSNAME,SNOSDEPT。,2023/10/14,数据库系统概论-第6章,8,例:学生选课模型的关系模式,例如,前面介绍的学生选课模型,可以用一个关系模式表示:SC(Sno,Sname,Sage,Sgendar,Sdept,Cno,Cname,Grade)一个可能的关系为:S1 赵一 18 男 CS 1 C语言 80S1 赵一 18 男 CS 2 数据库原理 82S2 钱二 19 男 C
5、S 1 C语言 80可以看出,该模式存在的主要问题是冗余。,2023/10/14,数据库系统概论-第6章,9,冗余带来的问题,冗余是不可避免的。在一定程度内也是合理的。但是,过度的冗余则会给数据库带来三类大的问题:插入异常(学生不选课,其基本信息就无法插入)删除异常(删除学生选课信息,其基本信息也被删除)修改复杂(修改某学生的基本信息,要随选课多次被修改),2023/10/14,数据库系统概论-第6章,10,解决冗余的方法,解决的方法一个大关系分解为若干个小关系。感性经验:多用小关系,少用字段。如前面的SC大关系分解为第三章的 Student,SC和Course三个小关系,即可消除三类异常。,
6、2023/10/14,数据库系统概论-第6章,11,问题的引出,为什么小关系比大关系好呢?现在我们要讨论的就是这个问题。从上面的分解观察到:如果在一个关系模式内,函数依赖形式上如果只有:码 非主属性 的形式,冗余就较小,三类异常就没有了。,2023/10/14,数据库系统概论-第6章,12,本章目录,6.1 问题的提出6.2 规范化6.3 数据依赖的公理系统6.4 模式的分解,2023/10/14,数据库系统概论-第6章,13,6.2 规范化,目的将具有不合适性质的关系转换为更合适的形式。要求掌握函数依赖的定义及判定;掌握1NF到BCNF的定义及判定;了解多值依赖,理解4NF的定义。,2023
7、/10/14,数据库系统概论-第6章,14,6.2.1 函数依赖,(注意:现在还不能用到码的概念。)定义6.1 设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R的任何一个可能的关系r,r中不可能存在两个元组在X属性值上相等而在Y属性值上不等,则称X函数确定Y或Y函数依赖于X,记作:XY。,2023/10/14,数据库系统概论-第6章,15,6.2.1 函数依赖,XY,且YX,则称XY是非平凡的函数依赖。若不特别声明,我们总是讨论非平凡的函数依赖。XY,但YX 则称XY是平凡的函数依赖。理解为:整体一致,部分一致,没有特殊意义(过于“平凡”)。,2023/10/14,数据库系统概论-
8、第6章,16,6.2.1 函数依赖,若XY,则X叫做决定因素(Determinant)。若XY,YX,则记作XY。在这种情况下,X和Y在R(U)中地位相同。若Y不函数依赖于X,则记作X Y。,2023/10/14,数据库系统概论-第6章,17,6.2.1 函数依赖,定义6.2(完全函数依赖和部分函数依赖的定义)在R(U)中如果XY,并且对X的任何一个真子集X,都有XY,则称Y对X完全函数依赖,记作:X Y若X Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:X Y,F,P,2023/10/14,数据库系统概论-第6章,18,6.2.1 函数依赖,定义6.3(传递函数依赖)在R(U)中
9、,如果XY,(YX),YX,YZ,则称Z对X传递函数依赖。记作:X Z,传递,2023/10/14,数据库系统概论-第6章,19,6.2.2 码,定义6.4 设K为R中的属性或属性组,若KU,则K为R的候选码(Candidate Key)。若候选码多于一个,则选定其中一个作为主码(Primary Key)。主属性(Prime attribute):包含在任何候选码中的属性。非主属性(Nonprime attribute):不包含在任何候选码中的属性。也称非码属性(Non-key attribute).,F,2023/10/14,数据库系统概论-第6章,20,6.2.2 码,定义6.5(外码的定
10、义)关系模式R中的属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,简称外码。,2023/10/14,数据库系统概论-第6章,21,6.2.3 范式,满足最低要求的关系,叫第一范式,简称1NF。关系表的每一分量是不可分的数据项1NF 不允许表中出现嵌套或复合的属性 5NF 4NF BCNF 3NF 2NF 1NF,2023/10/14,数据库系统概论-第6章,22,6.2.4 2NF,定义6.6 若R1NF,对R的每一个非平凡的函数依赖XY,要么Y是主属性,要么X不是任何码的真子集,则R2NF。2NF 在 1NF基础上消除了非主属性对码的部分函数依赖。,2023/10/1
11、4,数据库系统概论-第6章,23,6.2.4 2NF,例:前面的大表SC不是2NF的关系模式。例4:关系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade)存在函数依赖Sno SdeptSdept Sloc(Sno,Cno)Grade唯一候选码(Sno,Cno)。则SnoSdept是非主属性对码的部分函数依赖。,2023/10/14,数据库系统概论-第6章,24,6.2.4 2NF,如果一个关系模式不是2NF的,一定存在过度冗余,带来3类异常。解决方法:分解为多个小表。如S-L-C分解为S-L(Sno,Sdept,Sloc),SC(Sno,Cno,Grade)2NF仅仅具有历史意
12、义。,2023/10/14,数据库系统概论-第6章,25,6.2.5 3NF,定义6.7 若R 1NF,对R中的每一个非平凡的函数依赖XY,要么Y是主属性,要么X中含有码,则R 3NF。,2023/10/14,数据库系统概论-第6章,26,6.2.5 3NF,3NF与2NF相比,条件更强。因为X中含有码,则X不会是任何码的真子集;而2NF定义中,X不是任何码的真子集,还可能是非主属性组。即3NF在2NF的基础上消除了非主属性对码的传递函数依赖。,2023/10/14,数据库系统概论-第6章,27,6.2.5 3NF,判断3NF例子S-L(Sno,Sdept,Sloc)唯一候选码Sno函数依赖S
13、no Sdept,Sdept Sloc没有非主属性对码的部分函数依赖,满足2NF。存在非主属性对非主属性的函数依赖,不满足3NF。,非主属性,非主属性,2023/10/14,数据库系统概论-第6章,28,6.2.5 3NF,满足2NF,不满足3NF,仍有过度冗余及其带来的3类异常。,2023/10/14,数据库系统概论-第6章,29,6.2.5 3NF,解决方法,分解成小关系S-D(Sno,Sdept)D-L(Sdept,Sloc),2023/10/14,数据库系统概论-第6章,30,6.2.6 BCNF,由Boyce和Codd共同提出,属于修正的3NF。定义6.8 若R1NF,对R中的每一个
14、非平凡的函数依赖XY,X中均含有码,则RBCNF。,2023/10/14,数据库系统概论-第6章,31,6.2.6 BCNF,BCNF与3NF相比,条件更强。不允许主属性对码的部分和传递函数依赖。到BCNF为止,完全消除了由于函数依赖带来的过度冗余及相应的三类异常。,2023/10/14,数据库系统概论-第6章,32,6.2.6 BCNF,例7(BCNF的例子)关系模式SPJ(学生,课程,名次)每个学生选每门课程有一定名次每门课程中每一名次只有一个学生,2023/10/14,数据库系统概论-第6章,33,6.2.6 BCNF,例7(BCNF的例子)关系模式SPJ(学生,课程,名次)每个学生选每
15、门课程有一定名次每门课程中每一名次只有一个学生,(学生,课程)-名次,(课程,名次)-学生,2023/10/14,数据库系统概论-第6章,34,6.2.6 BCNF,例7(BCNF的例子)关系模式SPJ(学生,课程,名次)每个学生选每门课程有一定名次每门课程中每一名次只有一个学生,(学生,课程)-名次,(课程,名次)-学生,候选码,2023/10/14,数据库系统概论-第6章,35,6.2.6 BCNF,例8(是3NF,但不是BCNF的例子)关系模式STJ(学生,教师,课程)每一教师只教一门课一个学生选定某门课程,就对应一个固定的教师,2023/10/14,数据库系统概论-第6章,36,6.2
16、.6 BCNF,例8(是3NF,但不是BCNF的例子)关系模式STJ(学生,教师,名次)每一教师只教一门课一个学生选定某门课程,就对应一个固定的教师,教师-课程,(学生,课程)-教师,2023/10/14,数据库系统概论-第6章,37,6.2.6 BCNF,例8(是3NF,但不是BCNF的例子)关系模式STJ(学生,教师,课程)每一教师只教一门课一个学生选定某门课程,就对应一个固定的教师,教师-课程,(学生,课程)-教师,候选码,教师,学生,2023/10/14,数据库系统概论-第6章,38,6.2.6 BCNF,例8存在的过度冗余,“每个教师上一门课”随选课学生的增加而被重复存储,2023/
17、10/14,数据库系统概论-第6章,39,6.2.6 BCNF,解决方法还是分解分解为两个小关系模式(都是BCNF的)ST(学生,教师)TJ(教师,课程)或SJ(学生,课程)TJ(教师,课程),2023/10/14,数据库系统概论-第6章,40,6.2.6 BCNF,解决方法还是分解分解为两个小关系模式(都是BCNF的)ST(学生,教师)TJ(教师,课程)或SJ(学生,课程)TJ(教师,课程),两种分解都损失了:“一个学生选定某门课程,就对应一个固定的教师”语义,2023/10/14,数据库系统概论-第6章,41,6.2.6 BCNF,解决方法还是分解分解为两个小关系模式(都是BCNF的)ST
18、(学生,教师)TJ(教师,课程)或SJ(学生,课程)TJ(教师,课程),两种分解都损失了:“一个学生选定某门课程,就对应一个固定的教师”语义,函数依赖“(学生,课程)-教师”在分解后没有保持!,2023/10/14,数据库系统概论-第6章,42,6.2.6 BCNF,事实上,关系模式即使到了BCNF,还可能存在由于非函数依赖带来的冗余及三类异常。这些数据依赖有多值依赖和连接依赖。我们只简单要求多值依赖。在多个实体间联系为1对多联系时可能出现多值依赖带来的问题。,2023/10/14,数据库系统概论-第6章,43,6.2.7 多值依赖,多值依赖定义:设有关系模式R(U),X,Y,Z是U的非空子集
19、。对于R的任一关系r,给定一对(x,z)值,就有一组Y的值与之对应,这组值仅仅决定于x值而与z值无关,则称“Y多值依赖于X”或“X多值决定Y”。记作XY。或记忆为:设有关系模式R(U),X,Y,Z是U的非空子集。对R(U)的任一关系r,任意两元组s和t,如果sX=tX,则交换s和t的Y值所得两个新元组必在r中。,2023/10/14,数据库系统概论-第6章,44,6.2.7 多值依赖,翻译情况 A B C(姓名,东方语言,西方语言)王 红 日语 法语 王 红 汉语 英语 王 红 日语 英语 王 红 汉语 法语是BCNF,其中 只有ABC 才是关键字但有冗余,又有删除异常例如删除(王 红 汉语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 DatabaseSystemPrincipl

链接地址:https://www.31ppt.com/p-6296544.html