《关系数据库精.ppt》由会员分享,可在线阅读,更多相关《关系数据库精.ppt(157页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、关系数据库第1页,本讲稿共157页关系数据库简介系统而严格地提出关系模型的是美国IBMIBM公司的E.F.CoddE.F.Codd19701970年提出关系数据模型年提出关系数据模型 E.F.Codd,E.F.Codd,“A“A RelationalRelational ModelModel ofof DataData forforLargeLargeSharedSharedDataDataBanks”,Banks”,CommunicationCommunicationoftheACMoftheACM,1970,1970之后,提出了关系代数和关系演算的概念之后,提出了关系代数和关系演算的概念1
2、9721972年提出了关系的第一、第二、第三范式年提出了关系的第一、第二、第三范式19741974年提出了关系的年提出了关系的BNF范式范式第2页,本讲稿共157页关系数据库简介关系数据库应用数学方法来处理数据库中的数据80年代后,关系数据库系统成为最重要、最流行的数据库系统第3页,本讲稿共157页关系数据库简介典型实验系统典型实验系统 System RSystem R University INGRESUniversity INGRES典型商用系统典型商用系统 ORACLEORACLE SYBASESYBASE INFORMIXINFORMIX DB2DB2 INGRESINGRES第4页,
3、本讲稿共157页1.关系数据结构单一的数据结构单一的数据结构-关系关系 现现实实世世界界的的实实体体以以及及实实体体间间的的各各种种联联系系均均用用关关系系来来表表示示数据的逻辑结构数据的逻辑结构-二维表二维表 从用户角度,关系模型中数据的逻辑结构是一张二维表。从用户角度,关系模型中数据的逻辑结构是一张二维表。职工登记表2.1 关系模型的基本概念 2.1 关系模型的基本概念 第5页,本讲稿共157页2.关系操作集合1)常用的关系操作2)关系操作的特点3)关系数据语言的种类4)关系数据语言的特点第6页,本讲稿共157页关系操作集合(续)1)常用的关系操作查询查询 选择、投影、连接、除、并、交、差
4、选择、投影、连接、除、并、交、差数据更新数据更新 插入、删除、修改插入、删除、修改查询的表达能力是其中最主要的部分查询的表达能力是其中最主要的部分第7页,本讲稿共157页关系操作集合(续)2)关系操作的特点集集合合操操作作方方式式,即即操操作作的的对对象象和和结结果果都都是是集集合。合。非关系数据模型的数据操作方式:一次一记录非关系数据模型的数据操作方式:一次一记录第8页,本讲稿共157页关系操作集合(续)3)关系数据语言的种类关系代数语言关系代数语言 用对关系的运算来表达查询要求用对关系的运算来表达查询要求 典型代表:典型代表:ISBLISBL第9页,本讲稿共157页关系操作集合(续)关系数
5、据语言的种类(续)关系数据语言的种类(续)关系演算语言:用谓词来表达查询要求关系演算语言:用谓词来表达查询要求 元组关系演算语言元组关系演算语言 谓词变元的基本对象是元组变量谓词变元的基本对象是元组变量 典型代表:典型代表:APLHA,QUELAPLHA,QUEL 域关系演算语言域关系演算语言 谓词变元的基本对象是域变量谓词变元的基本对象是域变量 典型代表:典型代表:QBEQBE 具有关系代数和关系演算双重特点的语言具有关系代数和关系演算双重特点的语言 典型代表:典型代表:SQLSQL第10页,本讲稿共157页关系操作集合(续)4)关系数据语言的特点关系语言是一种高度非过程化的语言关系语言是一
6、种高度非过程化的语言 存取路径的选择由存取路径的选择由DBMSDBMS的优化机制来完成的优化机制来完成 用户不必用循环结构就可以完成数据操作用户不必用循环结构就可以完成数据操作能够嵌入高级语言中使用能够嵌入高级语言中使用关关系系代代数数、元元组组关关系系演演算算和和域域关关系系演演算算三三种种语言在表达能力上完全等价语言在表达能力上完全等价第11页,本讲稿共157页关系语言关系操作特点:关系操作特点:操作对象和结果都是集合操作对象和结果都是集合 高度非过程化的语言,不必借助循环结构就可以完成数据操作,高度非过程化的语言,不必借助循环结构就可以完成数据操作,能嵌入高级语言中使用能嵌入高级语言中使
7、用关系数据语言关系代数语言关系演算语言具有关系代数和关系演算双重特点的语言元组关系演算语言域关系演算语言例如ISBL例如APLHA,QUEL例如QBE例如SQL三种语言在表达能力上完全等价第12页,本讲稿共157页3.关系的三类完整性约束实体完整性实体完整性 实实体体完完整整性性规规则则:关关系系中中的的主主键键不不能能为为空空值值(NullNull)。空空值值就就是是“不不知知道道”或或“无无意意义义”,通通常常由由关关系系系系统统自自动动支支持持参照完整性参照完整性 参参照照完完整整性性规规则则:表表的的外外键键必必须须是是另另一一个个表表主主键键的的有有效效值值,或或者是空值。早期系统不
8、支持,目前大型系统能自动支持者是空值。早期系统不支持,目前大型系统能自动支持用户定义的完整性用户定义的完整性 反反映映应应用用领领域域需需要要遵遵循循的的约约束束条条件件,体体现现了了具具体体领领域域中中的的语义约束,用户定义后由系统支持语义约束,用户定义后由系统支持第13页,本讲稿共157页学号学号姓名姓名性性别别出生日出生日期期所在系所在系0022102王雪王雪莲莲女女1980-9-15电子系电子系0051309白亚白亚春春男男1981-1-25计算机计算机系系0052201陈韬陈韬男男1981-5-6计算机计算机系系0052217袁更袁更旭旭男男1980-12-8计算机计算机系系课程课程
9、号号学号学号成绩成绩C201002210275C505005130995C508A10286992C506005221780参照完整性示例第14页,本讲稿共157页 域(Domain)2.笛卡尔积(Cartesian Product)3.关系(Relation)2.1.1关系数据结构及形式化定义 第15页,本讲稿共157页 域(Domain)域是一组具有相同数据类型的值的集合。例:整数整数 实数实数 介于某个取值范围的整数介于某个取值范围的整数 指定长度的字符串集合指定长度的字符串集合 男男,女女 介于某个取值范围的日期介于某个取值范围的日期第16页,本讲稿共157页2.笛卡尔积(笛卡尔积(C
10、artesian ProductCartesian Product)1)笛卡尔积给给定定一一组组域域D D1 1,D D2 2,D Dn n,这这些些域域中中可可以以有相同的。有相同的。D D1 1,D D2 2,D Dn n的笛卡尔积为:的笛卡尔积为:D D1 1 D D2 2D Dn n (d d1 1,d d2 2,d dn n)d di i D Di i,i i1 1,2 2,n n所有域的所有取值的一个组合不能重复不能重复第17页,本讲稿共157页笛卡尔积(续笛卡尔积(续)例例 给出三个域:给出三个域:D D1 1=SUPERVISOR=SUPERVISOR=张清玫,刘逸张清玫,刘逸
11、 D D2 2=SPECIALITY=SPECIALITY=计算机专业,信息专业计算机专业,信息专业 D D3 3=POSTGRADUATE=POSTGRADUATE=李勇,刘晨,王敏李勇,刘晨,王敏 则则D D1 1,D D2 2,D D3 3的笛卡尔积为:的笛卡尔积为:D D1 1 D D2 2 D D33(张清玫,计算机专业,李勇张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏张清玫,计算机专业,王敏),(张清玫,信息专业,李勇张清玫,信息专业,李勇),(张清玫,信息专业,刘晨张清玫,信息专业,刘晨),(张清玫,信息专业,王敏张
12、清玫,信息专业,王敏),(刘逸,计算机专业,李勇刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏刘逸,计算机专业,王敏),(刘逸,信息专业,李勇刘逸,信息专业,李勇),(刘逸,信息专业,刘晨刘逸,信息专业,刘晨),(刘逸,信息专业,王敏刘逸,信息专业,王敏)第18页,本讲稿共157页笛卡尔积(续)2)元组(Tuple)笛笛卡卡尔尔积积中中每每一一个个元元素素(d d1 1,d d2 2,d dn n)叫作一个叫作一个n n元组(元组(n-tuplen-tuple)或简称元组。)或简称元组。3)3)分量(分量(ComponentComponen
13、t)笛卡尔积元素(笛卡尔积元素(d d1 1,d d2 2,d dn n)中的每一)中的每一个值个值d di i叫作一个分量。叫作一个分量。第19页,本讲稿共157页笛卡尔积(续)笛卡尔积的表示方法笛笛卡卡尔尔积积可可表表示示为为一一个个二二维维表表。表表中中的的每每行行对应一个元组,表中的每列对应一个域。对应一个元组,表中的每列对应一个域。在上例中,在上例中,1212个元组可列成一张二维表个元组可列成一张二维表第20页,本讲稿共157页 第21页,本讲稿共157页关系中属性个数称为关系中属性个数称为关系中属性个数称为关系中属性个数称为“元数元数元数元数”,也称目或度,也称目或度,也称目或度,
14、也称目或度关系元数为关系元数为5 5,基数为,基数为4 4 一般术语 关系模型术语字段、数据项属性记录类型关系模式记录1元组1记录2元组2记录3元组3记录4元组4字段值属性值关系模型的术语第22页,本讲稿共157页3.关系(Relation)1)关系D D1 1 D D2 2D Dn n的的子子集集叫叫作作在在域域D D1 1,D D2 2,D Dn n上的关系,表示为上的关系,表示为R R(D D1 1,D D2 2,D Dn n)R R:关系名关系名 n n:关系的目或度(关系的目或度(DegreeDegree)第23页,本讲稿共157页关系(续)注意:注意:关关系系是是笛笛卡卡尔尔积积的
15、的有有限限子子集集。无无限限关关系系在在数数据据库库系统中是无意义的。系统中是无意义的。由于笛卡尔积不满足交换律,即由于笛卡尔积不满足交换律,即(d(d1 1,d d2 2,d dn n)(d)(d2 2,d d1 1,d dn n)但关系满足交换律,即但关系满足交换律,即(d(d1 1,d d22,d di i,d dj j,d dn n)=(d d1 1,d d22,d dj j,d di i,d dn n)(i i,j j=1=1,2 2,n n)解解决决方方法法:为为关关系系的的每每个个列列附附加加一一个个属属性性名名以以取取消关系元组的有序性消关系元组的有序性第24页,本讲稿共157
16、页关系(续)例例 在表在表2.1 2.1 的笛卡尔积中取出有实际意义的元组的笛卡尔积中取出有实际意义的元组 来构造关系来构造关系关系:关系:SAP(SUPERVISORSAP(SUPERVISOR,SPECIALITYSPECIALITY,POSTGRADUATE)POSTGRADUATE)关系名,属性名关系名,属性名假设:假设:导师与专业:导师与专业:1:11:1,导师与研究生:,导师与研究生:1:n1:n于是:于是:SAPSAP关系可以包含三个元组关系可以包含三个元组 (张清玫,信息专业,李勇张清玫,信息专业,李勇),(张清玫,信息专业,刘晨张清玫,信息专业,刘晨),(刘逸,信息专业,王敏
17、刘逸,信息专业,王敏)第25页,本讲稿共157页关系(续)2)元组关关系系中中的的每每个个元元素素是是关关系系中中的的元元组组,通通常常用用t t表示。表示。3)单元关系与二元关系当当 n n=1=1时时,称称 该该 关关 系系 为为 单单 元元 关关 系系(UnaryUnaryrelationrelation)。)。当当 n n=2=2时时,称称 该该 关关 系系 为为 二二 元元 关关 系系(BinaryBinaryrelationrelation)。)。第26页,本讲稿共157页关系(续)4)关系的表示关关系系也也是是一一个个二二维维表表,表表的的每每行行对对应应一一个个元元组组,表的每
18、列对应一个域。表的每列对应一个域。第27页,本讲稿共157页关系(续)5)属性关关系系中中不不同同列列可可以以对对应应相相同同的的域域,为为了了加加以以区区分分,必必须须对对每每列列起起一一个个名名字字,称称为为属属性性(AttributeAttribute)。)。n n目关系必有目关系必有n n个属性。个属性。第28页,本讲稿共157页关系(续)6)码候选码(候选码(CandidatekeyCandidatekey)若关系中的某一属性组的值能唯一地标识若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码一个元组,则称该属性组为候选码在最简单的情况下,候选码只包含一个属性。在最简
19、单的情况下,候选码只包含一个属性。称为全码(称为全码(All-keyAll-key)在最极端的情况下,关系模式的所有属性组在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(是这个关系模式的候选码,称为全码(All-All-keykey)第29页,本讲稿共157页关系(续)码(续)主码主码若一个关系有多个候选码,则选定其中一个若一个关系有多个候选码,则选定其中一个为主码(为主码(PrimarykeyPrimarykey)主码的诸属性称为主码的诸属性称为主属性主属性(PrimeattributePrimeattribute)。)。不包含在任何侯选码中的属性称为不包含在任何侯选
20、码中的属性称为非码属性非码属性(Non-keyattributeNon-keyattribute)第30页,本讲稿共157页关系(续)7)三类关系基本关系基本关系(基本表或基表)(基本表或基表)实际存在的表,是实际存储数据的逻辑表示实际存在的表,是实际存储数据的逻辑表示查询表查询表查询结果对应的表查询结果对应的表视图表视图表由基本表或其他视图表导出的表,是虚表,不对由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据应实际存储的数据第31页,本讲稿共157页8)基本关系的性质 列是同质的(Homogeneous)每一列中的分量是同一类型的数据,来自同每一列中的分量是同一类型的数据,来自同
21、一个域一个域 不同的列可出自同一个域其中的每一列称为一个属性其中的每一列称为一个属性不同的属性要给予不同的属性名不同的属性要给予不同的属性名第32页,本讲稿共157页基本关系的性质(续)上例中也可以只给出两个域:上例中也可以只给出两个域:人(人(PERSONPERSON)=张清玫,刘逸,李勇,刘晨,王敏张清玫,刘逸,李勇,刘晨,王敏专业(专业(SPECIALITYSPECIALITY)=计算机专业,信息专业计算机专业,信息专业SAPSAP关系的导师属性和研究生属性都从关系的导师属性和研究生属性都从PERSONPERSON域中取值域中取值为了避免混淆,必须给这两个属性取不同的属性名,而不能直接使
22、为了避免混淆,必须给这两个属性取不同的属性名,而不能直接使用域名。用域名。例如定义例如定义:导师属性名为导师属性名为SUPERVISOR-PERSONSUPERVISOR-PERSON(或(或SUPERVISORSUPERVISOR)研究生属性名为研究生属性名为POSTGRADUATE-PERSONPOSTGRADUATE-PERSON(或(或POSTGRADUATEPOSTGRADUATE)第33页,本讲稿共157页基本关系的性质(续)列的顺序无所谓列的次序可以任意交换列的次序可以任意交换遵循这一性质的数据库产品遵循这一性质的数据库产品(如如ORACLE)ORACLE),增加新属性时,永远是
23、插至最后一列增加新属性时,永远是插至最后一列但也有许多关系数据库产品没有遵循这一但也有许多关系数据库产品没有遵循这一性质,例如性质,例如FoxProFoxPro仍然区分了属性顺序仍然区分了属性顺序第34页,本讲稿共157页基本关系的性质(续)任意两个元组不能完全相同由笛卡尔积的性质决定由笛卡尔积的性质决定但许多关系数据库产品没有遵循这一性质。但许多关系数据库产品没有遵循这一性质。例如例如:OracleOracle,FoxProFoxPro等都允许关系表中存在两个完全相同等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件。的元组,除非用户特别定义了相应的约束条件。第35页,
24、本讲稿共157页基本关系的性质(续)行的顺序无所谓行的次序可以任意交换行的次序可以任意交换遵循这一性质的数据库产品遵循这一性质的数据库产品(如如ORACLE)ORACLE),插入一个元组时永远插至最后一行插入一个元组时永远插至最后一行但也有许多关系数据库产品没有遵循这一性但也有许多关系数据库产品没有遵循这一性质,例如质,例如FoxProFoxPro仍然区分了元组的顺序仍然区分了元组的顺序第36页,本讲稿共157页基本关系的性质(续)分量必须取原子值每一个分量都必须是不可分的数据项。每一个分量都必须是不可分的数据项。这是规范条件中最基本的一条这是规范条件中最基本的一条第37页,本讲稿共157页2
25、.1.2 关系的完整性关系模型的完整性规则是对关系的某种约束条件。关系模型的完整性规则是对关系的某种约束条件。关系模型中三类完整性约束:关系模型中三类完整性约束:实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性实实体体完完整整性性和和参参照照完完整整性性是是关关系系模模型型必必须须满满足足的的完完整整性性约约束束条条件件,被被称称作作是是关关系系的的两两个个不不不不变变变变性性性性,应应该该由由关关系系系统自动支持。系统自动支持。第38页,本讲稿共157页关系的完整性(续)1 实体完整性2.参照完整性3.用户定义的完整性第39页,本讲稿共157页1 实体完整性实体完整性
26、规则(Entity Integrity)若属性A是基本关系R的主属性,则属性A不能取空值例SAP(SUPERVISORSAP(SUPERVISOR,SPECIALITYSPECIALITY,POSTGRADUATE)POSTGRADUATE)POSTGRADUATEPOSTGRADUATE属性为主码属性为主码(假设研究生不会重名),则其不能取空值(假设研究生不会重名),则其不能取空值第40页,本讲稿共157页实体完整性(续)关系模型必须遵守实体完整性规则的原因(1)(1)实实体体完完整整性性规规则则是是针针对对基基本本关关系系而而言言的的。一一个个基基本本表表通通常常对对应应现现实实世世界界的
27、的一一个个实实体体集集或或多多对对多多联联系。系。(2)(2)现现实实世世界界中中的的实实体体和和实实体体间间的的联联系系都都是是可可区区分分的,即它们具有某种唯一性标识。的,即它们具有某种唯一性标识。(3)(3)相应地,关系模型中以主码作为唯一性标识。相应地,关系模型中以主码作为唯一性标识。第41页,本讲稿共157页实体完整性(续)关系模型必须遵守实体完整性规则的原因关系模型必须遵守实体完整性规则的原因(续续)(4)主码中的属性即主属性不能取空值。空值就是“不知道”或“无意义”的值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完
28、整性。第42页,本讲稿共157页实体完整性(续)注意实体完整性规则规定基本关系的所有主属性都不能取空值例选修(学号,课程号,成绩)“学号、课程号”为主码,则两个属性都不能取空值。第43页,本讲稿共157页2 参照完整性1).关系间的引用2).外码3).参照完整性规则第44页,本讲稿共157页1).关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例1 学生实体、专业实体以及专业与学生 间的一对多联系 学生(学生(学号学号,姓名,性别,姓名,性别,专业号专业号,年龄),年龄)专业(专业(专业号专业号,专业名),专业名)第45页,本讲稿共157页学生(
29、学生(学号学号,姓名,性别,专业号,年龄),姓名,性别,专业号,年龄)专业(专业(专业号专业号,专业名),专业名)第46页,本讲稿共157页关系间的引用(续)例2 学生、课程、学生与课程之间的多对 多联系学生(学生(学号学号,姓名,性别,专业号,年龄)姓名,性别,专业号,年龄)课程(课程(课程号课程号,课程名,学分),课程名,学分)选修(选修(学号学号,课程号课程号,成绩),成绩)第47页,本讲稿共157页 学生学生学生选课学生选课课程课程第48页,本讲稿共157页关系间的引用(续)例3 学生实体及其内部的领导联系(一对多)学生(学生(学号学号,姓名,性别,专业号,年龄,姓名,性别,专业号,年
30、龄,班长班长)第49页,本讲稿共157页2)外码(Foreign Key)设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码基本关系R称为参照关系(Referencing Relation)基本关系S称为被参照关系(ReferencedRelation)或目标关系(Target Relation)。第50页,本讲稿共157页外码(续)说明关系R和S不一定是不同的关系目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上外码并不一定要与相应的主码同名 当外码与相应的主码属于不同关系时,往往 取相同的名字,以便于识别第5
31、1页,本讲稿共157页3).参照完整性规则若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(或者取空值(F F的每个属性值均为空值)的每个属性值均为空值)或者等于或者等于S S中某个元组的主码值。中某个元组的主码值。第52页,本讲稿共157页参照完整性规则(续)学生关系中每个元组的学生关系中每个元组的“专业号专业号”属性只属性只取下面两类值:取下面两类值:(1 1)空值空值,表示尚未给该学生分配专业,表示尚未给该学生分配专业(2 2)非非空空值值,这这时时该该值值必必须须是是专专业业关关系系
32、中中某某个个元元组组的的“专专业业号号”值值,表表示示该该学学生生不不可可能能分分配配到到一一个个不不存在的专业中存在的专业中第53页,本讲稿共157页参照完整性规则(续)选修(学号,课程号,成绩)“学号”和“课程号”是选修关系中的主属性按照实体完整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主码值第54页,本讲稿共157页参照完整性规则(续)学生(学生(学号学号,姓名,性别,专业号,年龄,姓名,性别,专业号,年龄,班长班长)“班长班长”属性值可以取两类值:属性值可以取两类值:(1 1)空值,表示该学生所在班级尚未选出班长,或该)空值,表示该学生所在班级尚未选出班长,或该学生本人即
33、是班长;学生本人即是班长;(2 2)非空值,这时该值必须是本关系中某个元组的学)非空值,这时该值必须是本关系中某个元组的学号值号值第55页,本讲稿共157页3 用户定义的完整性用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。第56页,本讲稿共157页用户定义的完整性(续)例:课程(课程号,课程名,学分)“课程名课程名”属性必须取唯一值属性必须取唯一值非主属性非主属性“课程名课程名”也不能取空值也不能取空值“学分学分”属性只能取值属性只能取值
34、11,2 2,3 3,44第57页,本讲稿共157页关系代数语言关系代数语言 用传统的集合运算和专门的关系运算来表达查询的抽象语言用传统的集合运算和专门的关系运算来表达查询的抽象语言关系代数运算符关系代数运算符关系代数表达式关系代数表达式 关系代数中有限次运算复合后形成的式子关系代数中有限次运算复合后形成的式子运算符运算符运算符运算符含义含义含义含义运算符运算符运算符运算符含义含义含义含义集合集合集合集合运算符运算符运算符运算符并并差差交交广义笛卡尔积广义笛卡尔积比较比较比较比较运算符运算符运算符运算符=大于大于大于等于大于等于小于小于小于等于小于等于等于等于不等于不等于专门的专门的专门的专门
35、的关系关系关系关系运算符运算符运算符运算符选择选择投影投影连接连接除除逻辑逻辑逻辑逻辑运算符运算符运算符运算符非非与与或或2.2 关系代数 第58页,本讲稿共157页表示记号R R,t t R R,tAtAi i,A A,tAtA,A A 设关系模式为设关系模式为R R(A A1 1,A A2 2,A An n),它的一个关系设为,它的一个关系设为R R t t R R表示表示t t是是R R的一个元组的一个元组 t t A Ai i 则表示元组则表示元组t t中相应于属性中相应于属性A Ai i的一个分量的一个分量 若若A A=A Ai i1 1,A Ai i2 2,A Aik ik,其中,
36、其中A Ai i1 1,A Ai i2 2,A Aik ik是是A A1 1,A A2 2,A An n中的一部分,则中的一部分,则A A称为属性列或域列称为属性列或域列 tAtA=(=(t t A Ai i1 1,t t A Ai i2 2,t t A Aik ik)表示元组表示元组t t在属性列在属性列A A上诸分量的上诸分量的集合集合 A A 则表示则表示 A A1 1,A A2 2,A An n 中去掉中去掉 A Ai i1 1,A Ai i2 2,A Aik ik 后剩余的后剩余的属性组属性组第59页,本讲稿共157页2.2.1传统的集合运算若若R R和和S S是同类关系是同类关系(
37、即它们都具有即它们都具有n n个属性且相应属性取自同一个属性且相应属性取自同一个域个域),则可进行,则可进行并、差、交运算。并、差、交运算。并、差、交运算。并、差、交运算。对两者进行集合运算之对两者进行集合运算之前,要对两者的属性列进行排序,保证两个关系的属性前,要对两者的属性列进行排序,保证两个关系的属性顺序相同。顺序相同。第60页,本讲稿共157页1.并(Union)R和S具具有有相相同同的的目目n n(即即两两个个关关系系都都有有n n个个属性)属性)相应的属性取自同一个域相应的属性取自同一个域vRS 仍为n目关系,由属于R或属于S的元组组成 RS=t|t Rt S 第61页,本讲稿共1
38、57页第62页,本讲稿共157页2.差(Difference)R和S具有相同的目具有相同的目n n相应的属性取自同一个域相应的属性取自同一个域vR-S 仍为n目关系,由属于R而不属于S的所有元组组成 R-S=t|tRtS 第63页,本讲稿共157页第64页,本讲稿共157页3.交(Intersection)R和S具有相同的目具有相同的目n n相应的属性取自同一个域相应的属性取自同一个域vRS仍为n目关系,由既属于R又属于S的元组组成 RS=t|t Rt S RS=R(R-S)第65页,本讲稿共157页第66页,本讲稿共157页4.4.笛卡尔积(笛卡尔积(Cartesian ProductCar
39、tesian Product)严严格格地地讲讲应应该该是是广广 义义 的的 笛笛 卡卡 尔尔 积积(Extended Extended Cartesian Cartesian ProductProduct)R R:n n目关系,目关系,k k1 1个元组个元组S S:m m目关系,目关系,k k2 2个元组个元组R RS S 列列:(:(n n+m m)列元组的集合)列元组的集合 元组的前元组的前n n列是关系列是关系R R的一个元组的一个元组 后后m m列是关系列是关系S S的一个元组的一个元组行行:k k1 1k k2 2个元组个元组 R RS S=t tr r t ts s|t tr r
40、 R R t ts s S S 第67页,本讲稿共157页第68页,本讲稿共157页2.2.2专门的关系运算:选择记号:记号:t t R R表示表示t t是是R R的一个元组的一个元组1.1.选择选择从关系从关系R R中选取使逻辑表达式中选取使逻辑表达式F F为真的元组,为真的元组,行选。记作行选。记作逻辑表达式逻辑表达式F F由逻辑运算符连接算术表达式,由逻辑运算符连接算术表达式,算术表达式基本形式为算术表达式基本形式为X X1 1 Y Y1 1 其中其中 表示比较运算符,表示比较运算符,X X1 1,Y,Y1 1是属性名或常量或简是属性名或常量或简单函数,属性名可以用它的序号来代替单函数,
41、属性名可以用它的序号来代替第69页,本讲稿共157页查询信息系全体学生:查询信息系全体学生:Sdept=IS(Student)或或=IS(Student)查询年龄小于查询年龄小于20岁的学生:岁的学生:Sdept(Student)或或(Student)结果如下:结果如下:SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19ISSnoSnameSsexSageSdept95002刘晨女19IS95003王敏女18MA95004张立男19IS1 1 1 1)选择运算例)选择运算例)选择运算例)选择运算例课堂练习:课堂练习:1)查询)查询CS系的所有女生系的所有女生
42、2)查询先行课代号为)查询先行课代号为6的所有课程的所有课程第70页,本讲稿共157页2.投影定义:从关系R中选择出满足条件F的若干属性列并组成新的关系,列选 其中其中 表示元组表示元组t t中相应于属性中相应于属性A Ai i的一个分量。的一个分量。注意:运算结果要去掉重复元组。注意:运算结果要去掉重复元组。第71页,本讲稿共157页2)投影运算例)投影运算例查询学生的姓名和所在系:查询学生的姓名和所在系:Sname,SdeptSname,Sdept(Student)(Student)或或 2,52,5(Student)(Student)查询学生关系中有哪些系:查询学生关系中有哪些系:Sde
43、ptSdept(Student)(Student)或或 5 5(Student)(Student)结果如下:结果如下:SnameSdept李勇CS刘晨IS王敏MA张立ISSdeptCSISMA第72页,本讲稿共157页3.连接连接连接连接连接 从关系从关系R R和和S S的笛卡尔积中选取属性间满足条件的元组的笛卡尔积中选取属性间满足条件的元组 其中其中A A和和B B分别是关系分别是关系R R和和S S上可比的属性组,上可比的属性组,是比较运算符是比较运算符 等值连接等值连接等值连接等值连接 从关系从关系R R和和S S的笛卡尔积中选取的笛卡尔积中选取A,BA,B属性值相等的元组属性值相等的元
44、组 自然连接自然连接自然连接自然连接 特殊的等值连接,特殊的等值连接,R R和和S S具有相同的属性组具有相同的属性组B B,在结果中去掉重复的属性列在结果中去掉重复的属性列第73页,本讲稿共157页连接连连连连接接接接(包包包包含含含含等等等等值值值值连连连连接接接接):先先将将R R和和S S做做笛笛卡卡积积,然然后后从从RSRS的元组中选择满足条件的元组中选择满足条件C C的元组集合。的元组集合。自自自自然然然然连连连连接接接接:假假设设A A1 1、A A2 2、AAn n是是R R和和S S的的模模式式中中的的公公共共属属性性,那那么么如如果果R R的的元元组组r r和和S S的的元
45、元组组s s在在这这些些属属性性上上取取值值都都相相同同,r r和和s s组组合合而而成的元组就归入该自然连接中。成的元组就归入该自然连接中。一一般般的的连连接接操操作作是是从从行行的的角角度度进进行行运运算算,自自然然连连接接还还需需要要取取消消重重复复列,所以是同时从行和列的角度进行运算。列,所以是同时从行和列的角度进行运算。ABRS第74页,本讲稿共157页3)连接运算例连接运算例设有如图的关系和关系设有如图的关系和关系ABCa1b15a1b26a2b38a2b412RBEb13b27b310b32b52SAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b3
46、10a2b38b310RCESAR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32等值连接a1b153a1b267a2b3810a2b382自然连接RR.B=S.BSRS第75页,本讲稿共157页表示记号:象集Zx给定一个关系R(X,Z),X和Z为属性组当tX=x时,x在R中的象集(ImagesSet)为:Zx=tZ|t R,tX=x A B C a1 b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1它表示它表示R中属性组中属性组X上值为上值为x的诸元组在的诸元组在Z上分量的集合。上分量的集合。例子:a1的象集为的象集为(b1,c
47、2),(b2,c3),(b2,c1)第76页,本讲稿共157页4.除除除R R与与SS的除运算得到一个新的关系的除运算得到一个新的关系P(X),PP(X),P是是R R中满足下列条件的元组在中满足下列条件的元组在X X属性列上的投属性列上的投影:影:关系关系R(X,Y)R(X,Y)和和S(Y,Z)S(Y,Z),其中,其中X,Y,ZX,Y,Z为属性组为属性组(R R中的中的Y Y与与S S中的中的Y Y可以有不同的属性名,但必须出自相同的域集)可以有不同的属性名,但必须出自相同的域集)元组在元组在X X上分量值上分量值x x的象集的象集YxYx包含包含S S在在Y Y上的投影上的投影第77页,本
48、讲稿共157页除除操作是同时从行和列角度进行运算RS第78页,本讲稿共157页4)除运算例除运算例设有如图的关系和设有如图的关系和ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2Aa1则则 结果如下结果如下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的象集包含了在(,)属性的象
49、集包含了在(,)属性组上的投影,故组上的投影,故 a1第79页,本讲稿共157页关系代数:综合应用1)查询选修了号课程的学生的学号2)查询至少选修了一门其直接先行课为号课程的学生姓名3)查询选修了全部课程的学生号码和姓名请给出对应含义和查询答案:第80页,本讲稿共157页关系代数:综合应用1)1)在以上在以上S-CS-C数据库中,查询选修了数据库中,查询选修了1 1号课程的学生号码号课程的学生号码2)2)在以上在以上S-CS-C数据库中,查询选修了数据库中,查询选修了1 1号课程或号课程或3 3号课程的学生号码号课程的学生号码Sno(Cno=1(SC)Sno(Cno=1vCno=3(SC)Sn
50、o(Cno=1(SC)U Sno(Cno=1(SC)第81页,本讲稿共157页3)在以上S-C数据库中,查询(至少)选修1号课程和3号课程的学生号码关系代数为:Sno,Cno(SC)K运算结果为:关系代数:综合应用解:先建一临时关系:Cno13第82页,本讲稿共157页2)查询选修了号课程的学生的学号解:Sno(Cno=2(SC))3)查询至少选修了一门其直接先行课为号课程的学生姓名4)查询选修了全部课程的学生号码和姓名解:Sname(Cpno=5(Course)SC Sno,Sname(Student))解:Sno,Cno(SC)Cno(Course)Sno,Sname(Student)关系