Ø 选择的操作符用σ表示,选择条件则用逻辑公式来表示,用R表示逻辑公式。对关系R的选择运算就可以表示为σt(R),即
σt(R) = {x | x∈R∧t(x) = true}
“t(x) = true”表示元组x满足条件公式t。对于选择运算,关键是设置选择条件t。
在数据查询中,条件公式t通常是由<、>、≤、≥、=、between、∧、∨等连接符号构成的条件表达式或逻辑表达式。
【例子】表2.3所示的学生关系student。令选择条件t = (性别=‘男’∧专业号=‘z3’),则选择运算st(student)表示查找那些专业号为“z3”的男同学,结果如表2.7所示。
2. 投影π
l 投影是指从关系中选出若干个指定的属性来组成新的关系。令投影的操作符为π,L为指定的属性子集,则关系R在属性子集L上的投影就可以表示为πL(R),即 πL(R) = {x(L) | x ∈ R}
x(L)表示由元组x在属性集L上的取值构成的新元组。
l 投影还有一种表示方法就是在投影运算表达式πL(R)中用指定的属性在关系R中的序号来代替L中的属性名。
【例子】对于上述的投影π{姓名,性别} (student)也可以表示为π{2,3}(student)。
l 投影就是从关系表中按指定的属性抽取相应的列,这些列组成一个新的关系。
l 注意,投影运算是对列进行筛选,而选择运算则对行进行筛选。
【例子】对于表2.3所示的学生关系student,令L = {姓名,性别},则学生关系在L上的投影:
πL(student) = {x(L) | x∈ R}
= {x({姓名,性别}) | x∈ R}
= {(刘洋,男), (李思思,女), (陈永江,男), (王大河,男), (吕文星,男), (李鑫,女)}
结果如表2.8所示。
3. 连接 ⋈
连接运算是二元运算,即涉及到两个关系的运算。假设参与运算的两个关系是R和S,则连接运算的结果是R和S笛卡儿积中满足属性间既定条件的元组的集合,即它是R和S笛卡儿积的一个子集。连接运算常用的主要有两种:等值连接和自然连接。
1)等值连接
对于关系R和S,假设F和M分别是关系模式R和S的属性子集,如果按照F和M进行连接,则R和S的等值连接表示为:
xrxs表示由元组xr和xs连接起来而构成的新元组。等值连接R S是R和S笛卡儿积的一个子集,子集中的元组在F和M上的取值相等。
2)自然连接
自然连接是一种特殊的等值连接,它是在等值连接的基础上加上两个条件:
(1)参与比较的属性子集F 和M 必须是相同的,即F=M;
(2)形成的新关系中不允许存在重复的属性,如果有则去掉。R和S的自然连接可以表示为:
F是关系R和S都包含的属性(组)。
表2.9和表2.10所示的两个关系,分别表示学生的基本信息和学生的考试成绩。