关系
关系:描述实现事物的一张二维表。
外码:关系A中的一组非主属性,其与关系B的主属性对应。则称关系A这组属性为A的外码,关系A为参照关系、关系B为被参照关系。
关系完整性:
- 实体完整性:主属性不能取空值,主属性应具有唯一区分性。
- 参照完整性:外码取值应该为空值或从被参照关系的注码值域中取值。
- 用户完整性:属性的取值或值域应符合目标的现实逻辑。
关系代数
定义:关系代数是一种通过对关系的运算来表达查询的抽象语言。
组成关系代数运算的三要素有:运算对象、运算符和运算结果。其中,关系代数运算按运算符的类别可以分为传统的集合运算和专门的关系运算。
传统的集合运算(设有关系R与关系S
):
- 并:由属于关系R或属于关系S的元组组成,其仍为n目关系。
- 差:R-S由属于R但不属于S的元组组成。
- 交:由属于关系R且属于关系S的元组组成。
- 笛卡尔积:假设关系R有n目,关系S有m目,则R与S的笛卡尔积为n+m目的关系,前n目从R中选取,后m目从S中选取,运算结果的元组由R与S的元组排列组合形成。
- 其中并、差、交三种运算要求关系R与关系S同目,笛卡尔积运算不做要求。
专门的关系运算:
- 选择:又称限制,在关系R中选择给定条件的诸元组。
- 投影:从关系R上选择出若干属性列组成新的关系。
- 连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组(条件为某属性列值相同时称等值连接,去除笛卡尔积中重复列称自然连接)。运算中被舍弃的元组称为悬浮元组,如果把悬浮元组保留在结果关系中(空缺属性填NULL),则称外连接(只保留左空缺为左外连接,只保留右空缺称右外连接)。
- 除运算:设关系R除以关系S的结果为关系T(R/S=T),则T中包含所有在R但不在S的属性及其值,且T的元组与S的元组的所有组合都在R中。
在以上8种关系代数运算中,并、差、笛卡尔积、选择和投影称为基本关系运算。
关系代数中,运算经过有限次复合后形成的表达式称为关系代数表达式。