资源描述:
《广义笛卡尔积》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、广义笛卡尔积假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}。可以扩展到多个集合的情况。类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。数据库求广域笛卡尔积问题R:ABCS:ABCa3db1fb4tr3er3ed3t求R×SABCABCABCb1fABCr3eABCd3ta3dABCa3db1fa3dr3ea3dd3tb4tABCb4tb1fb4tr3eb4td3tr3eABCr3eb1fr3er3er3ed3t(
2、1)选择(Selection) 在给定关系R中选择满足条件的元组。记为: 其中F表示选择条件,是一个逻辑表达式,它的值为“真”或“假”。 逻辑表达式是由属性名、常量、简单函数和比较运算符、逻辑运算符组成的有意义的式子。通常情况下,逻辑表达式是由逻辑运算符连接由比较运算符组成的比较关系式而成。即通过逻辑运算符将比较关系式XqY连接起来组成逻辑表达式。当然单独的比较关系式也是一个逻辑表达式。 (2)投影(Projection) 在给定关系R(U)中选择若干属性列组成的新关系。记为: 其中A为R中属性组,且AíU。在关系二维表中,选择是一种水平操作,
3、它针对二维表中行,而投影是一种垂直操作,它针对二维表中的属性列。 (3)连接(Join) 连接也称为条件连接,它从两个关系的笛卡儿积中选择满足条件的元组。记为: 其中A和B分别是关系R和S上度数相同且可比属性组,q为比较运算符。 在连接中有三种最常见的连接,一种是等值连接,一种是自然连接,还有半连接。 ①等值连接(equijoin) 当比较运算符q为“=”时的连接称为等值连接,其结果是从关系R和S的笛卡儿积中选取属性组A和B值相等的元组。记为: ②自然连接(Naturaljoin) 自然连接是一种特殊的等值连接。当关系R和S有相同的属性组B,且该属性组
4、的值相等时的连接称为自然连接。结果关系的属性集合为R的属性并上S减去属性B后的属性集合,即Att(R)∪(Att(S)-B)。其中Att(R)为关系R的属性集。R和S的自然连接记为: 自然连接与等值连接的区别是: a)自然连接要求两个关系中进行比较的属性或属性组必须同名和相同值域,而等值连接只要求比较属性有相同的值域。 b)自然连接的结果中,同名的属性只保留一个。 ③半连接(halfjoin) 半连接是一种特殊的自然连接。它与自然连接的区别在于其结果只保留R的属性。当关系R和S有相同的属性组B,且该属性组的值相等时进行连接,其结果只保留R的属性,这种连接称为半
5、连接。记为: (4)商(Division) 设关系R(X,Y)和S(Y,Z),其中X,Y,Z是属性集合,R中的Y与S中的Y可以不同名,但必须出自同一域。R除以S的商定义为: 其中Yx为值x在R中的象集,即表示R中属性组X上的值为x(x=tr[X])的元组在属性组Y上分量的集合。 R÷S是一个新关系,它是R中元组的X上分量的值为x的象集Yx包含S在Y上投影的集合。 1)求R÷S 令X=A,Y={B,C}x=tx[X]={a1,a2,a3},则Yx分别为: a1的象集为{(b1,c1),(b1,c2),(b3,c2)} a2的象集为{(b2,c
6、3)} a3的象集为{(b2,c1)} 所以只有a1的象集包含S在Y上的投影,即 故此R÷S为: 2)求σ-A=a1(R)为 4)求R>
7、。即先修课程与后继课程之间的联系为1:n。 C(CNO,CNAME,HOURS) C:已开课表,包含如下属性:(主码:CNO) S(SNO,SNAME,SSEX,SAGE,SNATIVE,DNO) S:学生的基本情况,包含如下属性。(主码:SNO) S-C(SNO,CNO,GRADE) S-C:学生选课,包含如下属性:(主码:SNO+CNO) 在关系代数中,五种基本运算经过有限次的复合而成的式子称为关系代数表达式,这种表达式的运算结果是一个关系。 从上述实例中可以发现,自然