收藏 分享(赏)

第二章关系数据库.ppt

上传人:j35w19 文档编号:8222716 上传时间:2019-06-15 格式:PPT 页数:162 大小:1.14MB
下载 相关 举报
第二章关系数据库.ppt_第1页
第1页 / 共162页
第二章关系数据库.ppt_第2页
第2页 / 共162页
第二章关系数据库.ppt_第3页
第3页 / 共162页
第二章关系数据库.ppt_第4页
第4页 / 共162页
第二章关系数据库.ppt_第5页
第5页 / 共162页
点击查看更多>>
资源描述

1、2.1.1 关系 单一的数据结构-关系现实世界的实体以及实体间的各种联系均用关系来表示。 数据的逻辑结构-二维表从用户角度,关系模型中数据的逻辑结构是一张二维表。 关系模型是建立在集合代数的基础上的,这里从集合论角度给出关系数据结构的形式化定义。,第二章 关系数据库 2.1 关系数据结构及形式化定义,2.1.1 关系 域(Domain) 域是一组具有相同数据类型的值的集合。例: 整数、实数 介于某个取值范围的整数 长度指定长度的字符串集合 男,女 介于某个取值范围的日期 张清玫,刘逸 计算机专业,信息专业,第二章 关系数据库 2.1 关系数据结构及形式化定义,2. 笛卡尔积(Cartesian

2、 Product),给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为: D1D2Dn(d1,d2,dn)diDi,i1,2,n 所有域的所有取值的一个组合 不能重复,2. 笛卡尔积(Cartesian Product),例: 给出三个域:D1=SUPERVISOR = 张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业D3=POSTGRADUATE=李勇,刘晨,王敏 则D1,D2,D3的笛卡尔积为: D1D2D3 (张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇), (张清玫,信息专业,

3、刘晨),(张清玫,信息专业,王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇), (刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) ,2) 元组(Tuple) 笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组。 3) 分量(Component) 笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量。 4) 基数(Cardinal number) 若Di(i1,2,n)为有限集,其基数为mi(i1,2,n),则D1D2Dn的基数M为:在上例中,基数:22312,即D1D2D3共有223

4、12个元组 5)笛卡尔积的表示方法 笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。 在上例中,12个元组可列成一张二维表,2. 笛卡尔积(Cartesian Product),3. 关系(Relation),1) 关系 D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为R(D1,D2,Dn)R:关系名n:关系的目或度(Degree) 2)元组 关系中的每个元素是关系中的元组,通常用t表示。 3) 单元关系与二元关系 当n=1时,称该关系为单元关系(Unary relation)。 当n=2时,称该关系为二元关系(Binary relation)。,4) 关系

5、的表示 关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。 5) 属性 关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。 n目关系必有n个属性。,3. 关系(Relation),6) 码 候选码(Candidate key) 若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码 在最简单的情况下,候选码只包含一个属性。 在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key),3. 关系(Relation),6) 码 主码 若一个关系有多个候选码,则选定其中一个为主码(Primary k

6、ey) 候选码的诸属性称为主属性(Prime attribute)。 不包含在任何侯选码中的属性称为非主属性(Non-key attribute),3. 关系(Relation),3. 关系(Relation),笛卡尔积是没有实际意义的。只有它的某个子集才有实际含义。 如上表: 专业方向与导师是一对多的联系; 专业方向与研究生是一对多的联系; 导师与研究生是一对多的联系,SAP关系,SAP(导师,专业方向,研究生) 假设研究生不会重名,则研究生可作为SAP关系的主码,7) 三类关系 基本关系(基本表或基表) 实际存在的表,是实际存储数据的逻辑表示 查询表 查询结果对应的表 视图表 由基本表或其

7、他视图表导出的表,是虚表,不对 应实际存储的数据对关系定义的限制和补充 原因:关系是一个无限集合,而且(d1,d2,dn) 是有序的 限制和补充: 限定关系数据模型中的关系必须是有限集合 通过对每个列加上属性名的方法取消关系元组的有序性,3. 关系(Relation),8)基本关系的性质 列是同质的(Homogeneous) 每一列中的分量是同一类型的数据,来自同一个域 不同的列可出自同一个域,其中的每一列称为一个属性 不同的属性要给予不同的属性名。分清 “属性” 和 “域”。 上例中也可以只给出两个域: 人(PERSON)=张清玫,刘逸,李勇,刘晨,王敏 专业(SPECIALITY)=计算机

8、专业,信息专业 SAP关系的导师属性和研究生属性都从PERSON域中取值,为了避免混淆,必须给这两个属性取不同的属性名,而不能直接使用域名。 例如定义: 导师属性名为SUPERVISOR-PERSON(或SUPERVISOR) 研究生属性名为POSTGRADUATE-PERSON(或POSTGRADUATE),3. 关系(Relation),8)基本关系的性质 列的顺序无所谓,即列的次序可以任意交换 任意两个元组候选码不能相同。 行的顺序列所谓,即出行的次序可以任意交换。 分量必须取原子值 每一个分量都必须是不可分的数据项。 这是规范条件中最基本的一条.,3. 关系(Relation),2.1

9、.2 关系模式,关系模式(Relation Schema)是型 关系是值(凡符合元组语义的那部分元素的全体) 关系模式是对关系的描述 元组集合的结构 属性构成 属性来自的域 属性与域之间的映像关系 元组语义以及完整性约束条件 属性间的数据依赖关系集合,2.1.2 关系模式,关系模式可以形式化地表示为:R(U,D,dom,F)R 关系名U 组成该关系的属性名集合D 属性组U中属性所来自的域dom 属性向域的映像集合F 属性间的数据依赖关系集合 例: 导师和研究生出自同一个域人,取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域:dom(导师-人)= dom(研究生-人) =P

10、ERSON,关系模式通常可以简记为R (U) 或 R (A1,A2,An)R 关系名 A1,A2,An 属性名 注:域名及属性向域的映像常常直接说明为属性的类型、长度 关系模式 对关系的描述 静态的、稳定的 关系 关系模式在某一时刻的状态或内容 动态的、随时间不断变化的 关系模式和关系往往统称为关系 通过上下文加以区别,2.1.2 关系模式,在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。例如:导师实体、研究生实体、导师与研究生之间的一对多联系都可以分别用一个关系来表示。 关系数据库也有型和值之分 关系数据库的型称为关系数据库模式,是对关系数据库的描述 若干域的定

11、义 在这些域上定义的若干关系模式 关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库,2.1.3 关系模式数据库,2.2 关系操作,2.2.1 基本的关系操作,关系模型中常用的关系操作:查询和插入、删除、修改两大部分。 查询操作是主要部分。又分为:选择、投影、连接、除、并、差、交、笛卡尔集等 选择、投影、并、差、笛卡尔集是5种基本操作。其他操作可由基本操作定义和导出。 关系操作的特点是集合操作方式,即操作的对象和结果都是集合。(一次一集合) 非关系数据模型的数据操作方式则为一次一记录。,2.2 关系操作,2.2.2 关系数据语言的分类,早期的关系操作用代数方式和逻辑方

12、式来表示。分别称为关系代数和关系演算。 关系代数是用对关系的运算来表达查询要求的。 关系演算是用谓词来表达查询要求的,其按谓词变元的基本对象是元组变量还是域变量又分为元组关系演算和域关系演算。 SQL语言是集查询、DDL、DML、DCL于一体的关系数据语言。,2.3 关系完整性,2.3.1 关系的三类完整性约束,关系模型的完整性规则是对关系的某种约束条件。是现实世界的要求。 关系模型中三类完整性约束实体完整性参照完整性用户定义的完整性 实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。用户定义的完整性是具体领域中的语义约束。,2.3 关

13、系完整性,2.3.2 实体完整性(Entity integrity),实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值 例 SAP(导师,专业,研究生)研究生属性为主码,(假设研究生不会重名),则其不能取空值。 按照实体完整性规则的规定,基本关系的主码都不能取空值。如果主码由若干属性组成,则所有这些主属性都不能取空值。例如:学生选课关系-选修(学号,课程号,成绩)中,“学号,课程号”为主码,则“学号,课程号”两个属性都不能取空值。,2.3 关系完整性,2.3.2 实体完整性(Entity Integrity),关系模型必须遵守实体完整性规则的原因 (1) 实体完整性规则是针对

14、基本关系而言的。一个基本表通常对应现实世界的一个实体集或多对多联系。 (2) 现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。例如:每个学生都是独立的个体,是不一样的。 (3) 相应地,关系模型中以主码作为唯一性标识。 主码中的属性即主属性不能取空值。空值就是“不知道”或“无意义”的值。 反证法: (4)主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。,2.3 关系完整性,2.3.3 参照完整性(Referential Integrity),1.关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的

15、,因此可能存在着关系与关系间的引用。 例1 学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名) 例2 学生、课程、学生与课程之间的多对多联系学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩),2.3 关系完整性,2.3.3 参照完整性(Referential Integrity),1.关系间的引用,学生,学生选课,课程,1.关系引用 不仅两个或两个以上的关系间可以存在引用关系,同一关系内部属性间也可能存在引用关系 例3 学生实体及其内部的领导联系(一对多) 学生(学号,姓名,性别,专业号,年龄,

16、班长),2.3 关系完整性,2.3.3 参照完整性(Referential Integrity),2.外码(Foreign Key) 设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码 Ks相对应,则称F是基本关系R的外码。 基本关系R称为参照关系(Referencing Relation) 基本关系S称为被参照关系(Referenced Relation)或目标关系(Target lation)。,2.3 关系完整性,2.3.3 参照完整性(Referential Integrity),2.外码(Foreign Key) 例子1: 学生(学号,姓名,性别,专业号,年

17、龄)专业(专业号,专业名)学生关系 -专业关系 参照关系 -被参照关系,2.3 关系完整性,2.3.3 参照完整性(Referential Integrity),2.外码(Foreign Key) 例子2:学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)学生关系 -选修关系-课程关系 被参照关系 -参照关系-被参照关系,2.3 关系完整性,2.3.3 参照完整性(Referential Integrity),2.外码(Foreign Key)例3 学生实体及其内部的领导联系(一对多)学生(学号,姓名,性别,专业号,年龄,班长)学生关系 参照关系 =被

18、参照关系,2.3 关系完整性,2.3.3 参照完整性(Referential Integrity),2.外码(Foreign Key) 说明 关系R和S不一定是不同的关系。 目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上。 外码并不一定要与相应的主码同名。通常:当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。,2.3 关系完整性,2.3.3 参照完整性(Referential Integrity),3. 参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关 系R和S不一定是不同的关系),则对于R中每个元组在F上的

19、值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值。 参照完整性规则定义了外码与主码之间的引用规则 参照完整性小结: 关系和关系之间有引用(三个关系、二个关系、单个关系) 外码 参照完整性规则,2.3 关系完整性,2.3.3 参照完整性(Referential Integrity),3. 参照完整性规则 例子1:学生关系中每个元组的“专业号”属性只取下面两类值: (1)空值,表示尚未给该学生分配专业 (2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中。例子2:选修(学号,课程号,成绩) “学号”和“课程号”是选修关

20、系中的主属性, 按照实体完整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主码值。例子3:学生(学号,姓名,性别,专业号,年龄,班长) “班长”属性值可以取两类值: (1)空值,表示该学生所在班级尚未选出班长,或该学生本人即是班长; (2)非空值,这时该值必须是本关系中某个元组的学号值。,2.3 关系完整性,2.3.3 参照完整性(Referential Integrity),用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。 例如

21、: 早期的RDBMS中没有提供定义和检验这些完整性的机制,因此需要应用开发人员在应用系统的程序中进行检查。如在选修关系中,每插入一条记录,必须在应用程序中写一段程序来检查其中的学号是否等于学生关系中的某个学号,检查其中的课程号是否等于课程关系中的某个课程号。如果等于则插入这条记录,否则就拒绝插入,并给出错误提示。,2.3 关系完整性,2.3.3 参照完整性(Referential Integrity),关系数据结构关系 域 笛卡尔积 关系 关系,属性,元组 候选码,主码,主属性 基本关系的性质关系模式关系数据库 关系的数据操作集合 查询 选择、投影、连接、除、并、交、差 数据更新 插入、删除、

22、修改 关系的完整性约束 实体完整性 参照完整性 用户定义的完整性,小结,2.4 关系代数,关系代数是一种抽象语言,用关系的运算来表示查询。 关系代数运算的三要素 运算对象:关系 运算符:(1)集合运算符将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行(2)专门运算符不仅涉及行而且涉及列(3)算术比较符辅助专门的关系运算符进行操作(4)逻辑运算符辅助专门的关系运算符进行操作 运算结果:关系,2.4 关系代数,并(Union)(1) R和S具有相同的目n(即两个关系都有n个属性)(2) 相应的属性取自同一个域RS 仍为n目关系,由属于R或属于S的元组组成RS = t|t Rt S ,

23、2.4 关系代数,2.4.1 传统的集合运算,c1,b2,a2,c2,b2,a1,c1,b1,a1,C,B,A,R,S,RS,2.4 关系代数,2.4.1 传统的集合运算,并(Union)(1) R和S具有相同的目n(即两个关系都有n个属性)(2) 相应的属性取自同一个域RS 仍为n目关系,由属于R或属于S的元组组成RS = t|t Rt S ,2. 差(Difference) R和S具有相同的目n相应的属性取自同一个域R - S 仍为n目关系,由属于R而不属于S的所有元组组成R -S = t|tRtS ,2.4 关系代数,2.4.1 传统的集合运算,2. 差(Difference) R和S具

24、有相同的目n相应的属性取自同一个域R - S 仍为n目关系,由属于R而不属于S的所有元组组成R -S = t|tRtS ,2.4 关系代数,2.4.1 传统的集合运算,3. 交(Intersection)R和S具有相同的目n相应的属性取自同一个域RS仍为n目关系,由既属于R又属于S的元组组成RS = t|t Rt S RS = R (R-S),2.4 关系代数,2.4.1 传统的集合运算,3. 交(Intersection)R和S具有相同的目n相应的属性取自同一个域RS仍为n目关系,由既属于R又属于S的元组组成RS = t|t Rt S RS = R (R-S),2.4 关系代数,2.4.1

25、传统的集合运算,4. 广义笛卡尔积(Extended Cartesian Product)R :n目关系,k1个元组S:m目关系,k2个元组RS 列:(n+m)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1k2个元组RS = tr ts |tr R tsS ,2.4 关系代数,2.4.1 传统的集合运算,广义笛卡尔积 (续),R,S,R S,1) R,tR,tAi设关系模式为R(A1,A2,An) 它的一个关系设为R。tR表示t是R的一个元组 tAi则表示元组t中相应于属性Ai的一个分量 2) A,tA, A若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik

26、是A1,A2,An中的一部分,则A称为属性列或域列。tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。A则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组。 3) tr tsR为n目关系,S为m目关系。tr R,tsS, tr ts称为元组的连接。它是一个n + m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。,2.4 关系代数,2.4.2 专门的关系运算,4)象集Zx给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集(Images Set)为:Zx=tZ|t R,tX=x它表示R中属性组X上值为x的诸元组在Z上

27、分量的集合 例如: X1在R中的象集zx1=z1,z2,z3 X2在R中的象集zx2=z2,z3 X3在R中的象集zx3=z1,z3,2.4 关系代数,2.4.2 专门的关系运算,R,选择(Selection) 1) 选择又称为限制(Restriction) 2)选择操作是根据某些条件对关系做水平分割,即选取符合条件的元组。 3) 选择运算符的含义 在关系R中选择满足给定条件的诸元组F(R) = t|tRF(t)= 真 F称为条件表达式。包括: 运算对象:常数(用引号括起来),元组分量(属性名或列的序号) 运算符:算术比较运算符( )、逻辑运算符( 或, ),2.4 关系代数,2.4.2 专门

28、的关系运算,选择(Selection) F:选择条件,是一个逻辑表达式,基本形式为:( X1Y1 ) ( X2Y2 ) :比较运算符(,或) X1,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替; :逻辑运算符(或) :表示任选项 :表示上述格式可以重复下去 1) ( X1Y1 ) ( X2Y2 ) 分解: X1Y1 例子: Sdept = CS ( X1Y1 ) 例子: ( Sdept = CS ) X2Y2 例子:Sage20 (X1Y1) ( X2Y2 ) 例子:(Sdept = CS ) (Sage20),2.4 关系代数,2.4.2 专门的关系运算,选择(Selecti

29、on) 4) 选择运算是从行的角度进行的运算 5) 举例设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。,2.4 关系代数,2.4.2 专门的关系运算,1.选择(续),(a),Student,例1,例2,例4,例3,例9,2.4.2 专门的关系运算,(b),Course,例9,1.选择(续),2.4.2 专门的关系运算,(c),SC,例7,例9,1.选择(续),2.4.2 专门的关系运算,例1 查询信息系(IS系)全体学生Sdept = IS (Student)或 5 =IS (Student) 结果:,1.选择(续),2.4.2 专门的关系运算,例2

30、 查询年龄小于20岁的学生Sage 20(Student) 或 4 20(Student)结果:,1.选择(续),2.4.2 专门的关系运算,2. 投影(Projection),1)投影运算符的含义 从R中选择出若干属性列组成新的关系A(R) = tA | t R A:R中的属性列 这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。 2)投影操作主要是从列的角度进行运算 但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),2.4.2 专门的关系运算,2.4.2 专门的关系运算,2. 投影(Projection) 3) 举例 例3 查询学生的姓名和所在系即

31、求Student关系上学生姓名和所在系两个属性上的投影Sname,Sdept(Student)或 2,5(Student)结果:,2.4.2 专门的关系运算,2. 投影(Projection)例4 查询学生关系Student中都有哪些系 Sdept(Student)结果:取消了完全相同的行,3. 连接(Join),1)连接也称为连接 2)连接运算的含义 从两个关系的笛卡尔积中选取属性间满足一定条件的元组R S = | tr Rts StrAtsB A和B:分别为R和S上度数相等且可比的属性组 :比较运算符 连接运算: 从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属

32、性组上值满足比较关系的元组。,2.4.2 专门的关系运算,3.连接(续),3)两类常用连接运算 等值连接(equijoin) 什么是等值连接 为“”的连接运算称为等值连接 等值连接的含义 从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:R S = | tr Rts StrA = tsB ,A=B,2.4.2 专门的关系运算,自然连接(Natural join) 什么是自然连接 自然连接是一种特殊的等值连接 两个关系中进行比较的分量必须是相同的属性组 在结果中把重复的属性列去掉 自然连接的含义R和S具有相同的属性组BR S = | tr Rts StrB = tsB ,

33、3.连接(续),2.4.2 专门的关系运算,3. 连接(续),4)一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,2.4.2 专门的关系运算,3.连接(续),5)举例例5 连接,2.4.2 专门的关系运算,示例:等值连接 R S,3. 连接(续),2.4.2 专门的关系运算,自然连接 R S,3. 连接(续),2.4.2 专门的关系运算,3. 连接(续),自然连接 R S,2.4.2 专门的关系运算,左外连接,右外连接,外连接,笛卡尔积:RS = tr ts |tr R tsS 连接():R S = | tr Rts StrAtsB 等值连接:

34、R S = | tr Rts StrA = tsB 自然连接: R S = | tr Rts StrB = tsB ,AB,tr ts,A=B,3. 连接(续),2.4.2 专门的关系运算,象集Z 给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集(Images Set)为:Zx=tZ|t R,tX=x它表示R中属性组X上值为x的诸元组在Z上分量的集合。,4.除运算,2.4.2 专门的关系运算,R,S,4.除运算,2.4.2 专门的关系运算,4. 除(Division),给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。 R中的Y与S中的Y可以有不同的属性名

35、,但必须出自相同 的域集。R与S的除运算得到一个新的关系P(X),P是R中 满足下列条件的元组在X属性列上的投影:元组在X上分 量值x的象集Yx包含S在Y上投影的集合。RS = tr X | tr RY (S) Yx Yx:x在R中的象集,x = trX,2.4.2 专门的关系运算,分析: 1、前提:两个关系R(X,Y)和S(Y,Z)应该有公共属性列。 2、运算的结果:为P(X),元组来自于R关系,只包含X属性列 3、R关系中的哪些元组呢? 对于tX的象集包含Y (S) 除同时是从行与列角度进行的,4.除运算,2.4.2 专门的关系运算,R,S,4.除运算,2.4.2 专门的关系运算,分析:

36、在关系R中,A可以取四个值a1,a2,a3,a4a1的象集为 (b1,c2),(b2,c3),(b2,c1)a2的象集为 (b3,c7),(b2,c3)a3的象集为 (b4,c6)a4的象集为 (b6,c6) S在(B,C)上的投影为(b1,c2),(b2,c1),(b2,c3) 只有a1的象集包含了S在(B,C)属性组上的投影 所以 RS =a1,4.除运算,2.4.2 专门的关系运算,R,RS,S,4.除运算,2.4.2 专门的关系运算,S1,S2,S3,R,RS 1,RS 2,RS 3,S1、S2、S3表示课程情况,R表示选修课程,?,4.除运算,除法的含义: RS 1表示至少选修S1关

37、系中列出课程的学生的学号和姓名,除法的含义: RS 2表示至少选修S2关系中列出课程的学生的学号和姓名,4.除运算,2.4.2 专门的关系运算,总结:,一共八种运算: 五种基本运算:并、差、笛卡尔积、选择、投影 三种组合运算:交、连接、除,关系代数表达式: 关系代数运算经有限次复合后形成的式子,总结:,一共八种运算: 五种基本运算:并、差、笛卡尔积、选择、投影 三种组合运算:交、连接、除 RS= R-(R-S) R S=R.AS.B(RS)R(X,Y)S(Y,Z)=x(R)- x(x(R) Y(S)-R),R.AS.B,R,S,R(X,Y)S(Y,Z)=x(R)- x(x(R) Y(S)-R)

38、,举例:,Student,Course,SC,综合实例: student(sno,sname,ssex,sage,sdept) course(cno,cname,cpno,ccredit) sc(sno,cno,grade) 试用关系代数表达每个查询语句: 查询所有年龄小于20岁的男学生。 ssex=男sage20(student) 查询所有女同学的姓名和年龄。 sname,sage(ssex=女(student) 查询选修课程号为C2或C4的学生学号。 sno(cno=C2cno=C4(SC),补充综合实例: student(sno,sname,ssex,sage,sdept) course

39、(cno,cname,cpno,ccredit) sc(sno,cno,grade) 试用关系代数表达每个查询语句: 查询不作为其他课程先行课的课程号。 cno(course)- cpno(course) 查询计算机专业和英语专业学生的情况。 sdept=计算机(student) sdept=英语(student),补充综合实例: student(sno,sname,ssex,sage,sdept) course(cno,cname,cpno,ccredit) sc(sno,cno,grade) 试用关系代数表达每个查询语句: 查询得到一张包括学生学号、课程名称、学分和成绩的学生成绩单。 sn

40、o,cname,ccredit,grade(courseSC) 查询选修课程号为C2的学生学号与姓名。 sno,sname(cno=C2(student SC) 查询不选课程号为C2的学生姓名与年龄。 sname,sage(student)-sname,sage(cno=C2(student SC),补充综合实例: student(sno,sname,ssex,sage,sdept) course(cno,cname,cpno,ccredit) sc(sno,cno,grade) 试用关系代数表达每个查询语句: 查询选修了课程名为“数据库”的学生学号与姓名。 sno,sname(cname=数

41、据库(Course SC Student) sno,sname (cno(cname=数据库(course) sno,cno(SC) sno,sname(Student) 查询选修了全部课程的学生名单。 sname(sno,cno(sc)cno(course)(student),补充综合实例: student(sno,sname,ssex,sage,sdept) course(cno,cname,cpno,ccredit) sc(sno,cno,grade) 试用关系代数表达每个查询语句: 查询其先行课程包含了操作系统课程的先行课程的课程号。 cno,cpno(course)cpno(cnam

42、e=操作系统(course) 12查询所学课程包含了学生S3(为学号)的所学课程的学生学号及姓名。 sno,sname(sno,cno(sc)cno(sno=s3(sc)(student),“检索不学C2课的学生姓名”,决不能用下式表示:SNAME,AGE(C#C2(SSC) 一定要用“差”的形式:SNAME,AGE(S)SNAME,AGE(C#=C2(SSC)“检索学习全部课程的学生学号”,要用 S#,C#(SC)C#(C)表示,而不能写成 S# (SCC#(C)形式。这是因为一个学生学的课程的成绩可能是不一样的。,综合示例存在问题,SCC#(C),5综合举例,以学生-课程数据库为例 (P.

43、59) 例7 查询至少选修1号课程和3号课程的学生号码 首先建立一个临时关系K: 然后求:Sno.Cno(SC)K,综合举例(续),例 7续 Sno.Cno(SC)95001象集1,2,395002象集2,3Cno(K)=1,3于是:Sno.Cno(SC)K=95001,综合举例(续),例 8 查询选修了2号课程的学生的学号。Sno(Cno=2(SC) 95001,95002,综合举例(续),例9 查询至少选修了一门其直接先行课为5号课程的课程的学生姓名。Sname(Cpno=5(Course SC Student) 或 Sname(Cpno=5(Course) SC Sno,Sname(St

44、udent) 或 Sname (Sno (Cpno=5 (Course) SC) Sno,Sname (Student),综合举例(续),例10 查询选修了全部课程的学生号码和姓名。Sno,Cno(SC)Cno(Course) Sno,Sname(Student),设有三个关系: S(Sno,Sname,Sage,Ssex), SC(Sno,Cno,Grade), C(Cno,Cname,teacher), 试用关系代数表达式表示下列查询语句: 1)检索liu老师所授课程的课程号和课程名 cno,cname(teacher=liu(c) 2)检索年龄大于23岁的男学生的学号和姓名 sno,sn

45、ame(sage23ssex=男(s),设有三个关系: S(Sno,Sname,Sage,Ssex), SC(Sno,Cno,Grade), C(Cno,Cname,teacher), 试用关系代数表达式表示下列查询语句: 3)检索学号为S3学生所学课程的课程名与任课教师名 cname,teacher(cno(sno=s3(sc)c) 4)检索至少选修LIU老师所授课程中一门课的女学生姓名 sname(cno(teacher=liu(c) sno,cno(sc) sno,sname(ssex=女(s) sname(teacher =liu(c) sc (ssex =女(s) sname(tea

46、cher =liu(c) ssex =女(c sc s),设有三个关系: S(Sno,Sname,Sage,Ssex), SC(Sno,Cno,Grade), C(Cno,Cname,teacher), 试用关系代数表达式表示下列查询语句: 5)检索WANG同学不学的课程的课程号 cno(C)-cno(sname=wang(ssc) 6)检索至少选修两门课的学生学号 1(1=425(sc sc),设有三个关系: S(Sno,Sname,Sage,Ssex), SC(Sno,Cno,Grade), C(Cno,Cname,teacher), 试用关系代数表达式表示下列查询语句: 7)检索全部学生

47、都选修的课程的课程号与课程名 (cno,sno(sc)sno(s) )cno,cname(c) 8)检索选修课程包含LIU老师所授全部课程的学生学号 sno,cno(sc) cno(teacher=liu(c),小结,l 关系代数运算关系代数运算并、差、交、笛卡尔积、投影、选择、连接、除基本运算并、差、笛卡尔积、投影、选择交、连接、除可以用5种基本运算来表达引进它们并不增加语言的能力,但可以简化表达,小结(续),l 关系代数表达式 关系代数运算经有限次复合后形成的式子l 典型关系代数语言 ISBL(Information System Base Language) 由IBM United Kingdom研究中心研制 用于PRTV(Peterlee Relational Test Vehicle)实验系统,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报