第4章范式理论课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第4章范式理论课件.ppt》由会员分享,可在线阅读,更多相关《第4章范式理论课件.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 范式理论目 录本章要点本章要点 数据库规范化问题的提出和主要内容数据库规范化问题的提出和主要内容 函数依赖函数依赖 关系模式的分解关系模式的分解 关系模式的范式关系模式的范式 教学目标教学目标了解数据库规范化问题的产生和规范化的主要内容了解数据库规范化问题的产生和规范化的主要内容 掌握函数依赖的相关概念掌握函数依赖的相关概念 熟悉关系模式的分解熟悉关系模式的分解 掌握关系模式的范式的概念及规范化过程掌握关系模式的范式的概念及规范化过程6.1关系数据库设计中存在的问题关系数据库设计中存在的问题示例:考虑为管理职工的工资信息而设计一个关系模式。问题:麻烦!好麻烦!插入异常插入异常:如果没有
2、职工具有8级工资,则8级工资的工资数额就难以插入。删除异常删除异常:如果仅有职工赵明具有4级工资,如果将赵明删除,则有关4级工资的工资数额信息也随之删除了。数据冗余数据冗余:职工很多,工资级别有限,每一级别的工资数额反复存储多次。更新异常更新异常:如果将5级工资的工资数额调为620,则需要找到每个具有5级工资的职工,逐一修改。6.1关系数据库设计中存在的问题关系数据库设计中存在的问题问题:麻烦!好麻烦!插入异常插入异常:元组插不进去;元组插不进去;插入一个元组却要求插入多个元组。插入一个元组却要求插入多个元组。删除异常删除异常:删除时删掉了其他信息;删除时删掉了其他信息;删除一个元组却删除了多
3、个元组。删除一个元组却删除了多个元组。更新异常更新异常:更新一个元组却要求更新多个元组。更新一个元组却要求更新多个元组。数据冗余数据冗余:同一个数据在系统中多次重复出现。同一个数据在系统中多次重复出现。6.1关系数据库设计中存在的问题关系数据库设计中存在的问题解决之道:分解!再分解!原来数据库设计可以如此简单!职工表 级别表快速热身:它有哪些问题?它有哪些问题?学生关系模式S(学号,姓名,系别,班主任,课程号,成绩)上表(关系模式)存在的缺陷:1、数据重复、冗余。2、新增学生或课程,若未选课,则无法插入记录,因为(学号,课程号)为主键。3、如果有学生退学,则需将相关信息全部删除,导致课程信息可
4、能丢失。快速热身:它有哪些问题?它有哪些问题?学生关系模式S(学号,姓名,系别,班主任,课程号,成绩)6.1关系数据库设计中存在的问题关系数据库设计中存在的问题改进的关系模式6.1关系数据库设计中存在的问题关系数据库设计中存在的问题在数据库中,数据之间存在着密切地联系。在数据库技术中,把数据之间存在的联系称为“数据依赖数据依赖”。在数据库规范化设计中,设计人员地一个职责就是把数据依赖找出来。函数依赖是基本的一种依赖。6.2 函数依赖函数依赖(Functional Dependency)回顾:函数熟悉的概念。Y=f(x):x和Y之间数量上的对应关系。给定x值,Y值与之对应。称x函数决定Y,或Y函
5、数依赖于x。在关系数据库中讨论函数或函数依赖注重的是语义上的关系。如:省=f(城市)Y=f(x)函数依赖:任给R(U),U为属性集,x、y为U的子集,如果对于x的每个值,y有唯一确定的值与之对应,则称x决定y,或y函数依赖于x。记为:xy。例1:关系模式Student(Sno,Sname,Ssex,Sage,Sdept)中,Sno函数决定Sname和Sdept,或Sname和Sdept函数依赖于Sno,记为 Sno-Sname,Sno-Sdept 6.2函数依赖函数依赖注:函数依赖是属性间的一种联系6.2函数依赖函数依赖 建立一个描述学校教务的数据库:学生的学号(Sno)、所在系(Sdept)
6、系主任姓名(Mname)、课程名(Cname)成绩(Grade)单一的关系模式:Student U Sno,Sdept,Mname,Cname,Grade 根据学号可以确定学生的姓名;一个系有若干学生,但一个学生只属于一个系;一个系只有一名主任;一个学生可以选修多门课程,每门课程有若干学生选修;每个学生所学的每门课程都有一个成绩。根据如下描述写出依赖关系:SNoSNameSNoSNameSNoSDeptSNoSDeptSDeptMNameSDeptMName(SNo,CName)ScoreSNo,CName)ScoreF=SNoSName,SNoSDept,SDeptMName,(SNo,CN
7、ame)Score例2:一个学校数据库中的唯一关系模式Student(U,F),其中 U=Sno,Sdept,Mname,Cname,Grade F=Sno-Sdept,Sdept-Mname,(Sno,Cname)-Grade SnoCnameGradeSdeptMname插入异常插入异常不能插入一个没有学生的系删除异常删除异常删除某系的一个学生时(如毕业)会删除系的相关信息数据冗余太大数据冗余太大系主任出现的次数和该系学生选课总数相同Why?某些数据依赖引起的!某些数据依赖引起的!分解为三个关系模式Student(Sno,Sdept,Sno-Sdept);SC(Sno,Cname,Grad
8、e,(Sno,Cname)-Grade);Dept(Sdept,Mname,Sdept-Mname);Mname:系主任完全函数依赖:完全函数依赖:若函数依赖X Y成立,且X是能够推出Y的最小集合,即不存在X的真子集Z,使Z Y成立,则称Y完全函数依赖于X,简称Y完全依赖于X,记做 ,否则称Y部分函数依赖于X,简称Y部分依赖于X,记做例例:(:(SNo,CNameSNo,CName)SNameSNameSNoSNameSNoSName(SNo,CNameSNo,CName)ScoreScore【例例】有一关系模式有一关系模式S(学号,姓名,系名称,出生年月)。学号,姓名,系名称,出生年月)。在
9、在S中存在如下完全函数依赖:中存在如下完全函数依赖:学号学号 系名称,学号系名称,学号 出生年月出生年月 通常记为通常记为 学号学号系名称,学号系名称,学号出生年月出生年月FF若无重名还存在学号若无重名还存在学号姓名函数依赖姓名函数依赖【例例】有一关系模式有一关系模式SC(学号,课程号,学号,课程号,成绩,教师编号)。成绩,教师编号)。在在SC中,(学号,课程号)中,(学号,课程号)成绩成绩 (学号,课程号)(学号,课程号)教师编号教师编号 (相当于(相当于XY)课程号课程号教师编号教师编号 (相当于(相当于XY)F因此(学号,课程号)因此(学号,课程号)教师编号教师编号 Pv传递函数依赖传递
10、函数依赖:若X Y,Y Z,并且 Y 不能推出X,Z不是Y的真子集,则称Z传递依赖于X。例例 关系Std(Sno,Sdept,Mname)中,有Sno Sdept,Sdept Mname,Sno Mname 传递传递q 举例:举例:【例例】关系模式关系模式R(学号,姓名,出生年月,系编号,系负责人)学号,姓名,出生年月,系编号,系负责人)在此关系模式中有如下函数依赖:在此关系模式中有如下函数依赖:学号学号系编号系编号 (相当于(相当于XY)系编号系编号学号学号 (相当于(相当于YX)系编号系编号系负责人系负责人 (相当于(相当于YZ)因此,在因此,在R中存在传递函数依赖学号中存在传递函数依赖学
11、号 系负责人。系负责人。T关系模式关系模式S(S#,SName,SDept,mname,C#,G)主码:(S#,C#)函数依赖:(S#,C#)G S#SName,(S#,C#)SName S#SDept,(S#,C#)SDept SDept mname6.2函数依赖练习函数依赖练习检验:AC?CA?ABD?对于给出具体数据的表格,在判断时要看:当自变量字段取相同值时,对应的因变量的值是否也取相同的值。如果是,则是正确的。ABCDa1b1c1d1a1b2c1d2a2b2c2d2a2b3c2d3a3b3c2d46.2函数依赖练习函数依赖练习找出可能的函数依赖。ABC123423533有一个关于学生
12、选课、教师任课的关系模式:有一个关于学生选课、教师任课的关系模式:R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE)属性分别表示学生学号、姓名、选修课程的课程号、成绩、属性分别表示学生学号、姓名、选修课程的课程号、成绩、课程名、任课教师姓名和年龄等意义。课程名、任课教师姓名和年龄等意义。*如果规定,每个学号只能有一个学生姓名,每个课程号只如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一门课程,那么可写出哪些形式的能决定一门课程,那么可写出哪些形式的FD?S#SNAME C#CNAME(S#,C#)GRADE C#(CNAME,TNAME,TAGE)TNAMET
13、AGE*每个学生每学一门课程,有一个成绩,那么可写出什么形每个学生每学一门课程,有一个成绩,那么可写出什么形式的式的FD?*还写出其他什么形式的还写出其他什么形式的FD?6.2函数依赖练习函数依赖练习6.2函数依赖练习函数依赖练习设关系模式设关系模式R(A,B,C,D),在,在R的关系中,属性值间有这样的关系中,属性值间有这样的联系:的联系:(1)A值与值与B值有一对多的联系,即每个值有一对多的联系,即每个A值有多个值有多个B值值与之联系,而每个与之联系,而每个B值只有一个值只有一个A值与之联系;值与之联系;(2)C值与值与D值之间有一对一联系,即每个值之间有一对一联系,即每个C值只有一个值只
14、有一个D值与之联系,每个值与之联系,每个D值只有一个值只有一个C值与之联系。值与之联系。试根据这些规则写出相应的函数依赖。试根据这些规则写出相应的函数依赖。根据条件根据条件(1),有:,有:BA根据条件根据条件(2),有:,有:CD 和和 DC6.3函数依赖函数依赖候选码候选码:若关系中的某一属性组的值能唯一的标识一个元组,而其任何真子集都不能再标识,则称该属性组为候选码。简单的说候选码就是没有被选为主码的主属性,当一个关系有多个属性可以唯一标示时,就选取一个属性或者属性组为主码,剩下的属性或属性组就称为候选码.主属性主属性:包含在每一个候选码中的属性,称作主属性。工人(工号,身份证号,姓名,
15、性别,部门).显然工号和身份证号都能够唯一标示这个关系,所以都是主属性,我们选取工号为主码,那么身份证号就是候选码,反之,我们选择身份证号为主码,也可以让工号为候选码.包含在任何一个候选键中的属性,叫主属性(包含在任何一个候选键中的属性,叫主属性(Prime Attribute)。)。不包含在任何主键中的属性称为非主属性(不包含在任何主键中的属性称为非主属性(Nonprime Attribute),),或或非键属性(非键属性(Non-key Attribute)。)。主码,简单地说,在一个关系表中主码能够唯一地标识每一个元组。也就是说,元组在主码属性上是不能有重复的。例如,把学生表的学号当主码
16、的话,就不能有两个学号是一样的学生。主码是一个属性或属性主码是一个属性或属性组。组。候选码,一个关系表里只能有一个主码,成为主码的条件是:能够唯一地标识每一个元组。凡是达到这个条件的属性,都是候选码。主码就是从候选码里选出主码就是从候选码里选出来的。来的。主属性,当主码只有一个属性时,那主属性自然是主码了。当主码是一个属性组时,这个属性组包含的属性都是主属性。换一种说法,非主属性就是除开主码以外的属性。外码外码:属性或属性组X不是关系模式R的码(既不是主码也不是候选码),但X是另一个关系模式的码,则称X是R的外部码,也称外码(Foreign key)。如在SC(Sno,Cno,Grade)中,
17、Sno不是码,但Sno是关系模式S(Sno,Sdept,Sage)的码,则Sno是关系模式SC的外部码 主码与外部码提供了一个表示关系间联系的手段。create table 表名(列名 数据类型,列名 数据类型 ,primary key(列名,列名),foreign key(列名,列名)references 表名(列名,列名)主码外码6.3关系规范化关系规范化关系数据库范式理论是数据库设计的一种理论指南和关系数据库范式理论是数据库设计的一种理论指南和基础,其既作为数据库设计优劣的判断依据,也可预基础,其既作为数据库设计优劣的判断依据,也可预测数据库系统可能出现的问题。测数据库系统可能出现的问题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 范式 理论 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内