第03章 关系运算和完整性约束_第1页
第03章 关系运算和完整性约束_第2页
第03章 关系运算和完整性约束_第3页
第03章 关系运算和完整性约束_第4页
第03章 关系运算和完整性约束_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

关系运算和完整性约束,第三章,第三章概述,1在用户看来,一个关系就是一张二维表2关系模型可以理解为二维表格的定义3关系模型的数据操作:主要有选择(Select)、投影(Project)、连接(Join)、除(Division)、并(Union)、交(Intersection)、差(Difference),查询(Query),增加(Insert)、删除(Delete)、修改(Update)等更新操作。3关系操作的表示方式:代数方式、逻辑方式以及结合两者特点的方式。,第三章概述,4、关系语言可以分三类关系代数语言例如ISBL元组关系演算语言例如ALPHA,QUEL关系数据语言关系演算语言域关系演算语言例如QBE具有关系代数和关系演算双重特点的语言例如SQL5、完整性约束:关系模型允许定义三类完整性约束,实体完整性;参照完整性;用户定义的完整性。,返回,3.1关系的定义,定义3.1给定一组集合D1,D2,Dn,且这些集合可以相同,定义D1,D2,Dn的笛卡尔积(CartesianProduct)为:D1D2Dn=(d1,d2,dn)|diDi,i=l,2,n其中的每一个元素(d1,d2,dn)叫做一个n元组(n-tuple),元素中第i个值di叫做第i个分量。,3.1关系的定义,注意:关系和笛卡尔(数学中)的区别:关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。由于笛卡尔积不满足交换律,即(d1,d2,dn)(d1,d2,dn)但关系满足交换律,即(d1,d2,dn)=(d1,d2,dn),3.1关系的定义,定义3.2笛卡尔积D1D2Dn的任一子集称为D1,D2,Dn上的一个关系。集合D1,D2,Dn是关系中元组的取值范围,称为关系的域(Domain),n称为关系的度(Degree)。度为n的关系称为n元关系。例如n=1(n=2)的关系称为一元(二元)关系。,返回,关系的性质每一列中的值是同类型的数据,都来自同一个域。不同的列可以有相同的域,每一列称为一个属性,用属性名标识。元组中的每个分量是不可分的数据项关系中的各个元组是不同的,即不允许有重复的元组。见下页例子说明。元组的次序是无关紧要的,列的次序也是无关的。,3.2关系的性质,表3-2职工信息表,表3-3教师关系表(a)表3-4教师关系表(b)表3-5教师关系表(c),返回,3.3关系的码,关系的码是关系的一个重要概念,关系数据库要求关系中的每一个元组具有唯一性。关键码:在关系模式中,必定存在一个属性(属性组)可以唯一确定关系中别的属性的值。这个属性(属性组)就是关系模式的关键码。关键码根据细节不同通常分为如下几类:超码(SuperKey)在关系中能唯一标识元组的属性集称为关系的超码。候选码(CandidateKey)不包含多余属性的超码称为候选码。对于某个关系,可能存在多个候选码。,3.3关系的码,4主码(PrimaryKey)从候选码中任选一个作为现行关键码,则该关键码称为主码。一个关系的主码只能有一个,主码一旦确定通常不变。5外码(ForeignKey)不是当前关系的候选码,却是另一个关系的候选码。关系之间的连接通常利用外码实现。,返回,表1学生表格,返回,表2课程表,表3选课表格,3.4数据的完整性,关系模式:对一类实体特征的结构性描述,即对关系的结构性描述,该描述一般包括关系名、属性名、属性域的类型和长度,属性之间固有的依赖联系等。若U=A1,A2,An为关系R的属性集,则关系模式简记为R(U)或R(A1,A2,An)关系模式和关系的区别和联系:关系模式是表格的定义,关系是一个具体的表格。关系数据库也有型和值之分,3.4完整性规则,在数据库系统中,为了维护数据库中数据与现实世界的一致性,计算机和现实世界的数据之间必须遵循一定的约束规则,关系模型定义三类完整性:实体完整性,参照完整性和用户定义完整性。实体完整性规则(EntityIntegrity):关系中每一个元组的主码(主键)属性不能重复,并且不能取空值。空值:当前“不知道”的值,它既不是0也不是空字符,用NULL表示。,参照完整性规则(ReferenceIntegrity):设属性组A是关系R的外键且A又是关系S的主键,则对于R中的每一个元组在属性A上的值必须为:空值或者等于S中某一个元组的主键值。谓参照,就是关系R与另一关系S之间的联系,这种联系是通过其相同属性来建立的。参照完整性规则给出了关系之间建立联系的约束条件。实体完整性和参照完整性都是关系模型必须满足的完整性约束条件,这些约束条件由RDBMS自动支持。在实践中,能否取空值取决于生活的理解,3.4完整性规则,3、用户定义的完整性规则(User-definedIntegrity):用户根据具体应用而对数据附加的约束条件。说明:现在的商品化RDBMS提供了定义和检查这类完整性约束的机制。,3.4完整性规则,3.4完整性约束类型,完整性控制是围绕完整性约束条件进行的,根据完整性约束条件的作用对象和状态,可将完整性约束分为以下类型:静态属性约束:对属性取值的说明。主要包括:数据类型、格式、取值范围、空值的约束静态元组约束:规定组成一个元组的各列的值之间的约束关系。静态关系约束:关系的各元组之间或者若干关系之间常常存在各种联系或者约束。实体完整性、参照完整性、函数依赖和统计约束。,3.4完整性约束类型,动态属性约束:修改定义或者修改属性时应满足的约束条件。动态元组约束:修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。动态关系约束:关系变化前后状态上的限制条件。例如:事务一致性约束条件。,3.4完整性控制机制,一个完善的完整性控制机制应该具有以下三个方面的功能:定义功能:为用户提供定义完整性约束条件的命令或工具。检查功能:能够自动检查用户发出的操作请求是否违背了完整性约束条件。违约处理:当发现用户的操作请求违背了完整性约束条件时,能够自动采取一定的措施确保数据的完整性不遭破坏。,3.4完整性控制机制,由于实体完整性的定义和控制比较容易实现,因此,下面主要讨论实现参照完整性需要考虑的几个问题。外码空值问题被参照关系中删除元组问题在参照关系中插入元组问题元组中主码的修改问题综上所述,DBMS的参照完整性机制,在提供定义主码和外码机制的同时,还需要提供不同的删除、插入和修改策略供用户选择。至于选择哪种策略,一般根据实际需求确定。,返回,3.5关系代数,3.5.1传统的集合运算3.5.2专门的关系运算,返回,关系代数运算符,1、并运算:关系R和S的并是一个新的关系,记为RS=t|tRtS,它由属于R或属于S的所有元组构成。2、差运算:关系R和S的差是一个新的关系,记为R-S=t|tRtS,它由属于R但不属于S的元组构成。3、交运算:关系R和S的交是一个新的关系,记为RS=t|tRtS,它由属于R同时也属于S的元组构成。,3.5.1传统的集合运算,并,R,S,RS,差,R,S,R-S,交,R,S,RS,5、广义笛卡尔积:设R为m元关系,S为n元关系,则R与S的广义笛卡尔积RS是一个(m+n)元关系,其中的每个元组的前m个分量是R中的一个元组,后n个分量是S中的一个元组RS=(a1,a2,am,b1,b2,bn)|(a1,a2,am)R(b1,b2,bn)SRS=trts|trRtsS,说明:(1)若R有k1个元组,S为k2元关系,则RS有(k1k2)个元组,即广义笛卡尔积(2)并、差、笛卡儿积、投影和选择常称为关系代数的五个基本元组(操作),其余则成为关系代数的组合运算。,返回,3.5.1传统的集合运算,广义笛卡尔积,R,S,RS,3.5.2专门的关系运算,选择运算(Select):从关系R中选取满足给定条件的元组构成一个新的关系。选择运算记作:F(R)=t|tRF(t)其中是选择运算符,F是限定条件的布尔表达式。由逻辑运算符、和等连接各个算术表达式组成。算术表达式的基本形式为XY,其中X,Y可以是属性名,常量或简单函数,算术比较运算符,,。,选择,选择运算是从行的角度进行的运算举例设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。,(a),Student,(b),Course,(c),SC,选择,例查询信息系(IS系)全体学生Sdept=IS(Student)或5=IS(Student)结果:,选择,例查询年龄小于20岁的学生Sage20(Student)或420(Student)结果:,投影运算(Projection):从一个关系R中选取所需要的列组成一个新关系,投影运算记为:A(R)=(R)=tA|tR其中是投影运算符,A为关系R属性的子集,tA为R中元组相应于属性集A的分量,i1,i2,ik表示A中属性在关系R中的顺序号。,3.5.2专门的关系运算,投影运算(Projection):,投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),例3查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影Sname,Sdept(Student)或2,5(Student)结果:,投影,例查询学生关系Student中都有哪些系Sdept(Student)结果:,3.5.2专门的关系运算,连接运算(Join):从二个关系的广义笛卡尔积中选取满足一定连接条件的元组,记为:,其中是连接运算符,A、B分别为R、S上度数相等且可比较的属性集,是算术比较符,R.AS.B是连接条件。等值连接:为=时的情况,而其余的连接统称为非等值连接。,自然连接(Naturaljoin):两个关系进行连接比较的属性列完全相同的等值连接,且结果关系中没有重复的属性。即若R和S具有相同的属性组A,则自然连接可记作:其中集合B是关系R和S属性的并集。自然连接是同时从行和列的角度进行运算,是最有用的等值连接。以后若无特殊说明,其连接均指自然连接。,3.5.2专门的关系运算,连接,一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,连接,举例例,R,S,连接,RS,连接,等值连接RS,连接,自然连接RS,外连接,两个表格做自然连接的时候,如果不存在等值的公共属性,那么元祖被丢弃了如果把舍弃的元祖也包括在表格内,而把其他属性上填写空值,成为外连接。只保留左边表格的元祖-左外连接只保留右边表格的元祖-右外连接,3.5.2专门的关系运算,除法运算(Division):设关系R和S的度数分别为n和m(nm0),那么RS是一个度数为(nm)的关系,它满足下列条件:RS中的每个元组t与S中每个元组u所组成的元组(t,u)必在关系R中。为叙述方便起见,我们假设S的属性为R中的后m个属性,则RS的具体计算过程如下:1、T1,2,n-m(R)2、W(TS)R(即计算TS中但不在R中的元组)3、V1,2,n-m(W)4、RSTV,4)象集Z,给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集(ImagesSet)为:Zx=tZ|tR,tX=x它表示R中属性组X上值为x的诸元组在Z上分量的集合。,象集Z,R,在关系R中,A可以取四个值a1,a2,a3,a4a1的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为(b3,c7),(b2,c3)a3的象集为(b4,c6)a4的象集为(b6,c6),4.除(Division),给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。RS=trX|trRY(S)YxYx:x在R中的象集,x=trX,除,2)除操作是同时从行和列角度进行运算3)举例,除,R,S,分析:,在关系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,以学生-课程数据库为例例7查询至少选修1号课程和3号课程的学生号码首先建立一个临时关系K:然后求:Sno.Cno(SC)K,Sno.Cno(SC)11001象集1,2,311002象集2,3Cno(K)=1,3于是:Sno.Cno(SC)K=11001,3.5.2专门的关系运算,等价运算在关系代数运算中,两个关系代数表达式等价是指用同样的关系实例代入这两个表达式的相应关系时所得到的

温馨提示

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

评论

0/150

提交评论