关系代数

关系代数的五个基本操作:

  • 并(Union):设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为R∪S。
  • 差(Difference):设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。
  • 笛卡儿积(Cartesian Product):设关系R和S的元组数分别为r和s,R和S的笛卡儿积是一个(r+s)的元组集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组,记为R×S。
  • 投影(Projection):对一个关系进行垂直分割,消去某些列,并重新安排列的排序,用π表示。
  • 选择(Selection):根据某些条件对关系进行水平分割,即选取符合条件的元组,用σ表示。

关系代数的四个组合操作:

  • 交(Intersection):由即属于R又属于S的元组构成的集合,记为R∩S。这里要求R和S定义在相同的关系模式上。
  • 连接(Join):从关系R和S的笛卡儿积中选取属性值满足某一操作θ的元组。
  • 自然连接(Natural Join):第一步,计算R和S的笛卡儿积;第二步,挑选公共属性相同的元组;第三步,去掉S中的相关列。
  • 除/逆笛卡儿积(Division):R÷S是一个(r-s)元的元组集合,满足下列条件的最大关系:其中每个元组t与S中的每个元组u组成的新元组<t,u>必在关系R中。

关系代数的七个扩充操作:

  • 改名:改名运算符用ρS(A1,A2,...An)(R)表示。表示把关系R改名为S,S中的元组和R中一样,属性顺序为A1,A2,...An。如果只需要改名不需要重新排列属性,可以简写为ρS(R)。
  • 广义投影:广义投影允许在投影列表中使用算术函数来对投影进行拓展。
  • 赋值:赋值运算符“←”,通过把临时变量赋值,可以把关系代数分开写,以把复杂的表达式化整为零,成为简单的表达式。注意:赋值操作不执行关系操作,仅仅是保存关系形式,该表达式可以重复使用。
  • 外连接:如果在做R和S的自然连接时,把原本该舍弃的元组也保留在新关系中,同时在这些元组新增的属性上填上空值,这种操作称为“外连接”。同样的,如果只保留R中该舍弃的元组,称为“左外连接”,只保存S中该舍弃的元组,称为“右外连接”。
  • 外部并:上面定义R和S的并操作时,规定两者需要有两桶的关系模式。如果关系模式不同,构成的新关系的属性由两者的所有属性组成(公共属性只取一次),新关系的元组由属于R或S的元组组成,同时在元组新增加的属性上填上空值,这种操作称为“外部并”。
  • 半连接:定义为R和S的自然连接在关系R的属性集上的投影。半连接主要用于分布式数据库中。
  • 聚集操作:指输入一个值的集合,根据该集合得到一个单一值作为结果。常用的聚集函数包括求最大值max,最小值min,平均值avg,总和值sum和计数值count等。

猜你喜欢

转载自my.oschina.net/HuoQibin/blog/1782601
今日推荐