关系数据库

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;

内连接与外连接对比

image.png

候选码:若关系中的某一属性的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码
主码:若一个关系有多个候选码,则选定其中一个为主码(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种运算为基本的运算。
其他运算:交、连接、除。
除的实现

image.png

参考博客:关系代数中除运算的SQL语句实现

你可能感兴趣的:(关系数据库)