关系代数的运算按运算符的不同可分为传统的集合运算和专门的 关系运算两类。其中传统的集合运算将关系看成元组的集合,其运算 是从关系的“水平”方向即行的角度来进行的。而专门的关系运算不 仅涉及行而且涉及列。比较运算符和逻辑运算符是用来辅助专门的关 系运算符进行操作的。
运算符分类 集合运算符
专门的关系运算符
比较运算符
逻辑运算符
运算符 ∪ - ∩ × σ π ∞ ÷ > ≥ < ≤ = ≠ ┑ ∧ ∨
含义 并运算 差运算 交运算 笛卡儿积 选择运算 投影运算 连接运算 除法运算 大于 大于等于 小于 小于等于 等于 不等于 非运算 与运算 或运算
(表一)
2.5.3.1 传统的集合运算
(1)并(Union)
定义 设关系R和关系S具有相同的关系模式(即两个关系都有相同的属性), 且相应的属性取自同一个域,则关系R和关系S的并是由属于关系R或 关系S的元组构成的集合,即R和S的所有元组合并,删去重复元组, 组成一 个新关系,其结果仍为n目关系。 记为R∪S={t|t∈R∨t∈S} 其中t是元组变量,关系R和关系S的元数相同。 对于关系,记录的插入和添加可通过并运算实现。
(2)差(Difference)
定义 设关系R和关系S具有相同的关系模式,R和 S的差是由属于 R但不属于 S 的所有元组构成的集合,即 R中删去与 S中相同的元组,组成一个新 关系,其结果仍为n目关系。 记为R-S={t|t∈R∧t∈S},R和S元数相同。 通过差运算,可实现关系记录的删除。
(3)交(Intersection)
定义 设关系R和关系S具有相同的关系模式,R和S的交是由属于R又属于S 的元组构成的集合。 记为R∩S={t|t∈R∧t∈S} 如果两个关系没有相同的元组,那么他们的交为空。 两个关系的并和差运算为基本运算(即不能用其他运算表达),而交 运算为非基本运算,交运算可以用差运算来表示。 R∩S= R-(R-S)
(4)笛卡儿积(Cartesian Product)
定义 设关系R和关系S的元数分别为 m和 n。定义 R和 S的笛卡儿积是一个 (m+ n)元的元组集合,每个元组的前 m个分量(属性值)来自R的 一个元组,后 n个分量自 S的一个元组。 记为R×S= {t|t=(tm,tn) ∧tm∈R∧tn∈S} 若R有k1个元组,S有k2个元组,则R×S有k1×k2个元组。
例:设有两个关系R和S,且R和S具有相同的关系模式,则分别求出关 系R和关系S的
并、差、交和笛卡儿积,如下图所示。
关系R 关系R∪S 关系R-S
A a d x
B b g y
C c f z
A a d x e
B b g y y
C c f z c A a a d d x x B b b g g y y
a x
b y
c z
关系R×S 关系S 关系R∩S
A e d
B b g
C c f
A d
B g
C f
C c c f f z z
A b d b d b d
B e g e g e g
C a f a f a f
2.5.3.2 专门的关系运算
由于传统的集合运算,只是从行的角度进行,而要灵活地实现 关系多样的查询操作,必须引入专门的关系运算。 (1)选择(selection) 定义 选择操作是根据某些条件对关系进行水平分割,即在关系 R中 选取符合条件的元组。 记作
? F ( R ) ? {t | t ? R ? F ( t ) ? ' 真 ' }
其中F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或 ‘假’ 逻辑表达式F的基本形式为X1 θ Y1[φX2 θ Y2],其中, θ为比较运 算符,它可以是<,≤,>,≥,=或≠。X1,Y1等是属性名、常量 或简单函数。属性名也可以用它的列序号来代替。φ表示逻辑运算符, 它可以是∧,∨或┐。[ ]表示可选项,即[ ]中的部分可以省略。 因此选择运算实际上是关系R中选取使逻辑表达式F为真的元组。 这是从行的角度进行的运算。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-35948-4.html
还短兵相接有脸皮