|
|
专门的关系运算包括选择、投影、连接、除等。 |
⒈ |
选择(Selection) |
|
详细信息… |
|
选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作:
σF(R) = {t|t∈R ∧ F(t)='真'}
其中F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。
逻辑表达式F的基本形式为:
X1 θ Y1 [ φ X2 θ Y2 ]
θ表示比较运算符,它可以是>、≥、<、≤、=或≠。X1、Y1等是属性名或常量或简单函数。属性名也可以用它的序号来代替。φ表示逻辑运算符,它可以是フ、∧或∨。[
]表示任选项,即[ ]中的部分可以要也可以不要,...表示上述格式可以重复下去。
因此选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。这是从行的角度进行的运算。
|
|
举例 |
|
设有一个学生-课程关系数据库,包括学生关系Student、课程关系Course和选修关系SC。下面的许多例子将对这三个关系进行运算。
例1 查询信息系(IS系)全体学生
σSdept='IS'(Student) 或 σ5='IS'(Student)
例2 查询年龄小于20岁的元组
σSage<20(Student) 或σ4<20(Student) 。
|
| ⒉ |
投影(Projection) |
|
详细信息… |
|
关系R上的投影是从R中选择出若干属性列组成新的关系。记作:
ΠA(R) = { t[A] | t∈R }
其中A为R中的属性列。
|
|
举例 |
|
例3 查询学生关系Student在学生姓名和所在系两个属性上的投影
ΠSname,Sdept(Student)
或
Π2,5(Student)
结果如图2-7(a)。
投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。
例4 查询学生关系Student中都有哪些系,即查询学生关系Student在所在系属性上的投影
ΠSdept(Student)
投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。
|
| ⒊ |
连接(Join) |
|
详细信息… |
|
连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:

其中A和B分别为R和S上度数相等且可比的属性组。θ是比较运算符。连接运算从R和S的笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组。
连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equi-join),另一种是自然连接(Natural
join)。
θ为“=”的连接运算称为等值连接。它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。即等值连接为:

自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作:

一般的连接操作是从行的角度进行运算。但自然连接还需要取消了重复列,所以是同时从行和列的角度进行运算。
|
| 4. |
除(Division) |
|
详细信息… |
|
给定关系R(X,Y)和S(Y,Z),其中X, Y, Z为属性组。R中的Y与S中的Y&127;可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:
R÷S = {tr[X]|tr∈R ∧ Yx ΠY(S) }
其中Yx为x在R中的象集,x=tr[X]。
|
|
举例 |
|
例6 设关系R, S分别为图2-9中的(a)和(b),R÷S的结果为图2-9(c)
在关系R中,A可以取四个值{a1, a2, a3, a4}。其中:
a1的象集为{(b1,c2), (b2,c3), (b2,c1)}
a2的象集为{(b3,c7), (b2,c3)}
a3的象集为{(b4,c6)}
a4的象集为{(b6,c6)}
S在(B,C)上的投影为{(b1,c2), (b2,c3), (b2,c1)}
显然只有a1的象集(B,C)a1包含S在(B,C)属性组上的投影,所以R÷S={a1}
R |
|
S |
|
R÷S |
| A |
B |
C |
B |
C |
D |
A |
| a1 |
b1 |
c2 |
b1 |
c2 |
d1 |
a1 |
| a2 |
b3 |
c7 |
b2 |
c1 |
d1 |
|
| a3 |
b4 |
c6 |
b2 |
c1 |
d1 |
|
| a1 |
b2 |
c3 |
b2 |
c3 |
d2 |
|
| a4 |
b6 |
c6 |
|
|
|
|
| a2 |
b2 |
c3 |
|
|
|
|
| a1 |
b2 |
c1 |
|
|
|
|
(a) |
(b) |
(c) |
|
|
|