本系列为《数据库系统原理与应用(刘先锋等著)》的读书笔记。
一,关系模型的基本概念
- 关系及基本术语
- 在关系模型中,表格的第一行称为
关系框架
,是属性 A 1 A_1 A1, A 2 A_2 A2, A 3 A_3 A3, … \dots …, A k A_k Ak的有限集合
。- 表中的每行称为关系的一个
元组
;每列称为属性
,它在某个值域上的取值,不同的属性可以在相同的值域上取值。- 关系中的属性个数称为
元数
(Arity
),元组个数称为基数
。
- 关键字
超关键字
(Super Key
):在关系中能够唯一标识元组的属性集合。候选关键字
(Candidate Key
):如果某一属性集合是超关键字
,但去掉其中任意属性后就不再是超关键字,这样的属性称为候选关键字
。
候选关键字
的诸属性称为主属性
,不包含在任何候选关键字中的属性称为非主属性
(非码属性
)。
主关键字
(Primary Key
):如果关系中存在多个候选关键字
,用户可选作元组标识的一个候选关键字
为主关键字
。合成关键字
(Composite Key
):当某个候选关键字包含多个属性时,该候选关键字称为合成关键字
。外部关键字
(Foreign Key
):如果关系R的某个(些)属性K不是R中的候选关键字,而是另一个关系S的候选关键字,则K称为R的外部关键字
。
二,关系模式
-
在关系数据库中,关系模式是
型
,关系是值
。 -
【
定义3-1
】关系的描述称为关系模式,形式化表示为
R ( U , D , D O M , I , F ) R(U, D, DOM, I, F) R(U,D,DOM,I,F)
其中, R R R为关系名
, U U U为组成该关系的属性名集合
, D D D是 U U U中属性的域
, D O M DOM DOM为属性到域的映像集合
, I I I为完整性约束集合
, F F F为属性间数据的依赖关系集合
。
⚠️关系模式中带有下画线的属性集为主关键字
。
三,关系模型的完整性
-
域完整性约束
:主要规定属性值必须取自值域,一个属性能否为空值由其语义决定。 -
实体完整性约束
:规定基本关系的所有主属性都不能取空值,而不仅是主属性整体不能取空值。 -
参照完整性约束
:要求“不引用不存在的实体”,考虑的是不同关系之间的或同一关系的不同元组之间的制约。形式定义:
如果属性集K是关系R的主关键字
,K也是关系S的外关键字
,那么在关系S中,K的取值只允许两种可能,要么为空值,要么等于关系R中某个主关键字的值。关系R称为“参照关系”模式
,关系S称为“依赖关系”模式
。 -
用户自定义完整性约束
:针对某个具体关系数据库的约束条件。
四,关系代数
- 关系查询语言分类
关系代数语言
:查询操作是以集合操作
为基础运算的DML
语言。关系演算语言
:查询操作是以谓词演算
为基础运算的DML
语言。
- 关系代数的五种基本操作
相等
定义:设有同类关系 r 1 r_1 r1和 r 2 r_2 r2,若 r 1 r_1 r1的任何一个元组都是 r 2 r_2 r2的一个元组,则称关系 r 2 r_2 r2包含关系 r 1 r_1 r1,记作 r 1 r_1 r1 ⊆ \subseteq ⊆ r 2 r_2 r2或 r 2 r_2 r2 ⊇ \supseteq ⊇ r 1 r_1 r1,如果 r 1 r_1 r1 ⊆ \subseteq ⊆ r 2 r_2 r2且 r 1 r_1 r1 ⊇ \supseteq ⊇ r 2 r_2 r2,则称关系 r 1 r_1 r1等于关系 r 2 r_2 r2,记作 r 1 r_1 r1= r 2 r_2 r2。
【定义3-2
】并
(Union
):设有同类关系 r 1 r_1 r1[R]和 r 2 r_2 r2[R],两者的并
(Union
)运算定义 r 1 r_1 r1 ⋃ \bigcup ⋃ r 2 r_2 r2 = {
t t t ∣ \mid ∣ t t t ∈ \in ∈ r 1 r_1 r1 ∨ \vee ∨ t t t ∈ \in ∈ r 2 r_2 r2}
式中, ⋃ \bigcup ⋃为并运算符。 r 1 r_1 r1 ⋃ \bigcup ⋃ r 2 r_2 r2的结果关系是 r 1 r_1