关系代数是早期的、原理性的、抽象的。
现在用的是商用的sql语言。当DBMS内部处理时,会将其转换成关系代数或相似的内部表现形式。
关系代数
- 传统的集合运算:并、差、交
- 投影、选择
- 笛卡尔积、连接
- 重命名
什么是关系代数
- 是一种抽象的数据查询语言
- 用对关系的运算来表达查询
- 运算对象和运算结果是关系
关系运算符分类
1.传统的集合运算:并、交、差
2.投影和选择
- 投影(Projection)
从关系R中选出若干属性列组成新的关系。
投影运算实例:
这里注意去掉重复的元组。
- 选择(Selection)
从关系R中选出满足给定条件的元组组成新的关系。
思考:选择运算为何无需去除重复元组?
答案:因为经选择运算,列数不变,即结果关系必然包含主键,自然不存在重复元组。
选择运算实例:
多条件选择:
选择+投影:
3.笛卡尔积,连接
- 笛卡尔积
实例:
- 连接(Join)
先作笛卡尔积,再选择。
- 等值连接
- 自然连接
自然连接最为常用,与普通连接有区别。
注意:如果两个关系有多个公共属性,作自然连接时,必须所有公共属性都相等。