关系模型和关系运算.ppt_第1页
关系模型和关系运算.ppt_第2页
关系模型和关系运算.ppt_第3页
关系模型和关系运算.ppt_第4页
关系模型和关系运算.ppt_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,数据库系统原理,第二章 关系模型和关系运算,2.1 关系模型概述 2.2 关系数据结构及完整性约束 2.3 关系代数,数据库系统原理,第二章 关系模型和关系运算 学习要求: 深刻理解关系模型的相关概念,即关系模型的数据结构、关系操作和关系完整性约束;掌握关系代数的基本运算和应用。 学习重点: 关系模型的基本概念; 关系模型的三类完整性约束; 关系代数的选择、连接、除等运算,数据库系统原理,第二章 关系模型和关系运算,2.1 关系模型概述 2.2 关系数据结构及完整性约束 2.3 关系代数,数据库系统原理,第一节 关系模型概述,一、关系理论的产生与发展 系统而严格地提出关系模型的是美国IBM公司的E.F.Codd 1970年提出关系数据模型 之后,提出了关系代数和关系演算的概念 1972年提出了关系的第一、第二、第三范式 1974年提出了关系的BC范式 关系数据库系统是支持关系模型的数据库系统 80年代后,关系数据库系统成为最重要、最流行的数据库系统,第二章 关系模型和关系运算,关系理论的产生与发展(续),典型实验系统 System R University INGRES 典型商用系统 ORACLE SYBASE INFORMIX DB2 SQL SERVER INGRES,第二章 关系模型和关系运算,第一节 关系模型概述,二、关系模型的组成 关系数据结构 关系操作 关系完整性约束,第二章 关系模型和关系运算,(一)关系数据结构,单一的数据结构-关系 现实世界的实体以及实体间的各种联系均用关系来表示。 数据的逻辑结构-二维表 从用户角度,关系模型中数据的逻辑结构是二维表。,第二章 关系模型和关系运算,(二)关系操作,1、常用的关系操作 查询 查找用户所需要的数据 数据更新 插入、删除、修改 查询的表达能力是其中最主要的部分 2、关系操作的特点 集合操作方式,即操作的对象和结果都是集合。 非关系数据模型的数据操作方式:一次一记录,第二章 关系模型和关系运算,关系操作(续),3、关系数据语言的种类 关系代数语言 用对关系的运算来表达查询要求 典型代表:ISBL 关系演算语言:用谓词来表达查询要求 元组关系演算语言 谓词变元的基本对象是元组变量 典型代表:ALPHA 域关系演算语言 谓词变元的基本对象是域变量 典型代表:QBE 具有关系代数和关系演算双重特点的语言 典型代表:SQL,第二章 关系模型和关系运算,(三)关系的完整性约束,实体完整性 通常由关系系统自动支持 参照完整性 早期系统不支持,目前大型系统能自动支持 用户定义的完整性 反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束 用户定义后由系统支持,第二章 关系模型和关系运算,第二章 关系模型和关系运算,2.1 关系模型概述 2.2 关系数据结构及完整性约束 2.3 关系代数,第二章 关系模型和关系运算,第二节 关系数据结构及完整性约束,关系模型建立在集合代数的基础上。 关系数据结构的基本概念 域 笛卡儿积 关系 关键字 主属性 非主属性 关系数据库,第二章 关系模型和关系运算,一、概念,1、域(Domain) 域是一组具有相同数据类型的值的集合。 例: 整数 实数 介于某个取值范围的整数 指定长度的字符串集合 男,女 介于某个取值范围的日期,第二章 关系模型和关系运算,2、笛卡尔积(Cartesian Product),给定一组域D1, D2, , Dn,这些域可以是相同的。 D1 D2, , Dn的笛卡尔积为: D1D2Dn(d1,d2,dn)diDi,i1,2,n 元组(Tuple) 笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组 (n-tuple)或简称元组。 分量(Component) 笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量。 基数(Cardinal number) 若Di 为有限集,其基数为mi,则D1D2Dn,的基数为:,第二章 关系模型和关系运算,笛卡尔积(续),例2.1:给出三个域: D1=SUPERVISOR = 张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业 D3=POSTGRADUATE=李勇,刘晨,王敏 则D1,D2, D3的笛卡尔积为: D1D2D3 (张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏),(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(张清玫,信息专业,王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏),(刘逸,信息专业,李勇), (刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) ,第二章 关系模型和关系运算,笛卡尔积(续),例2.2 假设D1是学号集合,D2是课程集合,例如: D1=s2,s4,s7,s9,D2=管理学,经济学,运筹学 则D1 D2=(s2,管理学),(s2,经济学)(s2,运筹学), (s4,管理学),(s4,经济学),(s4,运筹学), (s7,管理学),(s7,经济学),(s7,运筹学), (s9,管理学),(s9,经济学),(s9,运筹学) 笛卡尔积的表示方法 笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。,第二章 关系模型和关系运算,第二章 关系模型和关系运算,3. 关系(Relation),笛卡儿积D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为: R(D1, D2,Dn ) R:关系名 n:关系的目或度(Degree) 关系中的每个元素是关系中的元组,通常用t表示。 单元关系与二元关系 当n=1时,称该关系为单元关系(Unary relation)。 当n=2时,称该关系为二元关系(Binary relation)。,第二章 关系模型和关系运算,例2.3 在表2.1的笛卡尔积中取出有实际意义的元组来构造关系。 关系:SAP(SUPERVISOR, SPECIALITY, POSTGRADUATE) 假设:专业与导师:1:n, 导师与研究生:1:n SAP关系可以包含三个元组 (张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨), (刘逸,信息专业,王敏) ,关系(续),第二章 关系模型和关系运算,例2.4: 对例2.2取子集: R(s2,管理学),(s4,经济学),(s7,经济学),(s9,运筹学),取子集,并将D1、D2分 别命名为学号和课程名称,关系(续),第二章 关系模型和关系运算,关系可以有三种类型: 基本关系:实际存在的表,它是实际存储数据的逻辑表示。 查询表:查询结果对应的表。 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。,第二章 关系模型和关系运算,关系(续),关系(续),基本关系具有以下六条性质 每一列中的分量是统一类型的数据,来自同一个域 不同列可以出自同一个域,不同属性要给予不同的属性名。 列的次序可以任意交换。 关系中不允许出现重复元组。 关系中行的次序可以任意交换。 每一个分量都必须是不可分的数据项。,第二章 关系模型和关系运算,D1=PERSON = 张清玫,刘逸 ,李勇,刘晨,王敏 D2=SPECIALITY=计算机专业,信息专业 定义导师属性名为SUPERVISOR-PERSON 定义研究生属性名为POSTGRADUATE-PERSON,4、属性,关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性 (Attribute)。 n目关系必有n个属性。 关系中属性个数称为“元数”,元组个数称为“基数”。,第二章 关系模型和关系运算,5、关键字,(1)候选键 若关系中的某一最小属性组的值能唯一地标识一个元组,则称该属性组称为候选键(Candidate key)。 在最简单的情况下,候选键只包含一个属性。在最极端的情况下,关系的所有属性组是这个关系模式的候选键,称为全码(All-key)。 (2)主键 若一个关系有多个候选键, 则选定其中一个为主键(Primary key)。 主键中的各属性称为主属性(Prime attribute)。 不包含在任何侯选键中的属性称为非主属性(Non-key attribute)。,第二章 关系模型和关系运算,关系小结,关系举例:,第二章 关系模型和关系运算,(3)外键 如果关系R2的一个或一组属性X不是R2的主键,而是另一关系R1的主键,则该属性或属性组X称为关系R2的外部关系键或外码。 并称关系R2为参照关系(Referencing Relation),关系R1为被参照关系(Referenced Relation)。,关键字(续),第二章 关系模型和关系运算,例2.5 产品关系 Products(ProductID,ProductName,UnitPrice,SupplierID,UnitsInstock) 供应商关系Suppliers(SupplierID,CompanyName,Address) SupplierID是Suppliers关系的主键,但它不是Products关系的主键(是其中一个属性),所以SupplierID是Products关系的外部关系键。Suppliers为被参照关系, Products关系为参照关系。 由外部关系键的定义可知,被参照关系的主键和参照关系的外键必须定义在同一个域上。,外键(续),第二章 关系模型和关系运算,外键(续),例2.6,第二章 关系模型和关系运算,6、关系数据库,在一个给定的应用领域中,所有实体及实体之间的联系的关系的集合构成一个关系数据库。,第二章 关系模型和关系运算,二、 关系模型的三级体系结构,关系模式(模式) 子模式(外模式) 存储模式(内模式),第二章 关系模型和关系运算,模式:数据库中全体数据的逻辑结构和特征的描述。,内模式:是数据物理结构和存储方式的描述。,外模式:是用户能够看见和使用的局部数据的逻辑结构和特征的描述。,(一)关系模式,关系模式(Relation Schema)是对关系的描述,主要包括: 元组集合的结构 属性构成 属性来自的域 属性与域之间的映象关系 元组语义 笛卡尔积中符合元组语义的部分元素的全体构成该关系模式的关系 完整性约束条件 属性取值范围的限定 属性间的相互关联,第二章 关系模型和关系运算,1、定义关系模式,关系的描述称为关系模式。它可以形式化地表示为: R(U, D,DOM, F) R 关系名 U 组成该关系的属性名集合 D 属性组U中属性所来自的域 DOM 属性向域的映象集合 F 属性间的数据依赖关系集合,第二章 关系模型和关系运算,定义关系模式 (续),例2.7 在上面例子中,由于导师和研究生出自同一个域人, 所以要取不同的属性名,并在模式中定义属性向域的映象, 即说明它们分别出自哪个域,如: DOM(SUPERVISOR-PERSON) = DOM(POSTGRADUATE-PERSON) =PERSON,第二章 关系模型和关系运算,定义关系模式 (续),关系模式通常可以简记为 R (U) 或 R (A1,A2,An) R 关系名 A1, A2, An 属性名 注:域名及属性向域的映象常常直接说明为属 性的类型、长度。,第二章 关系模型和关系运算,2、关系模式与关系,关系模式 对关系的描述 静态的、稳定的 关系 关系模式在某一时刻的状态或内容 动态的、随时间不断变化的 关系数据库中,关系模式是型(二维表的表框架或结构),关系是值。 在实际中,通常把关系模式和关系统称为关系。,第二章 关系模型和关系运算,(二)子模式,子模式是用户所用到的那部分数据的描述,以及数据与关系模式中相应数据的联系。,客户订单子模式D(OrderID,ProductID,ProductName,Quantity),D,Product,Order Detail,第二章 关系模型和关系运算,(三)存储模式,存储模式是数据物理结构和存储方式的描述。 存储的方法 堆存储 索引存储 聚簇存储,第二章 关系模型和关系运算,(四)关系模型三级模式体系举例,以学生信息管理数据库为例: 1、关系模式 学生(学号,姓名,性别,出生日期,专业,家庭住址,联系电话) 专业(专业号,专业名称,所在院系) 课程(课程号,课程名称,学时,学分,学期) 教师(教师号,姓名,性别,所在院系,联系电话) 选课(学期,课程号,学号,成绩) 课程安排表(课程号,教师号,上课时间),第二章 关系模型和关系运算,关系模式的三级体系结构(续),SQL Server2005数据库中表的设计,第二章 关系模型和关系运算,2、外模式,关系模式的三级体系结构(续),第二章 关系模型和关系运算,3、存储模式 在C:Program FilesMicrosoft SQL Server MSSQL.2 MSSQLData目录下存放student数据库的数据文件和日志文件。,关系模式的三级体系结构(续),第二章 关系模型和关系运算,三、关系模型的完整性规则,关系模型的完整性规则是对关系的某种约束条件。 关系模型中三类完整性约束: 实体完整性 参照完整性 用户定义的完整性 实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。,第二章 关系模型和关系运算,(一)实体完整性,1、实体完整性规则(Entity Integrity)定义 若属性A是基本关系R的主属性, 则属性A不能取空值。 例2.8: SAP(SUPERVISOR, SPECIALITY, POSTGRADUATE) POSTGRADUATE属性为主码(假设研究生不会重名),则其不能取空值。,第二章 关系模型和关系运算,实体完整性示例说明,Teacher关系,第二章 关系模型和关系运算,保存时提示错误信息,第二章 关系模型和关系运算,实体完整性(续),2、关系模型必须遵守实体完整性规则的原因 实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。 现实世界中的实体都是可区分的, 即它们具有某种唯一性标识。 相应地,关系模型中以主码作为唯一性标识。 主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值, 就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾, 因此这个规则称为实体完整性。,第二章 关系模型和关系运算,实体完整性(续),3、注意 实体完整性规则规定基本关系的所有主属性都不能取空值。 例2.9: 学生选课关系: 选修(学号,课程号,成绩) “学号、课程号”为主码, 则“学号”和“课程号”两个属性都不能取空值。,第二章 关系模型和关系运算,(二)参照完整性,1、关系间的引用 在关系模型中实体及实体间的联系都是用关系来描述的, 因此可能存在着关系与关系间的引用。 例2.10 学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名),第二章 关系模型和关系运算,关系间的引用(续),学生,专业,第二章 关系模型和关系运算,关系间的引用(续),例2.11 学生、课程、学生与课程之间的多对多联系。 学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩),第二章 关系模型和关系运算,学生,学生选课,课程,第二章 关系模型和关系运算,关系间的引用(续),关系间的引用(续),例2.12 学生实体及其内部的领导联系(一对多) 学生(学号,姓名,性别,专业号,年龄,班长),第二章 关系模型和关系运算,关系间的引用(小结),第二章 关系模型和关系运算,参照关系 被参照关系,参照完整性(续),参照完整性规则就是定义外键与主键之间的引用规则。 2、参照完整性规则定义 若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值,第二章 关系模型和关系运算,参照完整性(续),说明 关系R和S不一定是不同的关系。 外键并不一定要与相应的主键同名。 当外键与相应的主码属于不同关系时,往往取相同的名字,以便于识别。 目标关系S的主键Ks和参照关系的外键F必须定义在同一个(或一组)域上。,第二章 关系模型和关系运算,参照完整性 (续),例2.10中,学生关系中的“专业号”是专业关系的主码,但不是学生关系的码,因此,“专业号”是学生关系的外码。学生关系中每个元组的“专业号”属性只能取下面两类值: 空值,表示尚未给该学生分配专业; 非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中。,第二章 关系模型和关系运算,参照完整性规则(续),例2.11中,选修关系中的“学号”是学生关系的主码,选修关系中的“课程号”是课程关系的主码,但它们每个都不是选修关系的码;因此,“学号”和“课程号”都是选修关系的外码。 由于“学号”和“课程号”是选修关系中的主属性,按照实体完整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主码值。,第二章 关系模型和关系运算,参照完整性规则(续),例2.12中, “班长”不是学生关系的码,但对应于学生关系的码“学号”, 从而是学生关系的外码。“班长”属性值可以取两类值: 空值,表示该学生所在班级尚未选出班长,或该学生本人即是班长; 非空值,这时该值必须是本关系中某个元组的学号值。,第二章 关系模型和关系运算,参照完整性(续),例2.13 在产品关系中有下列两个关系模式: 产品关系Products(ProductID,ProductName,UnitPrice,SupplierID,UnitsInstock) 订单明细关系: Orders Details(OrderID,ProductID,UnitPrice,Quantity) 问题: (1)两个关系的主键是什么? (2)订单明细关系的外键是什么?其值能否为空?,第二章 关系模型和关系运算,例2.14 设课程之间有先修、后续联系。关系模式如下: R(CourseID,Cname,PCourseID) 问题: 如果规定:每门课的直接先修课至多只有一门,那么关系R的主键是什么,外键是什么?外键能否为空?,第二章 关系模型和关系运算,参照完整性(续),如:,第二章 关系模型和关系运算,参照完整性(续),参照完整性示例说明,学院关系 建立学院关系和teacher关系的参照关系,第二章 关系模型和关系运算,参照完整性示例说明,插入新的记录(所在学院属性值为4) 结果,第二章 关系模型和关系运算,(三)用户定义的完整性,用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需要由应用程序承担这一功能。,第二章 关系模型和关系运算,用户定义的完整性(续),例2.15: 课程(课程号,课程名,学分) “课程号”属性必须取唯一值 非主属性“课程名”也不能取空值 “学分”属性只能取值1,2,3,4,第二章 关系模型和关系运算,第二章 关系模型和关系运算,2.1 关系模型概述 2.2 关系数据结构及完整性约束 2.3 关系代数,第二章 关系模型和关系运算,第三节 关系代数,关系代数以一个或两个关系为输入,产生 一个新的关系作为结果。关系代数运算的主要 类型包括: 传统的集合运算 专门的关系运算,第二章 关系模型和关系运算,关系代数(续),关系运算符,第二章 关系模型和关系运算,关系运算类型 传统的关系运算(集合运算):并、差、交、(广义)笛卡尔积 专门的关系运算: 选择、投影、连接、除 五种基本的关系运算: 并、差、笛卡尔积、投影、选择。其他运算都可以用五种基本运算表示。,第二章 关系模型和关系运算,关系代数(续),1、分量 设R(A1,A2,An)是关系模式,R是它的关系。tR表示t是R的一个元组。tAi表示元组t在属性Ai上的一个分量。 2、连接 设R是n目关系,S是m目关系。trR,tsS,trts称为元组tr和ts的连接或串接,它是一个n+m列的元组,前n个分量为tr,后m个分量为ts 。,第二章 关系模型和关系运算,一、 若干记号,若干记号(续),3、象集 给定一个关系R(X,Z),X和Z为属性组。当tX=x时,定义x在R中的象集为 Zx=tZ|tR, tX=x 它表示R中属性组X的值为x的诸元组在Z上的分量的集合。,第二章 关系模型和关系运算,象集举例,例如下图中,x1在R中的象集Zx1=Z1,Z2,Z3, x2在R中的象集Zx2=Z2,Z3, x3在R中的象集Zx3=Z1, Z3 R,第二章 关系模型和关系运算,二、传统的集合运算,传统的集合运算都是二元运算。 并、差、交要求两个运算对象具有相同的目n(即两个关系都有n个属性), 且相应的属性取自同一个域,t是元组变量,tR表示t是R的一个元组。 1、并(Union) 设R和S都是n目关系,R和S的并是由属于R或 属于S的元组组成,即 RS=t|tRt S,第二章 关系模型和关系运算,传统的集合运算(续),2、差(Difference) 设R和S都是n目关系,R和S的差由属于R而不 属于S的元组组成,即 R-S=t|tRtS 3、交(Intersection) 设R和S都是n目关系,R和S的交由既属于R, 又属于S的元组组成,即 RS=t|tRt S,第二章 关系模型和关系运算,传统的集合运算(续),4、广义笛卡尔积(Extended Cartesian Product) 设R和S分别为n目和m目关系,R和S的广义 笛卡尔积是一个(n+m)目关系,其每个元组的前n 个分量是关系R的一个元组,后m个分量是关系S 的一个元组。 RS=trts|tr R tsS 若R和S分别有k1和k2个元组,则R和S的广义 笛卡尔积有(k1*k2)个元组。,第二章 关系模型和关系运算,传统的集合运算的例子,R,S,RS,R S,R-S,第二章 关系模型和关系运算,传统的集合运算的例子(续),RS,第二章 关系模型和关系运算,三、专门的关系运算,1、选择(Selection) 由关系R中选择满足条件F的元组, 记作F(R) F(R)=t|tRF(t)=真 其中, F是逻辑表达式,F中的运算对象为属性名( 或属性序号)、常量、函数,运算符可以为逻辑运算 符、 , 比较运算符、=、。F(R) 表示从R中选择满足公式F的元组所构成的关系。 选择又称限制(restriction),是一元运算。从行的角度进行运算。,第二章 关系模型和关系运算,一个示例数据库,Student,Course,SC,第二章 关系模型和关系运算,选择查询的例子,例2.16 查询信息系(IS系)的全体学生 Sdept=IS(Student) 或 5=IS(Student),结果如下:,第二章 关系模型和关系运算,选择查询的例子,Sage20(Student) 或 420(Student),例2.17 查询年龄小于20的学生。,结果如下:,第二章 关系模型和关系运算,例2.18 查询年龄小于20岁的信息系的女同学。,第二章 关系模型和关系运算,选择查询的例子,Sage20Ssex=女 Sdept=IS(Student),专门的关系运算(续),2、投影(projection) 关系R在属性列A上的投影是从R中选择属性 列A组成新关系,记作A(R) A(R)=tA|tR 其中,A是属性名(号)的列表。 投影是一元运算,从列的角度进行运算。 由于去掉了原关系中的一些列,可能导致不相同的元组投影后相同,因此需要删除结果中的重复元组。,第二章 关系模型和关系运算,投影查询的例子,例2.19 查询学生的姓名和所在的系。 Sname,Sdept(Student) 或 2,5(Student) 查询的结果如下:,第二章 关系模型和关系运算,投影查询的例子(续),Sdept(Student) 或 5(Student) 查询的结果如下:,例2.20查询关系Student 中包含的系。,第二章 关系模型和关系运算,专门的关系运算(续),3、连接(Join) 是从两个关系的笛卡尔积中选择属性间满足一定 条件的元组,记作: 其中A和B分别为R和S上度数相等且可比的属性 组。 是比较运算符( 、 )。 连接运算从R和S的笛卡尔积RS中选取R关系 在A属性组上的值与S关系在B属性组上满足比较关 系的元组。,第二章 关系模型和关系运算,连接(续),连接运算的类型: 等值连接(Equijoin):为等号的连接运算。 自然连接(Natural join): 是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中去掉重复属性。设属性组B是关系R和S的相同属性。R和S在B上的自然连接记作:,第二章 关系模型和关系运算,连接运算举例,例2.21 求关系R、S的一般连接、等值连接、自然连接。,R,S,第二章 关系模型和关系运算,连接运算举例(续),等值连接 R S,自然连接 R S,第二章 关系模型和关系运算,R.B=S.B,例2.22 已知关系R和关系S,求 、 和 。,第二章 关系模型和关系运算,连接运算举例(续),R S,R,S,第二章 关系模型和关系运算,连接运算举例(续),一般连接:在两个关系的笛卡尔积中选取属性间的分量满足一定条件的元组。 等值连接:在两个关系的笛卡尔积中选取属性间分量值相等的元组。 自然连接:两个关系中进行比较的分量必须是相同的属性组,在结果中把重复的属性列去掉。,专门的关系运算(续),4、除(Division) 给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。 R中的Y与S中的Y可以有不同的属性名,但必须在相 同的域上取值。R与S的商(除运算的结果),记作RS 是一个新关系P(X),P是R中满足下列条件的元组在X 属性列上的投影:元组在X上分量值x的象集Yx包含S 在Y上投影的集合。 RS=trX|tr R Yx,第二章 关系模型和关系运算,(1)除运算的步骤 计算S在属性组Y上的投影。 计算关系R 在属性组X上的投影。 计算(2)结果中各元素在关系R中的象集。 判断各个象集与(1)中投影的包含关系,若某个象集包含S在属性组Y上的投影,则该象集对应的X上的分量值即为除运算的结果元素。,第二章 关系模型和关系运算,除运算(续),除运算举例,例2.23 已知关系R, S,求RS。,R,S,RS,(2)关系R在A上的投影为a1,a2,a3,a4 (3)(2)中各个元素的象集: a1的象集为(b1,c2),(b2,c3)(b2,c1) a2的象集为(b3,c7),(b2,c3) a3的象集为(b4,c6) a4的象集为(b6,c6),(4)判断:a1的象集包含了S在(B,C)属性组上的投影,a1所在的元组为满足条件的元组。,第二章 关系模型和关系运算,(1)S在(B,C)上的投影为(b1,c2),(b2,c1),(b2,c3),满足条件的元组,(2)除法运算的含义 数学中一般整数除法运算: 对于两个整数 R和S,它们的除法运算R/S 是满足以下条件的最大整数Q。 类似的在关系代数中对于关系R和S,它们的除法运算 是满足以下条件的最大的一个关系实例Q。 即 Q与 的笛卡尔积应包含于关系R 。其中,除运算(续),第二章 关系模型和关系运算,上例子中 为 a1, a2, a3,a4。 当 Q分别等于 a1、 a2、a3、 a4时, 的结果分别记为 : R1 R2 R3 R4 显然,只有 R1 是包含于R的,因而 Q= a1是满足条 件的最大的关系实例,也即为 。,第二章 关系模型和关系运算,除运算含义(续),(3)除法运算的基本运算符等效表达形式 根据关系除法本质含义,可以看出 的求解过程 即为在 的集合中选择满足下列条件的元素x: 这个过程等价于将 中不满足以上条件的元素剔除。 对于 中的元素,若使得 Q=x时不能满足条件 ,则该元素应被剔除。 相应地,这些应被剔 除的元素集合可以通过下列公式 获得: 因而 的基本运算符表达式即为:,第二章 关系模型和关系运算,除运算(续),除法运算的等效表达形式(续),第二章 关系模型和关系运算,例2.24 求选修了2号课

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论