关系数据模型及其运算基础.ppt
第4章 关系数据模型及其运算基础 补充:补充:关系数据模型及其运算基础 第4章 关系数据模型及其运算基础 4.1 关系模型的基本概念关系模型的基本概念 关系操作是集合操作。操作的对象是集合,操作的结果也是集合。因此,关系操作的基础是集合代数。一、笛卡尔积(Cartesian Product)1.定义 设D1、D2、Dn都是有限集合,则D1、D2、Dn上的笛卡尔积为 D1D2Dn=(d1,d2,dn)diDi,i=1,2,n第4章 关系数据模型及其运算基础 2.举例 例 4.1 设有两个集合如下:职工=张三,李四,王五,项目=管理,程控,数控,则:职工、项目上的笛卡尔积为 职工项目=(张三,管理),(张三,程控),(张三,数控),(李四,管理),(李四,程控),(李四,数控),(王五,管理),(王五,程控),(王五,数控)笛卡尔积实际上就是一张二维表。上例的笛卡尔积“职工项目”的对应二维表如表 4 1 所示。第4章 关系数据模型及其运算基础 表 4 1 二 维 表 第4章 关系数据模型及其运算基础 4.2 关系模式关系模式 在节中已介绍过,一个关系的关系模式是该关系的关系名及其全部属性名的集合,一般表示为关系名(属性名1,属性名2,属性名n)。可见,关系是值;而关系模式是型,是对关系的描述。关系模式是稳定的。关系是变化的,关系是某一时刻关系模式的内容。关系模式常简称为关系。第4章 关系数据模型及其运算基础 但上述关系模式的定义还不全面(虽然一般情况下都是这样做的),完整的关系模式定义为 R(U,D,dom,F)其中,R为关系名,U为该关系所有属性名的集合,D为属性组U中属性所来自的域的集合,dom为属性向域映象的集合,F为属性间数据依赖关系的集合。第4章 关系数据模型及其运算基础 4.3 关关 系系 数数 据据 库库 一个应用范围内,所有关系的集合就形成了一个关系数据库。对关系数据库的描述称为关系数据库模式,也称为关系数据库的型。一个关系数据库模式包括:全部域的定义及在这些域上定义的全部关系模式。全部关系模式在某一时刻的值的集合(全部关系的集合)为关系数据库的值,简称为关系数据库。第4章 关系数据模型及其运算基础 4.4 关系代数关系代数 关系代数与任何实际RDBMS所提供的实际语言并不完全相同。关系代数是一种抽象的查询语言,但它是评估实际语言中查询能力的标准。关系代数中给出的功能在任何实际语言中应该都能实现,即使间接地实现也行。关系代数是通过对关系的运算来表达查询的。它的运算对象是关系,运算结果也是关系。关系代数的运算可分为两类:第4章 关系数据模型及其运算基础 (1)传统的集合运算:并、差、交和广义笛卡尔积,其运算符号分别为、和。(2)特殊的关系运算:投影,选择,连接和除,其运算符分别为、和。在两类集合运算中,还将用到两类辅助操作符:(1)比较运算符:、。(2)逻辑运算符:(或)、(与)、(非)。第4章 关系数据模型及其运算基础 4.4.1 传统的集合运算 传统的集合运算是二目运算。设关系R和S的目都是n(都有n个属性),且相应属性取自同一域,则 (1)关系R和S的并(Union)为 RS 其含义为:任取元组t,当且仅当t属于R或t属于S时,t属于RS。RS是一个n目关系。第4章 关系数据模型及其运算基础 (2)R和S的差(Difference)为 R-S 其含义为:当且仅当t属于R并且不属于S时,t属于R-S。R-S也是一个n目关系。(3)R和S的交(Intersection)为 RS 其含义为:当且仅当t既属于R又属于S时,tRS。第4章 关系数据模型及其运算基础 (4)广义笛卡尔积(Extended Cartesian Product)广义笛卡尔积不要求参加运算的两个关系具有相同的目(自然也就不要求来自同样的域)。设R为n目关系,S为m目关系,则R和S的广义笛卡尔积为 RS tr ts表示由两个元组tr和ts前后有序连接而成的一个元组。任取元组tr和ts,当且仅当tr属于R且ts属于S时,tr和ts的有序连接即为RS的一个元组。第4章 关系数据模型及其运算基础 R和S的广义笛卡尔积是一个(n+m)目的关系。其中任何一个元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有K1个元组,S有K2个元组,则RS有K1K2个元组。实际操作时,可从R的第一个元组开始,依次与S的每一个元组组合,然后,对R的下一个元组进行同样的操作,直至R的最后一个元组也进行完同样的操作为止,即可得到RS的全部元组。第4章 关系数据模型及其运算基础 例 4.2 表 4 2 给出了两个关系R和S,以及它们进行并、差、交和笛卡尔积后的结果关系。表 4 2 关系R、S及它们的传统集合结果 第4章 关系数据模型及其运算基础 第4章 关系数据模型及其运算基础 4.4.2 专门的关系运算 专门的关系运算包括投影、选择、连接、自然连接和除等。投影和选择是一元操作,其他是二元操作。一、投影(Projection)设中的所有属性都是关系R的属性,则R在上的投影为R中各元组只保留在上的诸分量后形成的新关系(但重复元组只能保留一个),记为 (R)第4章 关系数据模型及其运算基础 投影的实际操作方法为:从R中逐次取出一个元组,首先,去掉不在上的诸属性值,接着,按的次序重新排列剩下各分量后,作为一个新元组送入投影结果(但若投影结果关系中已有此元组,则必须舍弃之)。投影不仅仅取消了原关系中的某些列,还可能会去掉某些元组(有重复时),还可以改变属性列的排列次序,例如:Dno,Title(Employee)即表 2 1 中表(一)所示的职工表在部门号和职称两属性列上的投影,结果见表 4 3。第4章 关系数据模型及其运算基础 表 4 3 职工表在部门号和职称上的投影 第4章 关系数据模型及其运算基础 投影表达式中,可用属性在原关系中的序号代替属性名。如上述投影表达式等价于 7,6(Employee)二、选择(Selection)选择运算是在一个关系中,选取符合某给定条件的全体元组,生成的新关系,记为 (关系名)是个布尔表达式,例如:Dno=015=1(Employee)表示从职工表(表 2 1 的表(一)中选取部门且第列婚否的元组组成结果关系。第4章 关系数据模型及其运算基础 结果关系的所有属性名都是原关系的属性名,结果关系中各元组都是原关系中的元组。不难证明,下面等式是成立的。((R))=(R)=(R)第4章 关系数据模型及其运算基础 三、连接(Join)连接也称连接,是从两个关系的广义笛卡尔积中选取满足某规定条件的全体元组,形成一个新的关系,记为第4章 关系数据模型及其运算基础 四、等值连接(Equivalence join)等值连接属于连接,当一个连接表达式中,所有的i都是“=”符时,则称此连接为等值连接。等值连接是较常用的连接。五、自然连接(Natural join)1.自然连接的由来 设关系R和S共有 m个相同的属性名,把这m个相同属性名的集合记为A。则R和S在属性组A上的等值连接为第4章 关系数据模型及其运算基础 2.自然连接 设关系R和S共有m个相同的属性名。则R和S在这m个属性上进行等值连接后,又删除m个冗余列,所得结果称为R和S的自然连接,记为 第4章 关系数据模型及其运算基础 自然连接与等值连接的差别在于:(1)自然连接要求相等的分量必须有共同属性名,等值连接则不要求。(2)自然连接要求把重复属性名去掉,等值连接却不这样做。可以证明,关系代数操作集U,是完备的操作集,任何其他关系代数操作都可以用这五种操作的组合来表示。任何一个DBMS,只要它能完成这五种操作,则称它是关系完备的(relationally complete)。第4章 关系数据模型及其运算基础 六、除(Division)1 除法的简单形式 设关系S的属性是关系R属性的一部分,则RS为这样一个关系:(1)此关系的属性是由属于R但不属于S的所有属性组成。(2)RS的任一元组都是R中某元组的一部分。但必须符合下列要求,即任取属于RS 的一个元组t,则t与S的任一元组连串后,都为R中原有的一个元组。第4章 关系数据模型及其运算基础 例 4.3 表 4 4 给出了两个关系:学生选课和课程,以及学生选课课程的结果。表 4 4 两个关系的除法运算 第4章 关系数据模型及其运算基础 2 除法的一般形式 设有关系R(X,Y)和S(Y,Z),其中X、Y和Z是关系的属性(或属性组),则R(X,Y)S(Y,Z)=R(X,Y)Y(S)而Y(S)的属性是关系R属性的一部分,可用除法的简单形式进行处理。七、举例 表 4 5 给出了两个关系以及它们之间专门的关系运算。第4章 关系数据模型及其运算基础 表 4 5 两个关系间专门的关系运算 第4章 关系数据模型及其运算基础