资源描述:
《关系数据模型及其运算基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、补充:关系数据模型及其运算基础4.1关系模型的基本概念关系操作是集合操作。操作的对象是集合,操作的结果也是集合。因此,关系操作的基础是集合代数。一、笛卡尔积(CartesianProduct)1.定义设D1、D2、…、Dn都是有限集合,则D1、D2、…、Dn上的笛卡尔积为D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}2.举例例4.1设有两个集合如下:职工={张三,李四,王五},项目={管理,程控,数控},则:职工、项目上的笛卡尔积为职工×项目={(张三,管理),(张三,程控),
2、(张三,数控),(李四,管理),(李四,程控),(李四,数控),(王五,管理),(王五,程控),(王五,数控)}笛卡尔积实际上就是一张二维表。上例的笛卡尔积“职工×项目”的对应二维表如表4―1所示。表4―1二维表4.2关系模式在1.2.3节中已介绍过,一个关系的关系模式是该关系的关系名及其全部属性名的集合,一般表示为关系名(属性名1,属性名2,…,属性名n)。可见,关系是值;而关系模式是型,是对关系的描述。关系模式是稳定的。关系是变化的,关系是某一时刻关系模式的内容。关系模式常简称为关系。但上述关系模式的定义
3、还不全面(虽然一般情况下都是这样做的),完整的关系模式定义为R(U,D,dom,F)其中,R为关系名,U为该关系所有属性名的集合,D为属性组U中属性所来自的域的集合,dom为属性向域映象的集合,F为属性间数据依赖关系的集合。4.3关系数据库一个应用范围内,所有关系的集合就形成了一个关系数据库。对关系数据库的描述称为关系数据库模式,也称为关系数据库的型。一个关系数据库模式包括:全部域的定义及在这些域上定义的全部关系模式。全部关系模式在某一时刻的值的集合(全部关系的集合)为关系数据库的值,简称为关系数据库。4.4关系
4、代数关系代数与任何实际RDBMS所提供的实际语言并不完全相同。关系代数是一种抽象的查询语言,但它是评估实际语言中查询能力的标准。关系代数中给出的功能在任何实际语言中应该都能实现,即使间接地实现也行。关系代数是通过对关系的运算来表达查询的。它的运算对象是关系,运算结果也是关系。关系代数的运算可分为两类:(1)传统的集合运算:并、差、交和广义笛卡尔积,其运算符号分别为∪、-、∩和×。(2)特殊的关系运算:投影,选择,连接和除,其运算符分别为π、σ、和÷。在两类集合运算中,还将用到两类辅助操作符:(1)比较运算符:
5、>、≥、<、≤、=、≠。(2)逻辑运算符:∨(或)、∧(与)、(非)。4.4.1传统的集合运算传统的集合运算是二目运算。设关系R和S的目都是n(都有n个属性),且相应属性取自同一域,则(1)关系R和S的并(Union)为R∪S其含义为:任取元组t,当且仅当t属于R或t属于S时,t属于R∪S。R∪S是一个n目关系。(2)R和S的差(Difference)为R-S其含义为:当且仅当t属于R并且不属于S时,t属于R-S。R-S也是一个n目关系。(3)R和S的交(Intersection)为R∩S其含义为:当且仅当t既属
6、于R又属于S时,t∈R∩S。(4)广义笛卡尔积(ExtendedCartesianProduct)广义笛卡尔积不要求参加运算的两个关系具有相同的目(自然也就不要求来自同样的域)。设R为n目关系,S为m目关系,则R和S的广义笛卡尔积为R×Strts表示由两个元组tr和ts前后有序连接而成的一个元组。任取元组tr和ts,当且仅当tr属于R且ts属于S时,tr和ts的有序连接即为R×S的一个元组。R和S的广义笛卡尔积是一个(n+m)目的关系。其中任何一个元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有
7、K1个元组,S有K2个元组,则R×S有K1×K2个元组。实际操作时,可从R的第一个元组开始,依次与S的每一个元组组合,然后,对R的下一个元组进行同样的操作,直至R的最后一个元组也进行完同样的操作为止,即可得到R×S的全部元组。例4.2表4―2给出了两个关系R和S,以及它们进行并、差、交和笛卡尔积后的结果关系。表4―2关系R、S及它们的传统集合结果4.4.2专门的关系运算专门的关系运算包括投影、选择、连接、自然连接和除等。投影和选择是一元操作,其他是二元操作。一、投影(Projection)设<属性名表>中的所有属
8、性都是关系R的属性,则R在<属性名表>上的投影为R中各元组只保留在<属性名表>上的诸分量后形成的新关系(但重复元组只能保留一个),记为∏<属性名表>(R)投影的实际操作方法为:从R中逐次取出一个元组,首先,去掉不在<属性名表>上的诸属性值,接着,按<属性名表>的次序重新排列剩下各分量后,作为一个新元组送入投影结果(但若投影结果关系中已有此元组,则必须舍弃之)。投影不仅仅取