转自点击打开链接 关系代数的运算是一种数学运算,你主要功能是通过这种数学运行来指导数据库在关系操作上的程序实现。 如图所示,下面是关系代数的操作,上面是对应的SQL语句。如果我们熟悉关系代数的操作那么就很容易写出复杂的SQL语句了。 关系代数的操作对关系进行运算时,我们可以采用对待集合的方式来操作,这些操作被称为集合操作。其他的一些操作不能在集合上使用,那么被成为纯关系操作。 对于集合操作中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中的元组亦然。所以最后的外连接结果如上图所示。
下面是左外连接和右外连接,全外链接如上图所示 |
|