关于数据库中关系代数的一些理解(二)

在《关于数据库中关系代数的一些理解(一)》中我写了关于传统的集合操作的一些用法和含义,这里我将写专门的关系运算

1.选择

选择又叫水平分割,水平分割顾名思义是对水平方向上的操作,而这主要是用来选取符合条件的元组
σF ( R) ——含义:从R中挑选满足公式F的元组所构成的关系

例:
σ 2 > ‘3’ ( R)从R中挑选第二个分量大于3的元组所构成的关系,其中所标记的就为公式F

2.投影

投影又叫垂直分割,因此它是对列进行操作,消除某些列,并重新安排顺序

例:
π3,1(R)——含义:表示新列是由R中的第3列和第1列组成,同时新列的排列顺序从左到右为旧列的第3列第1列组成。

除了用列数表示列也可以用列明表示

3.连接

先对关系R和关系S进行笛卡尔积,然后在从中选择满足条件的列,组成新的关系
R ⋈iθj S ——θ为比较运算符
特殊:若θ为“=”则为等值连接,同时自然连接为特殊的等值连接

自然连接:运算方式为左R和S的笛卡尔积,然后找到相同的列(比较元组留下相同的),最后去掉后一个列。

例:

序号 部门
A1 宣传
A2 办公
A3 竞赛
序号 部门 姓名
A1 宣传 张三
A1 办公 李四
A3 竞赛 王五

则两个关系做自然连接以后为:(先做笛卡尔积,然后在起基础上保留相同列中的元组相同的元组,然后再删除多余重复的列)

序号 部门 姓名
A1 宣传 张三
A1 办公 李四
A3 竞赛 王五

3.除

除运算是同时从关系的水平和垂直方向进行运算。
具体的运算方式通过一个例子来说明:
例:
关系R和关系S

关系R

X Y
X1 Y1
X2 Y2
X2 Y3
X2 Y1

关系S

Y Z
Y1 Z1
Y2 Z2

R÷S

X
X2
  1. 首先找到S和R的相同属性(列),然后对S进行Y的投影(将S中和R相同的列抽取出来)。
  2. 然后将R中不和S相同的列抽取出来。
  3. 接着将S对Y的投影结果一 一和R的 原始表对应(得到像集),找到能够包含S中属性Y(和R相同的那一列)所有值的像集,而所对应R的投影则为R除S的运算的结果。

下面我再通过一个实例来解释这个运算过程

关于数据库中关系代数的一些理解(二)_第1张图片

望路过的大神多多指点错误之处!

你可能感兴趣的:(数据库)