《数据库系统概论》学习笔记之关系数据库
条评论整理《数据库系统概论》学习笔记,方便日后回顾整理。
2.1 关系数据结构及形式化定义
2.1.1 关系
域 (Domain):域是一组具有相同数据类型的值的集合。
笛卡尔积 (Cartiesian Product):给定一组域 $D_1$,$D_2$,……,$D_n$,这些域中可以有相同的。这组域的笛卡儿积为:
假设集合 A={a, b},集合 B={0, 1, 2},则两个集合的笛卡尔积为 {(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
关系:是笛卡儿积的有限子集,表示为 $R(D_1, D_2, …, D_n)$,其中 R 为关系名,n 为关系的目或度。
元组:关系的每个元素是关系中的元组,通常用 t 表示。
属性:关系中不同列可以对应相同的域,为了加以区分,必须对每列取一个名字称为属性,n 目关系必有 n 个属性。
码
- 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
- 全码:在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。
- 主码:若一个关系有多个候选码,则选定其中一个为主码。
- 主属性:候选码的诸属性称为主属性。
- 非主属性:不包含在任何候选码中的属性称为非主属性或非码属性。
关系可以有三种类型:基本关系(基本表或基表)、查询表和视图表。
- 基本表是实际存在的表,它是实际存储数据的逻辑表示;
- 查询表示查询结果对应的表;
- 视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
在对关系进行限定和扩充下(为了适应数据库要求),关系需要具有以下几个性质:
列是同质的
不同的列可出自同一个域
列的顺序无所谓,列的次序可以任意交换
任意两个元组的候选码不能取相同的值
行的顺序无所谓,行的次序可以任意交换
分量必须取原子值,这是规范条件中最基本的一条
必须保证表中不能再有表
2.1.2 关系模式
关系的描述称为关系模式(型),关系是关系模式在某一时刻的状态或内容(值)。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。
2.1.3 关系数据库
关系数据库的型也称为关系数据库模式,是对关系数据库的描述。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。
2.2 关系操作
关系操作的对象和结果都是集合。基本操作:选择、投影、并、差、笛卡尔积。分类:关系代数、关系演算、介于两者之间(SQL)。
2.3 关系代数
这部分内容请参考书本
2.3.1 传统的集合运算
并(Union):
差:
交:
笛卡尔积:
2.3.2 专门的关系运算
选择运算:
投影运算:要去掉相同的行
连接运算:
- 等值连接
- 自然连接
- 外连接
- 左外连接
- 右外连接
除运算:
2.4 关系的完整性
- 实体完整性:若属性(指一个或一组属性)A 是基本关系 R 的主属性,则 A 不能取空值。
- 参照完整性:设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须:或者取空值,或者等于S中某个元组的主码值。
- 用户定义的完整性:就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
其中,1,2是关系模型必须满足的完整性约束,被称作关系的两个不变性,应用由关系系统自动支持。
- 本文链接:《数据库系统概论》学习笔记之关系数据库
- 发布时间:2019年03月21日 - 12:57:42
- 更新时间:2021年02月03日 - 6:56:56
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!
分享