数据库规范化 课件.ppt_第1页
数据库规范化 课件.ppt_第2页
数据库规范化 课件.ppt_第3页
数据库规范化 课件.ppt_第4页
数据库规范化 课件.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数 据 库 基 础规 范 化,一、概述 二、规范化,关系: 描述实体及其属性、实体间的联系。 从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。 关系模式: 用来定义关系。 关系数据库: 基于关系模型的数据库,利用关系来描述现实世界。 从形式上看,它由一组关系组成。 关系数据库的模式: 定义这组关系的关系模式的全体。,关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM:属性向域的映象集合 F: 属性间数据的依赖关系集合。即限定 了组成关系的各个元组必须满足的完 整性约束条件。,

2、例子: 关系模式: SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE) 定义域 D1: PERSON , D2: SPECIALITY 定义属性向域的映象: DOM(SUPERVISOR)= DOM(POSTGRADUATE) = PERSON,概述,关系模式Student(Sno, Sdept, Mname, Cname, Grade ) 学生的学号(Sno),所在系(Sdept)系,主任姓名(Mname)课程名(Cname),成绩(Grade),现实世界的已知事实告诉我们: 一个系有若干学生, 但一个学生只属于一个系; 一个系只有一名主任; 一个学生可以选修多门

3、课程, 每门课程有若干学生选修; 每个学生所学的每门课程都有一个成绩。, 数据冗余太大 例:每一个系主任的姓名重复出现 更新异常(Update Anomalies) 例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组, 插入异常(Insertion Anomalies) 例,如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。 删除异常(Deletion Anomalies) 例,如果某个系的学生全部毕业了, 我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。,概述,结论: Student关系模式不是一个好的模式。 “好”的模式: 不会发生插入异常

4、、删除异常、更新异常, 数据冗余应尽可能少。 原因:由存在于模式中的某些数据依赖引起的 解决方法:通过分解关系模式来消除其中不合适 的数据依赖。,概述,一、函数依赖 二、平凡函数依赖与非平凡函数依赖 三、完全函数依赖与部分函数依赖 四、传递函数依赖,概述,定义1 设R(U)是属性集U上的关系模式,X、Y是U的一个子集。r是R(U)中任意给定的一个关系。若对于r中任意两个元组s和t,当sX = tX时,就有sY = tY,则称属性子集X函数决定属性子集Y或者称Y函数依赖于X(Functional Dependence),记其为XY。否则就称X不函数决定Y或者称Y不函数依赖于X。,一、函数依赖,S

5、no Sdep Sno Grade SdepMname ( Sno,Cname )Grade,函数依赖说明:,1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“SnoSdept”这个函数依赖只有在一个学生只能属于一个系的条件下成立 3. 数据库设计者可以对现实世界作强制的规定。例如一个学生只能属于一个系,函数依赖“SnoSdept”成立。所插入的元组必须满足规定的函数依赖,若一个学生在多个系存在, 则拒绝装入该元组。,二、平凡函数依赖与非平凡函数依赖,在关系模式

6、R(U)中,对于U的子集X和Y, 如果XY,但Y X,则称XY是非平凡的函数依赖 若XY,但Y X, 则称XY是平凡的函数依赖 例:在关系S (Sno,Sdept,Mname,Cname,Grade)中, 非平凡函数依赖: (Sno, Cname) Grade 平凡函数依赖: (Sno, Cname) Sno (Sno, Cname) Cname,平凡函数依赖与非平凡函数依赖(续),于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明, 我们总是讨论非平凡函数依赖。,三、完全函数依赖与部分函数依赖,定义2 在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,

7、都有 X Y, 则称Y完全函数依赖于X, 记作X Y。 若XY,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作X P Y。,完全函数依赖与部分函数依赖(续),例: 在关系S(Sno,Sdept,Mname, Cname, Grade)中, 由于:Sno Grade,Cname Grade, 因此:(Sno, Cname) Grade 由于:(Sno,Cname) Sdept; 但是 Sno Sdept 所以(Sno,Cname) P Sdept,四、传递函数依赖,定义3 在关系模式R(U)中,如果XY,YZ,且Y X,YX,则称Z传递函数依赖于X。 注: 如果YX, 即XY,则Z直接依赖

8、于X。 例: 在关系S (Sno, Sdept, Mname,Cname,Grade)中,有: Sno Sdept,Sdept Mname Mname传递函数依赖于Sno,由此可得到属性组U上的一组函数依赖F: F Sno Sdept, Sdept Mname, (Sno, Cname) Grade ,设K为关系模式R中的属性或属性组合。若K U,则K称为R的一个候选码(Candidate Key)。若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。 主属性与非主属性 包含在任何一个候选码中的属性 ,称为主属性(Prime attribute) 不包含在任何码中的属

9、性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute),关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码,规范化,规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。,关系模式Student (U,F), U= Sno, Sdept, Mname,Cname,Grade, F Sno Sdept, Sdept Mname, (Sno, Cname) Grade 我们可以通过得到新产函数依赖

10、例如: Sno Sdept, Sdept MnameSno Mname Sdept Mname (Sno,Sdept) (Sno,Mname),函数依赖的推理规则,Inclusion rule(包含律): if Y X, then X - Y(平凡依赖) Transitivity rule(传递率): if X - Y and Y - Z, then X - Z Augmentation rule(增广率): if X - Y, then X Z - Y Z Union Rule(合并): If X Y and X Z then X Y Z Decomposition Rule(分解): If

11、 X Y Z then X Y and X Z Pseudotransitivity Rule(伪传递): If X Y and W Y Z then X W Z Set Accumulation Rule: If X Y Z and Z B then X Y Z B,设是函数依赖集合,被除数逻辑蕴含的函数依赖的全体构成的集合,称为函数依赖集的闭包(closure),记为.,表中那些属性可以做候选键?,属性集的闭包 Given a set X of attributes in a table T and a set F of FDs on T, we define the CLOSURE of

12、 the set X (under F), denoted by X+, as the largest set of attributes Y such that X - Y is in F+. 求属性集闭包算法?,算法:求属性集X关于函数依赖集F的闭包X+F,如果某个属性集的闭包为表中的全体属性,则此属性集可以为候选键,范式,范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。 范式的种类: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BC范式(BCNF) 第四范式(4NF) 第五范式(5NF),范式,各种范式之间存在联

13、系: 某一关系模式R为第n范式,可简记为RnNF。,范式,1NF的定义 如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF。 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。 但是满足第一范式的关系模式并不一定是一个好的关系模式。,非NF,NF,如果关系模式R1NF,且每个非主属性都完全函数依赖于R的每个关系键,则称R属于第二范式(Second Normal Form),简称2NF,记作R2NF。 例子:关系模式Student (U,F), U= Sno, Sdept, Mname,Cname,Grade, F Sno Sdept, Sdept M

14、name, (Sno, Cname) Grade 问题: Student 1NF ? Stduent 2NF ?,关系模式Student不属于2NF,关系模式Student (U,F), U= Sno, Sdept, Mname,Cname,Grade, F Sno Sdept, Sdept Mname, (Sno, Cname) Grade 把关系模式Student分解成两个关系模式: S(Sno,Cname,Grade,(Sno,Cname)-Grade) T(Sno,Sdept,Mname,Sno-Sdept,Sdept-Mname),2NF的关系模式解决了1NF中存在的一些问题,2NF

15、规范化的 程度比1NF前进了一步,但2NF的关系模式在进行数据操作 时,仍然存在着一些问题.,如果关系模式R2NF,且每个非主属性都不传递依赖于R的每个关系键,则称R属于第三范式(Third Normal Form),简称3NF,记作R3NF。,例子: T(Sno,Sdept,Mname,Sno-Sdept,Sdept-Mname) 问题: R3NF ?,设R(U,F)中非平凡函数依赖X-Y不满足3NF可以分为以下3种情形: (1) Y是非主属性,而X是键K的真子集 (2)Y是非主属性,而X既不是超键,又不是键的真子集,但X和某键K的交集非空 (3)Y是非主属性,而X既不是超键,又不是键的真子

16、集,单X和某键的交集为空.,键K,X,Y,键K,Y,X,键K,Y,X,设关系模式R(U,F)1NF,如果对于R的每一个属性都不传递依赖于R(U)的候选键,那么关系模式R(U)满足BC范式,即RBCNF。 非BC范式可以有下面几种情况: (1) 属性包含于某键当中,属性集与键的交集非空且,键K,(1) 属性包含于某键当中,属性集与键的交集为空且,键K,如果R3NF,则R不一定是BCNF。 举例说明。设关系模式SNC(SNO,SN,CN0,SCORE,F),其中SNO代表学号,SN代表学生姓名并假设没有重名,CNO代表课程号,SCORE代表成绩。SNC有两个候选键(SNO,CNO)和(SN,CNO),其函数依赖集F如下: SNO SN,(SNO,CNO)SCORE (SN,CNO)SCORE。 唯一的非主属性SCORE对键不存在部分函数依赖,也不存在传递函数依赖。所以SNC3NF。 SNC是不是BCNF?,多值依赖与第四范式,课程安排示意图,设R(U)是属性集U上的一个关系模式, X、Y和Z是U的子集,并且ZUXY,多值依赖XY成立当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关。,例子: 关系模式Teach(C,T,B),存在多值依赖 C T;给定的一对(C,B)值,有一组T的值,这组值仅仅决定于C值而与B值无关,平

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论