1. 基本概念
-
域
域是一组具有相同数据类型的值的集合。
eg: {男,女,其他} 为一个域
-
笛卡尔积
笛卡尔积的符号化为:D1×D2×···×Dn = {(d1, d2, ···, dn) | di∈Di, i = 1, 2, 3, ···, n}
类比n层循环遍历
select *
from users, ratings
limit 0, 10;
-
连接(θ连接)
连接是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。
θ是比较运算符,θ为‘=’的连接运算称为等值运算。
等值连接
连接属性值相等的那些元组
# 等值连接
select *
from users as u, ratings as r
where u.userId = r.userId
limit 0, 10;
select *
from users as u inner join ratings as r
on u.userId = r.userId
limit 0, 10;
内连接与等值连接等价
自然连接(是一种特殊的等值连接)
自动结果中重复的属性列去掉,并连接重复列中的属性值相等的元组
# 自然连接
select *
from users natural join ratings
limit 0, 10;
外连接
外连接分为外左连接(left outer join)和外右连接(right outer join).
-
左外连接
取左边的表的全部,右边的表按条件,符合的显示,不符合则显示null -
右外连接
取右边的表的全部,左边的表按条件,符合的显示,不符合则显示null
# 左外连接
select *
from users as u left join ratings as r
on u.userId = r.userId
limit 0, 10;
内连接与外连接对比
-
码
候选码:若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。
主码:若一个关系有多个候选码,则选定其中一个为主码(primary key)。
主属性:候选码的诸属性称为主属性。
非主属性:不包含在任何候选码中的属性称为非主属性或非码属性。
-
关系模式
关系的描述称为关系模式。它可以形式化地表示为 R(U, D, DOM, F)。
其中R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属 性向域的映像集合,F为属性间数据的依赖关系集合。
2. 关系的三种类型
基本关系(通常又称为基本表或基表)
基本表是实际存在的表。
关系的每一个分量必须是一个不可分的数据项
查询表
查询表是査询结果对应的表。
视图表
视图表是由基本表或其他视图表导出的表,是虚表。
3. 基本的关系操作
查询
-
选择
选择又称为限制,在关系R中选择满足给定条件的元组,也就是筛选行。
select *
from users, movies;
-
投影
关系R上的投影是从R中选择出若干属性列组成新的关系。
select userId, gender, age
from users;
-
并
并操作两个关系R、S,得到的关系由属于R或S的元组组成,就是逻辑并
# 并
select *
from users where userId = 1
union
select *
from users where userId = 2
-
差
关系R与关系S的差由属于R而不属于S的所有元组组成
select * from users where occupation
not in
(select occupation from users where occupation != 5)
- 笛卡尔积
插入、删除、修改
4. 关系模式、关系、关系数据库的联系与区别
关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。例如,学生关系模式在不同的学年,学生关系是不同的。
在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
5. 关系模型的存储结构
在关系数据模型中实体及实体间的联系都用表来表示,但表是关系数据的逻辑模型。
在关系数据库的物理组织中,有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成;有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理。
5. 关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?
答: 并、差、笛卡尔积、投影和选择5种运算为基本的运算。
其他运算:交、连接、除。
除的实现
参考博客:关系代数中除运算的SQL语句实现