关系代数是语言,是过程化查询语言,包括一系列运算,运算对象是关系,运算结果是关系。
一:基本运算
基本运算有选择、投影、并、差和笛卡尔积运算,有的文献也把更名运算当成基本运算。它们的定义不依赖于属性名,但是使用属性名是方便的。
选择运算:从R中选择满足公式F的元组的集合。
投影运算:从R中选择需要的属性列。
并运算:R与S求并。
差运算:R与S求差。
笛卡尔积运算:R×S,其中有u和v的串接。
更名运算:将运算结果的名字和属性进行更改。
二:附加的关系运算
交运算:R与S求交。
除运算:R÷S,就是取R中的前n-m列,去掉一些元组,使得R÷S与S的笛卡尔积都在R中即可。
选择运算:满足条件就把元组进行串接。
自然选择运算:两个元组中相同属性做等值连接,再删除重复的属性即可。这个运算是唯一一个依赖属性名的运算。
三:用关系代数表达式表示查询
涉及一个关系,用选择和投影。
涉及两个关系,用选择、投影和自然连接。
R÷S适合于“S中全部”等。
定义在Cno上的常量关系:{cs101,cs202}。
四:扩展的关系运算
广义投影运算:
列表变成了F,F是算术表达式,用as更名。
聚集函数与分组聚集运算:
聚集函数作用于多重集,返回单个值。有计数,求和,平均,最大和最小。-distingct放在函数名后可以去掉多重值。
分组聚集运算分好组,在聚集属性上进行聚集聚集运算。
外连接运算:
悬挂元组。
左外连接:R的悬挂元组在S的属性上取null。
右外连接:S的悬挂元组在R的属性上取null。
全外连接:R的悬挂元组在S的属性上取null,S的悬挂元组在R的属性上取null。
外连接运算可以用基本运算表示。
以上就是我对于关系代数的一些认识。