一、关系代数语言
-
一种抽象的查询语言,用对关系的运算来表达查询
-
三大要素:运算对象(关系)、运算符(集合运算符和专门的运算符)、运算结果(关系)
-
五种基本运算:并、差、笛卡尔积、选择、投影
-
其他的运算:交、连接、除
运算符 | 含义 | |
集合运算符 | $\cup$ | 并 |
- | 差 | |
$\cap$ | 交 | |
$\times$ | 笛卡尔积 | |
专门的关系运算符 | $\sigma$ | 选择 |
$\Pi$ | 投影 | |
$\bowtie$ | 连接 | |
$\div$ | 除 |
- 集合运算符例子:
- 例子:
-
选择\(\sigma\):
-
查询信息系的学生:
\(\sigma_{Sdept='IS'}(Student)\) -
查询所有学分大于3的课程:
\(\sigma_{Ccredit>3}(Course)\)
-
-
投影\(\Pi\):
-
求Student关系上学生姓名和所在两个属性上的投影
\(\Pi_{Sname,Sdept}(Student)\) -
查找学号为001的学生所选修的课程号
\(\Pi_{Cno}(\sigma_{Sno='001'}(SC))\)
-
-
连接\(\bowtie\):
-
自然连接\(\bowtie\):共同属性进行等值连接
- 例:
-
外连接⟗:把悬浮元组也保存在结果关系中,而在其他属性上填空值(null)
-
左外连接⟕:只保留左边关系的悬浮元组(left outer join或left join)
- 右外连接⟖:只保留右边关系的悬浮元组(right outer join或right join)
-
-
除\(\div\):
-
保留R中满足S的,而且R中列要去除S的列
-
例如:
-
二、完整性
-
实体完整性:注码唯一且非空
-
参照完整性:外码要么为空,要么对应另一个表中的主码
-
用户定义完整性