数据库学习笔记-02关系数据库的基本理论
关系数据库系统是支持关系模型的数据库系统,即以关系模型为基础而构建起来的数据库系统。
关系数据模型由关系数据结构、关系操作、关系操作三个基本部分组成。
关系模型概述
关系操作
常用关系操作包括查询(query)操作和更新操作(包括插入(insert)、删除(delete)、修改(update))两部分。
关系操作分为传统的集合运算喝专门的关系运算两部分。传统的集合运算包括并(union)、差(except)、交(intersection)、笛卡儿积。专门的关系运算包括选择(select)、投影(project)、连接(join)、除(divide)。
关系中完整性约束
对关系数据库插入、删除、修改必须有一定的约束条件。例如学生的学号必须卫衣,学生的性别只能是男或女,学生的成绩只能在0-100之间等等。
数据完整性一般分为三类:实体完整性、参照完整性、用户定义完整性。
关系数据模型
关系数据结构和基本术语
候选键
若关系中某一属性组的值能唯一地标识一个元组,则称该属性组为候选键。如学号和图书证号都可以唯一标识一个元组,所以都可以做学生的候选键。
主键
如果一个关系中有多个候选键,可以从中选择一个作为查询、插入或删除远足的操作变量,被选用的候选键称为主关键字,或简称主键、关键字。美屹关系都有且只有一个主键。
主属性
包含在任何候选键中的各属性为主属性。
非主属性
不包含在任何候选键中的属性为非主属性。
全键
在最极端情况下, 关系模式的所有属性是这个关系模式的候选键,称为全键。
外键
如果一个属性组不是所在关系的主键,但是其他关系的主键,则称为外键。
关系的数学定义
域
域是一组具有相同数据类型的值的集合。
笛卡儿积
给定一组域,这些域可以是相同的域,之后让其交叉合并,形成多个元组。
比如,一组域D1,D2,D3。
D1={张三, 李四}, D2={语文, 数学}, D3={合格, 不合格}
那么D1×D2×D3= {(张三, 语文, 合格),(张三, 语文, 不合格),
(张三, 数学, 合格), (张三, 数学, 不合格),
(李四, 语文, 合格), (李四, 语文, 不合格),
(李四, 数学, 合格), (李四, 数学, 不合格),
}
如果元组个数无线叫做无限关系,如果有限叫做有限关系。
关系
笛卡儿积的子集叫做其域上的关系,可记作R(D1, D2, …, Dn)。
无限关系在数据库系统中是无意义的。所以关系必须是笛卡儿积的有限子集。它对应一张二维表,美屹行对应一个元组。
关系的性质
- 列是同质的,每一列中分量是同一类型数据,来自同一域,为元祖的一个属性。
- 不同列的数据可以来自同一个域,每一列为一个属性,不同的属性有不同的属性名。
- 列是无序的。
- 任意两个候选键不能相同(任意两行不能相同)。
- 行是无序的。
- 每个分量必须是原子值(每一列不能合并单元格)。
关系模型的三类完整性
实体完整性
一个关系的主属性不能为空值。空值是指『不存在』、『不知道』的值。
实体完整性规则说明:
- 实体完整性规则是针对基本关系而言的,一个基本表通常对应现实世界的一个实体集。
- 现实世界的实体可区分,即具有某种唯一性标识。
- 关系模型中以主键作为唯一性标识。
- 主键中的属性即主属性不能取空值。
参照完整性
参照完整性规则:
若属性F是基本关系R的外键,它与基本关系S的主键K相对应,则对于R中每个元组在F上的值必须为『空值』或『S中某个元组的主键值』。
举个栗子:
学号 | 姓名 | 班级 | 班长学号 |
---|---|---|---|
2013115010101 | 张一 | 1301 | 2013115010102 |
2013115010102 | 李二 | 1301 | 2013115010102 |
2013115040401 | 王一 | 1304 | 2013115040402 |
2013115040402 | 刘二 | 1304 | 2013115040402 |
班长学号对应值,必须是学号中有的,或空值。
用户定义完整性
某一具体应用所涉及的数据必须满足的语义要求。比如姓名必须为字符型,不能为空等。
关系运算
传统关系运算
交并差,广义笛卡儿积。
专门的关系运算
- 选择:选择满足给定条件的诸元组,形成新的关系。
- 投影:关系R上选择若干属性列组成新的关系。删除重复行形成新关系。
- 连接:从两个关系的笛卡儿积中选取属性间满足一定条件的元组。
等值连接
关系R和S笛卡儿积中选取属性组相等的元组。
自然连接
两个关系中进行比较的分量必须是相同的属性组,并在结果中把重复的属性列去掉。