个人笔记, 网上摘抄
对于集合操作中U,∩,-操作需要满足并相容性
举例
笛卡儿积是将关系R中的每个元组与关系S中的每个元组进行拼接组成一个新的关系
下面是RxS的结果,R和S使用上图中的R,S
选择操作就是从关系中选出符合条件的元组,选出某一些行来进行操作
选择A2值为a或b的元祖
投影操作是从关系R中选出某些列。
将A1和A3进行投影,如果投影中有重复的元组则需要去掉
连接操作是先对两个关系做笛卡儿积生成一个新的关系,然后在新的关系上做选择操作
Ɵ是比较运算符,如>,<,=等
下图中先将R和S进行笛卡尔积运算,然后在选出B<=H的元组来。
下图中使用了自连接操作
自然连接是一种特殊的等值链接,他要求关系R和关系S具有相同的属性组B(b1,b2,b3……),这些属性组的取值是相等的,在最后生成的关系中去掉属性重复的列。
下图中属性相同的只有一项B
除操作比较复杂,它是一种全包含操作,通过下面的例子来解释除操作
在(1)中计算R除以S操作,首先生成的关系中没有R和S的公共属性A3。其次生成的关系中每个元组与S中的元组进行组合都能出现在R中。
在(3)中只有(a,e)的原因是只有(a,e)与S中的每个元组组合才能出现在R中,而像(d,b)这种元组如果如S中每个元组组合的话不能全部出现在R中。
在(2)中我们可以这样来理解除法运算,找出即出现c又出现f的元组,并且这些元组的其余属性值是相等的。如包含c和f的元组有【(a,b,c)】,【(d,b,c),(d,b,f)】【(a,e,c),(a,e,f)】,其余属性值相等的有(a,e),(d,b)。
有三张表分别是Teacher(T#, Tname, Salary), Course(C#, Cname), Teach(T#, C#)
请列出所有老师的信息,包括姓名,工资,所教课程
下面是关系代数公式:
通过自然连接然后进行投影,我们可以选出需要的信息。但是我们发现遗漏了一个老师,这是因为在自然连接的时候只有相等的才能被选择出来,
而在Teach表中没有编号为003的老师,也就是说编号为003的老师没有教授课程,所以在最终结果中我们遗漏了一个老师。
两个关系R和S进行连接时,如果关系R中的元组在S中没有找到相匹配的元组,或者关系S中元组在R中没有找到相匹配的。为了避免元组信息的丢失,假定R或S中存在一个值全为空的元组,然后将未匹配的元组与全为空的元组连接起来。
如同所示R中的第二行和第三行记录在S中未找到匹配的,那么就与空元组进行连接,S中的元组亦然。所以最后的外连接结果如上图所示。
左外连接,保证左边表中的元组不丢失
右外连接,保证右边表中的元组不丢失
全外连接,保证两个表中的元组都不丢失
下面是左外连接和右外连接,全外链接如上图所示
对于集合操作中U,∩,-操作需要满足并相容性
并操作
举例
差运算
举例
笛卡儿积
笛卡儿积是将关系R中的每个元组与关系S中的每个元组进行拼接组成一个新的关系
选择操作
选择操作就是从关系中选出符合条件的元组,选出某一些行来进行操作
举例
投影操作
投影操作是从关系R中选出某些列。
举例
连接操作
连接操作是先对两个关系做笛卡儿积生成一个新的关系,然后在新的关系上做选择操作
Ɵ是比较运算符,如>,<,=等
举例
自然连接
自然连接是一种特殊的等值链接,他要求关系R和关系S具有相同的属性组B(b1,b2,b3……),这些属性组的取值是相等的,在最后生成的关系中去掉属性重复的列。
举例
除操作
除操作比较复杂,它是一种全包含操作,通过下面的例子来解释除操作
在(1)中计算R除以S操作,首先生成的关系中没有R和S的公共属性A3。其次生成的关系中每个元组与S中的元组进行组合都能出现在R中。
在(3)中只有(a,e)的原因是只有(a,e)与S中的每个元组组合才能出现在R中,而像(d,b)这种元组如果如S中每个元组组合的话不能全部出现在R中。
在(2)中我们可以这样来理解除法运算,找出即出现c又出现f的元组,并且这些元组的其余属性值是相等的。如包含c和f的元组有【(a,b,c)】,【(d,b,c),(d,b,f)】【(a,e,c),(a,e,f)】,其余属性值相等的有(a,e),(d,b)。
外连接操作
提出问题
有三张表分别是Teacher(T#, Tname, Salary), Course(C#, Cname), Teach(T#, C#)
请列出所有老师的信息,包括姓名,工资,所教课程
下面是关系代数公式:
通过自然连接然后进行投影,我们可以选出需要的信息。但是我们发现遗漏了一个老师,这是因为在自然连接的时候只有相等的才能被选择出来,
而在Teach表中没有编号为003的老师,也就是说编号为003的老师没有教授课程,所以在最终结果中我们遗漏了一个老师。
如同所示R中的第二行和第三行记录在S中未找到匹配的,那么就与空元组进行连接,S中的元组亦然。所以最后的外连接结果如上图所示。
左外连接,保证左边表中的元组不丢失
右外连接,保证右边表中的元组不丢失
全外连接,保证两个表中的元组都不丢失
下面是左外连接和右外连接,全外链接如上图所示