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

下载本文档

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

文档简介

1、关系数据库是目前应用最广泛,也是最重要、最流行的数据库。关系数据库是目前应用最广泛,也是最重要、最流行的数据库。本节本节 将介绍关系数据库的一些基本理论,包括关系数据结构、关系将介绍关系数据库的一些基本理论,包括关系数据结构、关系的完整性、关系代数、关系数据库管理系统及关系数据库标准语言。的完整性、关系代数、关系数据库管理系统及关系数据库标准语言。回到目录回到目录 数据库模型依赖于数据的存储模式,即数据存储的模式不同,数据库的性数据库模型依赖于数据的存储模式,即数据存储的模式不同,数据库的性质亦不同。质亦不同。以关系模型作为数据的组织存储方式的数据库称为关系数据库以关系模型作为数据的组织存储方

2、式的数据库称为关系数据库。 关系数据库采用数学的方法来处理数据库中的数据,是建立在严密的数学关系数据库采用数学的方法来处理数据库中的数据,是建立在严密的数学基础之上的一种数据组织存储方式。关系数据库理论是基础之上的一种数据组织存储方式。关系数据库理论是IBM公司的公司的E.F.Codd 提提出来的,他从出来的,他从1970年开始连续发表了多篇论文,奠定了关系数据库的理论基础。年开始连续发表了多篇论文,奠定了关系数据库的理论基础。 从从1975 年到年到1979 年的年的5月间,关系方法的理论和软件系统的研制取得了很月间,关系方法的理论和软件系统的研制取得了很大成功,大成功,IBM 公司的公司的

3、 San Jose实验室在实验室在 IBM370系列机上研制成功了一个实现系列机上研制成功了一个实现SQL语言的关系数据库实验系统原型语言的关系数据库实验系统原型System R。1981年年IBM公司又宣布具有公司又宣布具有System R全部特征的新的数据库软件产品全部特征的新的数据库软件产品SQL/DS问世。之后,问世。之后,IBM公司又将公司又将SQL语言引入到语言引入到DB2(IBM Data Base 2)中,配置在中,配置在MVS上运行,并于上运行,并于1983年年推出了推出了DB2产品。产品。 20世纪世纪70年代末期,美国加州大学伯克利分校也研制了年代末期,美国加州大学伯克利

4、分校也研制了 Ingres关系数据库关系数据库实验系统,并由实验系统,并由Ingres公司发展成为公司发展成为Ingres数据库产品。数据库产品。本章首页本章首页 在前面已经非形式化地介绍了关系模型及有关的基本概念。在关在前面已经非形式化地介绍了关系模型及有关的基本概念。在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系来表示。关系模型是建立在集合代数基础上的,这里将从集合角度系来表示。关系模型是建立在集合代数基础上的,这里将从集合角度给出关系数据结构的形式化定义。给出关系数据结构的形式化定义。 其中,其中,D1 、

5、D2 、D3 为域名,分别表示教师关系中姓名、性别和为域名,分别表示教师关系中姓名、性别和年龄的集合。域名无排列次序,如年龄的集合。域名无排列次序,如D2 =男,女男,女=女,男。女,男。 1关系的数学定义关系的数学定义(1)域()域(Domain) 定义定义1: 域是一组具有相同数据类型的值的集合,又称为值域(用域是一组具有相同数据类型的值的集合,又称为值域(用D 表示)。例如整数、实数和字符串的集合都是域。域中所包含的表示)。例如整数、实数和字符串的集合都是域。域中所包含的值的个数称为域的基数(用值的个数称为域的基数(用m 表示)。在关系中就是用域来表示属表示)。在关系中就是用域来表示属性

6、的取值范围的。性的取值范围的。例:例:D1 =李力,王平,刘伟,李力,王平,刘伟,m1=3D2 =男,女;男,女;m2 = 2D3 =18,20,18;m3 = 3本章首页本章首页定义定义2 给定一组域给定一组域D1,D2,Dn,这些域可以完全不同,也可以这些域可以完全不同,也可以部分或全部相同。部分或全部相同。D1,D2,Dn,的笛卡儿积为的笛卡儿积为 D1D2Dn=(d1,d2,dn,),)叫做一个叫做一个n元组,或简称为元组。元素中每一个元组,或简称为元组。元素中每一个值值di叫做一个分量。若叫做一个分量。若Di为为 有限集,其基数为有限集,其基数为mi(i=1,2,n), 则则D1D2

7、Dn的基数为的基数为niimm1 笛卡儿积可表示为一个笛卡儿积可表示为一个二维表二维表。表中的每行对应一个元组,表中的。表中的每行对应一个元组,表中的每列对应一个域。如果我们给出三个域:每列对应一个域。如果我们给出三个域: D1=王芳,王雷,李平王芳,王雷,李平(学生集合)学生集合)D2=男,女(性别集合)男,女(性别集合)D3=计算机语言,数据结构,计算机网络(课程集合)计算机语言,数据结构,计算机网络(课程集合)则则D1D2D3= 本章首页本章首页本节首页本节首页(2)笛卡儿积()笛卡儿积(Cartesian Product) 共有共有323=18个元组。个元组。 其中(王芳,男,计算机语

8、言),(王雷,男,数据结构其中(王芳,男,计算机语言),(王雷,男,数据结构 ),),(李平,男,计算机网络)等都是元组。王芳、男、计算机(李平,男,计算机网络)等都是元组。王芳、男、计算机语言、王天雷、男、数据库系统与应用、郑蕾、男、计算机网络等都语言、王天雷、男、数据库系统与应用、郑蕾、男、计算机网络等都是分量。该笛卡儿积的基数为是分量。该笛卡儿积的基数为323=18,这也就是说,这也就是说D1D2D3一一(3)关系()关系(Relation) 定义定义3 D1D2Dn的子集叫做在域的子集叫做在域D1D2Dn上的关系,上的关系, 用用R(D1D2Dn)表示。这里表示。这里R表示关系的名字,

9、表示关系的名字,n 是是 关系的目或度,也称为元数。关系的目或度,也称为元数。 本章首页本章首页本节首页本节首页上一页上一页王芳王芳男男计算机语言计算机语言王雷王雷男男计算机语言计算机语言李平李平男男计算机语言计算机语言王芳王芳男男数据结构数据结构王雷王雷男男数据结构数据结构李平李平男男数据结构数据结构王芳王芳男男计算机网络计算机网络王雷王雷男男计算机网络计算机网络李平李平男男计算机网络计算机网络王芳王芳女女计算机语言计算机语言王雷王雷女女计算机语言计算机语言李平李平女女计算机语言计算机语言王芳王芳女女数据结构数据结构王雷王雷女女数据结构数据结构李平李平女女数据结构数据结构王芳王芳女女计算机网

10、络计算机网络王雷王雷女女计算机网络计算机网络李平李平女女计算机网络计算机网络关系中的每个元素是关系中的元组。关系中的每个元素是关系中的元组。元关系,以此类推。元关系,以此类推。段,元组则被称为记录。段,元组则被称为记录。关系是笛卡尔积的子集,所以关系也是一个二维表,表的每行对关系是笛卡尔积的子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域,由于域可以相同,为了加以区分,应一个元组,表的每列对应一个域,由于域可以相同,为了加以区分,必须对每列起一个名字。关系中的每一列称为属性,列名称为属性名,必须对每列起一个名字。关系中的每一列称为属性,列名称为属性名,n 目关系必有目关系

11、必有n 个属性。个属性。在定义中,在定义中,n=1的关系只含有一个属性,称为单元关系。的关系只含有一个属性,称为单元关系。n=2为二为二在在 SQL Server 数据库中,通常关系被称为数据表,属性被称为字数据库中,通常关系被称为数据表,属性被称为字学生选课表学生选课表(姓名,性别,所选课程)(姓名,性别,所选课程)如下表给出了一张学生选课表,该表由学生姓名、性别和所选课程如下表给出了一张学生选课表,该表由学生姓名、性别和所选课程组成,该关系的名字为学生选课表,属性名就是域名,即姓名,性别和组成,该关系的名字为学生选课表,属性名就是域名,即姓名,性别和所选课程,这个关系可表示为所选课程,这个

12、关系可表示为姓名姓名性别性别所选课程所选课程王芳王芳男男计算机语言计算机语言王天王天女女数据库系统及应用数据库系统及应用郑蕾郑蕾男男计算机网络计算机网络本章首页本章首页本节首页本节首页上一页上一页 在关系模型中,关键字在关系模型中,关键字(简称键简称键)是一个重要概念,通常由一个或是一个重要概念,通常由一个或多个属性组成。多个属性组成。3)外键外键。如果一个关系。如果一个关系R1中包含有另一个关系中包含有另一个关系R2的主键所对应的属性组的主键所对应的属性组F,则称,则称F为为R1的的外键外键,并称关系,并称关系R1为为参照关系参照关系,关系,关系R2为为信赖关系信赖关系。1)候选键。候选键。

13、如果一个属性集能惟一标识元组,且又不含有多余的属性,如果一个属性集能惟一标识元组,且又不含有多余的属性,那么这个属性集称为关系的候选键。那么这个属性集称为关系的候选键。2)主键。主键。如果一个关系中有多个候选键,则可选定其中一个为关系的主键。如果一个关系中有多个候选键,则可选定其中一个为关系的主键。例如,学生关系和系部关系分别为:例如,学生关系和系部关系分别为:R1:学生学生(学号,姓名,性别,年龄,系编号学号,姓名,性别,年龄,系编号) R2:系部系部(系编号,系名,系主任系编号,系名,系主任) 学生关系学生关系R1的主键为学号,系部关系的主键为学号,系部关系R2的主键为系编号,在的主键为系

14、编号,在R1中系中系编号是它的外键,即系编号是编号是它的外键,即系编号是R2的主键,将它作为外键放在的主键,将它作为外键放在R1中,实中,实现两关系的联系。现两关系的联系。4)主属性和非主属性。主属性和非主属性。包含在任何一个候选主键字中的属性称为主属性,包含在任何一个候选主键字中的属性称为主属性,不包含在任何一个候选关键字中的属性称为非主属性。不包含在任何一个候选关键字中的属性称为非主属性。本章首页本章首页本节首页本节首页上一页上一页2关系模式关系模式关系模式是对关系的描述,通常它包括关系名、组成该关系的多关系模式是对关系的描述,通常它包括关系名、组成该关系的多个属性名、域名、属性向域的映像

15、(即属性与域之间的映像关系)等个属性名、域名、属性向域的映像(即属性与域之间的映像关系)等4 个部分。通常记为个部分。通常记为R(D1,D2,Dn),),R 为关系名,为关系名,D1,D2,Dn为属性名。属性向域的映像常用属性的类型、长度来说明。关系为属性名。属性向域的映像常用属性的类型、长度来说明。关系实际上就是关系模式在某一时刻的状态或内容。也就是说关系模式是实际上就是关系模式在某一时刻的状态或内容。也就是说关系模式是型,关系模式就是二维表的表框架或结构,它相当于文件结构或者记型,关系模式就是二维表的表框架或结构,它相当于文件结构或者记录结构。关系是它们的值。在实际中,常常把关系模式和关系

16、统称为录结构。关系是它们的值。在实际中,常常把关系模式和关系统称为关系,大家可以从上下文中加以区别。关系,大家可以从上下文中加以区别。设关系名为设关系名为REL,其属性为其属性为A1,A2,An,则关系模式为:则关系模式为:REL (A1,A2,An)对每个对每个Ai(i=1,n)还包括该属性到值域的映象,即属性的取值范围还包括该属性到值域的映象,即属性的取值范围(1)关系模型)关系模型所有的关系模式、属性名和关键字的汇集,是模式描述的对象所有的关系模式、属性名和关键字的汇集,是模式描述的对象本章首页本章首页本节首页本节首页上一页上一页(2)关系数据库模式关系数据库模式一组关系模式的集合叫作关

17、系数据库模式。一组关系模式的集合叫作关系数据库模式。 关系数据库模式是对关系数据库结构的描述,或者说是对关系数据关系数据库模式是对关系数据库结构的描述,或者说是对关系数据库框架的描述,也就是前面所讲过的关系的头,可以看作是关系的型。库框架的描述,也就是前面所讲过的关系的头,可以看作是关系的型。与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,成与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,成为关系数据库的实例,即前面所讲过的关系体,可以看作是关系的值。为关系数据库的实例,即前面所讲过的关系体,可以看作是关系的值。例如,在教学数据库中,共有五个关系,其关系模式分别为:例如

18、,在教学数据库中,共有五个关系,其关系模式分别为:学生(学号,姓名,性别,年龄,系别)学生(学号,姓名,性别,年龄,系别)教师(教师号,姓名,性别,年龄,职称,工资,岗位津贴,系别)教师(教师号,姓名,性别,年龄,职称,工资,岗位津贴,系别)课程(课程号,课程名,课时)课程(课程号,课程名,课时)选课(学号,课程名,成绩)选课(学号,课程名,成绩)授课(教师号,课程号)授课(教师号,课程号)在每个关系中,又有其相应的数据库的实例(元组)。在每个关系中,又有其相应的数据库的实例(元组)。本章首页本章首页本节首页本节首页上一页上一页 关系模型的完整性规则是对关系的某种约束条件。关系的完整性约关系模

19、型的完整性规则是对关系的某种约束条件。关系的完整性约束条件包括束条件包括三三大类:实体完整性,参照完整性和用户定义的完整性。大类:实体完整性,参照完整性和用户定义的完整性。1实体完整性(实体完整性(Entity Integrity)实体完整性是指主关系键的值不能为空或部分为空实体完整性是指主关系键的值不能为空或部分为空 在任何关系的任何一个元组中,主键的任一分量都不允许为空值,在任何关系的任何一个元组中,主键的任一分量都不允许为空值,即若属性即若属性 A是基本关系是基本关系 R的主属性,则属性的主属性,则属性 A不能取空值,也即要求关不能取空值,也即要求关系中元组在组成主键的属性上不能有空值。

20、系中元组在组成主键的属性上不能有空值。 因为在一个关系中,主键是惟一标识一个元组的,因而它也是惟一标因为在一个关系中,主键是惟一标识一个元组的,因而它也是惟一标识该元组所表示的某个实体的。识该元组所表示的某个实体的。 如果主键属性中某些分量为空值,将难以判断该元组与其他元组的区如果主键属性中某些分量为空值,将难以判断该元组与其他元组的区别。这将带来复杂的语义问题,禁止主键属性值为空值即可避免这一问题。别。这将带来复杂的语义问题,禁止主键属性值为空值即可避免这一问题。 例如,在学生关系例如,在学生关系 “ 学生自然情况(学号,班级号,姓名,性别,学生自然情况(学号,班级号,姓名,性别,出生年月,

21、入学成绩)出生年月,入学成绩)”中,中,“ 学号学号 ”为主键,那么为主键,那么“学号学号”这个属性这个属性不能取空值。不能取空值。本章首页本章首页2参照完整性(参照完整性(Referential Integrity) 现实世界中的实体之间往往存在某种联系,在关系模型中实体及实现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。我们先引进一个用。我们先引进一个“外键外键”的概念。的概念。 若某个属性或属性不是关系若某个属性或属性不是关系 A 的主码,但它是另一关

22、系的主码,但它是另一关系B的主码,的主码,则该属性或属性组称为关系则该属性或属性组称为关系A 的外键。在关系的外键。在关系A 中,外键或取空值或者中,外键或取空值或者等于关系等于关系 B中某个元组的主码值。中某个元组的主码值。例:有两个基本关系为例:有两个基本关系为学生表(学号,班级号,姓名,性别,出生年月,入学成绩)学生表(学号,班级号,姓名,性别,出生年月,入学成绩)班级表(班级号,班级名称,所属系部,入学时间,系别)班级表(班级号,班级名称,所属系部,入学时间,系别)学生表的主码为学号,而班级表的主码为班级号,因而班级号学生表的主码为学号,而班级表的主码为班级号,因而班级号是学生表的外键

23、。是学生表的外键。按照参照完整性,学生表中的外键即班级号的取值有两种可能:按照参照完整性,学生表中的外键即班级号的取值有两种可能: 取空值,表明该学生尚未分配到任何班级取空值,表明该学生尚未分配到任何班级 若取非空值,则它必须是参照关系班级表中某个元组中的班若取非空值,则它必须是参照关系班级表中某个元组中的班 级号的值,因为该学生不能属于一个不存在的班级级号的值,因为该学生不能属于一个不存在的班级本章首页本章首页本节首页本节首页3 用户定义的完整性用户定义的完整性(User-defined Integrity)任何关系数据库系统都应该支持实体完整性和参照完整性。除此之任何关系数据库系统都应该支

24、持实体完整性和参照完整性。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束用户定义的完整性就是针对某一具体关系数据库的约束条件由应用环境决定的。条件由应用环境决定的。它反映一具体应用所涉及的数据必须满足的语它反映一具体应用所涉及的数据必须满足的语义要求。例如某个属性必须取惟一值,某些属性值之间应满足一定的函义要求。例如某个属性必须取惟一值,某些属性值之间应满足一定的函数关系,学生的年龄定义为两位整数,且范围在数关系,学生的年龄定义为两位整

25、数,且范围在15 30之间,性别只接之间,性别只接受受“男男”或或“女女”等等。系统提供定义和检验这类完整性的机制,以便用统等等。系统提供定义和检验这类完整性的机制,以便用统一的系统方法处理它们,而不再由应用程序承担这项工作。一的系统方法处理它们,而不再由应用程序承担这项工作。在关系的完整性规则中,实体完整性和参照完整性是关系模在关系的完整性规则中,实体完整性和参照完整性是关系模型必须型必须满足的完整性的约束条件,被称做是关系的两个关系不变性,应满足的完整性的约束条件,被称做是关系的两个关系不变性,应由关系由关系系统自动支持;而用户完整性反映了用户的要求,是用户自行定义的。系统自动支持;而用户

26、完整性反映了用户的要求,是用户自行定义的。本章首页本章首页本节首页本节首页上一页上一页 关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达式,它是用对关系的运算来表达查询的。统表达式,它是用对关系的运算来表达查询的。 任何一种运算都是将一定的运算操作应用于一定的运算对象上,任何一种运算都是将一定的运算操作应用于一定的运算对象上,得到预期的运算结果。所以得到预期的运算结果。所以运算对象、运算符、运算结果运算对象、运算符、运算结果是运算的是运算的三三大要素。大要素。关系代数的运算对象是关系,运算结果亦为关系。关系代数的运算对象是关

27、系,运算结果亦为关系。 关系代数的运算符包括四类:集合运算符、专门的关系运算符、关系代数的运算符包括四类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符(比较运算符和逻辑运算符(如如下页(表下页(表一)一)所示)所示) 关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类。其中传统的集合运算将关系看成元组的集合,其运算关系运算两类。其中传统的集合运算将关系看成元组的集合,其运算是从关系的是从关系的“水平水平”方向即行的角度来进行的。而专门的关系运算不方向即行的角度来进行的。而专门的关系运算不仅涉及行而且涉及列。比较运

28、算符和逻辑运算符是用来辅助专门的关仅涉及行而且涉及列。比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。系运算符进行操作的。 本章首页本章首页运算符分类运算符分类运算符运算符含义含义集合运算符集合运算符并运算并运算差运算差运算交运算交运算专门的关系运算符专门的关系运算符笛卡儿积笛卡儿积选择运算选择运算投影运算投影运算连接运算连接运算除法运算除法运算比较运算符比较运算符大于大于大于等于大于等于小于小于小于等于小于等于等于等于不等于不等于逻辑运算符逻辑运算符非运算非运算与运算与运算或运算或运算(表一)(表一)本章首页本章首页返回返回2.5.3.1 传统的集合运算传统的集合运算定义定义 设

29、关系设关系R和关系和关系S具有相同的关系模式(即两个关系都有相同的属性),具有相同的关系模式(即两个关系都有相同的属性),且相应的属性取自同一个域,则关系且相应的属性取自同一个域,则关系R和关系和关系S的并是由属于关系的并是由属于关系R或或 关系关系S的元组构成的集合,即的元组构成的集合,即R和和S的所有元组合并,删去重复元组,的所有元组合并,删去重复元组, 组成一组成一个新关系,其结果仍为个新关系,其结果仍为n目关系。目关系。 记为记为RS=t|tRtS 其中其中t是元组变量,关系是元组变量,关系R和关系和关系S的元数相同。的元数相同。 对于关系数据库,记录的插入和添加可通过并运算实现。对于

30、关系数据库,记录的插入和添加可通过并运算实现。 (1)并()并(Union)定义定义 设关系设关系R和关系和关系S具有相同的关系模式,具有相同的关系模式,R和和 S的差是由属于的差是由属于 R但不属于但不属于 S 的所有元组构成的集合,即的所有元组构成的集合,即 R中删去与中删去与 S中相同的元组,组成一个新中相同的元组,组成一个新 关系,其结果仍为关系,其结果仍为n目关系。目关系。 记为记为R-S=t|tRtS,R和和S元数相同。元数相同。 通过差运算,可实现关系数据库记录的删除。通过差运算,可实现关系数据库记录的删除。 (2)差()差(Difference)本章首页本章首页本节首页本节首页

31、上一页上一页定义定义 设关系设关系R和关系和关系S具有相同的关系模式,具有相同的关系模式,R和和S的交是由属于的交是由属于R又属于又属于S 的元组构成的集合。的元组构成的集合。 记为记为RS=t|tRtS 如果两个关系没有相同的元组,那么他们的交为空。如果两个关系没有相同的元组,那么他们的交为空。 两个关系的并和差运算为基本运算(即不能用其他运算表达),而交两个关系的并和差运算为基本运算(即不能用其他运算表达),而交 运算为非基本运算,交运算可以用差运算来表示。运算为非基本运算,交运算可以用差运算来表示。 RS= R-(R-S) (3)交()交(Intersection)本章首页本章首页本节首

32、页本节首页上一页上一页(4)笛卡儿积()笛卡儿积(Cartesian Product)定义定义 设关系设关系R和关系和关系S的元数分别为的元数分别为 m和和 n。定义定义 R和和 S的笛卡儿积是一个的笛卡儿积是一个(m+ n)元的元组集合,每个元组的前元的元组集合,每个元组的前 m个分量(属性值)来自个分量(属性值)来自R的的一个元组,后一个元组,后 n个分量自个分量自 S的一个元组。的一个元组。记为记为RS t|t(tm,tn) tmRtnS若若R有有k1个元组,个元组,S有有k2个元组,则个元组,则RS有有k1k2个元组。个元组。 例:设有两个关系例:设有两个关系R和和S,且且R和和S具有

33、相同的关系模式,则分别求出关具有相同的关系模式,则分别求出关 系系R和关系和关系S的并、差、交和笛卡儿积,如下图所示。的并、差、交和笛卡儿积,如下图所示。 ABCabcdgfxyzABCebcdgfABCabcdgfxyzeycabcxyzABCdgfABCABCabcbeaabcdgfdgfbeadgfdgfxyzbeaxyzdgf关系关系R关系关系S关系关系RS关系关系R-S关系关系RS关系关系RS本章首页本章首页本节首页本节首页上一页上一页2.5.3.2 专门的关系运算专门的关系运算 由于传统的集合运算,只是从行的角度进行,而要灵活地实现由于传统的集合运算,只是从行的角度进行,而要灵活地

34、实现关系数据库多样的查询操作,必须引入专门的关系运算。关系数据库多样的查询操作,必须引入专门的关系运算。(1)选择()选择(selection) )(|)(真tFRttRF定义定义 选择操作是根据某些条件对关系进行水平分割,即在关系选择操作是根据某些条件对关系进行水平分割,即在关系 R中中 选取符合条件的元组。选取符合条件的元组。 记作记作 其中其中F表示选择条件,它是一个逻辑表达式,取逻辑值表示选择条件,它是一个逻辑表达式,取逻辑值真真或或假假 逻辑表达式逻辑表达式F的基本形式为的基本形式为X1 Y1X2 Y2,其中,其中, 为比较运为比较运算符,它可以是,算符,它可以是,或,或。X1,Y1

35、等是属性名、常量等是属性名、常量或简单函数。属性名也可以用它的列序号来代替。或简单函数。属性名也可以用它的列序号来代替。表示逻辑运算符,表示逻辑运算符,它可以是它可以是,或或。 表示可选项,即表示可选项,即 中的部分可以省略。中的部分可以省略。 因此选择运算实际上是关系因此选择运算实际上是关系R中选取使逻辑表达式中选取使逻辑表达式F为真的元组。为真的元组。这是从行的角度进行的运算。这是从行的角度进行的运算。本章首页本章首页本节首页本节首页上一页上一页为了说明选择关系运算,这里假设有学生关系为了说明选择关系运算,这里假设有学生关系student,如下表所如下表所示示 学号学号姓名姓名性别性别出生

36、年月出生年月入学成绩入学成绩981001姜英奇姜英奇男男77-6-26512991001张丹张丹女女78-1-3419991002雷拓雷拓男男78-8-28579201002苏湘婷苏湘婷女女80-1-10558201003萧易寒萧易寒男男81-10-9520例:从学生关系例:从学生关系student中查询入学成绩大于中查询入学成绩大于520分的学生信息。分的学生信息。)()(5205520studentstudent或入学成绩运算式为运算式为运算结果如下表所示运算结果如下表所示学号学号姓名姓名性别性别出生年月出生年月入学成绩入学成绩991002雷拓雷拓男男78-8-28579201002苏湘婷

37、苏湘婷女女80-1-10558本章首页本章首页本节首页本节首页上一页上一页例:从学生关系例:从学生关系student中查询性别为女的学生信息。中查询性别为女的学生信息。 )()(3studentstudent女女性别或运算式为运算式为运算结果如下表所示运算结果如下表所示学号学号姓名姓名性别性别出生年月出生年月入学成绩入学成绩991001张丹张丹女女78-1-3419201002苏湘婷苏湘婷女女80-1-10558(2)投影()投影(Projection) |)(RtAtRA定义定义 关系关系R上的投影操作是从上的投影操作是从R中选择出若干属性列组成新的关系。中选择出若干属性列组成新的关系。 记

38、作记作 其中其中 A为为 R中的属性列投影操作是从列的角度进行的运算,即对中的属性列投影操作是从列的角度进行的运算,即对 关系关系R进行垂直分割,消去某些列,并重新安排列的顺序,再删进行垂直分割,消去某些列,并重新安排列的顺序,再删 去重复的元组。去重复的元组。 本章首页本章首页本节首页本节首页上一页上一页例:从学生关系例:从学生关系student中查询学生姓名和入学成绩两个属性信息。中查询学生姓名和入学成绩两个属性信息。)()(5 . 2,studentstudent或入学成绩姓名运算式为运算式为运算结果如右表所示运算结果如右表所示姓名姓名入学成绩入学成绩姜英奇姜英奇512张丹张丹419雷拓

39、雷拓579苏湘婷苏湘婷558萧易寒萧易寒520(3)连接()连接(Join)|BtAtStRtttSRsrsrsrBA定义定义 连接是指从两个关系的笛卡儿积中选取属性值满足一定条件的连接是指从两个关系的笛卡儿积中选取属性值满足一定条件的 元组。记作元组。记作 其中其中A,B分别为分别为 R和和 S上可比的属性组,上可比的属性组,是比较运算符。连是比较运算符。连 接运算从接运算从R和和S的笛卡儿积的笛卡儿积RS中选取中选取R关系在关系在A属性组上的值属性组上的值 与与S关系在关系在B属性组上值满足比较关系的属性组上值满足比较关系的元组。元组。本章首页本章首页本节首页本节首页上一页上一页连接运算中

40、两种最为连接运算中两种最为重要最为常用的连接重要最为常用的连接等值连接等值连接自然连接自然连接|BtAtStRtttSRsrsrsrBA为为“=”的连接运算称为的连接运算称为等值连接等值连接。它是从关系。它是从关系R和和S的笛卡儿积的笛卡儿积中选取中选取A,B属性值相等的那些元组。属性值相等的那些元组。即等值连接为即等值连接为|BtAtStRtrsSRsrsrtt自然连接自然连接是一种特殊的等值连接,它要求两个关系中进行比较的是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若即若R

41、和和S具有相同的属性组具有相同的属性组B。则自然连接可记作则自然连接可记作一般的连接操作是从行的角度进行运算。但自然连接还需要取消一般的连接操作是从行的角度进行运算。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。重复列,所以是同时从行和列的角度进行运算。本章首页本章首页本节首页本节首页上一页上一页例:设有关系例:设有关系R和和关系关系S如下表如下表学号学号.|SRSR求求 和和 ,及,及RS的值。的值。求解结果见下图。求解结果见下图。学号学号.|SRSR=学号学号姓名姓名 性别性别出生年月出生年月971101 张宾张宾男男78-9-9971102 王雷王雷女女78-8-1098

42、1102 许宁许宁男男79-2-17992101 姜江姜江女女80-11-14学号学号 入学成绩入学成绩971101532971102512981102489992101520R.学号学号 姓名姓名 性别性别出生年月出生年月 S.学号学号 入学成绩入学成绩971101 张宾张宾男男78-9-9971102512971101 张宾张宾男男78-9-9981102489971101 张宾张宾男男78-9-9992101520971102 王雷王雷女女78-8-10 981102489971102 王雷王雷女女78-8-10 992101520981102 许宁许宁男男79-2-17 9921015

43、20R.学号学号 姓名姓名 性别性别出生年月出生年月 S.学号学号 入学成绩入学成绩971101 张宾张宾男男78-9-9971101532971102 王雷王雷女女78-8-10 971102512981102 许宁许宁男男79-2-17 981102489992101 姜江姜江女女80-11-14 992101520本章首页本章首页本节首页本节首页上一页上一页关系关系 R关系关系 S的运算结果的运算结果 学号学号.|SRSRRS|R.学号=S.学号的运算结果的运算结果 的运算结果的运算结果 SR R.学号学号 姓名姓名 性别性别出生年月出生年月入学成绩入学成绩971101 张宾张宾男男78

44、-9-9532971102 王雷王雷女女78-8-10512981102 许宁许宁男男79-2姜江姜江女女80-11-14520本章首页本章首页本节首页本节首页上一页上一页(4)除法()除法(Division)定义定义 给定关系给定关系R(X,Y)和和S(Y,Z),),其中其中X,Y,Z为属为属性组,性组,R 中的中的Y 与与S中的中的Y可以有不同的属性名,但必须出自相可以有不同的属性名,但必须出自相同的域集。同的域集。R与与S的除法运算得到一个新的关系的除法运算得到一个新的关系P(X),),P 是是 R中满足下列条件的元组在中满足下列条件的元组在X属性列上的投影:元

45、组在属性列上的投影:元组在 X上分量值上分量值 x的象集的象集Yx包含包含S在在Y上投影的集合。上投影的集合。其中其中YX为为x在在R中的中的象集象集,x=trX除法操作是同时从行和列角度进行运算除法操作是同时从行和列角度进行运算记作记作RS=trX|trRYx r(S)例:设有关系例:设有关系R和关系和关系S如下图所示,求如下图所示,求RS的值。的值。在关系在关系R 中,姓名,性别可以取中,姓名,性别可以取3个值个值(王雷,女),(张宾,男),(许宁,男)(王雷,女),(张宾,男),(许宁,男) 其中:其中:(王雷,女)的象集为(王雷,女)的象集为计算机语言计算机语言;(张宾,男)的象集为(

46、张宾,男)的象集为数据库原理,操作系统,计算机语数据库原理,操作系统,计算机语言,汇编语言言,汇编语言;(许宁,男)的象集为(许宁,男)的象集为汇编语言汇编语言;本章首页本章首页本节首页本节首页上一页上一页关系关系 S在选修课程上的投影为在选修课程上的投影为计算机语言,数据库原理,计算机语言,数据库原理,操作系统,汇编语言操作系统,汇编语言。显然只有(张宾,男)的象集包含显然只有(张宾,男)的象集包含 S在选修课程属性上在选修课程属性上的投影,所以的投影,所以RS=(张宾,男)张宾,男)。姓名姓名性别性别选修课程选修课程王雷王雷女女计算机语言计算机语言张宾张宾男男数据库原理数据库原理张宾张宾男

47、男操作系统操作系统张宾张宾男男计算机语言计算机语言张宾张宾男男汇编语言汇编语言许宁许宁男男汇编语言汇编语言选修课程选修课程学分学分计算机语言计算机语言6数据库原理数据库原理5操作系统操作系统8汇编语言汇编语言7姓名姓名性别性别张宾张宾男男关系关系R关系关系SRS的运算结果为的运算结果为 2.5.3.3 关系代数表达式及其应用举例关系代数表达式及其应用举例在关系代数运算中,我们已经介绍了在关系代数运算中,我们已经介绍了9种关系代数运算。种关系代数运算。其中并、差、笛卡儿积、投影和选择其中并、差、笛卡儿积、投影和选择5种运算为基本的运算。种运算为基本的运算。运算即交、连接、自然连接、除法均可以用这

48、运算即交、连接、自然连接、除法均可以用这 5 种基本运算种基本运算经过有限次复合来表达。这种表达式称为经过有限次复合来表达。这种表达式称为关系代数表达式关系代数表达式。其运算结果仍是一个关系。其运算结果仍是一个关系。我们可以用关系代数表达式表示各种数据查询操作。我们可以用关系代数表达式表示各种数据查询操作。【例】设数据库中有【例】设数据库中有3个关系:个关系:学生关系(学号,班级号,姓名,出生年月,入学成绩)学生关系(学号,班级号,姓名,出生年月,入学成绩)选修关系(学号,课程号,成绩)选修关系(学号,课程号,成绩)课程关系(课程号,课程名称,学分)课程关系(课程号,课程名称,学分)下面用关系

49、代数表达式表达每个查询语句下面用关系代数表达式表达每个查询语句(1)检索相应课程号为)检索相应课程号为01003的学生的学号与成绩。的学生的学号与成绩。)(01003,选修关系课程号成绩学号表达式为表达式为本章首页本章首页本节首页本节首页上一页上一页)(0100323, 1选修关系 该式表示先对选修关系执行选择操作,然后执行投影操作。表达式中该式表示先对选修关系执行选择操作,然后执行投影操作。表达式中也可以不写属性名,而直接写上属性的序号。也可以不写属性名,而直接写上属性的序号。如该题也可用表达式如该题也可用表达式 来实现。来实现。(2)检索相应课程号为)检索相应课程号为01003的学生学号与

50、姓名。的学生学号与姓名。)(01003,选修关系学生关系课程号姓名学号表达式为表达式为 由于这个查询涉及到学生关系和选修关系,因此先要对这两个关系执由于这个查询涉及到学生关系和选修关系,因此先要对这两个关系执行自然连接操作,然后再执行选择和投影操作。行自然连接操作,然后再执行选择和投影操作。)(,课程关系选修关系学生关系数据结构课程名称姓名学号表达式为表达式为(3)检索选修课程名为)检索选修课程名为“数据结构数据结构”的学生学号与姓名。的学生学号与姓名。)(0200301003选修关系课程号课程号学号表达式为表达式为(4)检索选修课程号为)检索选修课程号为01003或或02003的学生学号。的

51、学生学号。(5)检索不学)检索不学01003号课程的学生姓名与出生年月。号课程的学生姓名与出生年月。)()(01003,选修关系学生关系学生关系课程号性别姓名性别姓名表达式为表达式为本章首页本章首页本节首页本节首页上一页上一页【例】设数据库中有【例】设数据库中有3个关系:个关系:学生关系(学号,班级号,姓名,出生年月,入学成绩)学生关系(学号,班级号,姓名,出生年月,入学成绩)选修关系(学号,课程号,成绩)选修关系(学号,课程号,成绩)课程关系(课程号,课程名称,学分)课程关系(课程号,课程名称,学分)【例】设数据库中有【例】设数据库中有3个关系:个关系:学生关系(学号,班级号,姓名,出生年月

52、,入学成绩)学生关系(学号,班级号,姓名,出生年月,入学成绩)选修关系(学号,课程号,成绩)选修关系(学号,课程号,成绩)课程关系(课程号,课程名称,学分)课程关系(课程号,课程名称,学分)v设有关系设有关系R和关系和关系S如下表,计算:如下表,计算:RS,RS,RS,RS, ,RS, 的值的值 )(),(5 ,RSBBCBSBRSR.|本章首页本章首页v名词解释名词解释关系模型,属性,域,元组,主键,外关系模型,属性,域,元组,主键,外键,关系模式,关系数据库键,关系模式,关系数据库 v试述关系模型的三个完整性试述关系模型的三个完整性 v为什么关系中的元组没有先后顺序?为什么关系中的元组没有

53、先后顺序? v为什么关系中不允许有重复元组?为什么关系中不允许有重复元组? v关系代数的运算有几大类?分别是什么?关系代数的运算有几大类?分别是什么? v笛卡儿积、等值连接、自然连接三者有什么区别?笛卡儿积、等值连接、自然连接三者有什么区别? ABCt2ed5fg4hj6sABCx8ky6l关系关系R 关系关系S 本章首页本章首页上一页上一页v设有关系设有关系R和关系和关系S如下表,求如下表,求RS的值。的值。 ABCDabcdabefabdebcefedceedef关系关系R 关系关系S CDceefv设数据库中有设数据库中有3个关系:个关系:学生关系学生关系S(学号,班级号,姓名,出生年月

54、)学号,班级号,姓名,出生年月)选修关系选修关系SC(学号,课程号,成绩)学号,课程号,成绩)课程关系课程关系C(课程号课程号,课程名称,任课教师课程名称,任课教师)试用关系代数表达式表示下列查询语句和操作语句:试用关系代数表达式表示下列查询语句和操作语句:检索学习课程号为检索学习课程号为C2的学生学号与成绩的学生学号与成绩检索选修课程名为检索选修课程名为Maths的学生学号与姓名的学生学号与姓名检索选修课程号为检索选修课程号为C2或或C4的学生学号的学生学号检索选修课程号为检索选修课程号为C2和和C4的学生姓名的学生姓名检索不学检索不学C2课程的学生学号课程的学生学号检索学习全部课程的学生姓

55、名检索学习全部课程的学生姓名检索所学课程包含学生检索所学课程包含学生S3所学课程的学生学号所学课程的学生学号 关系数据库是由一组关系组成的,那么针对一个具关系数据库是由一组关系组成的,那么针对一个具体问题,应该如何构造一个适合于它的数据模式,即应体问题,应该如何构造一个适合于它的数据模式,即应该构造几个关系,每个关系由那些属性组成等,这是关该构造几个关系,每个关系由那些属性组成等,这是关系数据库逻辑设计问题。关系数据库设计理论对数据库系数据库逻辑设计问题。关系数据库设计理论对数据库逻辑设计有重要的指导作用,它主要包括三个方面的内逻辑设计有重要的指导作用,它主要包括三个方面的内容:数据依赖、范式

56、和模式设计方法,其中容:数据依赖、范式和模式设计方法,其中数据依赖起数据依赖起着核心作用着核心作用。 前面已经讲述了关系数据库、关系模型的基本概念前面已经讲述了关系数据库、关系模型的基本概念以及关系数据库的标准语言。如何使用关系模型设计关以及关系数据库的标准语言。如何使用关系模型设计关系数据库,也就是面对一个比较好的关系模式的集合,系数据库,也就是面对一个比较好的关系模式的集合,其中每个又应该由哪些属性,这属于数据库设计的问题,其中每个又应该由哪些属性,这属于数据库设计的问题,确切地讲是数据库逻辑设计的问题。确切地讲是数据库逻辑设计的问题。 回到目录回到目录2.5.4.1.1 规范化理论的重要

57、内容规范化理论的重要内容 关系数据库的规范化理论最早是由关系数据库的创始人关系数据库的规范化理论最早是由关系数据库的创始人E.F.Cold提出的,后经许多专家学者对关系数据库理论作了深提出的,后经许多专家学者对关系数据库理论作了深入的研究和发展,形成了一整套有关关系数据库设计的理论。入的研究和发展,形成了一整套有关关系数据库设计的理论。 在该理论出现以前,层次和网状数据库的设计只是遵循其在该理论出现以前,层次和网状数据库的设计只是遵循其模型本身固有的原则,而无具体的理论依据可言,因而带有盲模型本身固有的原则,而无具体的理论依据可言,因而带有盲目性,可能在以后的运行和使用中发生许多预想不到的问题

58、。目性,可能在以后的运行和使用中发生许多预想不到的问题。 在关系数据库系统中,关系模型包括一组关系模式,并且在关系数据库系统中,关系模型包括一组关系模式,并且各个关系不是完全孤立的。如何设计一个合适的关系数据库系各个关系不是完全孤立的。如何设计一个合适的关系数据库系统,关键是关系数据库模式的设计,一个好的关系数据库模式统,关键是关系数据库模式的设计,一个好的关系数据库模式应该包括多少关系模式,而每一个关系模式又应该包括哪些属应该包括多少关系模式,而每一个关系模式又应该包括哪些属性,又如何将这些相互关联的关系模式组建成一个适合的关系性,又如何将这些相互关联的关系模式组建成一个适合的关系模型,这些

59、工作决定了整个系统运行的效率,也是系统成败的模型,这些工作决定了整个系统运行的效率,也是系统成败的关键所在,所以必须在关系数据库的规范化理论的指导下逐步关键所在,所以必须在关系数据库的规范化理论的指导下逐步完成。完成。本章首页本章首页 关系数据库的规范化理论主要包括三个方面的内容:函数关系数据库的规范化理论主要包括三个方面的内容:函数依赖、范式(依赖、范式(Normal Form)和模式设计。其中函数依赖起着和模式设计。其中函数依赖起着核心作用,是模式分解和模式设计的基础,范式是模式分解的核心作用,是模式分解和模式设计的基础,范式是模式分解的标准。标准。本章首页本章首页本节首页本节首页2.5.

60、4.1.2 不合理的关系模式存在的存储异常问题不合理的关系模式存在的存储异常问题 数据库的逻辑设计为什么要遵循一定的规范化理论?数据库的逻辑设计为什么要遵循一定的规范化理论? 什么是好的关系模式?什么是好的关系模式? 某些不好的关系模式可能导致哪些问题?某些不好的关系模式可能导致哪些问题?下面通过例子对这些问题进行分析。下面通过例子对这些问题进行分析。例例1要求设计教学管理数据库,其关系模式,要求设计教学管理数据库,其关系模式,SCD如下:如下: SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)其中其中 SNO表示学生学号,表示学生学号, SN表示学生姓名,表示学生姓名, A

温馨提示

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

评论

0/150

提交评论