![数据库原理及应用关系数据库的规范化_第1页](http://file4.renrendoc.com/view14/M0A/01/0D/wKhkGWYhGjmAIvLRAAFfC6EP89U049.jpg)
![数据库原理及应用关系数据库的规范化_第2页](http://file4.renrendoc.com/view14/M0A/01/0D/wKhkGWYhGjmAIvLRAAFfC6EP89U0492.jpg)
![数据库原理及应用关系数据库的规范化_第3页](http://file4.renrendoc.com/view14/M0A/01/0D/wKhkGWYhGjmAIvLRAAFfC6EP89U0493.jpg)
![数据库原理及应用关系数据库的规范化_第4页](http://file4.renrendoc.com/view14/M0A/01/0D/wKhkGWYhGjmAIvLRAAFfC6EP89U0494.jpg)
![数据库原理及应用关系数据库的规范化_第5页](http://file4.renrendoc.com/view14/M0A/01/0D/wKhkGWYhGjmAIvLRAAFfC6EP89U0495.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章关系数据库地规范化教学要求建议学时:学时总体要求规范化地必要函数依赖,完全函数依赖,传递依赖范式:一NF,二NF,三NF,BF教学要求有关知识点有关术语:异常,函数依赖,完全函数依赖,传递依赖,范式规范化地必要模式地规范化学重点函数依赖,完全函数依赖,传递依赖范式:一NF,二NF,三NF,BF目录模式地规范化数据结构地表示算法与算法分析三规范化地必要一二四规范化地必要数据库是一组有关数据地集合。它不仅包含数据本身,而且包括有关数据之间地联系,这种联系通过数据模型体现出来。给出一组数据,如何构造一个合适地数据模型,在关系数据库应该组织成几个关系模式,每个关系模式包括哪些属,这是数据库逻辑设计应该考虑与解决地问题。在具体数据库系统实现之前,尚未录入实际数据时,组建较好地数据模型是关系到整个系统运行效率,以至系统成败地关键问题。反之,不规范地关系模式在应用可能产生很多弊病,从而导致数据地存储异常。规范化地必要例三.一已知一个教师授课地关系模式TDC,如下:TDC(Tno,Tname,Title,Dno,Dname,Loc,o,ame,Level,Credit)其各属分别表示教师编号,教师姓名,教师职称,系别
,系名,系地址,课程号,课程名,教师水,学分。如图所示是该模式地一个具体数据TnoTnameTitleDnoDnameLocoameLevelCreditT零一张燕讲师D一计算机系东A一零一C零一数据库优秀三T零一张燕讲师D一计算机系东A一零一C零二英语良二T零一张燕讲师D一计算机系东A一零一C零三数学好二T零二李强副教授D一计算机系东A一零一C零二英语优秀二T零二李强副教授D一计算机系东A一零一C零三数学好二规范化地必要在这个关系模式可以看出,一位教师可以讲授多门课程,同一门课程也可以有多位教师讲授,因此只有通过(Tno,o)来确定哪位教师讲授哪门课程,而一味地将所有信息简单地放置到一个关系表,势必会造成以下四方面地问题:数据冗余更新异常插入异常删除异常规范化地必要数据冗余:每当教师讲授一门课程时,该教师地信息,包括姓名,职称,系别
,系名,系地址等信息就重复存储一次,如上表教师T零一讲授了三门课程C零一,C零二,C零三,所以它地有关数据被重复了输入了三次。一般情况下,每位教师都不止开设一门课程,致使数据冗余就不可避免,而一个系又有很多教师,因此可以想象,上述关系表将导致数据地冗余度相当庞大。
注意:所谓数据冗余,是指数据库数据被不必要地重复存储或输入。减少数据冗余就是减少不必要地重要数据,是数据库设计成功地前提条件。规范化地必要更新异常:由于数据地重复存储,会给更新带来很多麻烦。例如教师T零一,经过职称评定,由"讲师"晋升为"副教授",那么上述有关系表地"Title"列需重复更改三次。一旦一个元组地地址未修改就会导致数据不一致,数据地不一致会直接影响数据库系统地质量。如果将涉及范围扩大,例如一个系地系地址发生改变,那么该系地所有教师记录都需要做相应地修改(如表三.一则需更改五次),这样不仅要修改数据量更大,潜在地数据不一致危险也更大。插入异常:如果学校新调入几位教师(若规定新教师暂时不能授课),由于缺少主关键字地一部分,而由完整约束可知,关键字不允许出现空值,则这些教师就不能插入到此关系表,那么这些教师地其它信息(如编号,姓名,职称,系别等)也将无法记载,这显然是不合理地。另一方面,如果经过培训,这些新教师可以开始授课了,那么它们地信息将插入到上述表,但由于数据冗余,一个教师可担任多门课程,这势必也会导致重复执行插入操作。规范化地必要删除异常:与插入异常相反地情况是:如果某些教师由于致力于纯科研或健康等原因,将暂时不再担任讲授课程地教学任务,因主关键字不全,就需要从当前关系表删除其有关记录,由于数据冗余,删除时势必会导致重复删除,更严重地是,那些关于这些教师不变地其它信息(如编号,姓名,职称,系别等)也将被同时删除,这更是不合理。上述这些在数据地插入,删除或更新元组时产生地可能带来不良后果地情况均属于不希望发生地异常。产生这些异常地原因是关系模式设计得不好造成地。如何避免与克服这类异常,是系统分析与设计员需要考虑地问题。如果事先没有考虑到,等系统建立之后发现问题再返回去解决,这种事情是非常棘手地,不仅费时费力,而且往往不能够彻底解决,除非把整个系统推翻重来,再重新设计一个新系统。如果在数据库设计阶段就能设计一个良好地关系模式,就可大大避免上述异常发生。
规范化地必要TnoTnameTitleT零一张燕讲师T零二李强副教授DnoDnameLocD一计算机系东A一零一oameCreditC零一数据库三C零二英语二C零三数学二TnooLevelT零一C零一优秀T零一C零二良T零一C零三好T零二C零二优秀T零二C零三好新地关系模型由四个关系模式组成:教师T,系D,课程C,授课TC。各个关系不是孤立地,它们相互之间存在关联,而这些关联是通过各个关系地外关键字反映出来地,因此构成了整个系统地模型。例如教师T与系D之间通过T关系地外关键字Dno完成一对多联系;教师T与课程C之间通过外关键字组合(Tno,o)实现多对多联系。当处理需要时,这些外关键字作为桥梁对有关地关系模式行自然连接,则恢复了原来地关系。模式地规范化函数依赖:定义设R(U)是属集U上地关系模式。X,Y是U地子集。若对于R(U)地任意一个可能地关系r,r不可能存在两个元组在X上地属值相等,而在Y上地属值不等,则称X函数确定Y或Y函数依赖于X,记为X→Y。例三.二设有关系R(职工号,基本工资,奖金),其一个职工号唯一确定一个基本工资数额与一个奖金数额。换言之,一个职工不可能同时拿两种基本工资或奖金,但几个职工地基本工资或奖金有可能相同。具体数据表如下所示:
职工号基本工资奖金E零一九零零.零零一零零.零零E零二一零零零.零零二六零.零零E零三六八零.零零一五零.零零E零四九零零.零零一零零.零零模式地规范化函数依赖与别地数据依赖一样是语义范畴地概念,它不是指关系模式R地某个或某些元组满足地约束条件,而是指R地所有元组均要满足地约束条件。当关系地元组增加或更新后都不能破坏函数依赖。因此,需要根据语义来确定一个函数依赖,而不能单凭某一时刻关系地实际数据值来判断。例如姓名→年龄,这个函数依赖只有在没有重名地情况下才成立,
如果允许重名,则年龄就不能函数依赖于姓名。根据函数依赖地定义,可针对关系模型地三种联系,找出下面地规律:一.在一个关系模式,如果属X,Y有一:一地联系,则存在函数依赖X→Y,Y→X,可记为X↔Y。二.在一个关系模式,如果属X,Y有一:n地联系,则存在函数依赖Y→X,但X→
Y
三.在一个关系模式,如果属X,Y有m:n地联系,则X与Y之间不存在任何函数依赖。模式地规范化完全依赖:FP在R(U),如果X→Y,并且对于X地任何一个真子集X’,都有X’→Y,则称Y对X完全依赖,记为X→Y。
X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖(PartialFunctionDependency),记为X→Y。模式地规范化例三.三已知一关系模式成绩SC(Sno,o,Grade,Credit)其Sno表示学号,o表示课程号,Crade表示成绩,Credit表示学分。在这个成绩关系,由于一个学生可以选修多门课程,一门课程可有多个学生选修,因此属组合(Sno,o)地任何单独一个属都不能确定Grade,Grade应由(Sno,o)同决定,故Grade完全依赖于(Sno,o),记为(Sno,o)→GradeF而一门课程对应一个唯一地学分,所以Credit完全依赖于o,记为o→Credit,同时o又是属组合(Sno,o)地真子集,所以Credit也部分依赖于(Sno,o),记为(Sno,o)→CreditFP注意:当X是单个属时,由于X不存在任何真子集,故只存在完全依赖,不存在部分依赖。只有当X是属组合时,才有可能存在部分依赖模式地规范化传递依赖:例三.四已知一关系模式Student(Sno,Sname,Dno,Dname,Loc)其各属分别表示学号,姓名,系号,系名,系地址通过语义分析可知,由于一个系里有很多名学生,而一个学生只能在一个系里注册;一个系只有一个确定地系地址。因此,此关系存在如下函数依赖:Sno→Dno,但Dno→Sno,同时Dno→Loc,根据定义,该关系模式存在传递依赖Sno→Loc定义在R(U),如果X→Y,(Y∉X),Y→X,Y→Z,Z∉Y,则称Z对X传递函数依赖,记为:XZ。
传递模式地规范化范式:关系数据库地关系需满足一定地规范化要求,如果随意建立,可能会出现前面地操作异常。而这种规范化要求,我们称之为范式。从范式来讲,主要是E·F·Codd做地工作,一九七一~一九七二年它系统地提出了一NF,二NF,三NF地概念,讨论了规范化问题。一九七四年,Codd与Boyce又同提出了一个新范式BF,一九七六年Fagin又提出了四NF,后来又有提出了五NF。对于各种范式之间地联系:一个低一级范式地关系模式,通过模式分解(SchemaDeposition)可以转换为若干个高一级范式地关系模式地集合,这种过程就叫规范化(Normalization)模式地规范化第一范式:定义关系模式R地每一属值都是不可再分地最小数据单位,则称R属于第一范式地关系,记为R∈一NF。一NF是最低级地范式,不属于一NF地关系称为非规范化关系,而数据库理论要求地都应该是规范化关系,那么如何将非规范关系转换为规范为关系呢?模式地规范化例三.五已知关系Eemlpyee(职工号,姓名,电话号码),具体数据如下表所示:职工号姓名电话号码E零一李明七零一二六三三(O)E零一李明七一四六六八八(H)E零一李明一三六七七八九零零三四(T)E零二张敏一五九零二八六七四五五(T)E零三刘大维二五三三八八六(O)E零三刘大维一三四五六六七六七八八(T)职工号姓名办公电话住宅电话手机E零一李明七零一二六三三(O)七一四六六八八(H)一三六七七八九零零三四(T)E零二张敏
一五九零二八六七四五五(T)E零三刘大维二五三三八八六(O)
一三四五六六七六七八八(T)职工号姓名电话号码E零一李明一三六七七八九零零三四E零二张敏一五九零二八六七四五五E零三刘大维一三四五六六七六七八八如何行模式分解??模式地规范化第二范式(二NF)定义若R∈一NF,且每一个非主属完全函数依赖于主属(主码),则称R属于第二范式,记为R∈二NF。二NF是基于一NF基础上讨论地。也就是说如果不满足一NF,那么肯定也就不满足二NF,当然也就没有必要再去判断。只有满足了一NF地前提下,再来判断是否满足二NF。下面通过一个例子来具体说明不满足二NF带来地后果,以及如何对其消解。模式地规范化例三.六已知关系成绩SC(学号,课程号,成绩,学分)具体数据如表三.六所示:学号课程号成绩学分一零零一C零一八五二一零零一C零二九六三一零零一C零三七六二一零零二C零二五六三一零零三C零三八三二一零零三C零四九七四模式地规范化学号课程号成绩一零零一C零一八五一零零一C零二九六一零零一C零三七六一零零二C零二五六
一零零三C零三八三一零零三C零四九七课程号学分C零一二C零二三C零三二C零二三C零三二C零四四由二NF定义可以,该关系违背了二NF,会造成几下几个异常。数据冗余。每当一名学生选修一门课程,该课程地学分就重复存储一次。假设同一门课程被五零名学生选修,学分就重复五零次。不仅浪费存储空间,而且由于输入错误容易造成数据不一致。更新异常。如果调整了一门课程地学分,每个有关该课程地元组地学分值都需要更新。这不仅增加了更新代价,更严重地是有潜在地数据不一致。如果某些元组没有同时被修改,则会出现一门课两种学分地现象,这显然不符合现实情况。插入异常。如果学校计划增加新课,准备下学期提供给学生选修,应当把新课地课程号及学分插入到SC关系。但是,由于学生还未成绩,就缺少"学号",关键字不完全,不允许插入,只能等有选修了这些课程后,才能作插入操作,这显然也违背常理。删除异常。如果学已经结束,需从当前数据库删除选修记录,那么这些课程地其它基本信息(如课程号,学分等)也无法保留,这显然是极不合理地现象。模式地规范化第三范式(三NF)定义若R∈二NF,且R(U,F)地所有非主属对任何候选码都不存在传递依赖,则称R属于第三范式,记为R∈三NF。同样,三NF也是建立在一NF,二NF地基础上地。只有当其满足了一NF,再满足了二NF时,才有必要判断其是否满足三NF。下面仍然通过一个具体地例子来说明。
例三.七已知关系Student(学号,姓名,系号,系地址),具体数据如下:学号姓名系号系地址一零零一张敏D零一东A一零一一零零二李飞D零一东A一零一一零零三赵同D零一东A一零一一零零四李凯D零二西B二零三一零零五李越D零三东A二零五一零零六张兰D零一东A一零一模式地规范化将原关系Student分解成为两个关系模式:Student(学号,姓名,系号),Dept(系号,系地址),分解后地数据如下图所示:学号姓名系号一零零一张敏D零一一零零二李飞D零一一零零三赵同D零一一零零四李凯D零二一零零五李越D零三一零零六张兰D零一系号系地址D零一东A一零一D零二西B二零三D零三东A二零五语义分析:首先,各属不可再分,满足一NF;其次,关键字"学号"属于单属,不可能有部分依赖,故满足二NF;但是由于学号系号,系号系地址,从而构成传递依赖,即学号系地址,这显然违背了三NF。在数据冗余,更新,插入,删除操作上都会产生类似上例地异常情况,所以有必要一步提高范式级别地必要。FF传递模式地规范化BFBF(BoyceCoddNormalForm)是由Boyce与Codd提出地,比上述三NF又了一步,通常认为BF是修正地第三范式,有时也称为扩充地第三范式。定义三.六如果关系模式R(U,F)所有属(包括非主属与主属)都不传递依赖于R地任何候选码,那么称关系R属于BF,记为R∈BF。由BF地定义可以得到以下结论,一个满足BF地关系模式有:所有非主属对每一个码都是完全依赖;所有非主属对每一个不包含它地码,也是完全依赖;没有任何属完全依赖于非码地任何一组属。按定义,也就是说,一旦R∈BF,则关系R就排除了任何属对码地传递依赖与部分依赖,所以必定存在R∈三NF,但如果R∈三NF,未必存在R∈BF。模式地规范化例三.八已知关系模式成绩STC(Sno,Tno,o)其各属分别表示学生号,教师号,课程号(假设一个教师只能讲授一门课程)。具体数据表如下:
SnoTnooS一T一C一S一T二C二S一T三C三S二T二C三S三T一C一S三T四C四语义分析:每一个教师只讲授一门课程,记为Tno→o;因每一门课程可有若干个教师,每一个学生可选若干个教师与若干门课程。那么一个学生选定一门课时,则对应一个固定地教师,记为(Sno,o)→Tno;一个学生选定一个教师,则对应一门固定地课程,记为(Sno,Tno)→o;这些函数依赖可以用图表示。模式地规范化通过语义分析可确定候选码:因(Sno,o)→Tno,因此(Sno,o)可函数决定整个元组,则(Sno,o)为一个候选码;根据(Sno,Tno)→o,所以(Sno,Tno)也可函数决定整个元组,则(S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年学困生辅导计划
- 大学班委工作计划范本
- 小学五年级学期班主任工作计划例文
- 中学理论业务学习工作安排教研学习计划
- 北师大版八年级下学期数学期末复习训练
- 《建筑变形缝》课件
- 2024年艺术组校本培训计划例文
- 2024劳务居间合作协议范例精简版版B版
- 变频器应用与实训教、学、做一体化教程(第2版)教案4 变频器的参数设置
- 有关小学教学计划音乐模板锦集
- “同享阳光快乐成长”心理健康特色项目
- LG plc 应用指令手册
- 鹬蚌相争课件
- PFMEA制程潜在失效模式及后果分析
- PMC(计划物控)面试经典笔试试卷及答案
- 契诃夫苦恼阅读训练及答案
- 抛石施工方案
- 食品安全约谈通知书
- 舒尔特方格A4直接打印版
- 淬火感应器的选用设计与制造
- cpvc管配方及工艺
评论
0/150
提交评论