|
专门的关系运算不仅涉及行而且涉及列,包括选择、投影、连接、除等。
|
|
|
设一个学生-课程数据库,包括学生关系、课程关系和选修关系,如下图所示,下面的例题都基于这三个关系。
|
|
|
|
|
|
选择是在关系R中选择满足给定条件的诸元组,记作σF(R)={t|t∈R∧F(t)}=′真′},其中F表示选择条件的逻辑表达式(F由逻辑运算符?、∧、∨连接各算术表达式组成,算术表达式的基本形式为X1θY1,其中θ表示比较运算符,X1、Y1是属性名或常量,或简单函数,属性名也可以用它的序号来代替),取值“真”或“假”。选择运算其实是从关系R中选取一些元组,这些元组可以使逻辑表达式F取值为真。选择运算是从行的角度进行的。
|
|
|
|
σSdept='CS'(Student)或σ5='CS'(Student)
|
|
|
|
|
关系R上的投影是指从关系R中选取若干属性列并组成一个新的关系,记作πA(R)={t[A]|t∈R}。投影运算是从列的角度进行的。
|
|
|
|
πSno,Sname(Student)或π2,5(Student)
|
|
|
注意:由于投影之后取消了原关系中的某些列,所以可能会出现重复的行,应取消这些相同的行。所以投影之后不但取消原关系中的某些列,还取消了某些元组。
|
|
|
|
连接是从两个关系的笛卡尔积中选取属性间满足一定条件的元组,记作,其中A和B分别是R和S上的属性组,θ是比较运算符。连接运算从R和S的广义笛卡尔积R×S中选取一些元组,这些元组在A属性组上的值与在B属性组上的值满足比较关系θ。连接操作是从行的角度进行的运算。
|
|
|
当θ为“=”时的连接运算称为等值连接,等值连接是比较重要和常用的一种连接运算。另外一种重要并且常用的连接运算是自然连接。自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,即当R和S具有相同的属性组A,自然连接可记作:。由于在自然连接中还要把重复的列去掉,所以是同时从行和列的角度进行运算。
|
|
|
例3:设有两个关系R和S,如下图(a)和(b),的结果如下图(c),等值连接的结果如下图(d),自然连接R?S的结果如下图(e)。
|
|
|
|
|