《关系数据库关系代数运算精选PPT.ppt》由会员分享,可在线阅读,更多相关《关系数据库关系代数运算精选PPT.ppt(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、关于关系数据库关系代数运算关于关系数据库关系代数运算第1页,讲稿共81张,创作于星期日学习要点学习要点n关系模型关系模型n关系数据结构的形式化定义关系数据结构的形式化定义n关系完整性关系完整性n关系代数关系代数n关系演算关系演算第2页,讲稿共81张,创作于星期日序言序言n值得记住的值得记住的=1970年,年,E.F.Codd提出关系数据库理论基础提出关系数据库理论基础E.F.Codd,“A Relational Model of Data for Large Shared Data Banks”,Communication of the ACM,1970=关系数据库试验系统关系数据库试验系统S
2、ystem R,INGRESn关系数据库应用数学方法来处理数据库中的数据关系数据库应用数学方法来处理数据库中的数据,80年代年代后成为最重要、最流行的数据库系统后成为最重要、最流行的数据库系统n典型实验系统典型实验系统=System R,University INGRESn典型商用系统典型商用系统=ORACLE,SYBASE,INFORMIX,DB2,INGRES第3页,讲稿共81张,创作于星期日2.1 关系模型概述关系模型概述n关系模型由以下三部分组成关系模型由以下三部分组成=关系数据结构关系数据结构关系(一张二维表)关系(一张二维表)=关系操作:关系操作:查询操作查询操作选择选择(Sele
3、ct)、投影、投影(Project)、连接、连接(Join)、除、除(Divide)、并、并(Union)、交、交(Intersection)、差、差(Difference)更新操作更新操作增加增加(Insert)、删除、删除(Delete)、修改、修改(Update)=关系完整性约束关系完整性约束实体完整性、参照完整性实体完整性、参照完整性、用户定义完整性、用户定义完整性关系的两个关系的两个不变性不变性,由系统自动支持由系统自动支持由应用语义约由应用语义约束束第4页,讲稿共81张,创作于星期日关系语言关系语言n关系操作特点关系操作特点=操作对象和结果都是集合操作对象和结果都是集合=高度非过程
4、化的语言,不必借助循环结构就可以完成数据操作,高度非过程化的语言,不必借助循环结构就可以完成数据操作,能嵌入高级语言中使用能嵌入高级语言中使用关系数据语言关系数据语言关系代数语言关系代数语言关系演算语言关系演算语言具有关系代数和关系演算双重特点的语言具有关系代数和关系演算双重特点的语言元组关系演算语言元组关系演算语言域关系演算语言域关系演算语言例如例如ISBL例如例如APLHA,QUEL例如例如QBE例如例如SQL三种语言在表达能三种语言在表达能力上完全等价力上完全等价第5页,讲稿共81张,创作于星期日关系模型语言关系模型语言n关系代数语言关系代数语言把关系当作集合,用集合运算和特殊的关系运算
5、来表达查询要求和条件把关系当作集合,用集合运算和特殊的关系运算来表达查询要求和条件是一种抽象的查询语言是一种抽象的查询语言n关系演算语言关系演算语言用谓词来表达查询要求和条件用谓词来表达查询要求和条件谓词变元的基本对象可以是元组变量或域变量,故可分为元组关谓词变元的基本对象可以是元组变量或域变量,故可分为元组关系演算和域关系演算两类系演算和域关系演算两类是一种抽象的查询语言是一种抽象的查询语言nSQL介于关系代数和关系演算之间介于关系代数和关系演算之间集集DDL、DML和和DCL一身的关系数据语言一身的关系数据语言第6页,讲稿共81张,创作于星期日2.2 关系数据结构的形式化定义关系数据结构的
6、形式化定义n关系模型建立在集合代数基础上,从集合论角度讨论关系模型建立在集合代数基础上,从集合论角度讨论n关系的形式化定义关系的形式化定义=定义定义1:域:域(Domain)形式化表示为形式化表示为D一组具有相同数据类型的值的集合,如整数、实数等。定义一组具有相同数据类型的值的集合,如整数、实数等。定义2:笛:笛卡尔积卡尔积(Cartesian Product)P47一组域一组域D1,D2,Dn的笛卡尔积的笛卡尔积(d1,d2,d3,dn)称为一个称为一个元组元组,di称为一个称为一个分量分量,集合中唯一元素的,集合中唯一元素的数量是集合的数量是集合的基数基数 若若Di的基数为的基数为Mi,则
7、笛卡尔集的基数,则笛卡尔集的基数M为为第7页,讲稿共81张,创作于星期日笛卡尔积笛卡尔积n计算实例计算实例例例1:D1=甲甲,乙乙,D2=1,2,D3=a,b,c1)D1,D2,D3基数分别是多少?基数分别是多少?2)D1D2?(基数?)?(基数?)3)D1D2D3?(基数?)?(基数?)n笛卡尔集可表示为一个二维表笛卡尔集可表示为一个二维表=请将例子表示为二维表请将例子表示为二维表第8页,讲稿共81张,创作于星期日例例2已知三个域已知三个域D1=导师集合导师集合张清正张清正,刘逸刘逸D2=专业集合专业集合计算机计算机,信息信息D3=学生集合学生集合李勇李勇,刘晨刘晨,王敏王敏计算思考计算思考
8、1)基数?)基数?2)计算)计算D1D2D3?基数?基数?3)计算结果中的元组有无实际意义?)计算结果中的元组有无实际意义?导师导师专业专业研究生研究生张清正计算机李勇张清正计算机李勇张清正计算机刘晨张清正计算机刘晨张清正计算机王敏张清正计算机王敏张清正信息李勇张清正信息李勇张清正信息刘晨张清正信息刘晨张清正信息王敏张清正信息王敏刘逸计算机李勇刘逸计算机李勇刘逸计算机刘晨刘逸计算机刘晨刘逸计算机王敏刘逸计算机王敏刘逸信息李勇刘逸信息李勇刘逸信息刘晨刘逸信息刘晨刘逸信息王敏刘逸信息王敏D1,D2,D3的笛卡尔积(上图)的笛卡尔积(上图)第9页,讲稿共81张,创作于星期日关系数据结构的形式化定义关
9、系数据结构的形式化定义定义定义3:关系:关系nD1D2Dn的子集叫做在的子集叫做在D1,D2,Dn上的关系,表上的关系,表示为示为 R(D1,D2,Dn)=n n:关系的:关系的度度或或目目,表的列数,一般称,表的列数,一般称n n元关系元关系n相关术语相关术语=候选码:候选码:能够唯一标识一个元组的属性组能够唯一标识一个元组的属性组一个关系可以有多个候选码一个关系可以有多个候选码=主码:主码:一个关系中选定的一个候选码一个关系中选定的一个候选码=主属性:主属性:主码的各个属性主码的各个属性=非主属性(非码属性):非主属性(非码属性):不包含在任何候选码中的属性不包含在任何候选码中的属性=全码
10、:全码:若关系模式的所有属性组是这个关系模式的候选码若关系模式的所有属性组是这个关系模式的候选码请举例请举例第10页,讲稿共81张,创作于星期日三类关系三类关系n基本关系(基本表或基表)基本关系(基本表或基表)=实际存在的表,是实际存储数据的逻辑表示实际存在的表,是实际存储数据的逻辑表示n查询表查询表=查询结果对应的表查询结果对应的表n视图表视图表=由基本表或其他视图表导出的表,是虚表,不由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据对应实际存储的数据第11页,讲稿共81张,创作于星期日例已知三个域例已知三个域D1=导师集合导师集合S张清正张清正,刘逸刘逸D2=专业集合专业集合SP
11、计算机计算机,信息信息D3=学生集合学生集合P李勇李勇,刘晨刘晨,王敏王敏计算思考计算思考从笛卡尔集中取出一个子集,选择有意义从笛卡尔集中取出一个子集,选择有意义的结果组成关系的结果组成关系R(导师,专业,研究生导师,专业,研究生)一个研究生只能有一个专业,如李勇和一个研究生只能有一个专业,如李勇和王敏是计算机专业、刘晨是信息专业王敏是计算机专业、刘晨是信息专业导师导师S专业专业SP研究生研究生P张清正计算机李勇张清正计算机李勇张清正计算机刘晨张清正计算机刘晨张清正计算机王敏张清正计算机王敏张清正信息李勇张清正信息李勇张清正信息刘晨张清正信息刘晨张清正信息王敏张清正信息王敏刘逸计算机李勇刘逸计
12、算机李勇刘逸计算机刘晨刘逸计算机刘晨刘逸计算机王敏刘逸计算机王敏刘逸信息李勇刘逸信息李勇刘逸信息刘晨刘逸信息刘晨刘逸信息王敏刘逸信息王敏D1,D2,D3的笛卡尔积(上图)的笛卡尔积(上图)现在导师与研究生是什么关系?限定一个学生只能有一个导师,限定一个学生只能有一个导师,如张是计算机导师,刘是信息专如张是计算机导师,刘是信息专业导师业导师现在导师与研究生是什么关系?第12页,讲稿共81张,创作于星期日关系关系n关系的限定及扩充关系的限定及扩充=关系数据中的关系是有限集合关系数据中的关系是有限集合=为关系的每一列附以属性名以取消关系元组的有序性为关系的每一列附以属性名以取消关系元组的有序性n关系
13、的性质关系的性质=列同质,即每一列是同一类型的数据列同质,即每一列是同一类型的数据=不同的列可出自同一个域,每一列为一个不同的列可出自同一个域,每一列为一个属性,不同的属性被,不同的属性被赋予不同的属性名赋予不同的属性名=列的次序可以任意交换列的次序可以任意交换=任意两个元组不能完全相同任意两个元组不能完全相同=行的次序可以任意交换行的次序可以任意交换=分量必须取原子值,即不可再分分量必须取原子值,即不可再分在许多实际关系数据库产品中,基本表并不完全具有这六条性质。在许多实际关系数据库产品中,基本表并不完全具有这六条性质。第13页,讲稿共81张,创作于星期日举例举例n列的顺序无所谓,次序可以任
14、意交换列的顺序无所谓,次序可以任意交换=遵循这一性质的数据库产品遵循这一性质的数据库产品(如如ORACLE),增加新属性时,永远,增加新属性时,永远是插至最后一列是插至最后一列=但也有许多关系数据库产品没有遵循这一性质,例如但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了属性顺序仍然区分了属性顺序n任意两个元组不能完全相同,由笛卡尔积的性质决定任意两个元组不能完全相同,由笛卡尔积的性质决定=但许多关系数据库产品没有遵循这一性质,例如但许多关系数据库产品没有遵循这一性质,例如Oracle,FoxPro等都允许关系表中存在两个完全相同的元组,等都允许关系表中存在两个完全相同的元
15、组,除非用户特别定义了相应的约束条件除非用户特别定义了相应的约束条件第14页,讲稿共81张,创作于星期日举例举例n行的顺序无所谓,行的次序可以任意交换行的顺序无所谓,行的次序可以任意交换=遵循这一性质的数据库产品遵循这一性质的数据库产品(如如ORACLE),插,插入一个元组时永远插至最后一行入一个元组时永远插至最后一行=但也有许多关系数据库产品没有遵循这一性质,但也有许多关系数据库产品没有遵循这一性质,例如例如FoxPro仍然区分了元组的顺序仍然区分了元组的顺序第15页,讲稿共81张,创作于星期日关系模式关系模式n关系模式是对关系的描述,形式化表示为关系模式是对关系的描述,形式化表示为R(U,
16、D,dom,F)U:组成该关系的属性名集合:组成该关系的属性名集合D:属性组:属性组U中属性所来自的域中属性所来自的域dom:属性向域的映象集合,如属性的类型、长度:属性向域的映象集合,如属性的类型、长度F:属性间数据的依赖关系集合:属性间数据的依赖关系集合可简记为可简记为R(U)或或R(A1,A2,An),其中,其中Ai为属性名为属性名n关系模式与关系关系模式与关系=关系模式关系模式是型,是对关系的描述,是静态的,稳定的是型,是对关系的描述,是静态的,稳定的=关系关系是值,由赋予它的元组语义来确定的,是动态的,不断变化的是值,由赋予它的元组语义来确定的,是动态的,不断变化的,是关是关系模式在
17、某一时刻的状态或内容系模式在某一时刻的状态或内容实际应用中常常将关系模式和关系都称为关系实际应用中常常将关系模式和关系都称为关系第16页,讲稿共81张,创作于星期日关系数据库关系数据库n在给定应用领域中,所有表示实体及实体之间联系的关在给定应用领域中,所有表示实体及实体之间联系的关系的集合构成一个关系数据库系的集合构成一个关系数据库n关系数据库也有型和值之分关系数据库也有型和值之分=关系数据库的型称为关系数据库的型称为关系数据库模式关系数据库模式,是对关系数据库的,是对关系数据库的描述描述若干域的定义若干域的定义在这些域上定义的若干关系模式在这些域上定义的若干关系模式=关系数据库的值是这些关系
18、模式在某一时刻对应的关系的关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为集合,通常简称为关系数据库关系数据库第17页,讲稿共81张,创作于星期日课堂思考课堂思考n给出导师、学生、专业三个实体可能组成给出导师、学生、专业三个实体可能组成的关系数据库及其概念模型(的关系数据库及其概念模型(ER图)图)第18页,讲稿共81张,创作于星期日2.3 关系的完整性关系的完整性n实体完整性实体完整性n参照完整性参照完整性n用户定义完整性用户定义完整性 关系模型必须满足,称为关系的不变性由关系数据库系统自动支持第19页,讲稿共81张,创作于星期日实体完整性实体完整性n规则规则:若属性:若属
19、性A是基本关系是基本关系R的主属性,则属性的主属性,则属性A不能取不能取空值空值n说明说明:基本关系的所有主属性不能取空值,而不仅:基本关系的所有主属性不能取空值,而不仅是主码整体不能取空值是主码整体不能取空值n依据依据:现实世界的实体是唯一可分的:现实世界的实体是唯一可分的例:学生(例:学生(学号学号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄)课程(课程(课程号课程号,课程名,学分),课程名,学分)选修(选修(学号学号,课程号课程号,成绩),成绩)第20页,讲稿共81张,创作于星期日参照完整性参照完整性n关系间的引用关系间的引用n外码外码n参照完整性规则参照完整性规则第21页,讲
20、稿共81张,创作于星期日关系间的引用关系间的引用n在关系模型中实体及实体间的联系都是用关系来描在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用述的,因此可能存在着关系与关系间的引用例例1 学生实体、专业实体以及专业与学生间的一对多联系学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,学生(学号,姓名,性别,专业号专业号,年龄),年龄)专业(专业(专业号专业号,专业名),专业名)第22页,讲稿共81张,创作于星期日关系间的引用关系间的引用例例2 学生、课程、学生与课程之间的多对多联系学生、课程、学生与课程之间的多对多联系 学生(学生(学号学
21、号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄)课程(课程(课程号课程号,课程名,学分),课程名,学分)选修(选修(学号学号,课程号课程号,成绩),成绩)第23页,讲稿共81张,创作于星期日关系间的引用关系间的引用例例3 学生实体及其内部的领导联系学生实体及其内部的领导联系(一对多一对多)学生(学生(学号学号,姓名,性别,专业号,年龄,姓名,性别,专业号,年龄,班长班长)第24页,讲稿共81张,创作于星期日外码(外码(Foreign Key)n外码外码=设设F是基本关系是基本关系R的一个或一组属性,但不是关系的一个或一组属性,但不是关系R的码。的码。如果如果F与基本关系与基本关系S的
22、主码的主码Ks相对应,则称相对应,则称F是基本关系是基本关系R的的外码外码被参照关系被参照关系Referenced Relation或:目标关系或:目标关系Target Relation参照关系参照关系Referencing Relation基本关系基本关系R(F,)基本关系基本关系S(Ks,)F Kr第25页,讲稿共81张,创作于星期日外码说明外码说明n关系关系R和和S不一定是不同的关系不一定是不同的关系n目标关系目标关系S的主码的主码Ks 和参照关系的外码和参照关系的外码F必必须定义在同一个(或一组)域上须定义在同一个(或一组)域上n关于取名关于取名=外码并不一定要与相应的主码同名外码并不
23、一定要与相应的主码同名=当外码与相应的主码属于不同关系时,往往取当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别相同的名字,以便于识别第26页,讲稿共81张,创作于星期日例:学生实体与专业实体间的关系:例:学生实体与专业实体间的关系:学生(学生(学号学号,姓名,性别,姓名,性别,专业号专业号,年龄),年龄)专业(专业(专业号专业号,专业名),专业名)外码外码例:学生,课程,学生与课程之间的多对多联系:例:学生,课程,学生与课程之间的多对多联系:学生(学生(学号学号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄)课程(课程(课程号课程号,课程名,学分),课程名,学分)选修(
24、选修(学号学号,课程号课程号,成绩),成绩)学生关系专业关系学生关系专业关系专业号专业号学生关系学生关系 选修关系课程关系选修关系课程关系学号学号课程号课程号参照完整性举例参照完整性举例主码?外码?主码?外码?关系参照图参照关系参照关系被参照关系被参照关系参照关系参照关系被参照关系被参照关系被参照关系被参照关系关系参照图第27页,讲稿共81张,创作于星期日参照完整性举例参照完整性举例例:学生(例:学生(学号学号,姓名,性别,专业号,年龄,姓名,性别,专业号,年龄,班长班长)被参照关系被参照关系参照关系参照关系外码外码第28页,讲稿共81张,创作于星期日参照完整性规则参照完整性规则n已知基本关系
25、已知基本关系R的外码的外码F(与基本关系(与基本关系S的的主码主码Ks相对应),每个元组在相对应),每个元组在F上的值必须上的值必须为:为:=或者取空值(或者取空值(F的每个属性值均为空值)的每个属性值均为空值)=或者等于或者等于S中某个元组的主码值。中某个元组的主码值。基本关系基本关系R(F,)基本关系基本关系S(Ks,)F Kr第29页,讲稿共81张,创作于星期日参照完整性规则举例参照完整性规则举例n“专业号专业号”属性只取下面两类值:属性只取下面两类值:=空值,表示尚未给该学生分配专业空值,表示尚未给该学生分配专业=非空值,这时该值必须是专业关系中某个元组的非空值,这时该值必须是专业关系
26、中某个元组的“专业号专业号”值,表示该学生不可能分配到一个不存在的专业中值,表示该学生不可能分配到一个不存在的专业中n“学号学号”和和“课程号课程号”是选修关系中的主属性,按照实体完是选修关系中的主属性,按照实体完整性和参照完整性规则,它们只能取相应被参照关系中整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主码值已经存在的主码值学生(学号,姓名,性别,学生(学号,姓名,性别,专业号专业号,年龄),年龄)选修(选修(学号学号,课程号课程号,成绩),成绩)第30页,讲稿共81张,创作于星期日参照完整性规则举例参照完整性规则举例n“班长班长”属性值可以取两类值:属性值可以取两类值:=空值
27、,表示该学生所在班级尚未选出班长,或空值,表示该学生所在班级尚未选出班长,或该学生本人即是班长;该学生本人即是班长;=非空值,这时该值必须是本关系中某个元组的非空值,这时该值必须是本关系中某个元组的学号值学号值学生(学号,姓名,性别,专业号,年龄,学生(学号,姓名,性别,专业号,年龄,班长班长)第31页,讲稿共81张,创作于星期日用户定义的完整性用户定义的完整性n用户定义的完整性是针对某一具体关系数用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求及的数据必须满足的语义要求n关系模型应提供定义和检验这类完整性的
28、关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能而不要由应用程序承担这一功能第32页,讲稿共81张,创作于星期日用户定义的完整性举例用户定义的完整性举例=“课程名课程名”属性必须取唯一值属性必须取唯一值=非主属性非主属性“课程名课程名”也不能取空值也不能取空值=“学分学分”属性只能取值属性只能取值1,2,3,4其它其它=成绩:成绩:0100之间之间=身份证位数、身份证和生日对应关系身份证位数、身份证和生日对应关系课程课程(课程号课程号,课程名,学分,课程名,学分)第33页,讲稿共81张,创作于星期日2.
29、4 关系代数关系代数n关系代数语言关系代数语言=用传统的集合运算和专门的关系运算来表达查询的抽象语言用传统的集合运算和专门的关系运算来表达查询的抽象语言n关系代数关系代数运算符运算符n关系代数表达式关系代数表达式=关系代数中有限次运算复合后形成的式子关系代数中有限次运算复合后形成的式子运算符含义运算符含义集合运算符并差交广义笛卡尔积比较运算符=大于大于等于小于小于等于等于不等于专门的关系运算符选择投影连接除逻辑运算符非与或第34页,讲稿共81张,创作于星期日表示记号表示记号nR,t R,tAi,A,tA,A=设关系模式为设关系模式为R(A1,A2,An),它的一个关系设为,它的一个关系设为R=
30、t R表示表示t是是R的一个元组的一个元组=tAi则表示元组则表示元组t中相应于属性中相应于属性Ai的一个分量的一个分量=若若A=Ai1,Ai2,Aik,其中,其中Ai1,Ai2,Aik是是A1,A2,An中的一部分,则中的一部分,则A称为属性列或域列称为属性列或域列=tA=(tAi1,tAi2,tAik)表示元组表示元组t在属性列在属性列A上诸分量的集上诸分量的集合合=A则表示则表示A1,A2,An中去掉中去掉Ai1,Ai2,Aik后剩余的后剩余的属性组属性组第35页,讲稿共81张,创作于星期日传统的集合运算传统的集合运算n若若R和和S是同类关系是同类关系(即它们都具有即它们都具有n个属性且
31、相应属性取自个属性且相应属性取自同一个域同一个域),则可进行,则可进行并、差、交运算并、差、交运算n对两者进行集合运算之前,要对两者的属性列进行排序,保证对两者进行集合运算之前,要对两者的属性列进行排序,保证两个关系的属性顺序相同两个关系的属性顺序相同由属于R或属于S的元组组成由属于R而不属于S的元组组成由既属于R又属于S的元组组成RS第36页,讲稿共81张,创作于星期日表示记号表示记号ntr ts=R为为n目关系,目关系,S为为m目关系目关系=tr R,ts S,tr ts称为元组的连接。它是一称为元组的连接。它是一个个n+m列的元组,前列的元组,前n个分量为个分量为R中的一个中的一个n元组
32、,后元组,后m个分量为个分量为S中的一个中的一个m元组元组第37页,讲稿共81张,创作于星期日广义笛卡尔积广义笛卡尔积nR S,其关系模式是,其关系模式是R和和S的模式的并集,是的模式的并集,是R和和S的元组的元组以所有可能的方式组合起来。当以所有可能的方式组合起来。当R和和S有同名的属性,至少有同名的属性,至少要为其中一个属性重新命名。要为其中一个属性重新命名。数学描述数学描述:若关系:若关系R有有k1个元组个元组n个属性,关系个属性,关系S有有k2个元组个元组m个属性,则两个关系的广义笛卡尔积有个属性,则两个关系的广义笛卡尔积有k1*k2个元组个元组n+m个属性个属性(前前n个属性来自于个
33、属性来自于R,后,后m个属性来自于个属性来自于S)广义笛卡尔积和笛卡尔积的关系?运算对象?广义笛卡尔积和笛卡尔积的关系?运算对象?什么情况下二者等价?什么情况下二者等价?第38页,讲稿共81张,创作于星期日R S SA B Ca1 b1 c1a1 b2 c2a2 b2 c1a1 b3 c2R R S SA B Ca1 b2 c2a2 b2 c1R-SR-SA B Ca1 b1 c1R R S S R.A R.B R.C S.A S.B S.C a1 b1 c1 a1 b2 c2 a1 b1 c1 a1 b3 c2 a1 b1 c1 a2 b2 c1 a1 b2 c2 a1 b2 c2 a1 b
34、2 c2 a1 b3 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1 a1 b2 c2 a2 b2 c1 a1 b3 c2 a2 b2 c1 a2 b2 c1a1 b1 c1a1 b2 c2a1 b2 c2a2 b2 c1Ra1 b2 c2a1 b2 c2a1 b3 c2a2 b2 c1S S第39页,讲稿共81张,创作于星期日例子:学生例子:学生课程数据库课程数据库n例:包括,三个关系例:包括,三个关系n用此例讲解专门的关系运算用此例讲解专门的关系运算S(Sno,Sname,Sex,Sage,Sdept)C(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Gr
35、ade)第40页,讲稿共81张,创作于星期日 Sno Sname Ssex Sage Sdept95001 李勇 男 20 CS95002 刘晨 女 19 IS95003 王敏 女 18 MA95004 张立 男 19 IS SCno Cname Cpqo Ccredit1 数据库 5 42数学 23信息系统 1 44 操作系统 6 35 数据结构 7 4 6 数据处理 27 Pascal语言 6 4C Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095002 3 80SC第41页,讲稿共81张,创作于星期日专门的关系运算专门的关系运
36、算投投影影:该该运运算算作作用用于于关关系系R将将产产生生一一个个新新关关系系S,S只只具具有有R的某几个属性列的某几个属性列选择选择:该运算作用于关系该运算作用于关系R也将产生一个新关系也将产生一个新关系S,S的元组集的元组集合是合是R的一个满足某条件的一个满足某条件C的子集的子集自自然然连连接接:其其关关系系模模式式是是R和和S模模式式的的并并集集。假假设设A1、A2、An是是R和和S的的模模式式中中的的公公共共属属性性,那那么么如如如如果果果果R R的的的的元元元元组组组组r r和和和和S S的的的的元元元元组组组组s s在在在在这这这这些些些些属属属属性性性性上上上上取取取取值值值值都
37、都都都相相相相同同同同,r r和和和和s s组组组组合合合合而而而而成成成成的的的的元元元元组组组组就就就就归归归归入入入入该该该该自然连接中自然连接中自然连接中自然连接中连连接接(包包含含等等值值连连接接):先先将将R和和S笛笛卡卡儿儿积积,然然后后从从RS的元组中选择满足条件的元组中选择满足条件的元组集合的元组集合第42页,讲稿共81张,创作于星期日专门的关系运算:选择专门的关系运算:选择n记号:记号:t R表示表示t是是R的一个元组的一个元组n选择选择:从关系从关系R中选取使逻辑表达式中选取使逻辑表达式F为真的元组,行选。为真的元组,行选。记作记作=逻辑表达式逻辑表达式F由由逻辑运算符逻
38、辑运算符连接连接算术表达式算术表达式逻辑运算符:逻辑运算符:算术表达式:算术表达式:基本形式为基本形式为“X1 Y1”表示比较运算符(,表示比较运算符(,或,或)X1,Y1是属性名或常量或简单函数,属性名可以用它的序号来代替是属性名或常量或简单函数,属性名可以用它的序号来代替例子:例子:FSage20 或或 F=420S(Sno,Sname,Sex,Sage,Sdept)第43页,讲稿共81张,创作于星期日选择运算举例选择运算举例n选择运算是从行的角度进行的运算选择运算是从行的角度进行的运算学学 号号Sno姓姓 名名Sname性性 别别Ssex年年 龄龄Sage系系Sdept95001李勇李勇
39、男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19ISSnoSnameSsexSageSdept95002刘晨刘晨女女19IS95004张立张立男男19IS查询信息系(查询信息系(ISIS系)全体学生系)全体学生SdeptSdept =IS=IS(Student)(Student)5=IS5=IS(Student)(Student)第44页,讲稿共81张,创作于星期日选择运算例选择运算例查询年龄小于查询年龄小于20岁的学生:岁的学生:Sdept (Student)或或 (Student)课堂练习:课堂练习:1)查询)查询CS系的所有女生系的所有女
40、生2)查询先行课代号为)查询先行课代号为6的所有课程的所有课程SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS第45页,讲稿共81张,创作于星期日关系代数:投影关系代数:投影n定义:从关系定义:从关系R中选择若干属性列组成新中选择若干属性列组成新的关系,列选的关系,列选 其中其中 表示元组表示元组t中相应于属性中相应于属性Ai的一的一个分量。个分量。第46页,讲稿共81张,创作于星期日投影(投影(Projection)n投影操作主要是从列的角度进行运算投影操作主要是从列的角度进行运算=但但投投影影之之后后不不仅
41、仅取取消消了了原原关关系系中中的的某某些些列列,而而且还可能取消某些元组(避免重复行)且还可能取消某些元组(避免重复行)第47页,讲稿共81张,创作于星期日投影运算例投影运算例查询学生的姓名和所在系:查询学生的姓名和所在系:Sname,Sdept(Student)或或 2,5(Student)查询学生关系中有哪些系:查询学生关系中有哪些系:Sdept(Student)或或 5(Student)SnameSdept李勇李勇CS刘晨刘晨IS王敏王敏MA张立张立ISSdeptCSISMA第48页,讲稿共81张,创作于星期日关系代数:连接关系代数:连接n连接连接从关系从关系R和和S的笛卡尔积中选取属性
42、间满足条件的元组的笛卡尔积中选取属性间满足条件的元组其中其中A和和B分别是关系分别是关系R和和S上可比的属性组,上可比的属性组,是比较运算符是比较运算符=等值连接等值连接从关系从关系R和和S的笛卡尔积中选取的笛卡尔积中选取A,B属性值相等的元组属性值相等的元组=自然连接自然连接特殊的等值连接,特殊的等值连接,R和和S具有相同的属性组具有相同的属性组B,在结果中去掉重复的属性列在结果中去掉重复的属性列第49页,讲稿共81张,创作于星期日连接连接n一般的连接操作是从行的角度进行运算一般的连接操作是从行的角度进行运算n自自然然连连接接还还需需要要取取消消重重复复列列,所所以以是是同同时时从行和列的角
43、度进行运算从行和列的角度进行运算 ABRS第50页,讲稿共81张,创作于星期日A B Ca1 b1 5a1 b2 6a2 b3 8a2 b4 12RB E b1 3 b2 7 b3 10 b3 2 b5 2S A R.B C S.B E a1 b1 5 b2 7 a1 b1 5 b3 10 a1 b2 6 b2 7 a1 b2 6 b3 10 a2 b3 8 b3 10R CE S A R.B C S.B E a1 b1 5 b1 3 a1 b2 6 b2 7 a2 b3 8 b3 10 a2 b3 8 b3 2等值连接 a1 b1 5 3 a1 b2 6 7 a2 b3 8 10 a2 b3
44、 8 2自然连接R R.B=S.B SR S连接运算例连接运算例第51页,讲稿共81张,创作于星期日连接运算例连接运算例n选修课程号为选修课程号为1的学生的完整信息(包括姓的学生的完整信息(包括姓名、系、成绩等)名、系、成绩等)RS SCS(Sno,Sname,Sex,Sage,Sdept)SC(Sno,Cno,Grade)R(Sno,Sname,Sex,Sage,Sdept,Cno,Grade)第52页,讲稿共81张,创作于星期日表示记号:表示记号:象集象集Zxn给定一个关系给定一个关系R(X,Z),),X和和Z为属性组为属性组当当tX=x时,时,x在在R中的中的象集象集(Images Se
45、t)为:)为:Zx=tZ|t R,tX=x A B C a1 b1 c2 a2 b3 c7 a3 b4 c6 a1 b2 c3 a4 b6 c6 a2 b2 c3 a1 b2 c1它表示它表示R中属性组中属性组X上值为上值为x的的诸元组在诸元组在Z上分量的集合。上分量的集合。例子:a1的象集为的象集为(b1,c2),(b2,c3),(b2,c1)第53页,讲稿共81张,创作于星期日关系代数:除关系代数:除nR与与S 的除运算得到一个新的关系的除运算得到一个新的关系P(X),P是是R中满足中满足下列条件的元组在下列条件的元组在X属性列上的投影:属性列上的投影:=关系关系R(X,Y)和和S(Y,Z
46、),其中,其中X,Y,Z为属性组为属性组R中的中的Y与与S中的中的Y可以有不同的属性名,但必须出自相同的域集可以有不同的属性名,但必须出自相同的域集=元组在元组在X上分量值上分量值x的象集的象集Yx包含包含S在在Y上的上的投影投影第54页,讲稿共81张,创作于星期日除除n除操作是同时从行和列角度进行运算除操作是同时从行和列角度进行运算RS第55页,讲稿共81张,创作于星期日4)除运算例除运算例设有如图的关系和设有如图的关系和 A B C a1 b1 c2 a2 b3 c7 a3 b4 c6 a1 b2 c3 a4 b6 c6 a2 b2 c3 a1 b2 c1 B C D b1 c2 d1 b
47、2 c1 d1 b2 c3 d2 A a1则则 结果如下结果如下a1的象集为的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为的象集为(b3,c7),(b2,c3)a3的象集为的象集为(b4,c6)a4的象集为的象集为(b6,c6)在(,)上的投影为在(,)上的投影为(b1,c2),(b2,c1),(b2,c3)因只有因只有a1的象集包含了在(,)的象集包含了在(,)属性组上的投影,故属性组上的投影,故 a1第56页,讲稿共81张,创作于星期日例子例子n选修了选修了1号课程的学生学号?号课程的学生学号?Sno(Cno=1Cno=1(SC)n至少选修了至少选修了1号和号和3号课程
48、的学生号课程的学生学号学号?SC(Sno,Cno,Grade)C(Cno,Cname,Cpno,Ccredit)第57页,讲稿共81张,创作于星期日查询至少选修1号课程和3号课程的学生号码解:先建一临时关系:求:Sno,Cno(SC)K结果为:95001Cno 1 3SC(Sno,Cno,Grade)(Sno,Cno)第58页,讲稿共81张,创作于星期日思考思考n选择、投影、除、连接等关系运算能做什选择、投影、除、连接等关系运算能做什么事情?么事情?n它们分别能解决什么样的查询问题?它们分别能解决什么样的查询问题?=请分别举例说明?请分别举例说明?n在实际问题中,如何复合使用?在实际问题中,如
49、何复合使用?第59页,讲稿共81张,创作于星期日关系代数:综合应用关系代数:综合应用1)查询选修了号课程的学生的学号2)查询至少选修了一门其直接先行课为号课程的学生姓名3)查询选修了全部课程的学生号码和姓名请给出对应含义和查询答案:第60页,讲稿共81张,创作于星期日解:解:Sname(Cpno=5(Course)SCSno,Sname(Student)或或Sname(Sno(Cpno=5(Course)SC)Sno,Sname(Student)1)查询选修了号课程的学生的学号查询选修了号课程的学生的学号解:解:SnoSno(Cno=2(SC)SC))=95001,95002=95001,95
50、0022)查询至少选修了一门其直接先行课为号课程的学生姓名查询至少选修了一门其直接先行课为号课程的学生姓名第61页,讲稿共81张,创作于星期日3)查询选修了全部课程的学生号码和姓名查询选修了全部课程的学生号码和姓名解:解:Sno,CnoSno,Cno(SC)SC)CnoCno(Course)(Course)Sno,SnameSno,Sname(Student)(Student)例子和思考例子和思考n问题:查询选修了号课程的学生的姓名问题:查询选修了号课程的学生的姓名?查询至少选修了一门其直接先行课为数?查询至少选修了一门其直接先行课为数据结构的学生姓名?据结构的学生姓名?n还有没有其它答案?还