SQL教程关系代数.doc
文本预览下载声明
关系代数
关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方。式,它是用对关系的运算来表达查询的。
任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。所以运算对象、运算符、运算结果是运算的三大要素。
关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符,如表1所示。
表1 关系代数运算符
关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类。
其中传统的集合运算将关系看成元组的集合,其运算是从关系的“水平”方向即行的角度来进行。而专门的关系运算不仅涉及行而且涉及列。比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。
一 传统的集合运算
传统的集合运算是二目运算,包括并、差、交、广义笛卡尔积四种运算。
设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个城,则可以定义并、差、交运算如下:
1. 并(Union)
关系R与关系S的并记作:
R∪S = { t | t∈R ∨ t∈S }
其结果仍为n目关系,由属于R或属于S的元组组成。
2. 差(Difference)
关系R与关系S的差记作:
R-S = { t | t∈R ∧ t\∈S }
其结果关系仍为n目关系,由属于R而不属于S的所有元组组成。
3. 交( Intersection)
关系R与关系S的交记作:
R∩S = { t | t∈R ∧t∈S }
其结果关系仍为n目关系,由既属于R又属于S的元组组成。关系的交可以用差来表示,即R∩S=R-(R-S)。
4. 广义笛卡尔积(Extended Cartesian Product)
两个分别为 n目和m目的关系 R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记作:
R×S = { trts | tr∈R ∧ts∈S }
图1(a)、图1(b)分别为具有三个属性列的关系R,S。图1(c)为关系R与S的并。图1(d)为关系R与S的交。图1(e)为关系R和S的差。图1(f)为关系R和S的广义笛卡尔积。
(a) (b)
(c) (d) (e)
(f)
图1 传统集合运算举例
二 专门的关系运算
专门的关系运算包括选择、投影、连接、除等。为了叙述上的方便,先引入几个记号。
(1)设关系模式为R(A1,A2,…,An)。它的一个关系设为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量。
(2)若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或域列。t[A]=(t[Ai1],t[Ai2]…,t[Aik])表示元组t在属性列A上诸分量的集合。A则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。
(3)R为 n目关系,S为 m目关系。tr∈R,ts∈S,trts 称为元组的连接(Concatenation)。它是一个 n+m列的元组,前n个分量为R中的一个 n元组,后m个分量为S中的一个m元组。
(4)给定一个关系R(X,Z),X和Z为属性组。定义,当t[X]= x时,x在 R中的象集(Images Set)为:
Zx ={ t[Z] | t ∈ R,t[X] = x }
它表示R中属性组X上值为x的诸元组在Z上分量的集合。
下面给出这些关系运算的定义:
1. 选择( Selection)
选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作:
бF(R)= { t | t ∈ R ∧ F(t) =’真’ }
其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。
逻辑表达式F由逻辑运算符┐,∧,∨连接各算术表达式组成。算术表达式的基本形式为:
显示全部