第二章 关系数据库
2.1 关系模型
- 关系数据结构
- 关系完整性约束
2.2 关系代数 - 传统集合操作
- 关系特有操作
- 综合例子
2.3 关系演算
2.1 关系模型
2.1.1 关系数据结构
2.1.2 关系完整性约束
2.1.3 关系数据库
-
域(Domain)
♥ 域是一组具有相同数据类型的值的集合。
属性的取值范围来自某个域。 例:学生年龄属性的域为(15岁~45岁)、性别的域为(’男‘,’女‘)、系名的域是一个学校所有系名的集合; -
笛卡尔积(Cartesian Product)
♥ 笛卡尔积
给定一组域D1,D2,_,Dn,允许其中某些域是相同的。
D1,D2,……,Dn 的笛卡尔积为:D1X D2X……XDn={(d1,d2,……,dn)|di∈Di,i = 1,2,……,n} -
所有域的所有取值的任意组合
-
笛卡尔积可以看成是关系的“域”
♥ 基数(Cardinal number) -
若Di(i = 1,2,……,n)为有限集,其基数为mi(i = 1,2,……,n),则D1X D2X……XDn的基数M为:M = m1 X m2 X …… X mn
♥ 笛卡尔积的表示方法 -
笛卡尔积克表示为一张二维表
-
表中的每行对应一个元组,表中的每列对应一个域
例:给出三个域
♥ D1 = 导师集合supervisor = {张三, 李四}
♥ D2 = 专业集合speciality = {计算机专业, 信息专业}
♥ D3 = 研究生集合postgraduate = {小明, 小红, 小丽}
♥ D1,D2,D3的笛卡尔积为
♥ D1 X D2 X D3 = {(张三,计算机专业,小明),(张三,计算机专业, 小红),(张三,计算机专业, 小丽),(张三, 信息专业,小明),(张三,信息专业,小红),(张三,信息专业,小丽),(李四,计算机专业,小明),(李四,计算机专业,小红),(李四,计算机专业,小丽),(李四, 信息专业,小明),(李四,信息专业,小红),(李四,信息专业,小丽)}
♥ 基数为2 * 2 * 3 = 12
supervisor | speciality | postgraduate |
---|---|---|
张三 | 计算机专业 | 小明 |
张三 | 计算机专业 | 小红 |
张三 | 计算机专业 | 小丽 |
张三 | 信息专业 | 小明 |
张三 | 信息专业 | 小红 |
张三 | 信息专业 | 小丽 |
李四 | 计算机专业 | 小明 |
李四 | 计算机专业 | 小红 |
李四 | 计算机专业 | 小丽 |
李四 | 信息专业 | 小明 |
李四 | 信息专业 | 小红 |
李四 | 信息专业 | 小丽 |
-
- 关系(Relation)
(1) 关系
D1X D2X……XDn的子集叫作在域D1, D2,……,Dn上的关系,表示为R(D1, D2,…,Dn)
- 关系(Relation)
- R:关系名
- n:关系的目和度(Degree)
(2) 元组
关系中每个元组(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组,通常用t表示。
(3) 属性 - 关系中不同列可以对应相同的域
- 为了加以区分,必须对每列起一个名字,称为属性(Attribute)
- n目关系必有n个属性
(4) 码- 候选码(Candidate key)
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
简单的情况:候选码只包含一个属性 - 全码(All-key)
最极端的情况:关系模型的所有属性组是这个关系模式的候选码,称为全码(All-key) - 主码
若一个关系有多个候选码,则选定其中一个为主码(Primary key) - 主属性
候选码的诸属性称为主属性(Prime attribute)
不包含在任何候选码中的属性则称为非主属性(Non-Prime attribute)或非码属性(Non-key attribute)
- 候选码(Candidate key)
(5) 单元关系与二元关系
当n = 1时,称该关系为单元关系(Unary relation)/一元关系
当n = 2时,称该关系为二元关系(Binary relation)
(6) 基本关系的性质
ⓐ 列是同质的(Homogeneous)
ⓑ 不同的列可出自同一个域
ⓒ 列的顺序无所谓,列的次数可以任意交换
ⓓ 任意两个元组的候选码不能相同
ⓔ 列的顺序无所谓,列的次数可以任意交换
ⓕ 分量必须去原子值(这是规范条件中最基本的一条——即表中不能有表)
D1, D2,…,Dn的笛卡尔积的某个子集才有实际含义
2.1.1 关系数据结构
2.1.2 关系完整性约束
2.1.3 关系数据库
- 什么是关系模式?
- 如何定义关系模式?
- 关系模式与关系的关系
1. 什么是关系模式?
♥ 关系模式(Relation Schema)是型
♥ 关系是值
♥ 关系模式是对关系的描述
- 元组集合的结构
❣ 属性构成
❣ 属性来自的域
❣ 属性与域之间的映像关系 - 完整性约束条件
2. 定义关系模式
关系模式可以形式化地表示为:
R(U,D,DOM,F)
R: 关系名
U: 组成改关系的属性名集合
D: U中属性所来自的域
DOM: 属性向域的映像集合
F: 属性间数据的依赖关系集合
例:
导师和研究生出自同一个域——人
取不同的属性名,并在模式中定义属性向域的映像,即说明它们分别出自哪个域:
DOM (supervisor - person)
= DOM (postgraduate - person)
= person
关系模式通常可以简记为R(U)或R(A1, A2, … ,An)
- R:关系名
- A1, A2, … ,An:属性名
- 注:域名及属性向域的映像常常直接说明为属性的类型、长度
3. 关系模式与关系的“关系”
♥ 关系模式
- 对关系的描述
- 静态的、稳定的
♥ 关系
- 关系模式在某一时刻的状态或内容
- 动态的、随时间不断变化的
♥ 关系模式和关系往往笼统称为关系——通过上下文加以区别
♥ 关系模式(Relation Schema)是型
♥ 关系是值
♥ 关系模式是对关系的描述
- 元组集合的结构
❣ 属性构成
❣ 属性来自的域
❣ 属性与域之间的映像关系 - 完整性约束条件
2.1.1 关系数据结构
2.1.2 关系完整性约束
2.1.3 关系数据库
♥ 关系数据库
- 在一个给定的应用领域中,所有关系的结合构成一个关系数据库
♥ 关系数据库的型与值
- 关系数据库的型:关系数据库模式,是对关系数据库的描述
- 关系数据库的值:关系模式在某一时刻对应的关系的集合,通常称为关系数据库