`

数据库的关系代数

阅读更多
关系数据库的数据操作分为查询和更新两类。查询语句用于各种检索操作,更新操作用于插入、删除和修改等操作。
  关系查询语言根据其理论基础的不同分成两大类:
  1.关系代数语言:查询操作是以集合操作为基础运算的DML语言。
  2.关系演算语言:查询操作是以谓词演算为基础运算的DML语言。
  关系代数的五个基本运算
  关系代数是以关系为运算对象的一组高级运算的集合。关系定义为元数相同的元组的集合。集合中的元素为元组,关系代数中的操作可分为两类:
  传统的集合操作:并、差、交、笛卡尔积。
  扩充的关系操作:投影,选择,联接和自然联接,除。
  1.并
  设有两个关系R和S具有相同的关系模式,R和S的并是由属于R和S的元组构成的集合,记为R∪S。
  注意:R和S的元数相同。
  2.差
  设有两个关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。
  注意:R和S的元数相同。
  3.笛卡尔积
  设关系R和S的元数分别为r和s。定义R和S的笛卡尔积是一个(r+s)元的元组集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组,记为R×S。
  若R有M个元组,S有n个元组,则R×S 有m×n个元组。
  4.选择
  从关系中找出满足给定条件的所有元组称为选择。其中的条件是以逻辑表达式给出的 ,该逻辑表达式的值为真的元组被选取。这是从行的角度进行的运算,即水平方向抽取元组。经过选择运算得到的结果可以形成新的关系,其关系模式不变,但其中元组的数目小于或等于原来的关系中的元组的个数,它是原关系的一个子集。
  记为: δF(R)≡{tㄏt属于R∧F(t)=true}
  5.投影
  从关系中挑选若干属性组成的新的关系称为投影。这是从列的角度进行运算。经过投影运算可以得到一个新关系,其关系所包含的属性个数往往比原关系少,或者属性的排列顺序不同。如果新关系中包含重复元组,则要删除重复元组。
  记为:∏A(R)={t[A] ㄏt属于R} A为R中的属性列。
  例如: ∏3,1(R)
  关系代数的四个组合操作
  1.交
  关系R和S的交是由属于R又属于S的元组构成的集合,记为R∩S。R和S要求定义在相同的关系模式上。
  R∩S≡ {tㄏt属于R∧t属于S},R和S的元数相同。
  2.联接
  联接有两种:θ联接和F联接(θ是算术比较符,F是公式)。
  ⑴ θ联接
  θ联接是从关系R和S的笛卡尔积中选取属性值满足某一θ操作的元组,记为:
  R?×i θj?S,这里i和j 分别是关系R和S中第 i个、第j个属性的序号。
  R?×i θj?S≡ δi θ (r+j)( R×S )
  如果θ是等号“=”,该联接操作称为“等值联接”。
  ⑵F联接
  F联接操作是从关系R和S的笛卡尔积中选取属性值满足某一公式F的元组,记为:
  R?×F?S,这里的F是形为F1∧F2∧…∧Fn的公式,每一个f都是形为i θj的式子,而i和j 分别是关系R和S中第 i个、第j个属性的序号。
  3.自然联接
  两个关系R和S的自然联接用R?×?S表示。具体计算过程如下:
  ①计算R×S
  ②设R和S的公共属性是A1,……,Ak,挑选R×S中满足R .A1=S.A1,……,R.Ak=S.Ak的那些元组
  ③去掉S.A1,……, S.Ak的这些列。
  如果两个关系中没有公共属性,那么其自然联接就转化为笛卡尔积操作。
  4.除法
  给定关系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上投影的集合。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics