《数据库系统概念-第3章关系数据.ppt》由会员分享,可在线阅读,更多相关《数据库系统概念-第3章关系数据.ppt(97页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库系统教程第3章 关系数据库1第第3 3章章 关系数据库关系数据库3.1 3.1 关系数据模型关系数据模型3.2 3.2 基本术语与形式化定义基本术语与形式化定义3.3 3.3 完整性约束完整性约束3.4 3.4 关系代数关系代数*23.1 3.1 关系数据模型关系数据模型o关系数据模型源于数学关系数据模型源于数学。o19701970年年IBMIBM研研究究员员博博士士在在美美国国计计算算机机学学会会会会刊刊(Communication Communication of of the the ACMACM)上上发发表表了了题题为为“A A Relational Relational Mod
2、el Model of of Data Data for for Shared Shared Data Data BanksBanks”的的论论文文,开创了数据库系统的新纪元。开创了数据库系统的新纪元。*3关系模型关系模型o关系模型由三部分组成关系模型由三部分组成:n数据结构数据结构n操作集合操作集合n完整性约束完整性约束o这三部分也称为这三部分也称为关系模型三要素关系模型三要素。*43.1.1 3.1.1 数据结构数据结构o关系数据模型用二维表来组织数据关系数据模型用二维表来组织数据。o这个二维表在关系数据库中就称为这个二维表在关系数据库中就称为关关系系。o关系数据库就是表或者说是关系的集关
3、系数据库就是表或者说是关系的集合。合。o表是逻辑结构表是逻辑结构而不是物理结构而不是物理结构。*5学生关系模型学生关系模型*6学学 号号姓姓 名名年年 龄龄性性 别别所所 在在 系系0811101李勇李勇21男男计算机系计算机系0811102刘晨刘晨20男男计算机系计算机系0811103王敏王敏20女女计算机系计算机系0821101张立张立20男男信息管理系信息管理系0821102吴宾吴宾19女女信息管理系信息管理系学生3.1.2 3.1.2 数据操作数据操作o关系数据模型中的操作包括:关系数据模型中的操作包括:o传统的关系运算传统的关系运算:并、交、差、广义笛:并、交、差、广义笛卡尔乘积;卡
4、尔乘积;o专门的关系运算专门的关系运算:选择、投影、连接、:选择、投影、连接、除除;o有关的数据操作有关的数据操作:查询、插入、删除:查询、插入、删除、更改。更改。*7操作特点操作特点o关系模型中操作的数据以及查询的结关系模型中操作的数据以及查询的结果都是完整的果都是完整的集合集合(或表),(或表),o这些集合可以只包含一行数据,也可这些集合可以只包含一行数据,也可以是不包含任何数据的空集合。以是不包含任何数据的空集合。o非关系模型数据库中典型的操作是一非关系模型数据库中典型的操作是一次一行或一次一个记录。次一行或一次一个记录。o集合处理能力集合处理能力是关系系统区别于其他是关系系统区别于其他
5、系统的重要特征。系统的重要特征。*8关系模型与非关系模型区别关系模型与非关系模型区别o在在非关系模型非关系模型中,各个数据记录之间是通中,各个数据记录之间是通过指针等方式连接的,当要定位到某条记过指针等方式连接的,当要定位到某条记录时,需要用户自己按指针的链接方向逐录时,需要用户自己按指针的链接方向逐层查找层查找导航导航。o在在关系模型关系模型中,用户只需指定数据的定位中,用户只需指定数据的定位条件,数据库管理系统就可以自动定位到条件,数据库管理系统就可以自动定位到该数据记录该数据记录非非导航导航。*9层次模型查找示例层次模型查找示例*10关系模型查找示例关系模型查找示例*11学学 号号姓姓
6、名名年年 龄龄性性 别别所所 在在 系系0811101李勇李勇21男男计算机系计算机系0811102刘晨刘晨20男男计算机系计算机系0811103王敏王敏20女女计算机系计算机系0821101张立张立20男男信息管理系信息管理系0821102吴宾吴宾19女女信息管理系信息管理系0821101张立张立20男男信息管理系信息管理系关系操作关系操作o关系模型的关系模型的数据操作数据操作主要包括:主要包括:n查询查询、插入插入、删除删除、更改更改o关系数据库中的信息表示方式关系数据库中的信息表示方式:表中表中的行列位置有明确的值的行列位置有明确的值逻辑层。逻辑层。*12关系数据库的物理层关系数据库的物
7、理层o关系数据库在物理层也使用指针关系数据库在物理层也使用指针,但,但这些这些物理层的存储细节对用户来说都物理层的存储细节对用户来说都是不可见的是不可见的,用户所看到的物理层实,用户所看到的物理层实际上就是存放数据的数据库文件际上就是存放数据的数据库文件:n文件名文件名n存放位置存放位置*13关系语言特点关系语言特点o关系操作是通过关系语言实现的,关关系操作是通过关系语言实现的,关系语言的特点是系语言的特点是高度非过程化高度非过程化:n用户不必关心数据的存取路径和存取用户不必关心数据的存取路径和存取过程,只需要提出数据请求,过程,只需要提出数据请求,DBMSDBMS会会自动完成用户请求的操作;
8、自动完成用户请求的操作;n用户没有必要编写程序代码来实现对用户没有必要编写程序代码来实现对数据的重复操作。数据的重复操作。*143.1.3 3.1.3 数据完整性约束数据完整性约束o数据的完整性是指保证数据正确性的数据的完整性是指保证数据正确性的特征。特征。o数据完整性数据完整性是一种是一种语义概念语义概念,包括:,包括:n与现实世界中应用需求的数据的相容与现实世界中应用需求的数据的相容性和正确性;性和正确性;n数据库内数据库内数据之间的数据之间的相容性和正确性相容性和正确性。*15数据完整性数据完整性o数据完整性由一组完整性规则定义,数据完整性由一组完整性规则定义,关系模型的完整性规则是对关
9、系的某关系模型的完整性规则是对关系的某种约束条件。种约束条件。o在关系数据模型中将数据完整性分为在关系数据模型中将数据完整性分为三类三类:n实体完整性实体完整性n参照完整性参照完整性(引用完整性)(引用完整性)n用户定义的完整性用户定义的完整性*163.2 3.2 关系模型的基本术语与形式化定义关系模型的基本术语与形式化定义o3.2.1 3.2.1 基本术语基本术语o3.2.2 3.2.2 形式化定义形式化定义*173.2.1 3.2.1 基本术语基本术语o关系关系:关系就是二维表,二维表的名关系就是二维表,二维表的名字就是关系的名字。字就是关系的名字。o属性属性:二维表中的二维表中的每个列每
10、个列就称为一个就称为一个属性(或叫字段),属性(或叫字段),n每个属性有一个名字每个属性有一个名字属性名属性名n某一列的值某一列的值属性值属性值n列的个数列的个数关系的元数关系的元数。如果一个二。如果一个二维表有维表有n n个列,则称其为个列,则称其为n n元关系。元关系。*18基本术语基本术语(续)(续)o值域值域:二维表中属性的取值范围称为二维表中属性的取值范围称为值域。值域。o例如例如:n“年龄年龄”的取值为大于的取值为大于0 0的整数的整数n“性别性别”列的取值为列的取值为 男男,女女*19基本术语基本术语(续)(续)o元组元组:二维表中的一行数据称为一个二维表中的一行数据称为一个元组
11、(记录值)元组(记录值)。*20学学 号号姓姓 名名年年 龄龄性性 别别所所 在在 系系0811101李勇李勇21男男计算机系计算机系0811102刘晨刘晨20男男计算机系计算机系0811103王敏王敏20女女计算机系计算机系0821101张立张立20男男信息管理系信息管理系0821102吴宾吴宾19女女信息管理系信息管理系5 5个个元组元组基本术语基本术语(续)(续)o分量分量:元组中的每一个属性值称为元:元组中的每一个属性值称为元组的一个分量组的一个分量。on n元关系的每个元组有元关系的每个元组有n n个分量。个分量。o例:例:(08111010811101,李勇,李勇,2121,男,计
12、,男,计算机系)算机系),有,有5 5个分量个分量*21基本术语基本术语(续)(续)o关系模式关系模式:二维表的结构称为关系模二维表的结构称为关系模式式。o设有关系名为设有关系名为R R,属性分别为,属性分别为A A1 1,A A2 2,A An n,则关系模式可以表示为:,则关系模式可以表示为:R R(A A1 1,A A2 2,A An n)o如果将关系模式理解为数据类型,则如果将关系模式理解为数据类型,则关系就是该数据类型的一个具体值。关系就是该数据类型的一个具体值。*22基本术语基本术语(续)(续)o关系数据库关系数据库:对应于一个关系模型的对应于一个关系模型的所有关系的集合称为关系数
13、据库。所有关系的集合称为关系数据库。o候选键候选键:如果一个属性或属性集的值如果一个属性或属性集的值能够惟一标识一个关系的元组而又不能够惟一标识一个关系的元组而又不包含多余的属性,则称该属性或属性包含多余的属性,则称该属性或属性集为候选键。集为候选键。*23基本术语基本术语(续)(续)o主键主键:当一个关系中有多个候选键时,当一个关系中有多个候选键时,从中选择一个作为主键。从中选择一个作为主键。o每个关系只能有一个主键。每个关系只能有一个主键。o主键也称为主键也称为主码主码或或主关键字主关键字,用于惟,用于惟一地确定一个元组。一地确定一个元组。o主键可以由一个属性组成,也可以由主键可以由一个属
14、性组成,也可以由多个属性共同组成。多个属性共同组成。*24主键示例主键示例o学生(学号,姓名,性别,年龄,所学生(学号,姓名,性别,年龄,所在系)在系)*25学号学号o选课选课(学号,(学号,课程号课程号,成绩成绩)学号,学号,课程号课程号o选课选课(学号(学号,课程号课程号,考试次数考试次数,成绩成绩)学号学号,课程号课程号,考试次数考试次数基本术语基本术语(续)(续)o主属性主属性:包含在任一候选键中的属性包含在任一候选键中的属性称为主属性。称为主属性。o非主属性非主属性:不包含在任一候选键中的不包含在任一候选键中的属性称为非主属性。属性称为非主属性。o选课选课(学号,(学号,课程号课程号
15、,成绩成绩)*26学号,学号,课程号课程号成绩成绩术语对比术语对比*27关系术语关系术语一般的表格术语一般的表格术语关系名关系名表名表名关系模式关系模式表头(表所含列的描述)表头(表所含列的描述)关系关系(一张)二维表(一张)二维表元组元组记录或行记录或行属性属性列列分量分量一条记录中某个列的值一条记录中某个列的值3.2.2 3.2.2 形式化定义形式化定义o定义定义笛卡尔积笛卡尔积:设:设D D1 1,D D2 2,D Dn n为任意为任意集合,定义笛卡尔积集合,定义笛卡尔积D D1 1,D D2 2,D Dn n为:为:D D1 1 D D2 2 D Dn n (d(d1 1,d d2 2
16、,d dn n)|d)|di i D Di i,i i1 1,2 2,n n o其中每一个元素(其中每一个元素(d d1 1,d d2 2,d dn n)称为)称为一个一个n n元组元组,简称元组。,简称元组。o元组中每一个元组中每一个d di i称为是一个称为是一个分量分量。*28笛卡尔积示例笛卡尔积示例oD D1 1 计算机系,信息管理系计算机系,信息管理系 oD D2 2 李勇,刘晨,吴宾李勇,刘晨,吴宾 oD D3 3 男,女男,女 o则则D D1 1 D D2 2 D D3 3笛卡尔积为:笛卡尔积为:(计算机系,李勇,男),(计算机系,李勇,女),(计算机系,李勇,男),(计算机系,
17、李勇,女),(计算机系,刘晨,男),(计算机系,刘晨,女),(计算机系,刘晨,男),(计算机系,刘晨,女),(计算机系,吴宾,男),(计算机系,吴宾,女),(计算机系,吴宾,男),(计算机系,吴宾,女),(信息管理系,李勇,男),(信息管理系,李勇,女),(信息管理系,李勇,男),(信息管理系,李勇,女),(信息管理系,刘晨,男),(信息管理系,刘晨,女),(信息管理系,刘晨,男),(信息管理系,刘晨,女),(信息管理系,吴宾,男),(信息管理系,吴宾,女)(信息管理系,吴宾,男),(信息管理系,吴宾,女)*29笛卡尔乘积实际就是二维表笛卡尔乘积实际就是二维表*30关系的形式化定义关系的形式化
18、定义o笛卡尔积笛卡尔积D D1 1,D D2 2,D Dn n的任意一个子集的任意一个子集称为称为D D1 1,D D2 2,D Dn n上的一个上的一个n n元关系元关系。o形式化的关系定义同样可以把关系看成二形式化的关系定义同样可以把关系看成二维表,给表中的每个列取一个名字,称为维表,给表中的每个列取一个名字,称为属性属性。on n元关系有元关系有n n个属性,一个关系中的属性的个属性,一个关系中的属性的名字必须是唯一的。名字必须是唯一的。o属性属性D Di i的取值范围(的取值范围(i i1 1,2 2,n n)称)称为该属性的为该属性的值域值域。*31示例示例*32所在系所在系姓名姓名
19、性性别别计算机系计算机系李勇李勇男男计算机系计算机系刘晨刘晨男男计算机系计算机系吴宾吴宾女女RR(计算机系,李勇,男计算机系,李勇,男),(计算机系,刘晨,男计算机系,刘晨,男),(计算机计算机系,吴宾,女系,吴宾,女)对关系的限定对关系的限定o关系中的每个分量都是不可再分的最小属性关系中的每个分量都是不可再分的最小属性o表中列的数据类型是固定的,即列中的每个表中列的数据类型是固定的,即列中的每个分量都是同类型的数据,来自相同的值域。分量都是同类型的数据,来自相同的值域。o不同列的数据可以取自相同的值域。不同列的数据可以取自相同的值域。o关系表中列的顺序不重要关系表中列的顺序不重要。o关系表行
20、的顺序也不重要关系表行的顺序也不重要。o同一个关系中的元组不能重复同一个关系中的元组不能重复。*333.3 3.3 完整性约束完整性约束o数据完整性是指数据库中存储的数据数据完整性是指数据库中存储的数据是有意义的或正确的,和现实世界相是有意义的或正确的,和现实世界相符。符。o3.3.1 3.3.1 实体完整性实体完整性o3.3.2 3.3.2 参照完整性参照完整性o3.3.3 3.3.3 用户定义的完整性用户定义的完整性*343.3.1 3.3.1 实体完整性实体完整性o保证关系中的每个元组都是可识别的保证关系中的每个元组都是可识别的和惟一的。和惟一的。o指关系数据库中所有的表都指关系数据库中
21、所有的表都必须有主必须有主键键,而且表中不允许存在如下记录:,而且表中不允许存在如下记录:n无主键值的记录。无主键值的记录。n主键值相同的记录。主键值相同的记录。*35无主键值的情况无主键值的情况*36学学 号号姓姓 名名年年 龄龄性性 别别所所 在在 系系李勇李勇21男男计算机系计算机系0811102刘晨刘晨20男男计算机系计算机系0811103王敏王敏20女女计算机系计算机系李勇李勇21男男计算机系计算机系0821101张立张立20男男信息管理系信息管理系0821102吴宾吴宾19女女信息管理系信息管理系?主键值重复情况主键值重复情况*37*37学学 号号姓姓 名名年年 龄龄性性 别别所所
22、 在在 系系0811101李勇李勇21男男计算机系计算机系0811102刘晨刘晨20男男计算机系计算机系0811103王敏王敏20女女计算机系计算机系0811101李勇李勇21男男计算机系计算机系0821101张立张立20男男信息管理系信息管理系0821102吴宾吴宾19女女信息管理系信息管理系?主键作用主键作用o当在表中定义了主键时,数据库管理当在表中定义了主键时,数据库管理系统会自动保证数据的实体完整性,系统会自动保证数据的实体完整性,即保证不允许存在主键值为空的记录即保证不允许存在主键值为空的记录以及主键值重复的记录。以及主键值重复的记录。o空值空值是特殊的标量常数,它代表未定是特殊的标
23、量常数,它代表未定义的或者有意义但目前还处于未知状义的或者有意义但目前还处于未知状态的值。态的值。*383.3.2 3.3.2 参照完整性参照完整性o也称为也称为引用完整性引用完整性。o现实世界中的实体之间往往存在着某种联现实世界中的实体之间往往存在着某种联系,在关系模型中,实体以及实体之间的系,在关系模型中,实体以及实体之间的联系都是用关系来表示的,这样就自然存联系都是用关系来表示的,这样就自然存在着关系与关系之间的引用。在着关系与关系之间的引用。o参照完整性就是描述实体之间的联系的。参照完整性就是描述实体之间的联系的。o参照完整性一般是指多个实体或关系之间参照完整性一般是指多个实体或关系之
24、间的关联关系的关联关系。*39示例示例1 1 学生学生(学号学号,姓名,班号,性别,姓名,班号,性别)班班(班号班号,所属专业,人数,所属专业,人数)*40班号班号班号班号示例示例2 2学生(学生(学号学号,姓名,性别,专业),姓名,性别,专业)选课(选课(学号学号,课程号课程号,成绩),成绩)课程(课程(课程号课程号,课程名,学分),课程名,学分)*41学号学号学号学号课程号课程号课程号课程号示例示例3 3职工职工(职工号职工号,姓名,直接领导职工号,姓名,直接领导职工号)*42直接领导直接领导职工号职工号职工号职工号?外键定义外键定义o设设F F是关系是关系R R的一个或一组属性,如果的一
25、个或一组属性,如果F F与关系与关系S S的主键相对应,则称的主键相对应,则称F F是关是关系系R R的的外键外键(Foreign KeyForeign Key),并称关),并称关系系R R为为参照关系参照关系,关系,关系S S为为被参照关系被参照关系。关系关系R R和关系和关系S S不一定是不同的关系。不一定是不同的关系。*43关系的参照表示图关系的参照表示图o可以用图形化的方法形象地表达参照可以用图形化的方法形象地表达参照和被参照关系和被参照关系。*44示例示例*45说明说明o参照完整性规则就是定义外键与被参参照完整性规则就是定义外键与被参照的主键之间的引用规则。照的主键之间的引用规则。o
26、外键一般应符合如下要求:外键一般应符合如下要求:n或者值为空;或者值为空;n或者等于其所参照的关系中的某个元或者等于其所参照的关系中的某个元组的主键值。组的主键值。*463.3.3 3.3.3 用户定义的完整性用户定义的完整性o也称为也称为域完整性域完整性或或语义完整性语义完整性。o是是针对某一具体应用领域定义的数据针对某一具体应用领域定义的数据约束条件。约束条件。o反映某一具体应用所涉及的数据必须反映某一具体应用所涉及的数据必须满足应用语义的要求。满足应用语义的要求。o实际上就是指明关系中属性的取值范实际上就是指明关系中属性的取值范围,防止属性的值与应用语义矛盾围,防止属性的值与应用语义矛盾
27、。*473.4 3.4 关系代数关系代数o关系代数是关系操作语言的一种传统表示关系代数是关系操作语言的一种传统表示方式,是一种方式,是一种抽象的查询语言抽象的查询语言。o是一种纯理论语言,它定义了一些操作,是一种纯理论语言,它定义了一些操作,运用这些操作可以从一个或多个关系中得运用这些操作可以从一个或多个关系中得到另一个关系,而不改变源关系到另一个关系,而不改变源关系。o关系代数的操作数和操作结果都是关系,关系代数的操作数和操作结果都是关系,而且一个操作的输出可以是另一个操作的而且一个操作的输出可以是另一个操作的输入。输入。*48关系代数的运算关系代数的运算o关系代数的运算对象是关系,运算结果
28、也是关系代数的运算对象是关系,运算结果也是关系。关系。o与一般的运算一样,运算对象、运算符和运与一般的运算一样,运算对象、运算符和运算结果是关系代数的三大要素。算结果是关系代数的三大要素。o关系代数的运算可分为以下两大类:关系代数的运算可分为以下两大类:n传统的集合运算传统的集合运算:并、交、差、笛卡尔积:并、交、差、笛卡尔积n专门的关系运算专门的关系运算:选择、投影、连接选择、投影、连接、除除*49运算符运算符*50运算符(续)运算符(续)*513.4.1 3.4.1 传统的集合运算传统的集合运算o并运算并运算(Union)(Union)o交运算交运算(Intersection)(Inter
29、section)o差运算差运算(Except)(Except)o广义笛卡尔积广义笛卡尔积(Cartesian Product)(Cartesian Product)*52并、交、差运算示意图并、交、差运算示意图*53并运算并运算o 并(并(RSRS):):设关系设关系R R与关系与关系S S均是均是n n目关目关系,系,关系关系R R与关系与关系S S的并记为:的并记为:RSRSt|tR tS t|tR tS o其结果仍是其结果仍是n n目关系,由属于目关系,由属于R R或属于或属于S S的的元组组成。元组组成。o元组在新关系中的顺序不重要。元组在新关系中的顺序不重要。*54并运算示例并运算示
30、例顾客号顾客号姓名姓名性别性别年龄年龄S01S01张宏张宏男男4545S02S02李丽李丽女女3434S03S03王敏王敏女女2828顾客号顾客号姓名姓名性别性别年龄年龄S02S02李丽李丽女女3434S04S04钱景钱景男男5050S06S06王平王平女女2424顾客号顾客号姓名姓名性别性别年龄年龄S01S01张宏张宏男男4545S02S02李丽李丽女女3434S03S03王敏王敏女女2828S04S04钱景钱景男男5050S06S06王平王平女女2424RSR S*55交运算交运算o交(交(RSRS):):设关系设关系R R与关系与关系S S均是均是n n目关目关系,系,关系关系R R与关
31、系与关系S S的交记为:的交记为:RSRSt|tR tS t|tR tS o其结果仍是其结果仍是n n目关系,由属于目关系,由属于R R并且也属并且也属于于S S的元组组成。的元组组成。*56差运算差运算o差(差(R RS S):):设关系设关系R R与关系与关系S S均是均是n n目关目关系,系,关系关系R R与关系与关系S S的差记为:的差记为:R RS St|tR tS t|tR tS o其结果仍是其结果仍是n n目关系,由属于目关系,由属于R R但不属于但不属于S S的元组组成。的元组组成。oRSRSR-(R R-(R S)S)*57交、差运算示例交、差运算示例顾客号顾客号姓名姓名性别
32、性别年龄年龄S02S02李丽李丽女女3434顾客号顾客号姓名姓名性别性别年龄年龄S01S01张宏张宏男男4545S02S02李丽李丽女女3434S03S03王敏王敏女女2828顾客号顾客号姓名姓名性别性别年龄年龄S02S02李丽李丽女女3434S04S04钱景钱景男男5050S06S06王平王平女女2424RS顾客号顾客号姓名姓名性别性别年龄年龄S01S01张宏张宏男男4545S03S03王敏王敏女女2828RSRS*58广义笛卡尔积广义笛卡尔积o两个分别为两个分别为n n目和目和m m目的关系目的关系R R和关系和关系S S的笛卡尔积的笛卡尔积是一个(是一个(m mn n)列的元组的集合。元
33、组的前)列的元组的集合。元组的前n n个个列是列是R R的一个元组,后的一个元组,后m m个列是个列是S S的一个元组。的一个元组。o若若R R有有K1K1个元组,个元组,S S有有K2K2个元组,则关系个元组,则关系R R和关系和关系S S的广义笛卡尔积有的广义笛卡尔积有K1K2K1K2个元组,记做:个元组,记做:RSRStrts|trtrts|trR tsR tsS Sotrtstrts表示由元组表示由元组trtr和和tsts前后有序连接而成的一个前后有序连接而成的一个元组。元组。o任取元组任取元组trtr和和tsts,当且仅当,当且仅当trtr属于属于R R且且tsts属于属于S S时,
34、时,trtr和和tsts的有序连接即为的有序连接即为RSRS的一个元组。的一个元组。*59笛卡尔积示例笛卡尔积示例*603.4.2 3.4.2 专门的关系运算专门的关系运算o选择运算选择运算(Select)(Select)o投影运算投影运算(Project)(Project)o连接运算连接运算(Join)(Join)o除运算除运算(Division)(Division)*61选择运算选择运算从指定的关系中选择满足给定条件从指定的关系中选择满足给定条件(用逻辑表达式表达)的元组而组成(用逻辑表达式表达)的元组而组成一个新的关系。一个新的关系。F(R)r|rR F(r)真真 条件表达式,条件表达式
35、,取逻辑取逻辑“真真”值或值或“假假”值值 *62选择运算示意图选择运算示意图F(R)*63选择运算示例选择运算示例o例例.查询计算机系学生信息。查询计算机系学生信息。SdeptSdept计算机系计算机系(StudentStudent)有有StudentStudent关系:关系:SnoSnameSsexSageSdept0811101李勇李勇男男21计算机系计算机系0811102刘晨刘晨男男20计算机系计算机系0811103王敏王敏女女20计算机系计算机系0811104张小红张小红女女19计算机系计算机系0821101张立张立男男20信息管理系信息管理系0821102吴宾吴宾女女19信息管理系
36、信息管理系0821103张海张海男男20信息管理系信息管理系0811101李勇李勇男男21计算机系计算机系0811102刘晨刘晨男男20计算机系计算机系0811103王敏王敏女女20计算机系计算机系0811104张小红张小红女女19计算机系计算机系*64投影运算投影运算从关系从关系R R中选择若干属性,并用这些属性中选择若干属性,并用这些属性组成一个新的关系。组成一个新的关系。A(R)(t(A)|tR)属性列序列属性列序列*65投影运算示意图投影运算示意图RA A(R R)投影投影*66投影运算示例投影运算示例o例例2.2.查询学生的姓名和所在系。查询学生的姓名和所在系。snamesname,
37、sdeptsdept(StudentStudent)有有StudentStudent关系:关系:SnoSnameSsexSageSdept0811101李勇李勇男男21计算机系计算机系0811102刘晨刘晨男男20计算机系计算机系0811103王敏王敏女女20计算机系计算机系0811104张小红张小红女女19计算机系计算机系0821101张立张立男男20信息管理系信息管理系0821102吴宾吴宾女女19信息管理系信息管理系0821103张海张海男男20信息管理系信息管理系Sname李勇李勇刘晨刘晨王敏王敏张小红张小红张立张立吴宾吴宾张海张海Sdept计算机系计算机系计算机系计算机系计算机系计算
38、机系计算机系计算机系信息管理系信息管理系信息管理系信息管理系信息管理系信息管理系*67连接运算连接运算o连接运算用来连接相互之间有联系的连接运算用来连接相互之间有联系的两个关系,从而产生一个新的关系。两个关系,从而产生一个新的关系。o连接运算具有如下几种形式:连接运算具有如下几种形式:n连接连接n等值连接(等值连接(连接的特例)连接的特例)n自然连接自然连接n外部连接(或称外连接)外部连接(或称外连接)n半连接半连接*68连接连接oA A、B B是关系是关系R R和和S S上语义相同的属性或上语义相同的属性或属性组,属性组,o是比较运算符。是比较运算符。o连接运算从连接运算从R R和和S S的
39、广义笛卡尔积中选的广义笛卡尔积中选择择R R关系在关系在A A属性组上的值与属性组上的值与S S关系在关系在B B属性组上属性组上的的值满足值满足的元组。的元组。*69等值连接等值连接o为为“=”=”的连接成为等值连接。它是的连接成为等值连接。它是从关系从关系R R与与S S的笛卡尔积中选取的笛卡尔积中选取A A,B B属性属性值相等的那些元组:值相等的那些元组:*70自然连接自然连接o是一种特殊的等值连接,它是一种特殊的等值连接,它去掉了等去掉了等值连接结果中的重复的属性列值连接结果中的重复的属性列。o即若即若R R与与S S具有相同的属性组具有相同的属性组B B,则自然,则自然连接可记作:
40、连接可记作:*71原始数据原始数据*72商品商品销售销售左外连接示例左外连接示例半连接示例半连接示例等值连接与自然连接示例等值连接与自然连接示例数据数据*73外连接外连接o如果希望不满足连接条件的元组也出如果希望不满足连接条件的元组也出现在连接结果中,则可以通过外连接现在连接结果中,则可以通过外连接实现。实现。o外连接有三种:外连接有三种:n左外连接左外连接:n右外连接右外连接:n全外连接全外连接:*74外连接含义外连接含义o左左(右右)外连接外连接:把连接符号左把连接符号左(右右)边的边的关系中不满足连接条件的元组也保留到连接关系中不满足连接条件的元组也保留到连接后的结果中,并在连接结果中将
41、该元组所对后的结果中,并在连接结果中将该元组所对应的右应的右(左左)边关系的各个属性均置成空值边关系的各个属性均置成空值(NULLNULL)。)。o全外连接全外连接:把连接符号两边的关系中不满足把连接符号两边的关系中不满足连接条件的元组均保留到连接后的结果中,连接条件的元组均保留到连接后的结果中,并在连接结果中将不满足连接条件的各元组并在连接结果中将不满足连接条件的各元组的相关属性均置成空值(的相关属性均置成空值(NULLNULL)。)。*75左外连接示例左外连接示例*76数据数据全外连接示例全外连接示例*77半连接半连接o在两个关系之间执行连接操作,并将其在两个关系之间执行连接操作,并将其结
42、结果投影在第一个操作关系的所有属性上果投影在第一个操作关系的所有属性上。o半连接的一个优点是可以减少必须参与连半连接的一个优点是可以减少必须参与连接的元组的数目。接的元组的数目。o半连接操作的表达形式为:半连接操作的表达形式为:o上述半连接是一个半上述半连接是一个半连接,其他还有半连接,其他还有半等值连接、半自然连接等。等值连接、半自然连接等。*78半连接示例半连接示例o查询销售价格高于查询销售价格高于50005000的商品的全部的商品的全部信息。信息。(仅仅是想查看商品的信息仅仅是想查看商品的信息)*79数据数据除运算除运算o设关系设关系S S的属性是关系的属性是关系R R的属性的一部分,则
43、的属性的一部分,则RSRS为这样一个关系:为这样一个关系:n此关系的属性是由属于此关系的属性是由属于R R但不属于但不属于S S的所有属的所有属性组成;性组成;nRSRS的任一元组都是的任一元组都是R R中某元组的一部分。但中某元组的一部分。但必须符合下列要求,即任取属于必须符合下列要求,即任取属于RSRS的一个的一个元组元组t t,则,则t t与与S S的任一元组连接后,都为的任一元组连接后,都为R R中中原有的一个元组。原有的一个元组。*80除运算示意图除运算示意图*81除运算的一般形式除运算的一般形式o设有关系设有关系R R(X,YX,Y)和)和S S(Y,ZY,Z),其中),其中X X
44、、Y Y、Z Z为关系的属性组,则:为关系的属性组,则:R(X,Y)S(Y,Z)R(X,Y)S(Y,Z)R(X,Y)R(X,Y)Y Y(S)(S)*82象集定义象集定义o设设有有关关系系R R(X X,Y Y),其其中中X X,Y Y为为属属性性(组),(组),X=xX=x在在R R上的上的象集象集是:是:Yx=tY|tR tX=x Yx=tY|tR tX=x ot tY Y和和t tX X分别表示分别表示R R中的元组中的元组t t在在属性组属性组Y Y和和X X上的分量的集合。上的分量的集合。*83象集示例象集示例1 1SnoSnameSsexSageSdept0811101李勇李勇男男2
45、1计算机系计算机系0811102刘晨刘晨男男20计算机系计算机系0811103王敏王敏女女20计算机系计算机系0811104张小红张小红女女19计算机系计算机系0821101张立张立男男20信息管理系信息管理系0821102吴宾吴宾女女19信息管理系信息管理系0821103张海张海男男20信息管理系信息管理系*84有元组:有元组:(08211010821101,张立,男,张立,男,2020,信息管理系),信息管理系)设设X XSdeptSdept,SsexSsex,Y YSnoSno,SnameSname,SageSage,tX tX的一个值的一个值:x x(信息管理系,男)(信息管理系,男)
46、则则Y Yx x为为t tX Xx x(信息管理系,男)时所有(信息管理系,男)时所有tYtY的值:的值:Yx=Yx=(08211010821101,张立,张立,2020),(),(08211030821103,张海,张海,2020)0821101张立张立 200821103张海张海 20男男 信息管理系信息管理系男男 信息管理系信息管理系象集示例象集示例2 2SnoCnoGrade0811101C001960811101C002800811101C003840811101C005620811102C001920811102C002900811102C004840821102C00176082
47、1102C004850821102C005730821102C007NULL0821103C001500821103C00480*85设设X XSnoSno,Y YCnoCno,GradeGrade,则当则当X X取取“08111010811101”时,时,Y Y的象集为:的象集为:Y Yx x(C001C001,9696),),(C002C002,8080),(C003C003,8484),(C005C005,6262)0811101081110108111010811101C00196C00280C00384C00562再讨论除法的一般形式再讨论除法的一般形式o设有关系设有关系R R(X
48、X,Y Y)和)和S S(Y Y,Z Z),其中),其中X X、Y Y、Z Z为关系的属性组,则:为关系的属性组,则:R RS St tr rX|tX|tr r R R Y Y(S S)Y Yx x *86除运算示例除运算示例至少选了至少选了“C001C001”和和“C005C005”课程的学生课程的学生*87关系代数优先级关系代数优先级o运算运算投影投影选择选择乘积乘积连接、除连接、除交交并、差并、差 优先级优先级 高高 低低*88关系代数综合关系代数综合示例示例o例例5.5.查询选了查询选了C002C002号课程的学生的学号和号课程的学生的学号和成绩。成绩。Sno,Grade(Cno=C0
49、02(SC)o例例6.6.查询信息管理系选了查询信息管理系选了C004C004号课程的学号课程的学生的姓名和生的姓名和成绩。成绩。*89或:或:关系代数综合关系代数综合示例示例o例例7 7查询选了第查询选了第2 2学期开设的课程的学学期开设的课程的学生的姓名、所在系和所选的课程号生的姓名、所在系和所选的课程号*90或:或:关系代数综合关系代数综合示例示例o例例8.8.查询选了查询选了“高等数学高等数学”且成绩大且成绩大于等于于等于9090分的学生的姓名、所在系和分的学生的姓名、所在系和成绩成绩。*91或:或:关系代数综合关系代数综合示例示例o例例9.9.查询没选查询没选VBVB课程的学生的姓名和课程的学生的姓名和所在系所在系。*92或:或:关系代数综合关系代数综合示例示例o例例10.10.查询选了全部课程的学生的姓查询选了全部课程的学生的姓名和所在系名和所在系。o(1 1)选了全部课程的学生选了全部课程的学生学号学号*93(2 2)这些)这些学生学生的姓名和所在系的姓名和所在系关系代数综合关系代数综合示例示例o例例11.11.查询计算机系选了第查询计算机系选了第1 1学期开设学期开设的全部课程的学生的学号和姓名的全部课程的学生的学号和姓名。*94关系代数操作总结关系代数操作总结*95关系代数操作总结关系代数操作总结(续)(续)*96*97