关系理论补充:关系数据.ppt

上传人:牧羊曲112 文档编号:6183606 上传时间:2023-10-03 格式:PPT 页数:150 大小:1.07MB
返回 下载 相关 举报
关系理论补充:关系数据.ppt_第1页
第1页 / 共150页
关系理论补充:关系数据.ppt_第2页
第2页 / 共150页
关系理论补充:关系数据.ppt_第3页
第3页 / 共150页
关系理论补充:关系数据.ppt_第4页
第4页 / 共150页
关系理论补充:关系数据.ppt_第5页
第5页 / 共150页
点击查看更多>>
资源描述

《关系理论补充:关系数据.ppt》由会员分享,可在线阅读,更多相关《关系理论补充:关系数据.ppt(150页珍藏版)》请在三一办公上搜索。

1、关系理论补充:关系数据库,2.1 关系数据库概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数,关系数据库简介,系统而严格地提出关系模型的是美国IBM公司的1970年提出关系数据模型,“A Relational Model of Data for Large Shared Data Banks”,Communication of the ACM,1970之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式,关系数据库简介,关系数据库应用数学方法来处理数据库中的数据80年代后,关系数据库系统成为最重要、最流行的数据库系统,关系数据

2、库简介,典型实验系统System RUniversity INGRES典型商用系统ORACLESYBASEDB2SQL ServerINFORMIXINGRES,第2章 关系数据库,2.1 关系数据库概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数2.5 关系演算2.6 关系数据库管理系统2.7 小结,2.1 关系数据库概述,关系数据库系统是支持关系模型的数据库系统关系模型的组成关系数据结构关系操作集合关系完整性约束,1.关系数据结构,单一的数据结构-关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构-二维表从用户角度,关系模型中数据的逻辑结构是一张二维表。,2.关

3、系操作,1)常用的关系操作2)关系操作的特点3)关系数据语言的种类4)关系数据语言的特点,关系操作(续),1)常用的关系操作查询选择、投影、连接、除、并、交、差数据更新插入、删除、修改查询的表达能力是其中最主要的部分,关系操作(续),2)关系操作的特点集合操作方式,即操作的对象和结果都是集合。非关系数据模型的数据操作方式:一次一记录文件系统的数据操作方式,关系操作(续),3)关系数据语言的种类关系代数语言 用对关系的运算来表达查询要求典型代表:ISBL,关系操作(续),关系数据语言的种类(续)关系演算语言:用谓词来表达查询要求元组关系演算语言谓词变元的基本对象是元组变量典型代表:APLHA,Q

4、UEL域关系演算语言 谓词变元的基本对象是域变量典型代表:QBE具有关系代数和关系演算双重特点的语言典型代表:SQL,关系操作(续),4)关系数据语言的特点关系语言是一种高度非过程化的语言存取路径的选择由DBMS的优化机制来完成用户不必用循环结构就可以完成数据操作能够嵌入高级语言中使用关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价,3.关系的三类完整性约束,实体完整性通常由关系系统自动支持参照完整性早期系统不支持,目前大型系统能自动支持用户定义的完整性反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束用户定义后由系统支持,第2章 关系数据库,2.1 关系数据库概述2.2

5、 关系数据结构2.3 关系的完整性2.4 关系代数2.5 关系演算2.6 关系数据库管理系统2.7 小结,2.2 关系数据结构,关系模型建立在集合代数的基础上关系数据结构的基本概念关系关系模式关系数据库,2.2 关系数据结构,1.关系2.关系模式3.关系数据库,一、关系,域(Domain)2.笛卡尔积(Cartesian Product)3.关系(Relation),域(Domain),域是一组具有相同数据类型的值的集合。例整数实数指定长度的字符串集合介于某个取值范围的整数男,女介于某个取值范围的日期,2.笛卡尔积(Cartesian Product),1)笛卡尔积 给定一组域D1,D2,Dn

6、,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2 Dn(d1,d2,dn)diDi,i1,2,n 所有域的所有取值的一个组合不能重复,例如给出三个域:D1=姓名=王平,李丽,张晓刚;D2=性别=男,女;D3=年龄=19,20.,则D1,D2,D3的笛卡儿积为D1D2D3,笛卡尔积(续),2)元组(Tuple)笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组。例3)分量(Component)笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量。例,笛卡尔积(续),4)基数(Cardinal number)若Di(i1,2,n)为有限集,其基

7、数为mi(i1,2,n),则D1D2 Dn的基数M为:在上例中,基数:22312,即D1D2D3共有22312个元组,笛卡尔积(续),5)笛卡尔积的表示方法笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。在上例中,12个元组可列成一张二维表,笛卡尔积(续),3.关系(Relation),1)关系D1D2 Dn的子集叫作在域D1,D2,Dn上的关系,表示为 R(D1,D2,Dn)R:关系名 n:关系的目或度(Degree),从D1D2D3中取出有用的元组,所构造的学生关系如表所示,关系(续),1)关系(续)注意关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。

8、由于笛卡尔积不满足交换律,即(d1,d2,dn)(d2,d1,dn)但关系满足交换律,即(d1,d2,di,dj,dn)=(d1,d2,dj,di,dn)(i,j=1,2,n)解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性,关系(续),例 在表2.1 的笛卡尔积中取出有实际意义的元组 来构造关系关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)关系名,属性名假设:导师与专业:1:1,导师与研究生:1:n于是:SAP关系可以包含三个元组(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(刘逸,信息专业,王敏),关系(续),2)元组关系中的每个

9、元素是关系中的元组,通常用 t 表示。3)单元关系与二元关系当n=1时,称该关系为单元关系(Unary relation)。当n=2时,称该关系为二元关系(Binary relation)。,关系(续),4)关系的表示关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。,关系(续),5)属性关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。,关系(续),6)码候选码若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。候选码的诸属性称为主属性(Prime attribut

10、e)。不包含在任何侯选码中的属性称为非码属性(Non-key attribute)。在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)。,关系(续),码(续)主码若一个关系有多个候选码,则选定其中一个为主码(Primary key)。,2.关系中的基本名词,1)元组:关系表中的每一横行称作一个元组,组成元组的元素为分量。2)属性:关系中的每一列称为一个属性。3)候选码、主码、全码:若关系的候选码中只包含一个属性,则称它为单属性码;若候选码是由多个属性构成的,则称为它为多属性码。若关系中只有一个候选码,且这个候选码中包

11、括全部属性,则这种候选码为全码。4)主属性和非主属性:关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。,1)基本表:关系数据库中实际存在的表,是实际存储数据的逻辑表示。2)视图表:视图表是由基本表或其他视图表导出的表。3)查询表:查询表是指查询结果表或查询中生成的临时表。,3.数据库中关系的类型,1)同一属性的数据具有同质性。2)同一关系的属性名具有不能重复性。3)关系中的列位置具有顺序无关性。4)关系具有元组无冗余性。5)关系中的元组位置具有顺序无关性。6)关系中每一个分量都必须是不可分的数据项。,4.数据库中基本关系的性质,关系(续),7)三类关系基本关系(基本表

12、或基表)实际存在的表,是实际存储数据的逻辑表示查询表查询结果对应的表视图表由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据,关系(续),8)基本关系的性质 列是同质的(Homogeneous)每一列中的分量是同一类型的数据,来自同一个域。不同的列可出自同一个域其中的每一列称为一个属性不同的属性要给予不同的属性名,关系(续),例:上例中也可以只给出两个域:人(PERSON)=张清玫,刘逸,李勇,刘晨,王敏专业(SPECIALITY)=计算机专业,信息专业SAP关系的导师属性和研究生属性都从PERSON域中取值。为了避免混淆,必须给这两个属性取不同的属性名,而不能直接使用域名。例如定义导

13、师属性名为SUPERVISOR-PERSON(或SUPERVISOR)研究生属性名为POSTGRADUATE-PERSON(或POSTGRADUATE)SAP(SUPERVISOR-PERSON,SPECIALITY,POSTGRADUATE-PERSON),关系(续),基本关系的性质(续)列的顺序无所谓列的次序可以任意交换遵循这一性质的数据库产品(如ORACLE),增加新属性时,永远是插至最后一列但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了属性顺序,关系(续),基本关系的性质(续)任意两个元组不能完全相同由笛卡尔积的性质决定但许多关系数据库产品没有遵循这一性质。例如O

14、racle,FoxPro等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件。,关系(续),基本关系的性质(续)行的顺序无所谓行的次序可以任意交换遵循这一性质的数据库产品(如ORACLE),插入一个元组时永远插至最后一行但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了元组的顺序,关系(续),基本关系的性质(续)分量必须取原子值每一个分量都必须是不可分的数据项。这是规 范条件中最基本的一条,二、关系模式,1什么是关系模式2定义关系模式3.关系模式与关系,1什么是关系模式,关系模式(Relation Schema)是型,关系是值关系模式是对关系的描述元组集合

15、的结构属性构成属性来自的域 属性与域之间的映象关系元组语义完整性约束条件属性间的数据依赖关系集合,2定义关系模式,关系模式可以形式化地表示为:R(U,D,dom,F)R 关系名U 组成该关系的属性名集合D 属性组U中属性所来自的域dom 属性向域的映象集合F 属性间的数据依赖关系集合。,定义关系模式(续),例 在上面例子中,由于导师和研究生出自同一个域人,所以要取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域,如:dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSON,定义关系模式(续),关系模式通常可以简记为 R(U

16、)或 R(A1,A2,An)R 关系名A1,A2,An 属性名注:域名及属性向域的映象常常直接说明为属 性的类型、长度。,3.关系模式与关系,关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系模式和关系往往统称为关系,通过上下文加以区别。,三、关系数据库,1.关系数据库2.关系数据库的型与值,1.关系数据库,在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。,2.关系数据库的型与值,关系数据库也有型和值之分关系数据库的型称为关系数据库模式,是对关系数据库的描述若干域的定义在这些域上定义的若干关系模式关系数据库的值是这些关

17、系模式在某一时刻对应的关系的集合,通常简称为关系数据库,第六、七周内容,2.3 关系的完整性,关系模型的完整性规则是对关系的某种约束条件。关系模型中三类完整性约束:实体完整性参照完整性用户定义的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。,2.3 关系的完整性,1.关系模型的实体完整性(Entity Integrity)若属性A是基本关系R的主属性,则属性A的值不能为空值。1)实体完整性能够保证实体的唯一性。2)实体完整性能够保证实体的可区分性。2.关系模型的参照完整性1)外码和参照关系 设F是基本关系R的一个或一组属性,但

18、不是关系R的主码(或候选码)。如果F与基本关系S的主码相对应,则称F是R的外码,并称R为参照关系,S为被参照关系或目标关系。,例如,“基层单位数据库”中有“职工”和“部门”两个关系,其关系模式如下:职工(职工号,姓名,工资,性别,部门号)部门(部门号,名称,领导人号)其中:主码用黑字下划线标出,外码用紫字下划线标出。,再例,在学生课程库中,关系模式表示为:学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)(不要分开划)其中:主码用下划线标出。,2)参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一

19、定是不同的关系),则对于R中每个元组在F上的值必须取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。,3.用户定义的完整性 用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。,关系的完整性(续),2.3.1 实体完整性2.3.2.参照完整性2.3.3.用户定义的完整性,2.3.1 实体完整性,实体完整性规则(Entity Integrity)若属性A是基本关系R的主属性,则属性A不能取空值例学生(学号,姓名,性别,专业号,年龄),则其学号不能取空值,实体完整性(续),关系模型必须遵守实体完整性规则的原因(1)实体完整性规则是针对

20、基本关系而言的。一个基本表通常对应现实世界的一个实体集或多对多联系。(2)现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。(3)相应地,关系模型中以主码作为唯一性标识。,实体完整性(续),关系模型必须遵守实体完整性规则的原因(续)(4)主码中的属性即主属性不能取空值。空值就是“不知道”或“无意义”的值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。,实体完整性(续),注意实体完整性规则规定基本关系的所有主属性都不能取空值例选修(学号,课程号,成绩)“学号、课程号”为主码,则两个属性都不能取空值。,关系的

21、完整性,2.3.1 实体完整性2.3.2.参照完整性2.3.3.用户定义的完整性,2.3.2 参照完整性,1.关系间的引用2.外码3.参照完整性规则,1.关系间的引用,在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例1 学生实体、专业实体以及专业与学生 间的一对多联系 学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名),学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名),关系间的引用(续),例2 学生、课程、学生与课程之间的多对 多联系 学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩),学生,

22、学生选课,课程,关系间的引用(续),例3 学生实体及其内部的领导联系(一对多)学生(学号,姓名,性别,专业号,年龄,班长),2外码(Foreign Key),设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码基本关系R称为参照关系(Referencing Relation)基本关系S称为被参照关系(ReferencedRelation)或目标关系(Target Relation)。,外码(续),说明关系R和S不一定是不同的关系目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上外码并不一定要与相应的主码同名 当外码

23、与相应的主码属于不同关系时,往往 取相同的名字,以便于识别,3.参照完整性规则,若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。,参照完整性规则(续),学生关系中每个元组的“专业号”属性只取下面两类值:(1)空值,表示尚未给该学生分配专业(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中,参照完整性规则(续),选修(学号,课程号,成绩)“学号”和“课程号”是选修关系中的主属性按照实体完

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

25、一功能。,用户定义的完整性(续),例:课程(课程号,课程名,学分)“课程名”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值1,2,3,4,小结,关系数据结构 关系域笛卡尔积关系关系,属性,元组候选码,主码,主属性基本关系的性质 关系模式 关系数据库,关系的数据操作集合查询选择、投影、连接、除、并、交、差数据更新插入、删除、修改,关系的完整性约束实体完整性参照完整性外码用户定义的完整性,2.4 关系代数,概述 传统的集合运算 专门的关系运算,概述,1.关系代数2.运算的三要素3.关系代数运算的三个要素4.关系代数运算的分类5.表示记号,概述,1.关系代数一种抽象的查询语言用对

26、关系的运算来表达查询,概述(续),2关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类,概述(续),集合运算符将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作,表2.4 关系代数运算符,概述(续),表2.4 关系代数运算符(续),概述(续),概述(续),4关系代数运算的分类 传统的集合运算 并、差、交、广义笛卡尔积专门的关系运算 选择、投影、连接、除,2.4 关系代数,概述传统的集合运算 专门的关系运算,2.4.1 传统的集合运算,并差交广义笛卡尔积,1.并

27、(Union),R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域RS 仍为n目关系,由属于R或属于S的元组组成 RS=t|t Rt S,并(续),R,S,RS,2.差(Difference),R和S具有相同的目n相应的属性取自同一个域R-S 仍为n目关系,由属于R而不属于S的所有元组组成 R-S=t|tRtS,差(续),R,S,R-S,3.交(Intersection),R和S具有相同的目n相应的属性取自同一个域RS仍为n目关系,由既属于R又属于S的元组组成 RS=t|t Rt S RS=R(R-S),交(续),R,S,R S,4.广义笛卡尔积(Extended Carte

28、sian Product),Rn目关系,k1个元组Sm目关系,k2个元组RS 列:(n+m)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1k2个元组RS=tr ts|tr R tsS,广义笛卡尔积(续),R,S,R S,传统集合运算的实例,R S RS,RS RS,2.4 关系代数,概述传统的集合运算专门的关系运算,2.4.2 专门的关系运算,选择投影连接除,*记号说明,(1)关系模式、关系、元组和分量 设关系模式为R(A1,A2,An),它的一个关系设为R,tR表示t是R的一个元组,t Ai则表示元组t中相对于属性Ai的一个分量。(2)域列和域列非 若A=A i

29、1,A i2,A ik,其中A i1,A i2,A ik是A1,A2,An中的一部分,则A称为属性列或域列,t A=t Ai1,t A i2,t A ik 表示元组t在属性列A上诸分量的集合。A则表示 A1,A2,,An 中去掉 A i1,A i2,A ik后剩余的属性组,它称为A的域列非。,(3)元组连串(Concatenation)设R为n目关系,S为m目关系,且tr R,tSS,则tr tS 称为元组的连串。连串是一个(n+m)列的元组,它的前n个分量是R中的一个n元组,后m个分量为S中的一个m元组。,(4)属性的象集(Images Set)给定一个关系R(X,Z),X和Z为属性组。定义

30、当t X=x时,x在R中的象集为:Zx=t Z|t R,t X=x.上式表示,x在R中的象集为R中Z属性对应分量的集合,而这些分量所对应的元组中的属性组X上的值应为x。,1.选择(Selection),1)选择又称为限制(Restriction)2)选择运算符的含义选择运算又称为限制运算。选择运算指在关系R中选择满足给定条件的元组,记作:F(R)=t|t R F(t)=真.其中:F表示选择条件,是一个逻辑表达式,取值为“真”或“假”。F由逻辑运算符(非)、(与)和(或)连接各条件表达式组成。条件表达式的基本形式为:X1Y1.其中:是比较运算符,它可以是、中的一种;X1和Y1是属性名、常量或简单

31、函数;属性名也可以用它的序号来代替。,选择(续),3)选择运算是从行的角度进行的运算 4)举例设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。,选择(续),(a),Student,例1,例2,例4,例3,例9,选择(续),(b),Course,例9,选择(续),(c),SC,例7,例9,选择(续),例1 查询信息系(IS系)全体学生 Sdept=IS(Student)或 5=IS(Student)结果:,选择(续),例2 查询年龄小于20岁的学生 Sage 20(Student)或 4 20(Student)结果:,2.投影(Projection),1

32、)投影运算符的含义从R中选择出若干属性列组成新的关系 A(R)=tA|t R A:R中的属性列,2.投影(Projection),2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),投影(续),3)举例例3 查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影 Sname,Sdept(Student)或 2,5(Student)结果:,投影(续),投影(续),例4 查询学生关系Student中都有哪些系 Sdept(Student)结果:,3.连接(Join),1)连接也称为连接2)连接运算的含义从两个关系的

33、笛卡尔积中选取属性间满足一定条件的元组 R S=|tr Rts StrAtsB A和B:分别为R和S上度数相等且可比的属性组:比较运算符连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。,连接(续),3)两类常用连接运算等值连接(equijoin)什么是等值连接为“”的连接运算称为等值连接 等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:R S=|tr Rts StrA=tsB,A=B,连接(续),自然连接(Natural join)什么是自然连接自然连接是一种特殊的等值连接两个关系中进行比较

34、的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义R和S具有相同的属性组B R S=|tr Rts StrB=tsB,连接(续),4)一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,连接(续),5)举例 例5,R,S,连接(续),R S,连接(续),等值连接 R S,连接(续),自然连接 R S,4.除(Division),给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组

35、在X上分量值x的象集Yx包含S在Y上投影的集合。RS=tr X|tr RY(S)Yx Yx:x在R中的象集,x=trX,除(续),2)除操作是同时从行和列角度进行运算3)举例例6(p59),补充:象集Z,给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集(Images Set)为:Zx=tZ|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合。,除(续),R,S,分析:,在关系R中,A可以取四个值a1,a2,a3,a4 a1的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为(b3,c7),(b2,c3)a3的象集为(b4,c6)a4的象集为

36、(b6,c6)S在(B,C)上的投影为(b1,c2),(b2,c1),(b2,c3)只有a1的象集包含了S在(B,C)属性组上的投影所以 RS=a1,体会除法运算的本质:RS=P(共3组),关系除法运算分下面4步进行:1)将被除关系的属性分为象集属性和结果属性:与除关系相同的属性属于象集属性,不相同的属性属于结果属性。2)在除关系中,对与被除关系相同的属性(象集属性)进行投影,得到除目标数据集。3)将被除关系分组,原则是,结果属性值一样的元组分为一组。4)逐一考察每个组,如果它的象集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集。,【例4-5】给出选课、选修课和必修课3个关

37、系,它们的关系模式为:选课(学号,课号,成绩);选修课(课号,课名);必修课(课号,课名).,选修课,选课必修课 学号,课号(选课)必修课,学生选课库的关系模式为:学生(学号,姓名,性别,年龄,所在系);课程(课程号,课程名,先行课);选课(学号,课程号,成绩).,【例4-6】求选修了课程号为“C2”课程的学生学号?【例4-7】求选修了课程号为“C2”课的学生学号和姓名?【例4-8】求没有选修课程号为“C2”课程的学生学号?【例4-9】求既选修“C2”课程,又选修“C3”课程的学生学号?【例4-10】求选修课程号为“C2”或“C3”课程的学生学号?【例4-11】求选修了全部课程的学生学号?,*

38、用关系代数表示检索的例子,学生选课库的关系模式为:学生(学号,姓名,性别,年龄,所在系);课程(课程号,课程名,先行课);选课(学号,课程号,成绩).【例4-6】求选修了课程号为“C2”课程的学生学号。【例4-7】求选修了课程号为“C2”课的学生学号和姓名。【例4-8】求没有选修课程号为“C2”课程的学生学号。学号(学生)-学号(课程号=C2(选课),学号(课程号=C2(选课),学号,姓名(课程号=C2(选课 学生),用关系代数表示检索的例子,【例4-9】求既选修“C2”课程,又选修“C3”课程的学生学号。学号(课程号=C2(选课)学号(课程号=C3(选课)该题不能写为:学号(课程号=C2 课

39、程号=C3(选课)【例4-10】求选修课程号为“C2”或“C3”课程的学生学号。学号(课程号=C2(选课)学号(课程号=C3(选课)或 学号(课程号=C2 课程号=C3(选课),【例4-11】求选修了全部课程的学生学号。学号,课程号(选课)课程【例4-12】一个学号为“98002”的学生所学过的所有课程可能也被其他学生选修,求这些学生的学号和姓名。学号,姓名(学号,课程号(选课)课程号(学号=98002(选课)(学生),关系代数解题总结:1、从题目中找出题目涉及的属性;2、找出上述属性涉及的关系;3、(1)对仅涉一个关系的运算,确定关系的运算类型,并构造相应的查询条件表达式(需要的话),选择正

40、确的运算符,最终书写出关系代数式;(2)对涉及两个以上的关系运算,区分是普通并、交、差,还是连接或是除法的运算,结合选择、投影书写出关系代数式。4、注意括号配对要正确(左右括号数要相等)。5、注意下标书写要正确。,关系代数解题中查找运算类型的技巧:减法运算的选择技巧:题目中含有“不”、“没有”等一类否定词时,要用减法运算。除法运算的选择技巧:题目中含有“包含”一类的含义时(如包含、所有等用词),要用除法运算。,课堂练习:设有如下学生关系数据库表结构:S(sno,sn,sd,sa);C(cno,cn,pno);SC(sno,cno,g).其中:sno,sn,sd,sa,cno,cn,pno,g分

41、别表示学号、学生姓名、学生系别、学生年龄、课程号、课程名、先修课程号、成绩等属性。S、C、SC分别表示学生、课程和选课3个关系表。现要求执行如下操作:1、检索学生年龄大于或等于20岁的学生姓名。2、检索先修课程号为C2的课程的课程号。3、检索课程号为C3且成绩为90分以上的所有学生姓名。,4、检索年龄为23岁的学生所修读的课程名。5、检索至少修读学号为S5学生所修读的一门课程的学生姓名。6、检索修读了S4学生所修读的所有课程的学生姓名。,7、检索修读所有课程的学生姓名。8、检索不修读任何课程的学生学号。9、学号为S2的学生因故退学,请在S和SC中将其除名。,10、检索wang同学不学的课程号。

42、11、检索全部学生都选修的课程号与课程名。12、检索至少选修两门课程的学生学号。,答案参考,1、sn(sa20(S)2、cno(pno=c2(C)3、sn(cno=C3 g 90(SSC)4、cn(sa=23(S SC C)5、sn(sno(cno(sno=s5(SC)SC)S)6、sn(sno,cno(SC)cno(sno=s4(SC)S)7、sn(sno,cno(SC)cno(C)S)8、sno(S)sno(SC)9、S sno=s2(S);SC sno=s2(SC)10、cno(C)-cno(sn=wang(S SC)、11、cno,cn(cno,sno(SC)sno(S)C)12、sno(1=425(SCSC),R,S,RS,R S,S R,R S,RS,3,2(S),B5(R),R S,R.AS.A,R S,R.B=S.B,R S,课后作业,本章结束 谢谢,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号