《第3章关系数据库精选文档.ppt》由会员分享,可在线阅读,更多相关《第3章关系数据库精选文档.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章关系数据库本讲稿第一页,共二十三页3.1 关系模型的基本概念关系模型的基本概念3.2 3.2 关系代数关系代数关系代数关系代数3.3 3.3 规范化规范化规范化规范化3.4 关系数据库系统的查询优化关系数据库系统的查询优化3.5 常用关系数据库管理系统介绍常用关系数据库管理系统介绍第3章 关系数据库本讲稿第二页,共二十三页关系数据库是支持关系模型的数据库系统,应用数学的方法关系数据库是支持关系模型的数据库系统,应用数学的方法关系数据库是支持关系模型的数据库系统,应用数学的方法关系数据库是支持关系模型的数据库系统,应用数学的方法来处理数据库中的数据。来处理数据库中的数据。来处理数据库中的数
2、据。来处理数据库中的数据。关系模型由关系数据结构、关系操作集合和关系完整性约束关系模型由关系数据结构、关系操作集合和关系完整性约束关系模型由关系数据结构、关系操作集合和关系完整性约束关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。三部分组成。三部分组成。三部分组成。3.1 3.1 关系模型的基本概念关系模型的基本概念关系模型的基本概念关系模型的基本概念本讲稿第三页,共二十三页3.1.1 3.1.1 关系的数学定义关系的数学定义关系的数学定义关系的数学定义【定义【定义【定义【定义1 1】域(】域(】域(】域(DomainDomain)是一组具有相同数据类型的值的集合。)是一组具有
3、相同数据类型的值的集合。)是一组具有相同数据类型的值的集合。)是一组具有相同数据类型的值的集合。【定义【定义【定义【定义2 2】设】设】设】设D1D1,D2D2,DnDn为任意域,定义为任意域,定义为任意域,定义为任意域,定义D1D1,D2D2,DnDn的笛卡尔积(的笛卡尔积(的笛卡尔积(的笛卡尔积(Cartesian ProductCartesian Product)为:)为:)为:)为:【定义【定义【定义【定义3 3】D1D2DnD1D2Dn的任意一个子集叫做的任意一个子集叫做的任意一个子集叫做的任意一个子集叫做D1D2DnD1D2Dn上上上上的一个关系(的一个关系(的一个关系(的一个关系
4、(RelationRelation),用),用),用),用R(D1D2Dn)R(D1D2Dn)表示。这里表示。这里表示。这里表示。这里R R表示关系名,表示关系名,表示关系名,表示关系名,n n表示关系的目或度(表示关系的目或度(表示关系的目或度(表示关系的目或度(DegreeDegree)。)。)。)。3.1 3.1 关系模型的基本概念关系模型的基本概念关系模型的基本概念关系模型的基本概念本讲稿第四页,共二十三页关系具有以下性质:关系具有以下性质:关系具有以下性质:关系具有以下性质:1)1)列是同质的,即每一列中的分量是同一类型的数据,来自同一列是同质的,即每一列中的分量是同一类型的数据,来
5、自同一列是同质的,即每一列中的分量是同一类型的数据,来自同一列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。个域。个域。个域。2)2)不同的列可以出自同一个域,每一列称为一个属性。在同一不同的列可以出自同一个域,每一列称为一个属性。在同一不同的列可以出自同一个域,每一列称为一个属性。在同一不同的列可以出自同一个域,每一列称为一个属性。在同一关系中,属性名不能相同。关系中,属性名不能相同。关系中,属性名不能相同。关系中,属性名不能相同。3)3)列的顺序无关紧要,即列的顺序可以任意转换。列的顺序无关紧要,即列的顺序可以任意转换。列的顺序无关紧要,即列的顺序可以任意转换。列的顺序无关紧要
6、,即列的顺序可以任意转换。4)4)任意两个元组(行或记录)不能完全相同任意两个元组(行或记录)不能完全相同任意两个元组(行或记录)不能完全相同任意两个元组(行或记录)不能完全相同5)5)行的顺序也无关紧要,即行的顺序也可以任意转换。行的顺序也无关紧要,即行的顺序也可以任意转换。行的顺序也无关紧要,即行的顺序也可以任意转换。行的顺序也无关紧要,即行的顺序也可以任意转换。6)6)行列的交集称为分量,每个分量的取值必须是原子值,即分量不能再行列的交集称为分量,每个分量的取值必须是原子值,即分量不能再行列的交集称为分量,每个分量的取值必须是原子值,即分量不能再行列的交集称为分量,每个分量的取值必须是原
7、子值,即分量不能再分。分。分。分。3.1 关系模型的基本概念关系模型的基本概念本讲稿第五页,共二十三页3.1.2 3.1.2 关系模型关系模型关系模型关系模型基于关系模型的关系数据库需要区分值和型,关系是值,关系基于关系模型的关系数据库需要区分值和型,关系是值,关系基于关系模型的关系数据库需要区分值和型,关系是值,关系基于关系模型的关系数据库需要区分值和型,关系是值,关系模式是型。关系模型由三部分组成:关系数据结构、关系操模式是型。关系模型由三部分组成:关系数据结构、关系操模式是型。关系模型由三部分组成:关系数据结构、关系操模式是型。关系模型由三部分组成:关系数据结构、关系操作和关系的完整性。
8、作和关系的完整性。作和关系的完整性。作和关系的完整性。1.1.关系关系关系关系在关系模型中主要涉及的概念有码、关系模式、关系数据库。在关系模型中主要涉及的概念有码、关系模式、关系数据库。在关系模型中主要涉及的概念有码、关系模式、关系数据库。在关系模型中主要涉及的概念有码、关系模式、关系数据库。(1)(1)码码码码码是指关系中某一属性组。码是指关系中某一属性组。码是指关系中某一属性组。码是指关系中某一属性组。(2)(2)关系模式关系模式关系模式关系模式关系的描述称为关系模式。关系的描述称为关系模式。关系的描述称为关系模式。关系的描述称为关系模式。【定义【定义【定义【定义4 4】关系的描述称为关系
9、模式(】关系的描述称为关系模式(】关系的描述称为关系模式(】关系的描述称为关系模式(Relation SchemaRelation Schema)。它)。它)。它)。它可以形式化地表示为:可以形式化地表示为:可以形式化地表示为:可以形式化地表示为:3.1 3.1 关系模型的基本概念关系模型的基本概念关系模型的基本概念关系模型的基本概念本讲稿第六页,共二十三页(3)(3)关系数据库关系数据库关系数据库关系数据库在一个给定的领域中,实体以及实体之间的联系的集合构成在一个给定的领域中,实体以及实体之间的联系的集合构成在一个给定的领域中,实体以及实体之间的联系的集合构成在一个给定的领域中,实体以及实体
10、之间的联系的集合构成了一个关系数据库。对于关系数据库也要区分型和值的概念。了一个关系数据库。对于关系数据库也要区分型和值的概念。了一个关系数据库。对于关系数据库也要区分型和值的概念。了一个关系数据库。对于关系数据库也要区分型和值的概念。关系数据库的型是指对关系数据库的描述,它包括若干域的关系数据库的型是指对关系数据库的描述,它包括若干域的关系数据库的型是指对关系数据库的描述,它包括若干域的关系数据库的型是指对关系数据库的描述,它包括若干域的定义,以及在这些域上定义的若干关系模式。关系数据库的定义,以及在这些域上定义的若干关系模式。关系数据库的定义,以及在这些域上定义的若干关系模式。关系数据库的
11、定义,以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合。值是这些关系模式在某一时刻对应的关系的集合。值是这些关系模式在某一时刻对应的关系的集合。值是这些关系模式在某一时刻对应的关系的集合。3.1 3.1 关系模型的基本概念关系模型的基本概念关系模型的基本概念关系模型的基本概念本讲稿第七页,共二十三页2.2.关系操作关系操作关系操作关系操作关系模型给出了关系操作的能力和特点,但不对关系模型给出了关系操作的能力和特点,但不对关系模型给出了关系操作的能力和特点,但不对关系模型给出了关系操作的能力和特点,但不对DBMSDBMS的语言给出具的语言给出具的语言给出具
12、的语言给出具体的语法要求。关系操作采用集合操作方式,即操作的对象和结体的语法要求。关系操作采用集合操作方式,即操作的对象和结体的语法要求。关系操作采用集合操作方式,即操作的对象和结体的语法要求。关系操作采用集合操作方式,即操作的对象和结构都是集合。这种操作方式也称为一次一集合(构都是集合。这种操作方式也称为一次一集合(构都是集合。这种操作方式也称为一次一集合(构都是集合。这种操作方式也称为一次一集合(set-at-timeset-at-time)的)的)的)的方式。方式。方式。方式。关系模型中常用的关系操作包括:选择(关系模型中常用的关系操作包括:选择(关系模型中常用的关系操作包括:选择(关系
13、模型中常用的关系操作包括:选择(SelectSelect)、投影)、投影)、投影)、投影(ProjectProject)、连接()、连接()、连接()、连接(JoinJoin)、除()、除()、除()、除(DivideDivide)、并()、并()、并()、并(UnionUnion)、交)、交)、交)、交(IntersectionIntersection)、差()、差()、差()、差(DifferenceDifference)等查询()等查询()等查询()等查询(QueryQuery)操作和)操作和)操作和)操作和增加(增加(增加(增加(InsertInsert)、删除()、删除()、删除()
14、、删除(DeleteDelete)、修改()、修改()、修改()、修改(UpdateUpdate)操作。其)操作。其)操作。其)操作。其中查询的表达能力是其最主要的部分。中查询的表达能力是其最主要的部分。中查询的表达能力是其最主要的部分。中查询的表达能力是其最主要的部分。3.1 关系模型的基本概念关系模型的基本概念本讲稿第八页,共二十三页3.3.关系的完整性关系的完整性关系模型提供了丰富的完整性控制机制,允许定义三类完整性约束:实体完整性、关系模型提供了丰富的完整性控制机制,允许定义三类完整性约束:实体完整性、关系模型提供了丰富的完整性控制机制,允许定义三类完整性约束:实体完整性、关系模型提供
15、了丰富的完整性控制机制,允许定义三类完整性约束:实体完整性、参照完整性和用户定义的完整性。参照完整性和用户定义的完整性。参照完整性和用户定义的完整性。参照完整性和用户定义的完整性。(1)(1)实体完整性实体完整性【规则【规则【规则【规则1 1】若属性(或属性组)】若属性(或属性组)】若属性(或属性组)】若属性(或属性组)A A是基本关系是基本关系是基本关系是基本关系R R的主属性,则属性的主属性,则属性的主属性,则属性的主属性,则属性A A不能取空值。不能取空值。不能取空值。不能取空值。(2)(2)参照完整性参照完整性【规则【规则【规则【规则2 2】若属性(或属性组)】若属性(或属性组)】若属
16、性(或属性组)】若属性(或属性组)A A不是基本关系不是基本关系不是基本关系不是基本关系R R的主码,它与基本关系的主码,它与基本关系的主码,它与基本关系的主码,它与基本关系S S的主码的主码的主码的主码B B相相相相对应(基本关系对应(基本关系对应(基本关系对应(基本关系R R和关系和关系和关系和关系S S不一定是不同的关系),称不一定是不同的关系),称不一定是不同的关系),称不一定是不同的关系),称A A是关系是关系是关系是关系S S的外(部)码的外(部)码的外(部)码的外(部)码(Foreign KeyForeign Key)。则对于)。则对于)。则对于)。则对于R R中的每个元组在中的
17、每个元组在中的每个元组在中的每个元组在A A上的值必须为:或者取空值,或者上的值必须为:或者取空值,或者上的值必须为:或者取空值,或者上的值必须为:或者取空值,或者等于等于等于等于S S的主码的主码的主码的主码B B的某个元组的主码值。的某个元组的主码值。的某个元组的主码值。的某个元组的主码值。参照完整性是指一个关系中外码的码值必须是相应数据库中其他关系的主码参照完整性是指一个关系中外码的码值必须是相应数据库中其他关系的主码参照完整性是指一个关系中外码的码值必须是相应数据库中其他关系的主码参照完整性是指一个关系中外码的码值必须是相应数据库中其他关系的主码值之一,或为空,即用来定义外码与主码之间
18、引用规则的。值之一,或为空,即用来定义外码与主码之间引用规则的。值之一,或为空,即用来定义外码与主码之间引用规则的。值之一,或为空,即用来定义外码与主码之间引用规则的。(3)(3)用户定义的完整性用户定义的完整性不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,而用户不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,而用户不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,而用户不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,而用户定义的完整性就是针对某一具体关系数据库的约束条件。定义的完整性就是针对某一具
19、体关系数据库的约束条件。定义的完整性就是针对某一具体关系数据库的约束条件。定义的完整性就是针对某一具体关系数据库的约束条件。3.1 3.1 关系模型的基本概念关系模型的基本概念关系模型的基本概念关系模型的基本概念本讲稿第九页,共二十三页关系代数是关系操作的理论基础,是关系数据操作的传统方式。关系代关系代数是关系操作的理论基础,是关系数据操作的传统方式。关系代关系代数是关系操作的理论基础,是关系数据操作的传统方式。关系代关系代数是关系操作的理论基础,是关系数据操作的传统方式。关系代数是一种抽象的查询语言,是关系数据操作语言的一种传统表达方式,数是一种抽象的查询语言,是关系数据操作语言的一种传统表
20、达方式,数是一种抽象的查询语言,是关系数据操作语言的一种传统表达方式,数是一种抽象的查询语言,是关系数据操作语言的一种传统表达方式,它是用对关系的运算来表达查询的。它是用对关系的运算来表达查询的。它是用对关系的运算来表达查询的。它是用对关系的运算来表达查询的。1.1.关系代数的运算关系代数的运算关系代数的运算关系代数的运算(1)(1)传统的集合运算传统的集合运算传统的集合运算传统的集合运算(2)(2)专门的关系运算专门的关系运算专门的关系运算专门的关系运算2.2.关系代数用到的运算符关系代数用到的运算符关系代数用到的运算符关系代数用到的运算符关系代数的运算对象是关系(或表),运算结果也是关系(
21、或表)。关系代数的运算对象是关系(或表),运算结果也是关系(或表)。关系代数的运算对象是关系(或表),运算结果也是关系(或表)。关系代数的运算对象是关系(或表),运算结果也是关系(或表)。关系代数用到的运算符有:关系代数用到的运算符有:关系代数用到的运算符有:关系代数用到的运算符有:1)1)集合运算符:集合运算符:集合运算符:集合运算符:(并),(差),(并),(差),(并),(差),(并),(差),(交),(交),(交),(交),(广义笛卡尔积)。(广义笛卡尔积)。(广义笛卡尔积)。(广义笛卡尔积)。2)2)专门的关系运算符:专门的关系运算符:专门的关系运算符:专门的关系运算符:(选择),(
22、选择),(选择),(选择),(投影),(连接),(投影),(连接),(投影),(连接),(投影),(连接),(除)。(除)。(除)。(除)。3)3)算术比较符:算术比较符:算术比较符:算术比较符:=,=,4)4)逻辑运算符:逻辑运算符:逻辑运算符:逻辑运算符:(非非非非),(与),(与),(与),(与),(或)(或)(或)(或)3.2 关系代数关系代数本讲稿第十页,共二十三页3.2.1 3.2.1 传统的集合运算传统的集合运算传统的集合运算传统的集合运算传统的集合运算包括并、差、交、广义笛卡尔积四种运算。它们都是二传统的集合运算包括并、差、交、广义笛卡尔积四种运算。它们都是二传统的集合运算包括
23、并、差、交、广义笛卡尔积四种运算。它们都是二传统的集合运算包括并、差、交、广义笛卡尔积四种运算。它们都是二目运算,即集合运算符两边都必须有运算对象。目运算,即集合运算符两边都必须有运算对象。目运算,即集合运算符两边都必须有运算对象。目运算,即集合运算符两边都必须有运算对象。1.1.并(并(并(并(UnionUnion)其结果仍为其结果仍为其结果仍为其结果仍为n n目关系,由属于目关系,由属于目关系,由属于目关系,由属于R R或属于或属于或属于或属于S S的元组组成。的元组组成。的元组组成。的元组组成。2.2.差(差(差(差(DifferenceDifference)其结果关系仍为其结果关系仍为
24、其结果关系仍为其结果关系仍为n n目关系,由属于目关系,由属于目关系,由属于目关系,由属于R R而不属于而不属于而不属于而不属于S S的所有元组组成。的所有元组组成。的所有元组组成。的所有元组组成。3.3.交(交(交(交(IntersectionIntersection)其结果关系仍为其结果关系仍为其结果关系仍为其结果关系仍为n n目关系,由既属于目关系,由既属于目关系,由既属于目关系,由既属于R R又属于又属于又属于又属于S S的元组组成。的元组组成。的元组组成。的元组组成。3.2 3.2 关系代数关系代数关系代数关系代数本讲稿第十一页,共二十三页4.4.广义笛卡尔积(广义笛卡尔积(Exte
25、nded Cartesian ProductExtended Cartesian Product)两个分别为两个分别为两个分别为两个分别为n n目和目和目和目和mm目的关系目的关系目的关系目的关系R R和和和和S S的广义笛卡尔积是一个(的广义笛卡尔积是一个(的广义笛卡尔积是一个(的广义笛卡尔积是一个(n+mn+m)列的元组的集合。元组的前列的元组的集合。元组的前列的元组的集合。元组的前列的元组的集合。元组的前n n列是关系列是关系列是关系列是关系R R的一个元组,后的一个元组,后的一个元组,后的一个元组,后mm列是关列是关列是关列是关系系系系S S的一个元组。若的一个元组。若的一个元组。若的
26、一个元组。若R R有有有有k1k1个元组,个元组,个元组,个元组,S S有有有有k2k2个元组,则关系个元组,则关系个元组,则关系个元组,则关系R R和关和关和关和关系系系系S S的广义笛卡尔积有的广义笛卡尔积有的广义笛卡尔积有的广义笛卡尔积有k1k2k1k2个元组。记作:个元组。记作:个元组。记作:个元组。记作:3.2 3.2 关系代数关系代数关系代数关系代数本讲稿第十二页,共二十三页3.2.2 3.2.2 专门的关系运算专门的关系运算专门的关系运算专门的关系运算1.1.选择(选择(选择(选择(SelectionSelection)选择是在关系选择是在关系选择是在关系选择是在关系R R中选择
27、满足给定条件的诸元组,记作:中选择满足给定条件的诸元组,记作:中选择满足给定条件的诸元组,记作:中选择满足给定条件的诸元组,记作:其中其中其中其中F F表示选择条件,表示选择条件,表示选择条件,表示选择条件,F F中可以使用逻辑运算符,也可以使用比较中可以使用逻辑运算符,也可以使用比较中可以使用逻辑运算符,也可以使用比较中可以使用逻辑运算符,也可以使用比较运算符。选择运算实际上是从关系运算符。选择运算实际上是从关系运算符。选择运算实际上是从关系运算符。选择运算实际上是从关系R R中选取使逻辑表达式中选取使逻辑表达式中选取使逻辑表达式中选取使逻辑表达式F F为真为真为真为真的元组。这是从行(记录
28、)的角度来进行的运算。的元组。这是从行(记录)的角度来进行的运算。的元组。这是从行(记录)的角度来进行的运算。的元组。这是从行(记录)的角度来进行的运算。2.2.投影(投影(投影(投影(Projection)Projection)关系关系关系关系R R上的投影是从上的投影是从上的投影是从上的投影是从R R中选择出若干属性列组成新的关系。记作:中选择出若干属性列组成新的关系。记作:中选择出若干属性列组成新的关系。记作:中选择出若干属性列组成新的关系。记作:其中其中其中其中A A为为为为R R中的属性列。投影操作是从列(属性)的角度进行的运算。投中的属性列。投影操作是从列(属性)的角度进行的运算。
29、投中的属性列。投影操作是从列(属性)的角度进行的运算。投中的属性列。投影操作是从列(属性)的角度进行的运算。投影操作是从列的角度进行的运算。影操作是从列的角度进行的运算。影操作是从列的角度进行的运算。影操作是从列的角度进行的运算。3.2 3.2 关系代数关系代数关系代数关系代数本讲稿第十三页,共二十三页3.3.连接(连接(连接(连接(JoinJoin)连接从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:连接从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:连接从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:连接从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作
30、:其中其中其中其中A A和和和和B B分别为分别为分别为分别为R R和和和和S S上度数相等且可比的属性组。是比较运算上度数相等且可比的属性组。是比较运算上度数相等且可比的属性组。是比较运算上度数相等且可比的属性组。是比较运算符。连接运算从符。连接运算从符。连接运算从符。连接运算从R R和和和和S S的广义笛卡尔积的广义笛卡尔积的广义笛卡尔积的广义笛卡尔积RSRS中选取(中选取(中选取(中选取(R R关系)在关系)在关系)在关系)在A A属性组上的值与属性组上的值与属性组上的值与属性组上的值与(S(S关系关系关系关系)在在在在B B属性组上值满足比较关系的元属性组上值满足比较关系的元属性组上值
31、满足比较关系的元属性组上值满足比较关系的元组。组。组。组。4 4 除(除(除(除(Division)Division)R R与与与与S S的的的的除除除除运运运运算算算算得得得得到到到到一一一一个个个个新新新新的的的的关关关关系系系系P P(X X),P P是是是是R R中中中中满满满满足足足足下下下下列列列列条条条条件件件件的的的的元元元元组组组组在在在在X X属属属属性性性性列列列列上上上上的的的的投投投投影影影影:元元元元组组组组在在在在X X上上上上分分分分量量量量值值值值x x的的的的象象象象集集集集包包包包含含含含S S在在在在Y Y上投影的集合。上投影的集合。上投影的集合。上投影
32、的集合。3.2 3.2 关系代数关系代数关系代数关系代数本讲稿第十四页,共二十三页规范化是在关系(表)的逻辑结构设计过程中,要求尽可能规范化是在关系(表)的逻辑结构设计过程中,要求尽可能规范化是在关系(表)的逻辑结构设计过程中,要求尽可能规范化是在关系(表)的逻辑结构设计过程中,要求尽可能地降低或消除数据库中冗余数据的过程。地降低或消除数据库中冗余数据的过程。地降低或消除数据库中冗余数据的过程。地降低或消除数据库中冗余数据的过程。1.1.范式的种类范式的种类范式的种类范式的种类 所所谓谓第第几几范范式式是是指指一一个个关关系系模模式式按按照照规规范范化化理理论论设设计计,符符合合哪哪一一级级别
33、别的要求。的要求。2.范式的之间的关系及规范化范式的之间的关系及规范化3.3 规范化规范化本讲稿第十五页,共二十三页3.3.1 3.3.1 函数依赖函数依赖函数依赖函数依赖函数依赖(函数依赖(函数依赖(函数依赖(Functional DePendencyFunctional DePendency)是关系模式中各个属)是关系模式中各个属)是关系模式中各个属)是关系模式中各个属性之间的一种依赖关系,是规范化理论中一个最重要最基本性之间的一种依赖关系,是规范化理论中一个最重要最基本性之间的一种依赖关系,是规范化理论中一个最重要最基本性之间的一种依赖关系,是规范化理论中一个最重要最基本的概念。的概念。
34、的概念。的概念。【定义【定义【定义【定义5 5】设】设】设】设R(U)R(U)是属性集是属性集是属性集是属性集U U上的关系模式,上的关系模式,上的关系模式,上的关系模式,X X和和和和Y Y均为均为均为均为U U的子集。如的子集。如的子集。如的子集。如果果果果R(U)R(U)的任意一个可能的关系的任意一个可能的关系的任意一个可能的关系的任意一个可能的关系r r都存在着,对于都存在着,对于都存在着,对于都存在着,对于X X的每一个具体值,的每一个具体值,的每一个具体值,的每一个具体值,Y Y都有惟一的具体值与之对应,则称都有惟一的具体值与之对应,则称都有惟一的具体值与之对应,则称都有惟一的具体
35、值与之对应,则称X X函数决定函数决定函数决定函数决定Y Y,或,或,或,或Y Y函数依赖于函数依赖于函数依赖于函数依赖于X X,记为:,记为:,记为:,记为:X YX Y。称。称。称。称X X为决定因素,为决定因素,为决定因素,为决定因素,Y Y是依赖因素。是依赖因素。是依赖因素。是依赖因素。【定义【定义【定义【定义6 6】在】在】在】在R R(U U)中,如果)中,如果)中,如果)中,如果X XY Y,并且对于,并且对于,并且对于,并且对于X X的任何一个真子集的任何一个真子集的任何一个真子集的任何一个真子集XX,都有,都有,都有,都有XYXY,则称,则称,则称,则称Y Y对对对对X X完
36、全函数依赖,记作:完全函数依赖,记作:完全函数依赖,记作:完全函数依赖,记作:X YX Y【定义【定义【定义【定义7 7】在】在】在】在R(U)R(U)中,如果中,如果中,如果中,如果X XY Y,(Y(Y不属于不属于不属于不属于X)X),Y XY X,Y YZ Z,则,则,则,则称称称称Z Z对对对对X X传递函致依赖。传递函致依赖。传递函致依赖。传递函致依赖。3.3 规范化规范化本讲稿第十六页,共二十三页3.3.2 3.3.2 范式范式范式范式1.1.第一范式第一范式第一范式第一范式第一范式是关系模式满足所要遵循的最基本的条件,是所有范式第一范式是关系模式满足所要遵循的最基本的条件,是所有
37、范式第一范式是关系模式满足所要遵循的最基本的条件,是所有范式第一范式是关系模式满足所要遵循的最基本的条件,是所有范式的基础,即关系中的每个属性必须是不可再分的原子项,不能的基础,即关系中的每个属性必须是不可再分的原子项,不能的基础,即关系中的每个属性必须是不可再分的原子项,不能的基础,即关系中的每个属性必须是不可再分的原子项,不能是属性组合。是属性组合。是属性组合。是属性组合。【定义【定义【定义【定义8 8】如果关系模式】如果关系模式】如果关系模式】如果关系模式R R,其所有的属性均为简单属性,即每个属,其所有的属性均为简单属性,即每个属,其所有的属性均为简单属性,即每个属,其所有的属性均为简
38、单属性,即每个属性都是不可再分的,则称性都是不可再分的,则称性都是不可再分的,则称性都是不可再分的,则称R R属于第一范式(属于第一范式(属于第一范式(属于第一范式(First Normal FormFirst Normal Form),),),),简称为简称为简称为简称为1NF1NF,记作,记作,记作,记作REINFREINF。不满足第一范式条件的关系模式称之。不满足第一范式条件的关系模式称之。不满足第一范式条件的关系模式称之。不满足第一范式条件的关系模式称之为非规范化关系。为非规范化关系。为非规范化关系。为非规范化关系。3.3 3.3 规范化规范化规范化规范化本讲稿第十七页,共二十三页2.
39、2.第二范式第二范式第二范式第二范式【定义【定义【定义【定义9 9】设有关系模式】设有关系模式】设有关系模式】设有关系模式R R是属于是属于是属于是属于1NF1NF的关系模式,如果它的所有非的关系模式,如果它的所有非的关系模式,如果它的所有非的关系模式,如果它的所有非主属性都完全函数依赖于码,则称主属性都完全函数依赖于码,则称主属性都完全函数依赖于码,则称主属性都完全函数依赖于码,则称R R是第二范式的关系模式,记为是第二范式的关系模式,记为是第二范式的关系模式,记为是第二范式的关系模式,记为R R2NF2NF。3.3.第三范式第三范式第三范式第三范式【定义【定义【定义【定义1010】关系模式
40、】关系模式】关系模式】关系模式RR中若不存在这样的码中若不存在这样的码中若不存在这样的码中若不存在这样的码X X,属性组,属性组,属性组,属性组Y Y及非主属性及非主属性及非主属性及非主属性Z Z(Z Z不是不是不是不是Y Y的子集),使得的子集),使得的子集),使得的子集),使得X XY Y,(YX)Y(YX)YZ Z成立,成立,成立,成立,则称则称则称则称RR3NF3NF。由定义可以证明,若。由定义可以证明,若。由定义可以证明,若。由定义可以证明,若R R3NF3NF,则每,则每,则每,则每一个非主属性既不部分依赖于码也不传递依赖于码。一个非主属性既不部分依赖于码也不传递依赖于码。一个非主
41、属性既不部分依赖于码也不传递依赖于码。一个非主属性既不部分依赖于码也不传递依赖于码。4.BCNF4.BCNF【定义【定义【定义【定义1111】关系模式】关系模式】关系模式】关系模式RR是是是是1NF1NF,若,若,若,若X XY Y,且,且,且,且Y Y不是不是不是不是X X的子集时,的子集时,的子集时,的子集时,X X必含有码,那么称必含有码,那么称必含有码,那么称必含有码,那么称RR是是是是BCNFBCNF的模式。如果数据库模式中的模式。如果数据库模式中的模式。如果数据库模式中的模式。如果数据库模式中每个关系模式都属于每个关系模式都属于每个关系模式都属于每个关系模式都属于BCNFBCNF,
42、则称为,则称为,则称为,则称为BCNFBCNF的数据库模式。的数据库模式。的数据库模式。的数据库模式。3.3 规范化规范化本讲稿第十八页,共二十三页5.5.第四范式第四范式第四范式第四范式【定义【定义【定义【定义1212】关系模式】关系模式】关系模式】关系模式 ,如果对于,如果对于,如果对于,如果对于R R的每个非平凡多值的每个非平凡多值的每个非平凡多值的每个非平凡多值依赖依赖依赖依赖 ,X X都含有码,则称都含有码,则称都含有码,则称都含有码,则称 。关系规范化理论为数据库的逻辑结构设计提供了理论指南和关系规范化理论为数据库的逻辑结构设计提供了理论指南和关系规范化理论为数据库的逻辑结构设计提
43、供了理论指南和关系规范化理论为数据库的逻辑结构设计提供了理论指南和工具,但这些指南和工具在实际应用环境和现实世界具体实工具,但这些指南和工具在实际应用环境和现实世界具体实工具,但这些指南和工具在实际应用环境和现实世界具体实工具,但这些指南和工具在实际应用环境和现实世界具体实施数据库设计时应灵活掌握,关系的规范化程度越高,意味施数据库设计时应灵活掌握,关系的规范化程度越高,意味施数据库设计时应灵活掌握,关系的规范化程度越高,意味施数据库设计时应灵活掌握,关系的规范化程度越高,意味着关系的规范级别也越高,要求也越严格。着关系的规范级别也越高,要求也越严格。着关系的规范级别也越高,要求也越严格。着关
44、系的规范级别也越高,要求也越严格。3.3 规范化规范化本讲稿第十九页,共二十三页3.4.1 3.4.1 全关系系统的十二条基本准则全关系系统的十二条基本准则全关系系统的十二条基本准则全关系系统的十二条基本准则全关系型的系统应该完全地支持关系模型的所有特征,这是个原则。全关系型的系统应该完全地支持关系模型的所有特征,这是个原则。全关系型的系统应该完全地支持关系模型的所有特征,这是个原则。全关系型的系统应该完全地支持关系模型的所有特征,这是个原则。【准则【准则【准则【准则0 0】一个关系型的】一个关系型的】一个关系型的】一个关系型的DBMSDBMS必须能完全通过它的关系能力来管理数必须能完全通过它
45、的关系能力来管理数必须能完全通过它的关系能力来管理数必须能完全通过它的关系能力来管理数据库。据库。据库。据库。【准则【准则【准则【准则1 1】信息准则。关系型】信息准则。关系型】信息准则。关系型】信息准则。关系型DBMS DBMS 的所有信息都应在逻辑一级上用一的所有信息都应在逻辑一级上用一的所有信息都应在逻辑一级上用一的所有信息都应在逻辑一级上用一种方法即表中的值显式地表示。种方法即表中的值显式地表示。种方法即表中的值显式地表示。种方法即表中的值显式地表示。【准则【准则【准则【准则2 2】保证访问准则。依靠表名、主码和列名的组合保证能以逻】保证访问准则。依靠表名、主码和列名的组合保证能以逻】
46、保证访问准则。依靠表名、主码和列名的组合保证能以逻】保证访问准则。依靠表名、主码和列名的组合保证能以逻辑方式访问关系致据库中的每个数据项。辑方式访问关系致据库中的每个数据项。辑方式访问关系致据库中的每个数据项。辑方式访问关系致据库中的每个数据项。【准则【准则【准则【准则3 3】空值的系统化处理。全关系型的】空值的系统化处理。全关系型的】空值的系统化处理。全关系型的】空值的系统化处理。全关系型的DBMSDBMS应支持空值的概念,应支持空值的概念,应支持空值的概念,应支持空值的概念,并用系统化的方式处理空值。并用系统化的方式处理空值。并用系统化的方式处理空值。并用系统化的方式处理空值。【准则【准则
47、【准则【准则4 4】基于关系模型的动态的联机数据字典。】基于关系模型的动态的联机数据字典。】基于关系模型的动态的联机数据字典。】基于关系模型的动态的联机数据字典。【准则【准则5】统一的数据子语言准则。】统一的数据子语言准则。3.4 关系数据库系统的查询优化关系数据库系统的查询优化本讲稿第二十页,共二十三页【准则【准则【准则【准则6 6】视图更新准则】视图更新准则】视图更新准则】视图更新准则【准则【准则【准则【准则7 7】高级的插入、修改和删除操作关系系统的操作对象是】高级的插入、修改和删除操作关系系统的操作对象是】高级的插入、修改和删除操作关系系统的操作对象是】高级的插入、修改和删除操作关系系
48、统的操作对象是单一的关系。单一的关系。单一的关系。单一的关系。【准则【准则【准则【准则8 8】数据物理独立性。】数据物理独立性。】数据物理独立性。】数据物理独立性。【准则【准则【准则【准则9 9】数据逻辑独立性。】数据逻辑独立性。】数据逻辑独立性。】数据逻辑独立性。【准则【准则【准则【准则1010】数据完整性的独立性。】数据完整性的独立性。】数据完整性的独立性。】数据完整性的独立性。【准则【准则【准则【准则1111】分布独立性。】分布独立性。】分布独立性。】分布独立性。【准则【准则【准则【准则1212】无破坏准则。】无破坏准则。】无破坏准则。】无破坏准则。3.4 关系数据库系统的查询优化关系数
49、据库系统的查询优化本讲稿第二十一页,共二十三页3.4.2 3.4.2 查询优化的准则查询优化的准则查询优化的准则查询优化的准则1)1)选择运算尽早进行。选择运算尽早进行。选择运算尽早进行。选择运算尽早进行。2)2)合并笛卡尔乘积与其后的选择运算为连接运算。合并笛卡尔乘积与其后的选择运算为连接运算。合并笛卡尔乘积与其后的选择运算为连接运算。合并笛卡尔乘积与其后的选择运算为连接运算。3)3)把投影运算和选择运算同时进行。把投影运算和选择运算同时进行。把投影运算和选择运算同时进行。把投影运算和选择运算同时进行。4)4)把投影运算与其后的其他运算同时进行,以避免重复多次扫描文件。把投影运算与其后的其他
50、运算同时进行,以避免重复多次扫描文件。把投影运算与其后的其他运算同时进行,以避免重复多次扫描文件。把投影运算与其后的其他运算同时进行,以避免重复多次扫描文件。5)5)事先处理文件。事先处理文件。事先处理文件。事先处理文件。6)6)存储公用的子表达式。存储公用的子表达式。存储公用的子表达式。存储公用的子表达式。3.4 关系数据库系统的查询优化关系数据库系统的查询优化本讲稿第二十二页,共二十三页现今数据库用户使用的关系型数据库管理系统主要有:现今数据库用户使用的关系型数据库管理系统主要有:现今数据库用户使用的关系型数据库管理系统主要有:现今数据库用户使用的关系型数据库管理系统主要有:SQL SQL