一、关系和关系模式
1.1 关系的数学定义
- 域(Domain)
- 具有相同类型的值的集合 , 例如:全体整数 。
- 基数:域中值的个数。
- 笛卡尔积 (Cartesian Product)
- 定义:给定一组域D1,D2,D3,则D1×D2×D3称为笛卡尔积。
- 笛卡尔积D1×D2×D3对应一个二维表,所含元组的个数等于各个域的基数之积。
设 D1={张三,李四}, D2={数学,语文}, D3={优,良}
则D1×D2×D3可用二维表表示为:
- | - | - |
---|---|---|
张三 | 数学 | 优 |
张三 | 数学 | 良 |
张三 | 语文 | 优 |
张三 | 语文 | 良 |
李四 | 数学 | 优 |
李四 | 数学 | 良 |
李四 | 语文 | 优 |
李四 | 语文 | 良 |
1.2 关系(Relation)
- 定义
- 笛卡儿积的一部分元组 ,记作 R(D1,D2,…,Dn)。
- 关系是一个二维表
- 每行对应一个元组
- 每列可起一个名字,称为属性。属性的取值范围为一个域,元组中的一个属性值是一个分量。
- 关系的目(或度)
- 一个关系所含属性的个数
- 关系的性质
- 列是同质的,即每列中的数据必须来自同一个域
- 每一列必须是不可再分的数据项(不允许表中套表,即 满足第一范式)
- 不能有相同的行
- 行、列次序无关
1.3 完整性约束
- 实体完整性:关系的所有主属性都不能取空值
- 参照完整性
- 若
属性F
是关系R
的外码
,与关系S
的主码
对应,则:- F要么取空值
- F要么等于S中某个元素的主码值。
- 若
二、关系代数
2.1 集合运算
- , , , ,,,
- 设关系模式为,它的一个关系设为R。
- ====表示 是 的一个元组;
- 表示元组 中相对应与属性 的一个分量;
- 若 属性组 ;
- 表示元组 在 上诸分量的集合;
- 表示 中去掉 后剩余的属性组;
- 表示元组的连接(拼接)。
- 并(Union): $R \cup S = { t | t \in R∨t \in S} $
- R和S的属性个数相同
- R和S相对应的属性属于同一个域
- 所有在R中的也在S中的元组
- 交(Intersection): $R ∩ S = { t | t∈R∧t∈S} $
- 差(Difference): $R - S = { t | t∈R∧t∈S} $
- 所有在R中,但是不在S中的元组
- 笛卡尔积:
2.2 关系运算
- 选择(Selection),又称限制(Restriction)
: 在
关系R
中选出满足条件F
的诸元组形成一个新关系。 (从关系中选择符合条件的行)
- 投影(Projecttion)
: 在
关系R
中选出若干属性列
组成一个新关系 。(删除一些不想要的列)注:投影后若有重复行,则自动保留一个
- 连接(Join)
连接运算从R和S的笛卡尔积
R×S
中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ
的元组。
- 等值连接: θ为“=”的连接运算称为等值连接。它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。
- 自然连接: 是一种特殊的等值连接,即对两张表的所有公共属性上都做等值连接。
- 外连接:自然连接之外,不符合等值连接的元组赋空值。
-
除(Division)
- 设两个关系为:R(X, Y), S(Y, Z);
- R/S 表示找出在R中,跟S中所有的Y值都有联系的X值。
三、关系演算
3.1 域关系演算
3.1.1 基本格式:
-
是域变量
-
是结果中要显示的变量
-
P是表达式
3.1.2 表达式
-
原子公式(Atomic formula)
- ;;;
- 是 其中之一;
-
原子公式是一个表达式
-
¬p(否定),p∧q(与),p∨q(或)是一个表达式
3.2 元组关系演算
3.2.1 基本格式: