第2章关系数据库理论基础_第1页
第2章关系数据库理论基础_第2页
第2章关系数据库理论基础_第3页
第2章关系数据库理论基础_第4页
第2章关系数据库理论基础_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、第2章关系数据库理论基础 数据库应用教程数据库应用教程 第2章关系数据库理论基础 本章主要内容 关系数据模型的完整性约束关系数据模型的完整性约束 关系数据库的基本概念关系数据库的基本概念 关系的数学定义关系的数学定义 关系的规范化关系的规范化 关系代数关系代数 主要内容主要内容 第2章关系数据库理论基础 2.1 关系数据库的基本概念关系数据库的基本概念 2.1.1 关系与关系模式关系与关系模式 1关系与关系模式的概念关系与关系模式的概念 在关系模型中,实体和实体之间的联系都由单一的数据结构在关系模型中,实体和实体之间的联系都由单一的数据结构关系关系 来描述,关系数据库是由一张或多张相关联的表(

2、关系)组成。对关来描述,关系数据库是由一张或多张相关联的表(关系)组成。对关 系的结构的描述,称为该关系的关系模式,也就是一个关系的型系的结构的描述,称为该关系的关系模式,也就是一个关系的型 。 2关系模式的表示关系模式的表示 如果给定一个关系名为如果给定一个关系名为R,其属性名为,其属性名为A1,A2,AN,则关系模,则关系模 式可以表示为:式可以表示为: R(A1,A2,AN) 。 Student(Name,Sex,Birthday,Major) 第2章关系数据库理论基础 2.1 关系数据库的基本概念关系数据库的基本概念 2.1.2 关系数据库与关系数据库模式关系数据库与关系数据库模式 1

3、关系数据库模式关系数据库模式 一个关系数据库的逻辑结构是所有关系模式(包括关系的名称、属性一个关系数据库的逻辑结构是所有关系模式(包括关系的名称、属性 名称、关键字及可能提供的有关数据完整性约束规则及安全性控制要名称、关键字及可能提供的有关数据完整性约束规则及安全性控制要 求)的集合,人们习惯称之为关系数据库模式。求)的集合,人们习惯称之为关系数据库模式。 2关系数据库关系数据库 关系数据库模式中所有的关系模式的具体关系的集合称之为关系数据关系数据库模式中所有的关系模式的具体关系的集合称之为关系数据 库。关系数据库模式是数据的库。关系数据库模式是数据的“型型”的表示,而关系数据库则是数据的表示

4、,而关系数据库则是数据 的的“值值”的表示。的表示。 第2章关系数据库理论基础 Student(StuNo,StuName,Sex,Major,Birthday,Department, BirthPlace) CourseSelect(CurNo,CourseName,Hours,StuNo,Score) 第2章关系数据库理论基础 2.1 关系数据库的基本概念关系数据库的基本概念 2.1.3 视图视图 1概念概念 视图通常是由关系数据库模式的某关系中满足用户给定条件的若干视图通常是由关系数据库模式的某关系中满足用户给定条件的若干 属性列或元组组成,也可以是对若干个不同关系进行关系运算的结属性列

5、或元组组成,也可以是对若干个不同关系进行关系运算的结 果,它反映的是局部逻辑结构。形象地说视图好比窗口,它能反映果,它反映的是局部逻辑结构。形象地说视图好比窗口,它能反映 一个表或若干个表的局部数据。视图也有自己的名字、属性和元组,一个表或若干个表的局部数据。视图也有自己的名字、属性和元组, 可以把它看作一个特殊类型的表。视图一旦定义,用户就可以把它可以把它看作一个特殊类型的表。视图一旦定义,用户就可以把它 当作表一样看待,可以对它进行查询,甚至还可以进行修改或插入当作表一样看待,可以对它进行查询,甚至还可以进行修改或插入 操作,不过这种修改和插入操作最终都要转化为对表的操作。操作,不过这种修

6、改和插入操作最终都要转化为对表的操作。 2视图与表的区别视图与表的区别 视图和表的一个重要区别在于:表是存放实际数据的,而视图本身视图和表的一个重要区别在于:表是存放实际数据的,而视图本身 并不存放实际数据,它只是被定义成对应一个表或多个表的部分数并不存放实际数据,它只是被定义成对应一个表或多个表的部分数 据。实际数据并不依赖于视图而是依赖于表存放在数据库中的,因据。实际数据并不依赖于视图而是依赖于表存放在数据库中的,因 此人们也称视图为此人们也称视图为“虚表虚表”。 第2章关系数据库理论基础 第2章关系数据库理论基础 2.1 关系数据库的基本概念关系数据库的基本概念 2.1.4 关键字及其相

7、关概念关键字及其相关概念 1超关键字超关键字 在二维表中,能够唯一地确定元组的一个属性或几个属性的组合称在二维表中,能够唯一地确定元组的一个属性或几个属性的组合称 为为“超关键字超关键字”。超关键字虽然能唯一地确定元组,但是它所包含。超关键字虽然能唯一地确定元组,但是它所包含 的属性可能是有多余的。的属性可能是有多余的。 2候选关键字候选关键字 如果一个超关键字去掉其中任何一个属性后不再能唯一地确定元组,如果一个超关键字去掉其中任何一个属性后不再能唯一地确定元组, 则称它为则称它为“候选关键字候选关键字”(Candidate Key)。候选关键字既能唯)。候选关键字既能唯 一地确定元组,它包含

8、的成份又是最精练的。一地确定元组,它包含的成份又是最精练的。 3主关键字主关键字 二维表的候选关键字有很多,从二维表的候选关键字中,选出一个二维表的候选关键字有很多,从二维表的候选关键字中,选出一个 可作为可作为“主关键字主关键字”(Primary Key)。对于表中的每个元组来说,)。对于表中的每个元组来说, 主关键字必须包含一个不同于其他元组的唯一的值。主关键字的各主关键字必须包含一个不同于其他元组的唯一的值。主关键字的各 个分量均不能为空。个分量均不能为空。 第2章关系数据库理论基础 2.1 关系数据库的基本概念关系数据库的基本概念 2.1.4 关键字及其相关概念关键字及其相关概念 4外

9、关键字外关键字 如果如果F是关系是关系R1的一个或一组属性,但的一个或一组属性,但F不是不是R1的主关键字,并且的主关键字,并且 F是另一个关系是另一个关系R2的主关键字或与其主关键字相对应,则称的主关键字或与其主关键字相对应,则称F是关是关 系系R1的外关键字。的外关键字。 5主属性和非主属性主属性和非主属性 包含在任一候选关键字中的属性称为主属性,不包含在任何候选关包含在任一候选关键字中的属性称为主属性,不包含在任何候选关 键字中的属性称非主属性。键字中的属性称非主属性。 第2章关系数据库理论基础 2.2 关系数据模型的完整性约束关系数据模型的完整性约束 1概念概念 关系模式一般用关系模式

10、一般用R(A1,A2,AN)表示,它说明了关系的语)表示,它说明了关系的语 法,但并不是每个符合语法的元组都能成为关系法,但并不是每个符合语法的元组都能成为关系R的元素,它还要的元素,它还要 受到语义的限制。数据的语义不但会限制属性的值(如学生选课成受到语义的限制。数据的语义不但会限制属性的值(如学生选课成 绩不能为负数且必须在某个范围内),而且还应反映关系间的联系绩不能为负数且必须在某个范围内),而且还应反映关系间的联系 (如学生选课表的学生必须是学生基本信息表中登记的学生)。以(如学生选课表的学生必须是学生基本信息表中登记的学生)。以 上所述的语义约束,可以用来保证数据库中数据的正确性,称

11、为关上所述的语义约束,可以用来保证数据库中数据的正确性,称为关 系数据模型的完整性约束。系数据模型的完整性约束。 2分类分类 实体完整性约束、参照完整性约束和用户自定义完整性约束。实体完整性约束、参照完整性约束和用户自定义完整性约束。 第2章关系数据库理论基础 2.2 关系数据模型的完整性约束关系数据模型的完整性约束 (1)实体完整性约束实体完整性约束 实体完整性约束是指在关系中的任何一个元组,主关键字的任一分实体完整性约束是指在关系中的任何一个元组,主关键字的任一分 量都不允许为空。这是因为在一个关系中,关键字是唯一标识一个量都不允许为空。这是因为在一个关系中,关键字是唯一标识一个 元组的,

12、如果主关键字的属性中某些成分为空,则将难以判断该元元组的,如果主关键字的属性中某些成分为空,则将难以判断该元 组与其他元组的区别。组与其他元组的区别。 (2)参照完整性约束参照完整性约束 参照完整性约束规定了外关键字的取值:外关键字要么取空值,要参照完整性约束规定了外关键字的取值:外关键字要么取空值,要 么等于对应关系中某个元组中的主关键字值么等于对应关系中某个元组中的主关键字值 。 (3)用户完整性约束用户完整性约束 实体完整性约束和引用完整性约束适用于任何关系数据库系统,而实体完整性约束和引用完整性约束适用于任何关系数据库系统,而 用户自定义完整性约束反映某一具体应用所涉及的数据必须满足的

13、用户自定义完整性约束反映某一具体应用所涉及的数据必须满足的 语义要求,由用户根据具体的语义定义的完整性约束。语义要求,由用户根据具体的语义定义的完整性约束。 第2章关系数据库理论基础 2.3 关系的数学定义关系的数学定义 1.笛卡尔积的直观含义笛卡尔积的直观含义 某小区三个家庭,有成年男性某小区三个家庭,有成年男性3名,儿童名,儿童2名,把成年男性看成一个集名,把成年男性看成一个集 合合F,把儿童看成一个集,把儿童看成一个集S,如下:,如下: F=李正勇李正勇, 李道义李道义, 李泽世李泽世; S=李宏剑李宏剑, 李亚兵李亚兵。 若若F集合和集合和S集合存在着父子关系,则可能的父子关系如下:集

14、合存在着父子关系,则可能的父子关系如下: (李正勇(李正勇, 李宏剑),(李正勇李宏剑),(李正勇, 李亚兵),(李道义李亚兵),(李道义, 李宏剑),(李道李宏剑),(李道 义义, 李亚兵),(李泽世李亚兵),(李泽世, 李宏剑),(李泽世李宏剑),(李泽世, 李亚兵)李亚兵) 在数学上把这种由两个或多个集合中的值的所有可能组合称在数学上把这种由两个或多个集合中的值的所有可能组合称“笛卡笛卡 尔积尔积”,本题的,本题的“笛卡尔积笛卡尔积”可记为:可记为:FS。 2.3.1 从日常生活中看关系的含义从日常生活中看关系的含义 2.关系的直观含义关系的直观含义 实际的父子关系只有两种:实际的父子关

15、系只有两种:(李正勇(李正勇, 李宏剑),(李泽世李宏剑),(李泽世, 李亚李亚 兵)兵)。它是笛卡积的一个子集,是一个实际的。它是笛卡积的一个子集,是一个实际的“关系关系”。 第2章关系数据库理论基础 2.3 关系的数学定义关系的数学定义 1域域 域(域(Domain)是值的集合。如:)是值的集合。如:0到到100之间的整数之间的整数,小学小学,初中初中, 高中高中,大专大专,本科本科,硕研硕研,博研博研,男男,女女等都是域。域中元素的个数称为域的等都是域。域中元素的个数称为域的 基数,例如有下列集合:基数,例如有下列集合: D1=李小军,张亚平,周平李小军,张亚平,周平,表示单位人员的集合

16、;,表示单位人员的集合; D2=教授,副教授,讲师,助教教授,副教授,讲师,助教,表示职称的集合;,表示职称的集合; D3=已婚,未婚,再婚已婚,未婚,再婚,表示婚姻情况的集合,表示婚姻情况的集合 。 2.3.2 关系的数学定义关系的数学定义 第2章关系数据库理论基础 2.3 关系的数学定义关系的数学定义 2笛卡尔积笛卡尔积 2.3.2 关系的数学定义关系的数学定义 第2章关系数据库理论基础 【例例2-1】学生关系例。有以下三个域:学生关系例。有以下三个域: D1=武洪运,张小萍武洪运,张小萍,学生姓名集合;,学生姓名集合; D2=男,女男,女,学生性别集合;,学生性别集合; D3=计算机应用

17、,计算机软件计算机应用,计算机软件,学生专业集合。,学生专业集合。 求求D1D2D3。 第2章关系数据库理论基础 2.3 关系的数学定义关系的数学定义 3关系关系 2.3.2 关系的数学定义关系的数学定义 第2章关系数据库理论基础 2.4 关系代数关系代数 1关系数据操作关系数据操作 数据库系统的目的就是利用计算机来维护机构中的各种有用的信息,数据库系统的目的就是利用计算机来维护机构中的各种有用的信息, 并使之能满足机构中用户的需要,因此用户就应该能够利用并使之能满足机构中用户的需要,因此用户就应该能够利用DBMS来操来操 作数据库中的数据,这种操作包括增加、删除、修改与查询。在关系数作数据库

18、中的数据,这种操作包括增加、删除、修改与查询。在关系数 据库中把这些操作称为关系数据操作。据库中把这些操作称为关系数据操作。 2关系数据操作的特点关系数据操作的特点 两个基本特点:一是一次操作可存取多个元组;二是语言的非过程两个基本特点:一是一次操作可存取多个元组;二是语言的非过程 化,即用户只需要告诉化,即用户只需要告诉DBMS需要做什么而不需要告诉它怎样去做。关需要做什么而不需要告诉它怎样去做。关 系的数据操作语言根据其所反映的数学意义可分成两大类:关系代数与系的数据操作语言根据其所反映的数学意义可分成两大类:关系代数与 关系演算。关系演算。 3关系代数的种类关系代数的种类 关系代数是直接

19、应用关系运算来表达操作目的,关系代数运算可分关系代数是直接应用关系运算来表达操作目的,关系代数运算可分 为传统的集合运算和专门的关系运算两大类。其中,传统的集合运算有为传统的集合运算和专门的关系运算两大类。其中,传统的集合运算有 并、交、差、关系的笛卡尔积等运算,专门的关系运算有选择、投影、并、交、差、关系的笛卡尔积等运算,专门的关系运算有选择、投影、 连接、除法等运算连接、除法等运算 。 第2章关系数据库理论基础 2.4 关系代数关系代数 传统集合运算的一般特点传统集合运算的一般特点 传统的集合运算是二目运算,运算是在两个关系的行上进行。除关系传统的集合运算是二目运算,运算是在两个关系的行上

20、进行。除关系 的笛卡尔积以外,参加运算的两个关系必须是并相容的,即两个关系应有的笛卡尔积以外,参加运算的两个关系必须是并相容的,即两个关系应有 相同的属性,且相应的属性值都取自同一个域。运算结果是两个关系中若相同的属性,且相应的属性值都取自同一个域。运算结果是两个关系中若 干个完整元组的集合。干个完整元组的集合。 2.4.1 传统的集合运算传统的集合运算 第2章关系数据库理论基础 2.4 关系代数关系代数 1并运算并运算(UNION) 两个关系两个关系R1和和R2相并,结果产生一个新关系相并,结果产生一个新关系R3,该关系由全体属于,该关系由全体属于 R1或属于或属于R2的元组组成,记作的元组

21、组成,记作R3=R1R2 。 2.4.1 传统的集合运算传统的集合运算 【例例2-2】求求RS。 解:两个关系的并运算的结果也是一个关系,运算结果如表解:两个关系的并运算的结果也是一个关系,运算结果如表2-8所示。所示。 第2章关系数据库理论基础 2.4 关系代数关系代数 2交运算(交运算(INTERSECTION) 两个关系两个关系R1和和R2的交运算产生一个新关系的交运算产生一个新关系R3,该关系由既属于,该关系由既属于R1同同 时又属于时又属于R2的元组组成,记作的元组组成,记作R3=R1R2 。 2.4.1 传统的集合运算传统的集合运算 【例例2-3】 求求RS。 解:两个关系的交运算

22、的结果也是一个关系,运算结果如表解:两个关系的交运算的结果也是一个关系,运算结果如表2-9所示。所示。 第2章关系数据库理论基础 2.4 关系代数关系代数 3差运算(差运算(DIFFERENCE) 两个关系两个关系R1和和R2的差运算产生一个新的关系的差运算产生一个新的关系R3,该关系由属于,该关系由属于R1但但 不属于不属于R2的元组组成,记为的元组组成,记为R3=R1-R2。 2.4.1 传统的集合运算传统的集合运算 【例例2-4】求求R-S。 解:两个关系的差运算的结果也是一个关系,运算结果如表解:两个关系的差运算的结果也是一个关系,运算结果如表2-10所示。所示。 第2章关系数据库理论

23、基础 2.4 关系代数关系代数 4关系的笛卡尔积关系的笛卡尔积 设设R1为为M元(有元(有M个属性)关系,个属性)关系,R2为为N元关系,元关系,R1和和R2的笛卡的笛卡 尔积产生一个新关系尔积产生一个新关系R3,R3由由R1的所有元组与的所有元组与R2的所有元组组合连的所有元组组合连 接而成的具有(接而成的具有(M+N)个属性的元组组成。新关系中的前)个属性的元组组成。新关系中的前M个属性是个属性是 R1的一个元组,后的一个元组,后N个属性为个属性为R2的一个元组,则称的一个元组,则称R3是关系是关系R1和和R2 的笛卡尔积,记作的笛卡尔积,记作R3=R1R2。 可见关系的笛卡尔积也是二目运

24、算,但它和并、交、差运算不一可见关系的笛卡尔积也是二目运算,但它和并、交、差运算不一 样,它并不要求参加运算的两个关系是并相容的。样,它并不要求参加运算的两个关系是并相容的。 2.4.1 传统的集合运算传统的集合运算 【例例2-5】求求RS。关系。关系R如表如表2-11所示,关系所示,关系S如表如表2-12所示。所示。 解:两个关系的笛卡尔积,是它们的所示元组所有可能的组合,计算出来的解:两个关系的笛卡尔积,是它们的所示元组所有可能的组合,计算出来的RS 如图如图2-13所示。所示。 第2章关系数据库理论基础 第2章关系数据库理论基础 2.4 关系代数关系代数 专门的关系运算包括选择、投影、连

25、接(包括内连接、自然连接、专门的关系运算包括选择、投影、连接(包括内连接、自然连接、 左外连接、右外连接和全外连接)、除法等运算,与传统的集合运算左外连接、右外连接和全外连接)、除法等运算,与传统的集合运算 不同点可概括成两个方面:不同点可概括成两个方面: (1)不是所有的运算都是在行上进行,某些运算是在关系的列上)不是所有的运算都是在行上进行,某些运算是在关系的列上 进行的;进行的; (2)可以是单目运算也可以是双目运算。)可以是单目运算也可以是双目运算。 2.4.2 专门的关系运算专门的关系运算 第2章关系数据库理论基础 2.4 关系代数关系代数 1选择运算(选择运算(SELECTION)

26、 选择运算是从某个给定的关系中筛选出满足限定条件的元组子集选择运算是从某个给定的关系中筛选出满足限定条件的元组子集 组成一个新的关系,它是一元关系运算,可以定义为:组成一个新的关系,它是一元关系运算,可以定义为: 2.4.2 专门的关系运算专门的关系运算 表达式表达式F中使用的运算符主要有:中使用的运算符主要有: 比较运算符:比较运算符:、=、; 逻辑运算符:(非)、逻辑运算符:(非)、(与)、(与)、(或)。(或)。 其作用是从关系其作用是从关系R中选取满足条件中选取满足条件F的元组。的元组。“t”表示元组。表示元组。F为条为条 件,是由常数、变量、属性名、算术运算符、关系运算符及逻辑运算件

27、,是由常数、变量、属性名、算术运算符、关系运算符及逻辑运算 符组成的逻辑表达式,符组成的逻辑表达式,R是关系名。是关系名。 第2章关系数据库理论基础 2.4 关系代数关系代数 【例例2-6】要从表要从表2-6表示的关系表示的关系R中找出所有的计算机系的学生,请写出相应的中找出所有的计算机系的学生,请写出相应的 关系表达式。关系表达式。 解:本题是从关系中选出符合条件的元组,因此是选择运算,可表示如下:解:本题是从关系中选出符合条件的元组,因此是选择运算,可表示如下: 2.4.2 专门的关系运算专门的关系运算 第2章关系数据库理论基础 2.4 关系代数关系代数 2投影(投影(PROJECTION

28、)运算)运算 选择运算是从某个关系中选取一个满足给定条件的行的子集,而选择运算是从某个关系中选取一个满足给定条件的行的子集,而 投影运算是对关系中的列进行运算,是从指定的关系中选取一个列的投影运算是对关系中的列进行运算,是从指定的关系中选取一个列的 子集构成一个新的关系,其表示形式如下:子集构成一个新的关系,其表示形式如下: 2.4.2 专门的关系运算专门的关系运算 其中其中A是关系是关系R的属性集的一个子集,的属性集的一个子集,tA表示只取元组表示只取元组t中相应中相应 A属性中的分量。属性中的分量。 第2章关系数据库理论基础 2.4 关系代数关系代数 2投影(投影(PROJECTION)运

29、算)运算 【例例2-6】列出表列出表2-6表示的关系表示的关系R的所有的学号、姓名和专业。的所有的学号、姓名和专业。 解:要查询某些列的信息,应使用投影运算,投影表达式如下:解:要查询某些列的信息,应使用投影运算,投影表达式如下: 2.4.2 专门的关系运算专门的关系运算 第2章关系数据库理论基础 2.4 关系代数关系代数 3连接运算(连接运算(JOIN) 连接运算是从两个关系的笛卡尔积中选取属性间满足一定条件的元连接运算是从两个关系的笛卡尔积中选取属性间满足一定条件的元 组,组成一个新的关系。连接运算也可以表示为:组,组成一个新的关系。连接运算也可以表示为: 2.4.2 专门的关系运算专门的

30、关系运算 其中其中R1和和R2是两个不同的关系名,是两个不同的关系名,Ai和和Bj分别代表分别代表R1的第的第i个属性个属性 和和R2的第的第j个属性;个属性; 代表比较运算符(即代表比较运算符(即 、 、 、 、 等)。表示从等)。表示从 笛卡尔积笛卡尔积R1R2上选取上选取R1的第的第 i属性值与属性值与R2的第的第j个属性值符合个属性值符合 条件条件 的那些元组组成一个新的关系。的那些元组组成一个新的关系。 第2章关系数据库理论基础 第2章关系数据库理论基础 第2章关系数据库理论基础 2.4 关系代数关系代数 3连接运算(连接运算(JOIN) (1)内连接()内连接(Inner Join

31、) 当连接条件中的运算符是当连接条件中的运算符是“=”时,为等值联接。若等值联接的联时,为等值联接。若等值联接的联 接属性是公共属性,且在连接结果中不消除重复属性时,此等值联接接属性是公共属性,且在连接结果中不消除重复属性时,此等值联接 称为内连接。称为内连接。 2.4.2 专门的关系运算专门的关系运算 【例例2-8】求如表求如表2-16和表和表2-17所示的两个关系所示的两个关系R1和和R2的内连接的结果。的内连接的结果。 解:内连接是接照同名属性进行等值联接,且在联接的结果中不消除重复解:内连接是接照同名属性进行等值联接,且在联接的结果中不消除重复 属性,故属性,故R1和和R2的内连接的结

32、构如表的内连接的结构如表2-19所示。所示。 第2章关系数据库理论基础 2.4 关系代数关系代数 3连接运算(连接运算(JOIN) (2)自然连接运算()自然连接运算(Natural join) 连接运算中最有实用价值的一类运算是自然连接运算。它只要求连接运算中最有实用价值的一类运算是自然连接运算。它只要求 参与运算的两个关系在同名属性上具有相同的值,由于同名属性上的参与运算的两个关系在同名属性上具有相同的值,由于同名属性上的 值相同,所以在产生的结果关系中同名属性也只出现一次。值相同,所以在产生的结果关系中同名属性也只出现一次。 关系关系R1和和R2的自然连接运算可表示为:的自然连接运算可表

33、示为:R1R2。 2.4.2 专门的关系运算专门的关系运算 【例例2-9】求如表求如表2-16和表和表2-17所示的两个关系所示的两个关系R1和和R2的自然联接的结果。的自然联接的结果。 解:自然联接是在内连接的基础上去掉重复属性。本题的结果如表解:自然联接是在内连接的基础上去掉重复属性。本题的结果如表2-20所示。所示。 该运算其实分三步完成:第一步求出该运算其实分三步完成:第一步求出R1与与R2的笛卡尔积;第二步在笛的笛卡尔积;第二步在笛 卡尔积中找出卡尔积中找出R1.StuNo与与R2.StuNo值相同的元组;第三步是去掉两个值相同的元组;第三步是去掉两个 相同的相同的StuNo属性中的

34、一个。属性中的一个。 第2章关系数据库理论基础 2.4 关系代数关系代数 3连接运算(连接运算(JOIN) (3)左外连接()左外连接(Left outer join) 在实际运算中,有时需要在连接的结果中,保留左边关系与联接条件在实际运算中,有时需要在连接的结果中,保留左边关系与联接条件 不相匹配的元组,把这种连接称为左外连接不相匹配的元组,把这种连接称为左外连接 。 2.4.2 专门的关系运算专门的关系运算 【例例2-10】求如表求如表2-16和表和表2-17所示的两个关系所示的两个关系R1和和R2的左外连接的结果。的左外连接的结果。 解:左外连接是在内连接的基础加上左边与联接条件不相匹配

35、的元组,不匹配解:左外连接是在内连接的基础加上左边与联接条件不相匹配的元组,不匹配 的元组右边的属性补空值。本题的结果如表的元组右边的属性补空值。本题的结果如表2-21所示。所示。 第2章关系数据库理论基础 2.4 关系代数关系代数 3连接运算(连接运算(JOIN) (4)右外连接()右外连接(Right outer join) 在实际运算中,也可能需要在连接的结果中,保留右边关系与连接条在实际运算中,也可能需要在连接的结果中,保留右边关系与连接条 件不相匹配的元组,把这种连接称为右外连接。件不相匹配的元组,把这种连接称为右外连接。 2.4.2 专门的关系运算专门的关系运算 【例例2-11】求

36、如表求如表2-16和表和表2-17所示的两个关系所示的两个关系R1和和R2的右外连接的结果。的右外连接的结果。 解:右外连接是在内连接的基础上加上右边与联接条件不相匹配的元组,不匹解:右外连接是在内连接的基础上加上右边与联接条件不相匹配的元组,不匹 配的元组左边的属性补空值。本题的结果如表配的元组左边的属性补空值。本题的结果如表2-22所示。所示。 第2章关系数据库理论基础 2.4 关系代数关系代数 3连接运算(连接运算(JOIN) (5)全外连接()全外连接(Full outer join) 是左外连接与右外连接的组合。是左外连接与右外连接的组合。 2.4.2 专门的关系运算专门的关系运算

37、【例例2-12】求如表求如表2-16和表和表2-17所示的两个关系所示的两个关系R1和和R2的全外连接的结果。的全外连接的结果。 解:全外连接是在内连接的基础上加上左边关系及右边关系与联接条件不相匹解:全外连接是在内连接的基础上加上左边关系及右边关系与联接条件不相匹 配的元组,不匹配元组的其它属性补空值。本题的结果如表配的元组,不匹配元组的其它属性补空值。本题的结果如表2-23所示。所示。 第2章关系数据库理论基础 第2章关系数据库理论基础 【例例2-13】关系关系R如表如表2-24所示,关系所示,关系S如表如表2-25所示,求所示,求RS。 第2章关系数据库理论基础 2.4 关系代数关系代数

38、 1基本关系代数运算基本关系代数运算 并、差、笛卡尔积、选择和投影并、差、笛卡尔积、选择和投影5种运算是基本关系代数运算,其种运算是基本关系代数运算,其 它关系运算可用这它关系运算可用这5种运算的组合加以表示。种运算的组合加以表示。 2关系的完备性关系的完备性 在以关系为基本数据结构的数据库中,以上述在以关系为基本数据结构的数据库中,以上述5种基本关系代数为种基本关系代数为 基础构造的数据子语言,可以实现人们所需要的对数据的所有查询和基础构造的数据子语言,可以实现人们所需要的对数据的所有查询和 更新操作。更新操作。E.F.Codd把关系代数的这种处理能力称为关系完备性,这把关系代数的这种处理能

39、力称为关系完备性,这 一概念后来进一步发展为关系数据库管理系统的一个重要的评价标准。一概念后来进一步发展为关系数据库管理系统的一个重要的评价标准。 即在一个系统中,如果它的关系操作语言与关系代数等价,即即在一个系统中,如果它的关系操作语言与关系代数等价,即5种基本种基本 关系运算均可用其操作语言实现,则说明该系统的关系操作是完备的,关系运算均可用其操作语言实现,则说明该系统的关系操作是完备的, 可以实现人们对数据库的任何查询和更新操作。可以实现人们对数据库的任何查询和更新操作。 第2章关系数据库理论基础 n1.1.存储异常存储异常 n2.2.函数依赖的基本概念函数依赖的基本概念 n3.3.关系

40、规范化的过程关系规范化的过程 2.5 关系的规范化关系的规范化 n4.4.关系分解的正确性关系分解的正确性 第2章关系数据库理论基础 2.5 关系的规范化关系的规范化 1.实例实例 某校教务部要建立一个数据库来处理学生选课信息的情况,面某校教务部要建立一个数据库来处理学生选课信息的情况,面 临的对象有:学生、系和课程三个对象。对象具有的属性如下:临的对象有:学生、系和课程三个对象。对象具有的属性如下: (1)学生:学号()学生:学号(StuNo)、姓名()、姓名(StuName)、专业)、专业 (StuMajor);); (2)系:系号()系:系号(DepartNo)、系主任()、系主任(De

41、partDean) (3)课程:课号()课程:课号(CourseNo)、课程名()、课程名(CourseName) 通过分析可知上述对象之间有如下联系:通过分析可知上述对象之间有如下联系: (1)一个系有若干学生,但一个学生只属于一个系;)一个系有若干学生,但一个学生只属于一个系; (2)一个系只有一个系主任;)一个系只有一个系主任; (3)一名学生可以选修多门课程,每门课程可由多名学生选修;)一名学生可以选修多门课程,每门课程可由多名学生选修; (4)每名学生选修每门课程均有一个成绩()每名学生选修每门课程均有一个成绩(Score) 。 2.5.1 存储异常存储异常 第2章关系数据库理论基础

42、 2.5 关系的规范化关系的规范化 2.两种数据库模式两种数据库模式 方案方案1:采用一个总的关系模式:采用一个总的关系模式: Jxgl(StuNo,StuName, StuMajor,DepartNo, DepartDean,CourseNo,CourseName,Score) 2.5.1 存储异常存储异常 方案方案2:采用四个关系模式:采用四个关系模式: Student(StuNo, StuName, StuMajor, DepartNo) Department(DepartNo, DepartDean) Course(CourseNo,CourseName) CourseSelect(S

43、tuNo, CourseNo, Score) 第2章关系数据库理论基础 2.5 关系的规范化关系的规范化 3.第一种方案可能遇到的问题第一种方案可能遇到的问题 方案方案1:采用一个总的关系模式:采用一个总的关系模式: Jxgl(StuNo,StuName, StuMajor,DepartNo, DepartDean,CourseNo,CourseName,Score) 2.5.1 存储异常存储异常 (1)数据冗余度大)数据冗余度大 (2)修改麻烦)修改麻烦 (3)插入异常)插入异常 (4)删除异常)删除异常 4.存储异常的原因存储异常的原因 存储异常出现的根本原因是关系模式内部各属性之间的内在

44、相关性。存储异常出现的根本原因是关系模式内部各属性之间的内在相关性。 第2章关系数据库理论基础 2.5 关系的规范化关系的规范化 1.函数依赖函数依赖 设设R为一给定关系,如果对于为一给定关系,如果对于R中的属性组中的属性组X的每一个值,的每一个值,R中中 的属性组的属性组Y只有唯一的值与之对应,则称只有唯一的值与之对应,则称X函数决定函数决定Y或或Y函数依赖函数依赖 于于X。其符号表示为。其符号表示为XY。其中。其中X称为决定因素。称为决定因素。 2.5.2 函数依赖的基本概念函数依赖的基本概念 函数依赖(函数依赖(FDFunctional Dependence )是指关系中属)是指关系中属

45、 性间的依存关系。性间的依存关系。 如在上例的关系模式:如在上例的关系模式: Jxgl (StuNo,StuName, StuMajor,DepartNo, DepartDean,CourseNo,CourseName,Score) ) 存在如下函数依赖:存在如下函数依赖: StuNo(StuName,StuMajor,DepartNo) DepartNoDepartDeam (StuNo,CoruseNo)Score。 第2章关系数据库理论基础 2.5 关系的规范化关系的规范化 1.函数依赖函数依赖 2.5.2 函数依赖的基本概念函数依赖的基本概念 对于关系对于关系R中的属性组中的属性组Y和

46、和X,若,若X不能函数决定不能函数决定Y则用符号表示则用符号表示 为:为: 如在上述关系中,有:如在上述关系中,有: 判定的注意事项:关系中各属性间的函数依赖与关系的所有取值判定的注意事项:关系中各属性间的函数依赖与关系的所有取值 相关。即相应关系中只要有一个元组的有关属性值不满足函数依赖相关。即相应关系中只要有一个元组的有关属性值不满足函数依赖 的定义,相对应的函数依赖就不成立。故判断一个关系中是否存在的定义,相对应的函数依赖就不成立。故判断一个关系中是否存在 某种函数依赖,关键是要清楚地了解关系中各属性在客观应用中的某种函数依赖,关键是要清楚地了解关系中各属性在客观应用中的 语义,通晓其所

47、有可能的取值情况及相互关系。语义,通晓其所有可能的取值情况及相互关系。 第2章关系数据库理论基础 2.5 关系的规范化关系的规范化 2完全函数依赖完全函数依赖 2.5.2 函数依赖的基本概念函数依赖的基本概念 设设R为任一给定关系,为任一给定关系,X,Y为其属性或属性组,若为其属性或属性组,若XY,且对,且对X中中 的任何真子集的任何真子集X 都有都有 X Y,则称,则称Y完全函数依赖于完全函数依赖于X。记作:。记作: 完全关系依赖:完全关系依赖: StuNo(StuName,StuMajor,DepartNo); DepartNoDepartDeam; (StuNo,CoruseNo)Sco

48、re 第2章关系数据库理论基础 2.5 关系的规范化关系的规范化 3部分函数依赖部分函数依赖 2.5.2 函数依赖的基本概念函数依赖的基本概念 设设R为任一给定关系,为任一给定关系,X,Y为其属性或属性组,若为其属性或属性组,若XY,且在,且在X中存中存 在一个真子集在一个真子集X ,满足,满足 XY,则称,则称Y部分函数依赖于部分函数依赖于X。记作:。记作: 部分关系依赖:部分关系依赖: (StuNo,CoruseNo)DepartNo yx p 第2章关系数据库理论基础 2.5 关系的规范化关系的规范化 1范式范式 2.5.3 关系规范化的过程关系规范化的过程 为了评价一个关系模式集合的优

49、劣,规范化理论得以提出并研究。早为了评价一个关系模式集合的优劣,规范化理论得以提出并研究。早 在在1971年,关系模型的创始人年,关系模型的创始人E.F.Codd即致力于规范化理论的研究,并即致力于规范化理论的研究,并 且提出了且提出了1NF、2NF、3NF的概念(的概念(Normal FormNF,用来描述关,用来描述关 系规范化的等级)。系规范化的等级)。 范式之间存在包含关系,即属于高级范式的关系一定属于低级范式。范式之间存在包含关系,即属于高级范式的关系一定属于低级范式。 这种范式之间的包含情况如下:这种范式之间的包含情况如下: NFNFNFBCNFNFNF12345 2关系的规范化关

50、系的规范化 一个非规范化的范式或低一级范式的关系模式,通过模式分解可以转一个非规范化的范式或低一级范式的关系模式,通过模式分解可以转 换为若干个高一级范式的关系模式的集合,这个过程称关系的规范化。换为若干个高一级范式的关系模式的集合,这个过程称关系的规范化。 第2章关系数据库理论基础 2.5 关系的规范化关系的规范化 3第一范式第一范式 2.5.3 关系规范化的过程关系规范化的过程 任给关系任给关系R,如果,如果R中每一属性的值域中的每一个值都是不可分解的,中每一属性的值域中的每一个值都是不可分解的, 则则R为第一范式,记作为第一范式,记作R1NF。 关系模式关系模式Jxgl(StuNo,St

51、uName, StuMajor,DepartNo, DepartDean,CourseNo, CourseName,Score)也是第一范式的关系)也是第一范式的关系 。 第2章关系数据库理论基础 2.5 关系的规范化关系的规范化 4第二范式第二范式 2.5.3 关系规范化的过程关系规范化的过程 任给关系任给关系R,若,若R1NF,且其所有非主属性都完全函数依赖于主关,且其所有非主属性都完全函数依赖于主关 键字,则键字,则R为第二范式,记作为第二范式,记作R2NF 。 考察以下关系:考察以下关系: Jxgl(StuNo,StuName, StuMajor,DepartNo, DepartDean,CourseNo,CourseName,Score) 函数依赖关系如下:函数依赖关系如下: 第2章关系数据库理论基础 2.5 关系的规范化关系的规范化 4第二范式第二范式 2.5.3 关系规范化的过程关系规范化的过程 分解原则:将满足部分函数依赖的属性和满足完全函数依赖的属性分别分分解原则:将满足部分函数依赖的属性和满足完全函数依赖的属性分别分 离出来并组成多个关系,以获得更高一级的关系。离出来并组成多个关系,以获得更高一级的关系。 分解得到的关系如下:分解得到的关系如下: CourseSelect(StuNo, Course

温馨提示

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

评论

0/150

提交评论