选择、投影和连接运算(关系数据库)

标签:
it |
分类: 复试 |
一、选择
选择又称为限制,它是在关系R中选择满足给定条件的诸元组,记作:
σf(R)={t|t∈R∧F(t)=‘真’}
其中F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。
逻辑表达式F的基本形式为:X1 θ Y1[φ X2 θ Y2] …,其中θ表示比较运算符号,可以是>、≥、<、≤、=或≠。X1,Y1等是属性名或常量或简单函数。属性名也可以用它的序号来代替。θ表示逻辑运算符,可以是∧或∨等。[]表示任选项。即[]中的部分可以要也可以不要。…表示上述格式可以一直重复下去。
因此选择运算实际上是从关系R中选取使逻辑表达式F为真的元组,这是从行的角度进行的运算。如图2-5(a)所示。
http://www.edushanghai.org/UploadFiles/Article/2010/2/201002031900009927.gif
图2-5
现举例说明。有如下学生关系student,课程关系Course和选修关系SC,如下图2-6所示,以下所有的例子都是针对这三个关系的运算。
http://www.edushanghai.org/UploadFiles/Article/2010/2/201002031900007834.gif
图2-6
【例1】查询信息系(IS系)全体学生。
σSdept=’Is’(Student),其结果为图2-7(a)所示。
http://www.edushanghai.org/UploadFiles/Article/2010/2/201002031900008735.gif
图2-7
【例2】查询年龄小于20岁的元组。 σSage<20(Student),其结果为图2-7(b)所示。 |
二、投影
关系R上的投影是从R中选择出若干属性列组成新的关系。记作:
∏A(R) = { t[A] | t∈R }
其中A为R中的属性列。
投影操作是从列的角度进行的运算,如图2-5(b)所示。
【例3】查询学生关系Student在学生姓名和所在系两个属性上的投影。
∏Sname,Sdept(Student),其结果如图2-8(a)所示:
http://www.edushanghai.org/UploadFiles/Article/2010/2/201002031900012704.gif
图2-8
【例4】查询学生关系Student中都有哪些系,即查询学生关系Student在所在系属性上的投影。 ∏Sdept(Student),其结果如图2-8(b)所示。 |
三、连接
连接也称为θ连接,它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组,记作:
http://www.edushanghai.org/UploadFiles/Article/2010/2/201002031900018926.gif
其中A和B分别为R和S上度数相等且可比的属性组。θ是比较运算符。连接运算从R和S的笛卡儿积RxS中选取关系R在A属性组上的值与关系S在B属性组上值满足比较关系θ的元组。
连接运算有两种最为重要也是最为常用的连接,即等值连接和自然连接。
当θ为“=”时的连接称为等值连接。它是从关系R与S的笛卡儿积中选取A,B属性值相等的那些元组。即等值连接为:
http://www.edushanghai.org/UploadFiles/Article/2010/2/201002031900017891.gif
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R与S具有相同的属性组B,则自然连接可记作:
http://www.edushanghai.org/UploadFiles/Article/2010/2/201002031900015765.gif
一般的连接是从行的角度进行运算的。如图2-5(c)所示。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算的。如图2-5(d)所示。
【例5】设关系R,S分别为下图2-9中的(a)和(b),http://www.edushanghai.org/UploadFiles/Article/2010/2/201002031900013855.gifS的结果为图2-9(e)所示:
http://www.edushanghai.org/UploadFiles/Article/2010/2/201002031900018165.gif
图2-9