[计算机软件及应用]数据库第四章最新.ppt

[计算机软件及应用]数据库第四章最新

第四章 关系数据库设计理论 4.1 数据依赖 4.1.1 关系模式回顾 4.1.2 有关概念 4.1.3 数据依赖对关系模式的影响 4.2 范式 4.2.1 第一范式(1NF) 4.2.2 第二范式(2NF) 4.2.3 第三范式(3NF) 4.2.4 BC范式 4.3 关系模式的规范化(到BCNF) 4.3.1 关系模式规范化的步骤 4.1 数据依赖 关系数据库是以关系模型为基础的数据库,它利用关系描述现实世界。 关系模式是对关系的描述,一个关系数据库包含一组关系,定义这组关系的关系模式的全体就构成了该数据库的模式。 4.1.1 关系模式回顾 关系是一张二维表,它是所涉及属性域的笛卡儿积的一个子集。 从笛卡儿积中选取哪些元组构成该关系,通常是由现实世界赋予该关系的元组语义来确定的。 元组语义就是限定组成关系的各个元组必须满足的完整性约束条件。实际上可以通俗地理解为: 是现实世界中信息的客观描述以及需要满足的约束条件。 关系模式是对关系的描述,它需要由五部分组成,即应该是一个五元组: R(U,D,DOM,F) 其中 R为关系名, U为组成该关系的属性名集合, D为属性组U中属性所来自的域, DOM为属性向域的映象集合, F为属性间数据的依赖关系集合, 实际上就是描述关系的元组语义。 4.1.2 有关概念 数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。 多种类型的数据依赖中最重要的是函数依赖(FD)和多值依赖(MVD)。 我们先学习函数依赖。 1. 函数依赖(FD) 定义4.1 设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作X → Y。(含义是:对于每一个X的取值,Y都有唯一的取值与之对应.) 函数依赖普遍存在于现实生活中。 比如,描述一个学生的关系,可以有学号(Sno)、姓名(Sname)、所在系(Sdept)等几个属性。 语义条件:一个学号只对应一个学生,一个学生只在一个系,一个系有多个学生。 能再举出一些例子吗? 居民信息 (身份证号,姓名,性别,出生年月,出身地, ……) 定义4.2 在关系模式R(U)中,对于U的子集X和Y,如果X → Y,但Y?X,则称X → Y是非平凡函数依赖。若Y ? X,则称 X → Y称为平凡函数依赖。 例:设A,B,C 都是关系模式R(U)的属性,则: A?A, ABC?B , ABC?AC等是平凡函数依赖; 而A?B, AB?AC , A?ABC等是非平凡函数依赖。 例子2: 描述学校的数据库中,涉及学生对象,包括学生的学号(Sno)、姓名(Sname)、所在系(Sdept)、系主任姓名(Mname)、所选课程号(Cno),课程名(Cname)和成绩(Grade)。 关系模式Student为: Student(Sno,Sname,Sdept,Mname,Sno,Cname,Grade) 例子2: Student(Sno,Sname,Sdept,Mname,Cno,Cname,Grade) 4.1.3 数据依赖对关系模式的影响 数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。 如果关系中有不合适的数据依赖,就会带来异常问题。 例如: 学生关系 Student(Sno,Sname,Sdept,Mname,Cno,Cname,Grade) 定义4.7 如果一个模式R的所有属性都是不可分的基本数据项,则R ?1NF。 这是关系模型对关系模式的基本要求! 但是满足第一范式的关系模式并不一定是一个好的关系模式。 消除部分函数依赖 我们首先采用投影分解法,以消除非主属性对码的部分函数依赖。这样就把SLC分解为两个关系模式。 SC(Sno,Cno,Grade) SL(Sno,Sname,Sdept,Sloc) Course (Cno,Cname) 其中,SC的码为(Sno,Cno),SL的码为Sno,COURSE的码是Cno。 详细分解步骤如下所示: 定义4.7 若关系模式R ? 1NF,并且每一个非主属性都完全函数依赖于R的码,则 R ? 2NF。 2NF就是不允许

文档评论(0)

1亿VIP精品文档

相关文档