第4章关系数据库_第1页
第4章关系数据库_第2页
第4章关系数据库_第3页
第4章关系数据库_第4页
第4章关系数据库_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 关系数据库关系模型及其定义 在关系模型中,数据是以二维表的形式存在的,这个二维在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系。表就叫做关系。 关系理论是以关系理论是以集合代数集合代数理论为基础的,因此,我们可以用理论为基础的,因此,我们可以用集合代数给出二维表的集合代数给出二维表的“关系关系”定义。定义。 为了从集合论的角度给出关系的定义,我们先引入域和笛为了从集合论的角度给出关系的定义,我们先引入域和笛卡尔积的概念。卡尔积的概念。 1 1)域()域(DomainDomain) 域是一组具有相同数据类型的值的集合,又称为值域。域是一组具有相同数据类型的值的集合,又称为值

2、域。(用(用D D表示)表示)例如整数、实数、字符串的集合。例如整数、实数、字符串的集合。 域中所包含的值的个数称为域的基数(用域中所包含的值的个数称为域的基数(用m m表示)。表示)。关系中用域表示属性的取值范围。例如:关系中用域表示属性的取值范围。例如:D1=D1=李力,王平,刘伟李力,王平,刘伟 m1=3 m1=3D2=D2=男,女男,女 m2=2m2=2D3=47,28,30 D3=47,28,30 m3=3m3=3其中,其中,D1D1,D2D2,D3D3为域名,分别表示姓名、性别、年为域名,分别表示姓名、性别、年龄的集合。龄的集合。注:域名无排列次序,如注:域名无排列次序,如D2=D

3、2=男,女男,女=女,男女,男 2 2)笛卡尔积)笛卡尔积(Cartesian Product )(Cartesian Product ) 给定一组域给定一组域D1D1,D2D2,DnDn(它们可以包含相同的元素,即(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。可以完全不同,也可以部分或全部相同)。D1D1,D2D2,DnDn的笛卡尔积为的笛卡尔积为D1D1D2D2Dn=Dn=(d1,d2,dnd1,d2,dn)|diDi|diDi,i=1,2,n.,i=1,2,n.由定义可以看出,笛卡尔积也是一个由定义可以看出,笛卡尔积也是一个集合集合。例如:上述表示姓名、性别两个域的笛

4、卡尔积为:例如:上述表示姓名、性别两个域的笛卡尔积为:D1=李力,王平,刘伟李力,王平,刘伟D2=男,女男,女D1D2=(李力,男),(李力,女),(王平,男),(李力,男),(李力,女),(王平,男), (王平,女),(刘伟,男),(刘伟,女)(王平,女),(刘伟,男),(刘伟,女)其中:其中:元素中的每一个元素中的每一个didi叫做一个分量叫做一个分量(Component)(Component),来自相应,来自相应的域(的域(diDidiDi)。)。每一个元素(每一个元素(d1d1,d2d2,d3d3,dndn)叫做一个)叫做一个n n元组(元组(n-n-tupletuple),简称元组(

5、),简称元组(TupleTuple)。元组的每个分量()。元组的每个分量(didi)是)是按序排列的。按序排列的。如:(如:(1 1,2 2,3 3)(2 2,3 3,1 1)(1 1,3 3,2 2)而集合中的元素是没有排序次序的,如而集合中的元素是没有排序次序的,如11,2 2,3=23=2,3 3,1=11=1,3 3,22。其中:李力、王平、刘伟、男、女都是分量。其中:李力、王平、刘伟、男、女都是分量。 (李力,男),(李力,女)等是元组。(李力,男),(李力,女)等是元组。若若DiDi(i=1i=1,2 2,nn)为有限集,)为有限集,DiDi中的集合元素个数称中的集合元素个数称为为

6、DiDi的基数,用的基数,用mimi(i=1i=1,2 2,nn)表示,则笛卡尔积)表示,则笛卡尔积D1D1D2D2DnDn的基数的基数M M(即元素(即元素(d1,d2,dnd1,d2,dn)的个)的个数)为所有域的基数的累积,即数)为所有域的基数的累积,即 M= niim1例:上述表示中姓名、性别两个域的笛卡尔积为:例:上述表示中姓名、性别两个域的笛卡尔积为: D1D1D2=D2=(李力,男),(李力,女),(王平,男),(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)(王平,女),(刘伟,男),(刘伟,女) 其基数其基数M=m1M=m1m2=3m2=3*

7、 *2=62=6;元组的个数为;元组的个数为6 6。笛卡尔积可用二维表的形式笛卡尔积可用二维表的形式表示。表示。如上例如上例6 6个元组可表示成表个元组可表示成表1 1;其中:表的框架由域构成,表其中:表的框架由域构成,表的任意一行就是一个元组,的任意一行就是一个元组,表中的每一列来自同一域,表中的每一列来自同一域,如第一个分量来自如第一个分量来自D1D1,第二,第二个分量来自个分量来自D2D2。姓名性别李力男李力女王平男王平女刘伟男刘伟女表1 D1和D2的笛卡尔积3)3)关系的定义关系的定义 笛卡尔积笛卡尔积D1D1D2D2DnDn的任一子集称为定义在域的任一子集称为定义在域D1D1,D2D

8、2,DnDn上的上的n n元关系(元关系(RelationRelation),可表示为),可表示为 R R(D1D1,D2DnD2Dn)。)。其中:其中:R R为关系名,为关系名,n n称为关系的目或度。称为关系的目或度。 当当n=1n=1时,称为单元关系。时,称为单元关系。 当当n=2n=2时,称为二元关系。时,称为二元关系。 当当n=nn=n时,称为时,称为n n元关系元关系。 关系中元组个数是关系的基数。关系中元组个数是关系的基数。姓名性别李力男王平女刘伟男关系中候选码与主码关系中候选码与主码 在关系中可以唯一标识一个元组的最小属性或属性组在关系中可以唯一标识一个元组的最小属性或属性组称

9、为候选码,如果一个关系中有多个候选码,则选定其中称为候选码,如果一个关系中有多个候选码,则选定其中的一个候选码为主码。的一个候选码为主码。 如关系的候选码只有一个属性,称为单属性码。如关系的候选码只有一个属性,称为单属性码。 如关系中的候选码由多个属性构成,称为多属性码。如关系中的候选码由多个属性构成,称为多属性码。 如关系中只有一个候选码,且包含所有属性,称为全码。如关系中只有一个候选码,且包含所有属性,称为全码。 主属性与非主属性主属性与非主属性 主属性(主属性(Prime AttributePrime Attribute):包含在候选码中的各属):包含在候选码中的各属性称为主属性。性称为

10、主属性。 非主属性(非主属性(Non-Prime AttributeNon-Prime Attribute):不包含在任何候):不包含在任何候选码中的属性称为非主属性。选码中的属性称为非主属性。 数学上关系是笛卡尔积的任意子集,但在实际应用中关数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的系是笛卡尔积中所取的有意义有意义的子集。例如在下表中选取一的子集。例如在下表中选取一个子集构成如下关系,显然不符合实际情况。个子集构成如下关系,显然不符合实际情况。姓名性别李力男李力女4 4)关系的类型)关系的类型 关系基本为有限关系,关系的类型有三种:基本表,查关系基本为有限关系,关系

11、的类型有三种:基本表,查询表,视图表。询表,视图表。 基本表(基本关系)是实际存在的表,是实际存储数据基本表(基本关系)是实际存在的表,是实际存储数据的逻辑表示。的逻辑表示。 查询表是查询结果对应的表、临时表。查询表是查询结果对应的表、临时表。 视图表是由基本表或其他视图表导出来的表,是虚表。视图表是由基本表或其他视图表导出来的表,是虚表。 严格地说,关系是规范化二维表中行的集合,为了使严格地说,关系是规范化二维表中行的集合,为了使相应的数据操作简化,在关系模型中,对关系作了种种限相应的数据操作简化,在关系模型中,对关系作了种种限制,分别如下:制,分别如下: 关系中不允许出现相同的元组关系中不

12、允许出现相同的元组 关系中元组的顺序(即行序)是无关紧要的关系中元组的顺序(即行序)是无关紧要的 在一个关系中可以任意交换两行的次序。根据关系的这个在一个关系中可以任意交换两行的次序。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。序查询数据,可以提高查询速度。关系中属性的顺序是无关紧要的关系中属性的顺序是无关紧要的 即列的顺序可以任意交换。交换时,应连同属性名一起交即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。换,否则将得到不同的关系。 列是同质的列是同质的 同一

13、属性名下的各个属性值必须来自同一个域,是同一类同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。型的数据。姓名职业兼职张强教师辅导员王丽工人教师刘宁教师辅导员关系中各个属性必须有不同的名字关系中各个属性必须有不同的名字 不同的属性可来自同一个域,不同的属性要给予不同的不同的属性可来自同一个域,不同的属性要给予不同的属性名。属性名。 例如,有如下表中关系,职业与兼职是两个不同的属性,例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业教师,工人,辅导员。但它们取自同一个域职业教师,工人,辅导员。 姓名省市县张强吉林长春王丽山西大同姓名籍贯省市县张强吉林长春王丽山西大

14、同关系中每一分量必须是不可分的数据项关系中每一分量必须是不可分的数据项 所有属性值都是原子的,即是一个确定的值,而不是值所有属性值都是原子的,即是一个确定的值,而不是值的集合。满足此条件的关系称为规范化关系,否则称为非规的集合。满足此条件的关系称为规范化关系,否则称为非规范化关系。范化关系。 例如:例如:关系模式R(U, D, DOM, F)关系名关系名属性名集合属性名集合域的集合域的集合属性向域属性向域的映象的映象属性间数据属性间数据的依赖关系的依赖关系 关系模式(关系模式(Relation SchemaRelation Schema):关系的描述称作关系):关系的描述称作关系模式,包括关系

15、名、关系中的属性名、属性向域的映象、模式,包括关系名、关系中的属性名、属性向域的映象、属性间的数据依赖关系等属性间的数据依赖关系等, ,其形式化描述为其形式化描述为R(U,D,domR(U,D,dom,F),F),简记作简记作R(U)R(U)或或R(AR(A1 1 , A, A2 2 , A, An n ) ) 。 关系模式关系模式是型,是稳定的,静态的。是型,是稳定的,静态的。关系关系是某一时刻的是某一时刻的值,是随时间不断变化的,是动态的;即某一时刻对应某个值,是随时间不断变化的,是动态的;即某一时刻对应某个关系模式的内容(元组的集合)称作关系。关系模式的内容(元组的集合)称作关系。 关系

16、数据库 关系数据库(关系数据库(Relation Database)即在某应用领域,所)即在某应用领域,所有实体集与实体集间的联系构成的集合。关系数据库有型与有实体集与实体集间的联系构成的集合。关系数据库有型与值之分,值之分,型型称为关系数据库的模式,称为关系数据库的模式,值值称为关系数据库的值。称为关系数据库的值。关系数据库模式与关系数据库的值通常统称为关系数据库。关系数据库模式与关系数据库的值通常统称为关系数据库。 型是关系模式的集合,即数据库描述。型是关系模式的集合,即数据库描述。 值是某一时刻关系的集合。值是某一时刻关系的集合。 例如高校图书管理系统数据库中,其关系模式分别为:例如高校

17、图书管理系统数据库中,其关系模式分别为: 读者类别(读者类别(类别代码类别代码,类别名称,可借阅天数,可借阅数,类别名称,可借阅天数,可借阅数量,超期罚款额量,超期罚款额) 读者(读者(卡号卡号,姓名,性别,部门,办卡日期,卡状态,类,姓名,性别,部门,办卡日期,卡状态,类别代码)别代码) 图书(图书(书号书号,书名,作者,出版社,价格,库存数量),书名,作者,出版社,价格,库存数量) 借还(借还(卡号,书号卡号,书号,借书日期,还书日期),借书日期,还书日期)读者类别关系表读者类别关系表类别代码类别代码 类别名称类别名称 可借阅天数可借阅天数可借阅数量可借阅数量 超期罚款额超期罚款额01专科

18、生专科生2030.502本科生本科生3050.503硕士研究生硕士研究生6080.504博士研究生博士研究生90100.305教师教师120200.1读者关系表读者关系表卡号卡号姓名姓名 性别性别部门部门办卡日期办卡日期卡状态卡状态类别代码类别代码1100111001李丽李丽女女数计学院数计学院2011-9-102011-9-10正常正常01011100211002赵健赵健男男数计学院数计学院2011-9-102011-9-10正常正常01011100311003张飞张飞男男数计学院数计学院2011-9-102011-9-10正常正常02021100411004赵高赵高男男管理学院管理学院20

19、11-9-112011-9-11正常正常02021100511005孙佳孙佳女女管理学院管理学院2011-9-112011-9-11正常正常0202图书关系表图书关系表书号书号书名书名作者作者出版社出版社 价格价格(元)(元)库存库存数量数量GL0001GL0001人力资源管理人力资源管理李跃进李跃进机械工业出版社机械工业出版社16165 5GL0002GL0002网络营销与策划网络营销与策划刘芸刘芸科学出版社科学出版社18186 6GL0003GL0003电子商务概论电子商务概论俞立平俞立平清华大学出版社清华大学出版社23233 3JSJ001JSJ001C C语言程序设计语言程序设计谭浩强

20、谭浩强清华大学出版社清华大学出版社19195 5JSJ002JSJ002数据结构数据结构严蔚敏严蔚敏清华大学出版社清华大学出版社20204 4JSJ003JSJ003数据库原理及应用数据库原理及应用苗雪兰苗雪兰机械工业出版社机械工业出版社34345 5借还关系表借还关系表卡号卡号 书号书号 借书日期借书日期 还书日期还书日期 1100111001JSJ001JSJ0012012-3-152012-3-152012-4-102012-4-101100111001JSJ002JSJ0022012-3-152012-3-152012-4-102012-4-101100211002JSJ001JSJ0

21、012012-4-122012-4-122012-5-162012-5-161100211002JSJ003JSJ0032012-6-132012-6-132012-7-102012-7-101100311003JSJ003JSJ0032012-5-132012-5-132012-6-152012-6-151100411004GL0001GL00012013-3-122013-3-122013-4-152013-4-151100411004GL0002GL00022013-5-162013-5-162013-6-202013-6-20 为了维护数据库中数据与现实世界的一致性,对关系数为了维护数

22、据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这就是据库的插入、删除和修改操作必须有一定的约束条件,这就是关系模型的完整性:关系模型的完整性:关系模型的完整性域完整性域完整性实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性 1)域完整性域完整性 域完整性是指关系中每一个元组的分量必须取自相应域中域完整性是指关系中每一个元组的分量必须取自相应域中的值。的值。2)实体完整性)实体完整性(Entity Integrity) 实体完整性是指主属性的值不能为空值,也不能出现重实体完整性是指主属性的值不能为空值,也不能出现重复值。空值不是空格

23、,它指跳过或不输入,用复值。空值不是空格,它指跳过或不输入,用“NULL”表示,表示,说明说明“不知道不知道”,“无意义无意义”。读者类别关系表读者类别关系表类别代码类别代码 类别名称类别名称 可借阅天数可借阅天数可借阅数量可借阅数量 超期罚款额超期罚款额01专科生专科生2030.502本科生本科生3050.503硕士研究生硕士研究生6080.504博士研究生博士研究生90100.305教师教师120200.13)参照完整性)参照完整性(Referential integrity) 如果属性如果属性X不是关系不是关系R2的主码,而是另一关系的主码,而是另一关系R1的的主码,则该属性主码,则该属

24、性X称为关系称为关系R2的外码;并称关系的外码;并称关系R2为参为参照关系,关系照关系,关系R1为被参照关系。外码一般用波浪线标示。为被参照关系。外码一般用波浪线标示。 参照完整性规则,要求外码只能取下面两类值:参照完整性规则,要求外码只能取下面两类值:v 空值空值v 非空值,该值必须与被参照关系中主码的某个取值一致。非空值,该值必须与被参照关系中主码的某个取值一致。 读者类别(读者类别(类别代码类别代码,类别名称,可借阅天数,可借阅,类别名称,可借阅天数,可借阅数量,超期罚款额数量,超期罚款额) 读者(读者(卡号卡号,姓名,性别,部门,办卡日期,卡状态,姓名,性别,部门,办卡日期,卡状态,类

25、别代码)类别代码) 4)用户定义完整性()用户定义完整性(User-defined Integrity) 用户定义完整性是针对某一具体关系数据库的约束条件,用户定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。它反映某一具体应用所涉及的数据必须满足的语义要求。例如,属性值根据实际需要,要具备一些约束条件,如图书例如,属性值根据实际需要,要具备一些约束条件,如图书关系中价格不能为负数;某些数据的输入格式要有一些限制关系中价格不能为负数;某些数据的输入格式要有一些限制等。等。关系操作 关系操作是关系操作是集合集合操作,操作的对象及结果都是集合,是一操作

26、,操作的对象及结果都是集合,是一次一集合(次一集合(Set-at-a-time)的方式。而非关系型的数据操作方)的方式。而非关系型的数据操作方式是一次一记录(式是一次一记录(Record-at-a-time)。)。 关系模型与其他模型相比,最有特色的是它的数据库语言,关系模型与其他模型相比,最有特色的是它的数据库语言,这种语言灵活方便、表达能力和功能都很强。这种语言灵活方便、表达能力和功能都很强。 目前关系数据库所使用的语言一般都具有目前关系数据库所使用的语言一般都具有定义定义、查询查询、更更新新和和控制控制一体化的特点,而查询是最主要的部分。故而关系一体化的特点,而查询是最主要的部分。故而关

27、系数据库的操作核心部分是查询,故又称为查询语言,而查询数据库的操作核心部分是查询,故又称为查询语言,而查询的条件要使用关系运算表达式来表示。的条件要使用关系运算表达式来表示。1 1)关系代数的基本概念)关系代数的基本概念 关系代数是对关系进行集合代数运算,是基于关系代数的关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为操作语言,称为关系代数语言,简称关系代数关系代数语言,简称关系代数。它 是 由它 是 由 I B MI B M 在 一 个 实 验 性 的 系 统 上 实 现 的 , 称 为在 一 个 实 验 性 的 系 统 上 实 现 的 , 称 为ISBL(Informati

28、on System Base Language)ISBL(Information System Base Language)语言。语言。ISBLISBL的每个语句都类似于一个关系代数表达式。的每个语句都类似于一个关系代数表达式。 关系代数的运算对象是关系代数的运算对象是关系关系,运算结果也是,运算结果也是关系关系,关系代,关系代数用到的运算符主要包括四类:数用到的运算符主要包括四类:关系代数关系代数运算符运算符含义含义集合运算符集合运算符并并-差差交交广义笛卡尔积广义笛卡尔积专门的关系运算符专门的关系运算符选择选择投影投影 连接连接除除关系代数运算符关系代数运算符运算符运算符含义含义比较运算符

29、比较运算符 大于大于大于或等于大于或等于小于小于小于或等于小于或等于等于等于不等于不等于逻辑运算符逻辑运算符非非与与或或续表续表2 2)传统的集合运算)传统的集合运算 传统的集合运算是二目运算,它包括并、差、交、广义笛传统的集合运算是二目运算,它包括并、差、交、广义笛卡儿积卡儿积4 4种运算。种运算。 设关系设关系R R和和S S具有相同的目具有相同的目n(n(即两个关系都有即两个关系都有n n个属性个属性) ),且相应的属性取自同一个域,则定义并、差、交运算如下。且相应的属性取自同一个域,则定义并、差、交运算如下。 (1 1)并运算)并运算 关系关系R R与关系与关系S S的并运算的并运算(

30、Union)(Union)表示为:表示为: RS=t|tRtS RS=t|tRtS (2)差运算)差运算关系关系R与关系与关系S的差运算的差运算(Difference)为:为:RS=t|tRt S (3 3)交运算交运算 关系关系R R与关系与关系S S的交运算的交运算(Intersection)(Intersection)为:为: RS=t|tRtS RS=t|tRtS (4 4)广义笛卡儿积)广义笛卡儿积运算运算 设关系设关系R R的目为的目为m m,有,有K K1 1个元祖,关系个元祖,关系S S的目为的目为n n,有,有K K2 2个元祖,个元祖,则关系则关系R R和和S S的广义笛卡

31、儿积的广义笛卡儿积运算为:运算为: SR|SRttttsrsr 关系关系R R和和S S的广义笛卡儿积的目为(的广义笛卡儿积的目为(m+nm+n),有(),有(K K1 1K K2 2)个元祖。个元祖。 传统集合运算举例传统集合运算举例d返回本节返回本节e 3 3)专门的关系运算)专门的关系运算 (1 1)选择选择(selectionselection) 选择又称为限制,它是在关系选择又称为限制,它是在关系R R中选择满足给定条件中选择满足给定条件的元组,组成一个新的关系。记作:的元组,组成一个新的关系。记作:F F (R) =t|t (R) =t|tR RF(t) = TRUE F(t) =

32、 TRUE 253f253f(R2)(R2)A1A1A2A2A3A3a ab bc cg g3 32 22 26 6c cd dd df f(2 2)投影()投影(projectionprojection) 从关系从关系R R上选取若干属性列上选取若干属性列A A,并删除重复行,组成新的,并删除重复行,组成新的关系。记作:关系。记作:A A(R) = t A | t R(R) = t A | t R其中,其中,A=AA=Aj1j1,A Aj2j2, , , A, Ajnjn 。投影操作是从列的角度进行的运算。投影操作是从列的角度进行的运算。3.23.2(R R1 1) (3 3)连接()连接(

33、joinjoin) 连接也称为连接也称为连接。它是从两个关系连接。它是从两个关系R R和和S S的笛卡尔积的笛卡尔积R RS S中选取属性间满足一定条件的元组,构成新的关系。中选取属性间满足一定条件的元组,构成新的关系。 简单的讲:连接是从简单的讲:连接是从R RS S中选取在指定的属性集上满足中选取在指定的属性集上满足一定条件的元组。记作:一定条件的元组。记作:R S=tr ts| tr R ts S tr Ats B.AB其中:其中:A A和和B B分别为分别为R R和和S S上度数相等且可比的属性组,上度数相等且可比的属性组,是是比较运算符。比较运算符。 由于由于连接是从连接是从R RS

34、 S中选取在指定的属性集上满足一定条中选取在指定的属性集上满足一定条件的元组,因而件的元组,因而R R和和S S的的连接也可表示为:连接也可表示为:R S=R S=AB(R S S )AB 连接有两种最为重要的连接:等值连接与自然连接。连接有两种最为重要的连接:等值连接与自然连接。 等值连接(等值连接(equiequi-join-join) 什么是等值连接?什么是等值连接?v当当为为“”的连接运算称为等值连接。的连接运算称为等值连接。 等值连接的含义:等值连接的含义:v从关系从关系R R与与S S的广义笛卡尔积中选取的广义笛卡尔积中选取A A、B B属性值相等属性值相等的那些元组,即等值连接为

35、:的那些元组,即等值连接为: tr ts A=B R S = | tr Rts StrA = tsB 自然连接自然连接 自然连接是一种特殊的等值连接;在自然连接是一种特殊的等值连接;在R RS S中,选取某些中,选取某些公公共属性共属性上具有上具有相同值相同值的元组,组成新关系。的元组,组成新关系。nR R与与S S中的公共属性即属性集的交集(相同名称与类型);中的公共属性即属性集的交集(相同名称与类型);n在结果中把重复的属性列去掉。在结果中把重复的属性列去掉。tr ts R S = tsB | tr Rts StrB = tsB (4 4)除()除(divisiondivision) 设关

36、系设关系R R的目为的目为m m,关系,关系S S的目为的目为n n,且,且m m nn,SS 。 R R的属性包含的属性包含S S中的所有属性,令中的所有属性,令t t表示从关系表示从关系R R的元组变量的元组变量t tr r中去掉了与中去掉了与S S中相同属性后所组成的新元组变量。则两个关中相同属性后所组成的新元组变量。则两个关系系R R和和S S的商为:的商为: R R能被能被S S除的充分必要条件是:除的充分必要条件是:R R中的属性包含中的属性包含S S中的中的所有属性;所有属性;R R中有一些属性不出现在中有一些属性不出现在S S中。中。 R RW1W1R RW2W2R RW3W3

37、SRttSRttss|4)4)用关系代数表示检索的例子用关系代数表示检索的例子 高校图书管理系统数据库的关系模式如下:高校图书管理系统数据库的关系模式如下: 读者类别(读者类别(类别代码类别代码,类别名称,可借阅天数,可借阅数量,类别名称,可借阅天数,可借阅数量,超期罚款额)超期罚款额) 读者(读者(卡号卡号,姓名,性别,部门,办卡日期,卡状态,类别,姓名,性别,部门,办卡日期,卡状态,类别代码)代码) 图书(图书(书号书号,书名,作者,出版社,价格,库存数量),书名,作者,出版社,价格,库存数量) 借还(借还(卡号,书号卡号,书号,借书日期,还书日期),借书日期,还书日期) 例例1 1 求借

38、阅了书号为求借阅了书号为“JSJ001”JSJ001”图书的读者卡号。图书的读者卡号。卡号卡号(书号书号=JSJ001=JSJ001(借还)(借还)例例2 2 求借阅了书号为求借阅了书号为“JSJ001”JSJ001”图书的读者卡号和姓名。图书的读者卡号和姓名。卡号,姓名卡号,姓名(书号书号=JSJ001=JSJ001(借还(借还 读者)读者)例例3 3 求没有借阅了书号为求没有借阅了书号为“JSJ001”JSJ001”图书的读者卡号。图书的读者卡号。卡号卡号(读者)(读者)-卡号卡号(书号书号=JSJ001=JSJ001(借还)(借还)注意:该题不能表达成:注意:该题不能表达成:卡号卡号(书

39、号书号JSJ001JSJ001(借还)(借还)例例4 4 求既借阅了书号为求既借阅了书号为“JSJ001”JSJ001”图书,又借阅了书号为图书,又借阅了书号为“JSJ002”JSJ002”图书的读者卡号。图书的读者卡号。卡号卡号(书号书号=JSJ001=JSJ001(借还)(借还) 卡号卡号(书号书号=JSJ002=JSJ002(借(借还)还)注意:该题不能表达成:注意:该题不能表达成:卡号卡号(书号书号=JSJ001 =JSJ001 书号书号=JSJ002 =JSJ002 (借还)(借还)例例5 5 求借阅了书号为求借阅了书号为“JSJ001”JSJ001”或或“JSJ002”JSJ002

40、”图书的读者卡图书的读者卡号。号。卡号卡号(书号书号=JSJ001=JSJ001(借还)(借还) 卡号卡号(书号书号=JSJ002=JSJ002(借(借还)还)卡号卡号(书号书号=JSJ001 =JSJ001 书号书号=JSJ002 =JSJ002 (借还)(借还)例例6 6 求借阅了全部图书的读者卡号。求借阅了全部图书的读者卡号。卡号,书号卡号,书号(借还)(借还) 书号书号(图书)(图书)卡号卡号, ,姓名姓名(卡号卡号, ,书号书号( (借还借还) )书号书号(卡号卡号=11001=11001( (借还借还) ) 读者读者) ) 例例7 7 求至少借阅了卡号为求至少借阅了卡号为“1100

41、1”11001”的读者所借阅过的所有图的读者所借阅过的所有图书的读者卡号和姓名。书的读者卡号和姓名。关系演算关系演算 关系的表示有列举法(二维表)、描述法。描述法是给关系的表示有列举法(二维表)、描述法。描述法是给出关系元组所必须满足的特性;关系演算以数理逻辑中的谓出关系元组所必须满足的特性;关系演算以数理逻辑中的谓词演算为基础。词演算为基础。 种类:种类:根据谓词变元的不同,可将关系演算分为元组关系演根据谓词变元的不同,可将关系演算分为元组关系演算和域关系演算。算和域关系演算。 元组关系演算:元组关系演算: 以以元组变量元组变量作为谓词变元的基本对象作为谓词变元的基本对象。 域关系演算:域关

42、系演算: 以以域变量域变量作为谓词变元的基本对象作为谓词变元的基本对象。 关系可以用谓词表示,如:关系可以用谓词表示,如: FalseTruetR( (当当t t在在R R内内) )( (当当t t不在不在R R内内) ) 关系可以看作是一个集合,集合也可以用谓词表示,如:关系可以看作是一个集合,集合也可以用谓词表示,如: t| ttR 基于这样的表示称为关系演算。其中基于这样的表示称为关系演算。其中(t)(t)称为谓词,当称为谓词,当t为为元组变量时称谓词表示的关系演算为元组关系演算,当元组变量时称谓词表示的关系演算为元组关系演算,当t为为域变量时称谓词表示的关系演算为域关系演算。域变量时称

43、谓词表示的关系演算为域关系演算。1)元组关系演算元组关系演算 (1)元组关系演算公式递归定义:元组关系演算公式递归定义: 原子命题函数是公式,称为原子公式,它有下面原子命题函数是公式,称为原子公式,它有下面3种形式:种形式:uR(t): tR(t): t是是R R关系中的元组。关系中的元组。utitiuj:tuj:t和和u u是元组变量,是元组变量,比较运算符,比较运算符,t t元组的第元组的第i i分量与分量与u u元组的第元组的第j j分量满足比较符分量满足比较符条条件。件。utictic或或ccti:tti:t元组的第元组的第i i分量与常量分量与常量c c满足满足比较符比较符条件。条件

44、。 设设1 1、2 2是公式,则是公式,则 1 1、1 12 2、1 12 2、 1 12 2也都是公式。也都是公式。 设设是公式,是公式,t t是是中的某个元组变量,那么中的某个元组变量,那么( )()( )()、 ( )()( )()也都是公式。也都是公式。t t 在元组关系演算中,各种运算符的运算优先次序为:在元组关系演算中,各种运算符的运算优先次序为: 括号括号算术算术比较比较 、 、 元组关系演算公式是有限次应用上述规则的公式。其它元组关系演算公式是有限次应用上述规则的公式。其它公式不是元组关系演算公式。公式不是元组关系演算公式。 (2 2)关系代数)关系代数5 5种基本运算的表示种

45、基本运算的表示 R RS=t|R(t)S=t|R(t)S(t)S(t) R R- -S=t|R(t)S=t|R(t)S(t)S(t) 2u2 t 1 u 1 t)v(S)u(R(|SRvut)m()n()mn( )m vmn t 1 v 1n tnun t u2 tu1 t)u(R(u|Riiiiit21)k(,k21)uk tik F) t (R| t )R(F (3 3)用元组关系演算表示检索的例子)用元组关系演算表示检索的例子例例1 1 求借阅了书号为求借阅了书号为“JSJ001”JSJ001”图书的读者卡号。图书的读者卡号。 t|( u)( t|( u)(借还借还(u)u2=JSJ001t1=u1)(u)u2=JSJ001t1=u1) 例例2 2 求借阅了书号为求借阅了书号为“JSJ001”JSJ001”图书的读者卡号和姓名。图书的读者卡号和姓名。 t|( u)( v)( t|( u)( v)(借还借还(u)(u)读者读者(v)u1=v1u2=

温馨提示

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

最新文档

评论

0/150

提交评论