2015年软考软件设计师辅导讲义:数据库知识(3)
发布时间:2010/9/11 17:56:34 来源:城市学习网 编辑:ziteng
以下对几种常用的关系运算作一个简单的介绍。
u 基本运算
1. 并
设有两个关系R和S具有相同的关系模式,关系R和S的并是由属于R或属于S的元组组成的集合,记为R∪S。形式定义如下:R∪S≡{t│t∈R∨t∈S}
2. 差
设有两个关系R和S具有相同的关系模式,关系R和S的差是由属于R但不属于S的元组组成的集合,记为R-S。形式定义如下:R-S≡{t│t∈R∧t ̄∈S}
3. 笛卡儿积
设关系R和S元数分别为r和s。定义R和S的笛卡儿积是一个(r+s)元的元组集合,每个元组的前r个分量来自R的一个元组,后s个分量来自S的一个元组,记为R×S形式定义如下:R×S≡{t│t=tr∈R∧ts∈S}
若R有m个元组,S有n个元组,则R×S有(mn)个元组。
4. 投影
该操作是对关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组。
5. 选择
这个操作是根据某些条件对关系作水平分割,即选择符合条件的元组。条件可用命题公式F表示,F中的运算对象是常数(用引号括起来)或元组分量(属性名或列的序号)。运算符有算术比较运算符(≤,<,≥,>,=,≠)和逻辑运算符(∧,∨,┐)。
δF(R)≡{t│t∈R∧F(t)= true}
δ为选择运算符,δF(R)表示从R中挑选满足公式F的元组所构成的集合。常量用引号括起来,而属性号或属性名不要用引号括起来。
u 组合运算
1. 交
设有两个关系R和S具有相同的关系模式,关系R和S的交是由属于R又属于S的元组组成的集合,记为R∩S。形式定义如下:R∩S≡{t│t∈R∧t∈S}
2. 联接(又称θ联接)
从关系R和S的笛卡尔积中选取属性值之间满足一定条件的元组 ,记为:
R│×│S≡δiθ(i+j)(R×S) ijθ
这里R的元数是r,θ是算术比较运算符。R│×│S操作是在R和S ijθ的笛卡尔积中挑选第i个分量和第(r+j)个分量满足θ运算的元组组成的新的关系。
3. 自然联接
两个关系R和S的自然联接用R│×│S表示,具体计算过程如下:
A) 计算R×S
B) 设R和S的公共属性是A1,A2,A3,..Ak.,挑选R×S中满足R.A1=S.A1,R.A2,...,R.Ak=S.Ak的那些元组
C) 去掉S.A1,S.A2,..S.Ak
R│×│S可用下列形式定义:
R│×│S≡πi1i2,...,im(δR.A1=S.A1∧...∧R.Ak=S.Ak(R×S)。
4. 除法
设两个关系R和S的元数分别为r和s(r>s>0),那么R÷S是一个(r-s)元的元组的集合。(R÷S)是满足下列条件的最大关系,其中每个元组t与S中每个元组u组成的新元组必在关系R中。
R÷S的具体计算过程如下:
A) T=π1,2,..r-s(R)
B) W=(T×S)-R求出T×S中不在R的元组
C) V=π1,2,...r-s(W)
D) R÷S=T-V
因此R÷S≡π1,2,..r-s (R)- π1,2,..r-s ((π1,2,..r-s (R) ×S) -R )。