资源描述
Page,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,广东工业大学,Page,1,第,2,章,关系数据库基础,1970,年的,6,月,,Edgar Frank Codd,在,Communications of ACM,上发表了,A Relational Model of Data for Large Shared Data Banks,(大型共享数据库数据的关系模型),1973,年,IBM,启动了,System R,的项目,研究关系型数据库的实际可行性,1979,年,,RSI,发布了可用于,DEC PDP-11,计算机上的商用,ORACLE,产品,Page,2,第,2,章,关系数据库基础,关系数据库采用关系数据模型,已经历了,30,多年的发展,从理论到技术都已经非常成熟,是目前广泛使用的主流数据库系统,也是数据库课程要讲授的主要内容。本章主要包括关系的基本概念、关系数据模型、关系完整性约束和关系代数等内容。,Page,3,本章学习目标,深刻理解关系的定义和关系的基本性质,理解相应的概念和术语;,深刻理解关系模型及其三个要素;,深刻理解关系完整性约束;,掌握关系代数的基本运算和应用;,了解,SQL Server,的基本架构和基本构成;,掌握,SQL Server,数据库的存储结构和建立数据库的方法。,Page,4,本章重点难点,本章学习的重点是围绕关系数据模型的基本概念、深刻理解关系数据模型的三个要素和关系完整性约束,为以后设计、使用和管理关系数据库奠定一个良好基础。,本章学习的难点是理解关系完整性约束的概念及其作用。,Page,5,2.1,关系概念,关系通俗的讲就是二维表格,也是人们在日常生活中最常见到的表格数据。,关系的基本概念源于数学。,关系的形式定义,以及相关的概念和术语。,Page,6,关系的定义,在关系模型中,数据是以二维表的形式存在的,这个,二维表,就叫做,关系,。,关系理论,是以,集合代数,理论为基础的,因此,我们可以用集合代数给出二维表的“关系”定义。,为了从集合论的角度给出关系的定义,我们先引入,域,和,笛卡尔积,的概念。,Page,7,单一的数据结构,-,关系,现实世界的实体以及实体间的各种联系均用关系来表示,数据的逻辑结构,-,二维表,从用户角度看,关系模型中数据的逻辑结构是一张二维表,Page,8,域(,Domain,),域,是一组具有相同数据类型的值的集合。,例如:,整数、实数,1,,,10,之间的整数,长度为,8,的字符串集合,男,女,介于,2007,年,7,月,1,日到,2008,年,2,月,29,日之间的日期,Page,9,域中所包含的值的个数称为域的,基数,(用,m,表示)。,关系中用域表示属性的取值范围。例如:,D1=,李力,王平,刘伟,m1=3,D2=,男,女,m2=2,D3=47,28,30 m3=3,其中,,D1,,,D2,,,D3,为域名,分别表示教师关系中姓名、性别、年龄的集合。,域名无排列次序,如,D2=,男,女,=,女,男,Page,10,笛卡尔积(,Cartesian Product,),笛卡尔积,域上面的一种集合运算。,给定一组域,D,1,,,D,2,,,,,D,n,,这些域中可以有相同的。,D,1,,,D,2,,,,,D,n,的笛卡尔积为:,D,1,D,2,D,n,(,d,1,,,d,2,,,,,d,n,),d,i,D,i,,,i,1,,,2,,,,,n,所有域的所有取值的一个组合,不能重复,Page,11,给定一组域,D,1,,,D,2,,,,,D,n,,这些域中可以有相同的。,D,1,,,D,2,,,,,D,n,的笛卡尔积为:,D,1,D,2,D,n,(,d,1,,,d,2,,,,,d,n,),d,i,D,i,,,i,1,,,2,,,,,n,例:给出三个域,D1=SUPERVISOR=,张清玫,刘逸,D2=SPECIALITY=,计算机专业,信息专业,D3=POSTGRADUATE=,李勇,刘晨,王敏,D,1,D,2,D,3,?,笛卡尔积(,Cartesian Product,),Page,12,D,1,D,2,D,3,(,张清玫,计算机专业,李勇,),,,(,张清玫,计算机专业,刘晨,),,,(,张清玫,计算机专业,王敏,),,,(,张清玫,信息专业,李勇,),,,(,张清玫,信息专业,刘晨,),,,(,张清玫,信息专业,王敏,),,,(,刘逸,计算机专业,李勇,),,,(,刘逸,计算机专业,刘晨,),,,(,刘逸,计算机专业,王敏,),,,(,刘逸,信息专业,李勇,),,,(,刘逸,信息专业,刘晨,),,,(,刘逸,信息专业,王敏,),D,1,=SUPERVISOR,=,张清玫,刘逸,D,2,=SPECIALITY,=,计算机专业,信息专业,D,3,=POSTGRADUATE,=,李勇,刘晨,王敏,笛卡尔积(,Cartesian Product,),Page,13,元组(,Tuple,),笛卡尔积中每一个元素(,d,1,,,d,2,,,,,d,n,)叫作一个,n,元组(,n-tuple,)或简称元组。,D,1,D,2,D,3,(,张清玫,计算机专业,李勇,),,,(,张清玫,计算机专业,刘晨,),,,(,张清玫,计算机专业,王敏,),,,(,张清玫,信息专业,李勇,),,,(,张清玫,信息专业,刘晨,),,,(,张清玫,信息专业,王敏,),,,笛卡尔积(,Cartesian Product,),Page,14,分量(,Component,),笛卡尔积元素(,d,1,,,d,2,,,,,d,n,)中的每一个值,d,i,叫作一个分量。,D,1,D,2,D,3,(,张清玫,计算机专业,李勇,),,,(,张清玫,计算机专业,刘晨,),,,(,张清玫,计算机专业,王敏,),,,(,张清玫,信息专业,李勇,),,,(,张清玫,信息专业,刘晨,),,,(,张清玫,信息专业,王敏,),,,笛卡尔积(,Cartesian Product,),Page,15,基数(,Cardinal number,),若,D,i,(,i,1,,,2,,,,,n,)为有限集,其基数为,m,i,(,i,1,,,2,,,,,n,),则,D,1,D,2,D,n,的基数,M,为:,笛卡尔积(,Cartesian Product,),Page,16,笛卡尔积(,Cartesian Product,),D,1,D,2,D,3,(,张清玫,计算机专业,李勇,),,,(,张清玫,计算机专业,刘晨,),,,(,张清玫,计算机专业,王敏,),,,(,张清玫,信息专业,李勇,),,,(,张清玫,信息专业,刘晨,),,,(,张清玫,信息专业,王敏,),,,(,刘逸,计算机专业,李勇,),,,(,刘逸,计算机专业,刘晨,),,,(,刘逸,计算机专业,王敏,),,,(,刘逸,信息专业,李勇,),,,(,刘逸,信息专业,刘晨,),,,(,刘逸,信息专业,王敏,),D,1,=SUPERVISOR,=,张清玫,刘逸,D,2,=SPECIALITY,=,计算机专业,信息专业,D,3,=POSTGRADUATE,=,李勇,刘晨,王敏,D,1,D,2,D,3,的基数:,223,12,即共有,12,个元组,Page,17,笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自,D1,,第二个分量来自,D2,。,Page,18,笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。,笛卡尔积(,Cartesian Product,),Page,19,笛卡尔积(,Cartesian Product,),Page,20,关系(,Relation,),关系,D,1,D,2,D,n,的子集叫作在域,D,1,,,D,2,,,,,D,n,上的关系,表示为,R,(,D,1,,,D,2,,,,,D,n,),R,:,关系名,n,:,关系的目或度(,Degree,),Page,21,关系(,Relation,),D,1,D,2,D,3,(,张清玫,计算机专业,李勇,),,,(,张清玫,计算机专业,刘晨,),,,(,张清玫,计算机专业,王敏,),,,(,张清玫,信息专业,李勇,),,,(,张清玫,信息专业,刘晨,),,,(,张清玫,信息专业,王敏,),,,(,刘逸,计算机专业,李勇,),,,(,刘逸,计算机专业,刘晨,),,,(,刘逸,计算机专业,王敏,),,,(,刘逸,信息专业,李勇,),,,(,刘逸,信息专业,刘晨,),,,(,刘逸,信息专业,王敏,),从,D,1,D,2,D,3,中取出有实际意义的元组来构造关系:,SAP(SUPERVISOR,,,SPECIALITY,,,POSTGRADUATE),假设:,导师与专业:,1:1,导师与研究生:,1:n,SAP,(,张清玫,计算机专业,李勇,),,,(,张清玫,计算机专业,刘晨,),,,(,刘逸,信息专业,王敏,),Page,22,关系(,Relation,),关系中的每个元素是关系中的元组,通常用,t,表示。,关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。,Page,23,关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(,Attribute,)。,n,目关系必有,n,个属性。,关系(,Relation,),Page,24,关系(,Relation,),候选码(,Candidate key,),若一个关系有多个候选码,则选定其中一个为主码(,Primary key,),在最简单的情况下,候选码只包含一个属性,在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(,All-key,),候选码的诸属性称为主属性(,Prime attribute,),不包含在任何侯选码中的属性称为非码属性(,Non-key attribute,),Page,25,下面是一个全码的例子:,假设有教师授课关系,TCS,,分别有三个属性教师(,T,)、课程(,C,)和学生(,S,)。一个教师可以讲授多门课程,一门课程可以为多个教师讲授,同样一个学生可以选听多门课程,一门课程可以为多个学生选听。,在这种情况下,,T,,,C,,,S,三者之间是多对多关系,,(T,C,S),三个属性的组合是关系,TCS,的候选码,称为,全码,,,T,C,S,都是主属性。,Page,26,关系(,Relation,),主码(,Primary Key,),若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码,Page,27,关系(,Relation,),三类关系,基本关系(基本表或基表),实际存在的表,是实际存储数据的逻辑表示,Page,28,关系(,Relation,),三类关系,基本关系(基本表或基表),查询表,查询结果对应的表,Page,29,关系(,Relation,),三类关系,基本关系(基本表或基表),查询表,视图表,由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据,Page,30,关系(,Relation,),无限关系在数据库系统中是无意义的。因此限定关系必须是有限集合。,笛卡尔积不满足交换律,但关系满足交换律,即,(d,1,,,d,2,,,,,d,i,,,d,j,,,,,d,n,),=,(,d,1,,,d,2,,,,,d,j,,,d,i,,,,,d,n,),(,i,,,j,=1,,,2,,,,,n,),Page,31,关系(,Relation,),基本关系的性质,列是同质的(,Homogeneous,),每一列中的分量是同一类型的数据,来自同一个域。,Page,32,关系(,Relation,),基本关系的性质,不同的列可出自同一个域,每一列称为一个属性。,不同的属性要给予不同的属性名。,Page,33,关系(,Relation,),两个域:,人(,PERSON,),=,张清玫,刘逸,李勇,刘晨,王敏,专业(,SPECIALITY,),=,计算机专业,信息专业,SAP,关系的导师属性和研究生属性都从,PERSON,域中取值为了避免混淆,必须给这两个属性取不同的属性名,而不能直接使用域名。,定义:,导师属性名为,SUPERVISOR-PERSON,(或,SUPERVISOR,),研究生属性名为,POSTGRADUATE-PERSON,(或,POSTGRADUATE,),Page,34,关系(,Relation,),基本关系的性质,列的顺序无所谓,遵循这一性质的数据库产品,(,如,ORACLE),,增加新属性时,永远是插至最后一列。,也有许多关系数据库产品没有遵循这一性质,例如,FoxPro,仍然区分了属性顺序。,Page,35,关系(,Relation,),基本关系的性质,任意两个元组的候选码不能相同,Page,36,关系(,Relation,),基本关系的性质,行的顺序无所谓,遵循这一性质的数据库产品,(,如,ORACLE),,插入一个元组时永远插至最后一行。,但也有许多关系数据库产品没有遵循这一性质,例如,FoxPro,仍然区分了元组的顺序。,Page,37,关系(,Relation,),基本关系的性质,分量必须取原子值,每一个分量都必须是不可分的数据项。,Page,38,2.2,关系数据模型,关系数据模型就是用关系来表示现实世界中实体以及实体和实体之间的联系的数据模型。,Page,39,关系数据模型的三要素,关系数据结构,关系数据操作,关系数据完整性约束,Page,40,关系数据结构,如何表示现实世界中的实体及其联系?,在关系数据模型中,现实世界中的实体及实体与实体之间的联系均用关系来表示。,Page,41,关系操作集合,在关系上能进行哪些操作?,传统的集合运算,专门的关系运算,关系数据操作,Page,42,关系模式,关系模式是对关系的描述,元组集合的结构,元组语义以及完整性约束条件,属性间的数据依赖关系集合,属性构成,属性来自的域,属性与域之间的映象关系,Page,43,关系模式,关系模式可以形式化地表示为:,R,(,U,,,D,,,DOM,,,F,),R,关系名,U,组成该关系的属性名集合,D,属性组,U,中属性所来自的域,DOM,属性向域的映象集合,F,属性间的数据依赖关系集合,Page,44,关系模式,例:导师和研究生出自同一个域,人,取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域。,DOM,(,SUPERVISOR,),=DOM,(,POSTGRADUATE,),=PERSON,Page,45,关系模式,关系模式通常可以简记为,R,(,U,),或,R,(,A,1,,,A,2,,,,,A,n,),R,关系名,A,1,,,A,2,,,,,A,n,属性名,注:域名及属性向域的映象常常直接说明为,属性的类型、长度,Page,46,基本的关系操作,查询,选择,、,投影,、连接、除、,并,、,差,、交、,笛卡尔积,等,数据更新,插入、删除、修改,查询的表达能力是其中最主要的部分,Page,47,关系操作的特点,集合操作方式,即操作的对象和结果都是集合,一次一集合,非关系数据模型的数据操作方式,一次一记录,基本的关系操作,Page,48,关系代数语言,关系演算语言,元组关系演算语言,域关系演算语言,关系数据语言的分类,用对关系的运算来表达查询要求,用谓词来表达查询要求,Page,49,具有关系代数和关系演算双重特点的语言,典型代表:,SQL,(,Structured Query Language,),关系数据语言的分类,SQL,不仅具有丰富的查询功能,而且具有数据定义和数据控制功能。,Page,50,关系的完整性,实体完整性,参照完整性,用户定义的完整性,关系的三类完整性约束,关系模型的完整性规则对关系的某种约束条件,关系的两个不变性,应用领域需要遵循的约束条件,Page,51,实体完整性,实体完整性规则(,Entity Integrity,),若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。,空值(null)表示“不知道”或“不存在”的值。,例如:,SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE),其中POSTGRADUATE为主属性(假设研究生不会重名),因此不能取空值。,Page,52,实体完整性,实体完整性规则规定基本关系的所有主属性都不能取空值。,例如:,选修(学号,课程号,成绩),“学号、课程号”为主码中的主属性,因此这两个属性都不能取空值。,Page,53,实体完整性,遵守实体完整性规则的原因:,实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。,现实世界中的实体是可区分的,即它们具有某种唯一性标识。,相应地,关系模型中以主码作为唯一性标识,如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(,2,)点相矛盾,因此主属性不能取空值。,Page,54,在关系模型中实体及实体间的联系都是用关系来描述的,因此存在着关系与关系间的引用。,例,1,:学生实体与专业实体间的联系,学生(学号,姓名,性别,,专业号,,年龄),专业(,专业号,,专业名),参照完整性,Page,55,参照完整性,Page,56,例,2,:学生、课程、学生与课程之间的多对多联系,学生(,学号,,姓名,性别,专业号,年龄),课程(,课程号,,课程名,学分),选修(,学号,,,课程号,,成绩),参照完整性,Page,57,参照完整性,Page,58,例,3,:学生实体及其内部的领导联系,学生(,学号,,姓名,性别,专业号,年龄,,班长,),参照完整性,Page,59,外码(,Foreign Key,),设,F,是基本关系,R,的一个或一组属性,但不是关系,R,的码。如果,F,与基本关系,S,的主码,K,s,相对应,则称,F,是基本关系,R,的外码。,基本关系,R,称,为参照关系(,Referencing Relation,),基本关系,S,称,为被参照关系(,Referenced Relation,)或目标关系(,Target Relation,),参照完整性,Page,60,例,1,:学生实体与专业实体间的联系,学生(学号,姓名,性别,,专业号,,年龄),专业(,专业号,,专业名),参照完整性,例,2,:学生、课程、学生与课程之间的多对多联系,学生(,学号,,姓名,性别,专业号,年龄),课程(,课程号,,课程名,学分),选修(,学号,,,课程号,,成绩),例,3,:学生实体及其内部的领导联系,学生(,学号,,姓名,性别,专业号,年龄,,班长,),Page,61,参照完整性,外码(,Foreign Key,),目标关系,S,的主码,K,s,和参照关系的外码,F,必须定义在同一个(或一组)域上。,外码并不一定要与相应的主码同名。但当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。,Page,62,参照完整性,参照完整性规则,若属性(或属性组),F,是基本关系,R,的外码,它与基本关系,S,的主码,K,s,相对应(基本关系,R,和,S,不一定是不同的关系),则对于,R,中每个元组在,F,上的值必须为:,或者取空值(,F,的每个属性值均为空值),或者等于,S,中某个元组的主码值。,Page,63,参照完整性,学生关系中每个元组的,“专业号”,属性只取下面两类值:,(,1,),空值,,表示尚未给该学生分配专业;,(,2,),非空值,,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中。,例,1,:,学生(学号,姓名,性别,,专业号,,年龄),专业(,专业号,,专业名),Page,64,参照完整性,例,2,:,学生(,学号,,姓名,性别,专业号,年龄),课程(,课程号,,课程名,学分),选修(,学号,,,课程号,,成绩),“,学号”和“课程号”是选修关系中的主属性,只能取相应被参照关系中已经存在的主码值。,Page,65,参照完整性,例,3,:,学生(,学号,,姓名,性别,专业号,年龄,,班长,),(,1,),空值,,表示该学生所在班级尚未选出班长;,(,2,),非空值,,这时该值必须是本关系中某个元组的学号值。,“,班长”属性值可以取两类值:,Page,66,用户定义的完整性,用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。,Page,67,用户定义的完整性,例如:课程(课程号,课程名,学分),用户定义的完整性规则:,“,课程名”属性必须取唯一值,“,课程名”属性也不能取空值,“,学分”属性只能取值,1,,,2,,,3,,,4,Page,68,用户定义的完整性,关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。,Page,69,2.3,关系代数,关系代数是实现关系操作的一种方法,是理解关系操作的基础。,传统的集合运算,并运算,交运算,差运算,广义笛卡尔积,专门的关系运算,选择运算,投影运算,连接运算,除运算,Page,70,关系模型与其他模型相比,最有特色的是它的,数据库语言,。,这种语言灵活方便、表达能力和功能都很强。,目前关系数据库所使用的语言一般都具有,定义,、,查询,、,更新,和,控制,一体化的特点,而,查询,是最主要的部分。,所以说,关系数据库的核心部分是,查询,,故又称为,查询语言,,而查询的条件要使用,关系运算表达式,来表示。,因此,关系运算是设计关系数据语言的基础。,按表达查询的方法不同,关系运算可分为,关系代数,和,关系演算,两大类。,关系代数,Page,71,关系代数的分类及其运算符,关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为,关系代数语言,简称关系代数,。,它是由,IBM,在一个实验性的系统上实现的,称为,ISBL(Information System Base Language),语言。,ISBL,的每个语句都类似于一个关系代数表达式。,关系代数的,运算对象,是,关系,,,运算结果,也是,关系,,关系代数用到的运算符主要包括四类:,集合运算符,:(并),,-,(差),(交),,X,(广义笛卡尔积);,专门的关系运算符,:,(,选择,),,(投影),(连接),*(自然连接),,(除);,算术比较运算符,:,(大于),(大于等于),,(小于),(小于等于),,=,(等于),(不等于);,逻辑运算符,:(与),(或),(非),Page,72,2.3,关系代数,关系代数,一种抽象的查询语言,用对关系的运算来表达查询。,Page,73,2.3,关系代数,关系代数运算的三大要素,运算对象:关系,运算结果:关系,运算符:四类,Page,74,2.3,关系代数,集合运算符,专门的关系运算符,将关系看成元组的集合,运算是从关系的“水平”方向即行的角度来进行,运算不仅涉及行而且涉及列,Page,75,2.3,关系代数,关系代数运算符表,集合,运算,符,-,并,差,交,笛卡尔积,专门的关系,运算符,选择,投影,连接,除,运算符,含义,运算符,含义,Page,76,2.3,关系代数,算术比较符,逻辑运算符,辅助专门的关系运算符进行操作。,Page,77,2.3,关系代数,关系代数运算符表,比较运算符,大于,大于等于,小于,小于等于,等于,不等于,逻辑运算符,非,与,或,运算符,含义,运算符,含义,Page,78,专门的关系运算,表示记号(,1,),设关系模式为,R(A,1,,,A,2,,,,,A,n,),它的一个关系设为,R,;,t,R,表示,t,是,R,的一个元组;,t,A,i,则表示元组,t,中相应于属性,A,i,的一个分量,Page,79,专门的关系运算,表示记号(,2,),若,A,=,A,i,1,,,A,i,2,,,,,A,ik,,,其中,A,i,1,,,A,i,2,,,,,A,ik,是,A,1,,,A,2,,,,,A,n,中的一部分,则,A,称为属性列或属性组。,tA,=(,t,A,i,1,,,t,A,i,2,,,,,t,A,ik,),表示元组,t,在属性列,A,上诸分量的集合。,A,则表示,A,1,,,A,2,,,,,A,n,中去掉,A,i,1,,,A,i,2,,,,,A,ik,后剩余的属性组。,Page,80,专门的关系运算,表示记号(,3,),R,为,n,目关系,,S,为,m,目关系。,t,r,R,,,t,s,S,,,t,r,t,s,称为元组的连接。,它是一个,n,+,m,列的元组,前,n,个分量为,R,中的一个,n,元组,后,m,个分量为,S,中的一个,m,元组。,Page,81,专门的关系运算,表示记号(,4,),给定一个关系,R,(,X,,,Y,),,X,和,Y,为属性组。,当,t,X,=,x,时,,x,在,R,中的象集(Images Set)为:,Y,x,=,t,Y,|,t,R,,,t,X,=,x,它表示,R,中属性组,X,上值为,x,的诸元组在,Y,上分量的集合。,Page,82,传统的集合运算,假设,1,:,R,和,S,具有相同的目,n,(即两个关系都有,n,个属性),相应的属性取自同一个域,t,是元组变量,,t,R,表示,t,是,R,的一个元组,Page,83,并(,Union,),传统的集合运算,R,S,=,t,|,t,R,t,S,仍为,n,目关系,由属于,R,或属于,S,的元组组成,Page,84,并,A,B,C,a1,b1,c1,a1,b2,c2,a2,b2,c1,A,B,C,a1,b1,c1,a1,b2,c2,a1,b3,c2,a2,b2,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,S,传统的集合运算,Page,85,差(,Difference,),R-S=t|t,Rt,S,仍为,n,目关系,由属于,R,而不属于,S,的所有元组组成,传统的集合运算,Page,86,差,A,B,C,a1,b1,c1,a1,b2,c2,a2,b2,c1,A,B,C,a1,b1,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,-,S,传统的集合运算,Page,87,交(,Intersection,),R,S,=,t,|,t,R,t,S,仍为,n,目关系,由既属于,R,又属于,S,的元组组成,传统的集合运算,R,S,=,R,(,R,-,S,),Page,88,A,B,C,a1,b1,c1,a1,b2,c2,a2,b2,c1,A,B,C,a1,b2,c2,a2,b2,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,S,交,传统的集合运算,Page,89,假设,2,:,R,是,n,目关系,包含,k,1,个元组,S,是,m,目关系,包含,k,2,个元组,传统的集合运算,Page,90,笛卡尔积(,Cartesian Product,),R,S,=,t,r,t,s,|,t,r,R,t,s,S,列:(,n+m,)列的元组的集合。,元组的前,n,列是关系,R,的一个元组;后,m,列是关系,S,的一个元组。,行:,k,1,k,2,个元组,传统的集合运算,Page,91,A,B,C,a1,b1,c1,a1,b2,c2,A2,b2,c1,A,B,C,a1,b1,c1,a1,b1,c1,a1,b1,c1,a1,b2,c2,a1,b2,c2,a1,b2,c2,a2,b2,c1,a2,b2,c1,a2,b2,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,S,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,a1,b2,c2,a1,b3,c2,a2,b2,c1,a1,b2,c2,a1,b3,c2,a2,b2,c1,传统的集合运算,笛卡尔积,Page,92,专门的关系运算,选择,投影,连接,除,Page,93,选择(,Selection,),选择又称为限制(,Restriction,),从关系,R,中选择满足给定条件的诸元组,是从行的角度进行的运算。,Page,94,选择(,Selection,),选择运算记作:,F,(,R,)=,t,|,t,R,F,(,t,)=,真,F,:选择条件,是一个逻辑表达式,取“真”或“假”值,其基本形式为:,X,1,Y,1,:比较运算符(,或),X,1,,,Y,1,等:属性名、常量、简单函数,属性名也可以用它的序号来代替,在基本的选择条件上还可以进行非(,)、与()、或()运算,Page,95,选择(,Selection,),选择运算实例,设有一个学生,-,课程数据库,包括学生关系,Student,、课程关系,Course,和选修关系,SC,。,Page,96,选择(,Selection,),Student,学 号,Sno,姓 名,Sname,性 别,Ssex,年 龄,Sage,所 在 系,Sdept,95001,李勇,男,20,CS,95002,刘晨,女,19,IS,95003,王敏,女,18,MA,95004,张立,男,19,IS,Page,97,选择(,Selection,),Sno,Sname,Ssex,Sage,Sdept,95002,刘晨,女,19,IS,95004,张立,男,19,IS,例,1,查询信息系(,IS,系)全体学生。,Sdept,=IS,(Student),或,5=IS,(Student),结果:,Page,98,选择(,Selection,),例,2,查询年龄小于,20,岁的学生,Sage 20,(Student),或,4 20,(Student),结果:,Sno,Sname,Ssex,Sage,Sdept,95002,刘晨,女,19,IS,95003,王敏,女,18,MA,95004,张立,男,19,IS,Page,99,投影(,Projection,),从,R,中选择出若干属性列组成新的关系,是从列的角度进行运算。,投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)。,Page,100,投影(,Projection,),投影运算记作:,A,(,R,)=,t,A,|,t,R,A,:,R,中的属性列,Page,101,投影(,Projection,),投影运算实例,Student,学 号,Sno,姓 名,Sname,性 别,Ssex,年 龄,Sage,所 在 系,Sdept,95001,李勇,男,20,CS,95002,刘晨,女,19,IS,95003,王敏,女,18,MA,95004,张立,男,19,IS,Page,102,投影(,Projection,),例,3,查询学生的姓名和所在系,Sname,,,Sdept,(Student),或,2,,,5,(Student),结果:,Sname,Sdept,李勇,CS,刘晨,IS,王敏,MA,张立,IS,Page,103,投影(,Projection,),例,4,查询学生关系,Student,中都有哪些系,Sdept,(Student),结果:,Sdept,CS,IS,MA,Page,104,连接(,Join,),连接也称为,连接,从两个关系的笛卡尔积中选取属性间满足一定条件的元组。,Page,105,连接(,Join,),A,和,B:,分别为,R,和,S,上度数相等且可比的属性组,:比较运算符,连接运算记作:,R S,=|,t,r,R,t,s,S,t,r,A,t,s,B,A,B,t,r,t,s,Page,106,连接(,Join,),两类常用连接运算,等值连接(,equijoin,),自然连接(,Natural join,),Page,107,连接(,Join,),等值连接(,equijoin,),为“”的连接运算称为等值连接,从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:,R S,=|,t,r,R,t,s,S,t,r,A,=,t,s,B,A=B,t,r,t,s,Page,108,连接(,Join,),自然连接(,Natural join,),自然连接是一种特殊的等值连接:,两个关系中进行比较的分量必须是相同的属性组,在结果中把重复的属性列去掉,若,R,和,S,具有相同的属性组,B,则自然连接为:,R,S,=|t,r,R,t,s,S,t,r,B,=,t,s,B,t,r,t,s,Page,109,连接(,Join,),一般的连接操作是从行的角度进行运算。,自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,A,B,R,S,Page,110,连接(,Join,),例,5,A,B,C,a,1,b,1,5,a,1,b,2,6,a,2,b,3,8,a,2,b,4,12,R,B,E,b,1,3,b,2,7,b,3,10,b,3,2,b,5,2,S,一般连接,R,S,C,E,A,R.B,C,S.B,E,a,1,b,1,5,b,2,7,a,1,b,1,5,b,3,10,a,1,b,2,6,b,2,7,a,1,b,2,6,b,3,10,a,2,b,3,8,b,3,10,Page,111,连接(,Join,),例,5,A,B,C,a,1,b,1,5,a,1,b,2,6,a,2,b,3,8,a,2,b,4,12,R,B,E,b,1,3,b,2,7,b,3,10,b,3,2,b,5,2,S,A,R.B,C,S.B,E,a,1,b,1,5,b,1,3,a,1,b,2,6,b,2,7,a,2,b,3,8,b,3,10,a,2,b,3,8,b,3,2,等值连接,R,S,R.B=S.B,Page,112,自然连接,R,S,连接(,Join,),例,5,A,B,C,a,1,b,1,5,a,1,b,2,6,a,2,b,3,8,a,2,b,4,12,R,B,E,b,1,3,b,2,7,b,3,10,b,3,2,b,5,2,S,A,B,C,E,a,1,b,1,5,3,a,1,b,2,6,7,a,2,b,3,8,10,a,2,b,3,8,2,Page,113,连接(,Join,),外连接,如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值,(Null),,这种连接就叫做外连接(,OUTER JOIN,)。,Page,114,连接(,Join,),A,B,C,a,1,b,1,5,a,1,b,2,6,a,2,b,3,8,a,2,b,4,12,R,B,E,b,1,3,b,2,7,b,3,10,b,3,2,b,5,2,S,R,和,S,的外连接,Page,115,连接(,Join,),左外连接,右外连接,如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN),如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN),Page,116,连接(,Join,),A,B,C,a,1,b,1,5,a,1,b,2,6,a,2,b,3,8,a,2,b,4,12,R,B,E,b,1,3,b,2,7,b,3,10,b,3,2,b,5,2,S,R,和,S,的左外连接,Page,117,连接(,Join,),A,B,C,a,1,b,1,5,a,1,b,2,6,a,2,b,3,8,a,2,b,4,12,R,B,E,b,1,3,b,2,7,b,3,10,b,3,2,b,5,2,S,R,和,S,的右外连接,Page,118,除(,Division,),同时从行和列角度进行运算,R,S,Page,119,除(,Division,),给定关系,R(X,,,Y),和,S(Y,,,Z),,其中,X,,,Y,,,Z,为属性组。,R,中的,Y,与,S,中的,Y,可以有不同的属性名,但必须出自相同的域集。,R,与,S,的除运算得到一个新的关系,P(X),,,P,是,R,中,满足下列条件的元组在,X,属性列上的投影:元组在,X,上分量值,x,的象集,Y,x,包含,S,在,Y,上投影的集合。记作:,R,S,=,t,r,X,|,t,r,R,Y,(,S,
展开阅读全文