当前位置:文档之家› 关系数据库规范化理论

关系数据库规范化理论


不存在非主属性成绩对码的部分依赖和传递函数依赖,所以此 关系属于3NF,但不属于BCNF。
4.2 函数依赖及关系的范式
问题:冗余和操作异常依然存在,只是没有1NF和2NF的
问题严重,但仍不可忽视。
因此,满足3NF的关系模式,仍然存在着一些操作异常现 象。
由BCNF的定义,关系模式R分解为BCNF的关系模式如下:
由已知事实可以得知上述对象之间有如下对应关系: (l)一个系有若干学生,但一个学生只属于一个系; (2)一个系只有一名系主任; (3)一个学生可选修多门课程,每门课程有若干学生选修; (4)每个学生学习每一门课程有一个成绩。 如何设计一个合理的关系数据库模式?
4.1 问题导入
方案1:采用一个总的关系模式,将这些对象都放在SA中。 SA(学号,姓名,系名,系主任,课号,成绩) example (1)数据冗余 每个学生的系信息重复出现,既浪费存储空间,又易造成数据 的不一致性。 (2)插入异常 插入异常指的是应该插入的信息不能正常插入,例如:新生 未入学,就无法把该系及相应系主任信息插入到数据库。 (3)删除异常 删除异常指的是不该删除的信息被删除了,例如:当一个系 的全部学生毕业了,删除学生时该系及系主任信息也删除了。
4)BCNF BCNF:如果关系模式R(U,F)∈1NF。若F中任一函数依赖 X→Y且YX 时X必含有R的一个码,则R∈BCNF。 通常,BCNF的条件有多种等价的描述,换言之,若关系模 式R属于第一范式,且每个属性都不部分依赖和传递函数依赖 于码,则R属于BCNF。
4.2 函数依赖及关系的范式
4.2 函数依赖及关系的范式
【例4-1】 某商业集团考核供应商供应商品情况的关系为
W,判断关系W的函数依赖情况。
W(供应商编号,供应商名,地址,商品号,商品名,规格,单 价,产地,产地主负责人,月供应量) 解:W的主码是供应商编号和商品号的组合。根据语义可以得知 W存在如下的函数依赖:
4.2 函数依赖及关系的范式
4.2 函数依赖及关系的范式
对于函数依赖,需要说明以下几点: (1)函数依赖是指R的所有关系实例都要满足的约束条件,不 是针对某个或某些关系实例满足的约束条件。 (2)函数依赖是语义范畴的概念,人们只能根据数据的语义 来确定函数依赖。 (3)数据库设计者可以对现实世界做强制的规定。 (4)X→Y,但Y X,则称X→Y是非平凡的函数依赖。
4.2 函数依赖及关系的范式
3)传递函数依赖 在R(U)中,X,Y,Z是U的子集,如果X→Y,( YX ), Y→Z,且Y→X不成立,则称Z对X传递函数依赖,记为 。 需要注意的是:
如果Y→X成立,而X→Y,即X↔Y,则Z直接依赖于X;
如果 ,则Z直接依赖于X。
例如在SA(学号,姓名,系名,系主任,课号,成绩)中,有: 学号 → 系名,系名 → 系主任,则学号 T 系主任
可是S1中存在非主属性对码的传递依赖,故不属于3NF。 为优化设计将关系模式S1再分解为: S11(学号,姓名,系名) S12(系名,系主任) 分解后的关系模式S11与S12都∈3NF。
对比理解1NF、2NF、3NF
1NF是指关系模式中的所有属性都满足原子性。
2NF是指关系模式中不存在非主属性(组)对码的部分依赖。 3NF是指关系模式中不存在非主属性(组)对码的传递依赖。
4.1 问题导入
学号 13001
13001 13001 13002 13002 13009 13015 13009
姓名 刘烨
刘烨 刘烨 赵华 赵华 范冰冰 范晨 范冰冰
系名 计算机系
计算机系 计算机系 管理系 管理系 艺术系 物理系 艺术系
系主任 李翔
李翔 李翔 郑明 郑明 刘欢 葛亮 刘欢
课号 c1
从低一级的关系范式通过模式分解达到若干高一级范式的关 系模式的集合,这种过程叫做关系模式的规范化。 1.范式的判定条件与规范化 1)第一范式(1NF) 1NF:在一个关系模式R中,如果R的每一个属性都是不可 再分的数据项,则称R属于第一范式1NF,记为R∈1NF。
4.2 函数依赖及关系的范式
2)第二范式(2NF) 2NF:如果一个关系R属于1NF,且它的每一个非主属性都完 全依赖于码,则R属于第二范式,记为R∈2NF。 案例分析: SA(学号,姓名,系名,系主任,课号,成绩)进行分析,主 码为(学号,课号), p 学号 → 系名, (学号,课号) → 系名 其不属于2NF, 故对其分解 ① S2(学号,课号,成绩)∈2NF ② S1(学号,姓名,系名,系主任)∈2NF
2NF存在问题:数据冗余度大、插入异常、删除异常。
4.2 函数依赖及关系的范式
3)第三范式(3NF)
3NF:如果一个关系模式R满足2NF,并且每个非主属性都不传 递函数依赖于码,则R属于第三范式,记为R∈3NF。
案例分析
① S2(学号,课号,成绩)∈2NF ② S1(学号,姓名,系名,系主任)∈2NF
论的规范化理论问题。
4.1 问题导入
2.关系模式规范化的概念 规范化:就是把一个存在数据冗余大、插入异常、删除
异常和更新异常等情况的关系模式通过模式分解的方法转换 为“较好”关系模式的集合,这个过程叫做关系模式的规范 化。 将关系模式规范化,是使其达到“好”关系模式的唯一 途径。否则,设计的关系数据库将会产生一系列的问题。
了解满足不同范式要求的模式分解算法; 掌握运用规范化理论设计满足实际应用需求的数据库。
第4章 关系数据库规范化理论
重点与难点
重点:关系规范化的必要性,函数依赖、范式的基本概念和 定义,关系规范化的方法。
难点:属性集闭包,逻辑蕴涵,模式分解算法。
关系数据库的规范化设计是指面对一个应用问题,如何 选择一个比较好的关系模式集合。 研究数据间自然联系与约束 范式是关系模式的标准 是自动化设计的基础
课程(课程号,课程名) 选课(学号,课程号,成绩)
4.2 函数依赖及关系的范式
关于BCNF的以下结论:
若R∈BCNF,则R中所有非主属性对每一个码都完全函数依赖。
4.2 函数依赖及关系的范式
1. 函数依赖的定义
设 R (U , F )是属性集 U 上的关系模式, X 和 Y是 U 的子集,
F是属性集U的数据依赖集,r是R的任意关系。 r中不可能存 在两个元组在X上的属性值相等, 而在Y上的属性值不等,
则称称X函数确定Y,或Y函数依赖于X,记为X→Y。
其中 X 称做决定因素( determinant ), Y 称做依赖因素 (dependent)。 根据引例假设学生不允许重名,则有: 学号→系名,学号→年龄 学号→姓名,姓名→学号,姓名→系名,姓名→年龄
范式间的包含关系:3NF2NF1NF
范式的级别越高,其存在的操作异常和数据冗余越小。 解决操作异常和数据冗余的方法是通过关系模式的分解使达 到更高一级的范式。 分解实质为让每个关系只有一个主题;如一个关系有多个主 题,就将其分解为多个关系,“一事一地”原则。
4.2 函数依赖及关系的范式
(5)X→Y,但Y X,则称X→Y是平凡的函数依赖。
(6)若X→Y,Y→X,则X与Y相互依赖,记为X↔Y。 (7)若Y不函数依赖于X,则记为X → Y。
4.2 函数依赖及关系的范式
确定函数依赖关系,可以通过属性之间的联系加以确
定。属性间的3种联系,并不是每一种联系中都存在函数依赖。
(1)如果两属性集X、Y间是1:1联系,则存在函数依赖:X↔Y。 (3)如果两属性集X、Y间是M:N联系,则不存在函数依赖。 例如:学号→系名 学号→课号
4.1 问题导入
总结: 关系模型中用关系来描述实体及其联系,对同一现实世界可用 不同的关系模式来描述,但不同的关系模式的效果却有很大差异。 判断是否存在插入异常、删除异常、数据冗余的大小是一种直观
判断一个关系模式设计质量的方法。
如何消除不合理的数据依赖,将一个“不好”的关系模式改 造为一个“好”的关系模式,这就是关系数据库设计过程中要讨
(2)如果两属性集X、Y之间是N:1联系,则存在函数依赖:X→Y。
4.2 函数依赖及关系的范式
2.函数依赖的分类 1)完全函数依赖 设有R(U),X’是X的真子集,如果X→Y,并且对于X的任 何一个真子集X’,都不存在X’→Y,则称Y对X完全函数依赖, 记为 2)部分函数依赖 设R(U),X’是X的真子集,如果X→Y,并且对于X的任何 一个真子集X’,都存在X’→Y成立,则称Y对X部分函数依赖, 也就是 Y不完全函数依赖于X,记为
数据依赖 规范化设计理论 范式 模式设计方法
4.1 问题导入
4.1.1 关系模式的规范化 一个关系模式应当是一个五元组。
R ( U,D,dom(),F )
数据依赖
属性到域上的映射关系 关系的域 属性集 关系名
关系模式是静态的,与时间无关。 关系模式案例 关系模式设计引论 在某校信息管理系统中要建立一个数据库来描述学生和选课 的一些信息,面临的对象有:学号、姓名、系名、系主任、课 号、成绩。
可以用函数依赖图来表示属性间的不同依赖情况。图中 虚线表示为部分函数依赖。
月供应量 商品编号 产地
供应商名
供应商编号
主负责人
W关系由于存在部分函数依赖、传递函数依赖,因此会出 现插入异常、删除异常、更新异常以及数据冗余大的问题。
4.2 函数依赖及关系的范式
3.码 设k为R(U,F)中的属性或属性组合,k'是k的真子集,若 k→U,且不存在k'→U成立,则k为R的候选码(candidate key), 简称为码。 若候选码多于一个,则选定其中的一个为主码。 包含在任何一个候选码中的属性,称为主属性。
c2 c3 c1 c3 c4 c9 c8
成绩 80
89 78 90 87 76 90
4.1 问题导入
结论:
相关主题