b站速成课指路 【数据库系统概论】三小时复习期末速成不挂科
关系规范化
范式定义
1NF
第一范式:所有属性都不可再分
2NF
第二范式:R属于第一范式且每一个非主属性完全函数依赖于任何一个候选码
3NF
第三范式:非主属性既不传递依赖于码,也不部分依赖于码
BCNF
BC范式:每一个决定因素都包含码
无损连接
判断方法一
若关系模式$R(U,F)$中,被分解为$p={R1, R2}$是$R$的一个分解,若$R_1∩R_2 → R_1 - R_2$或者$R_1∩R_2 → R_2 - R_1$,则为无损连接
例题
$R_1∩R_2 = Y,,R_1-R_2=UV$
$Y→U, U→V$ 可以得出 $Y→UV$
故,分解p为无损连接
判断方法二
这个方法太麻烦了,期末速成的那个视频里讲解的很清楚,这里不赘述了。(大概不会考的吧……)
计算候选键
方法
例题
求最小依赖集
感觉结合例题看会更清晰一点,所以直接上例题。
例题及解题方法
$U = (A,B,C,D,E,G),F = {BG→C, BD→E, DG→C, ADG→BC, AG→B, B→D},求最小依赖集$
① 拆分右侧
$F_1 = {BG→C, BD→E, DG→C, ADG→B, ADG→C, AG→B, B→D}$
② 去除自身求闭包(化简右侧)
如果闭包中包含待推导的属性,则该函数冗余,可删去
$BG→C, BG^+={B,G,C,D,E}$,故删去$BG→C$
$BD→E, BD^+={B,D}$
$DG→C, DG^+={D,G}$
$ADG→B, ADG^+={A,D,G,C,B,D,E}$,故删去$ADG→B$
$ADG→D, ADG^+={A,D,G,C,B,D,E}$,故删去$ADG→B$
$AG→B, AG^+={A,G}$
$B→D, B^+={B}$
$F_2 = {BD→E,DG→C,AG→B,B→D}$
③ 左侧最小化(化简左侧)
假设某函数中某个属性冗余,求出其他属性闭包,如果包含此属性则该属性冗余,删去
$B→E$,假设D冗余,$B^+={B,D}$ 包含$D$,故D冗余删去
以此类推,能得出最终结果
$F_c = {B→E,DG→C,AG→B,B→D}$
模式分解
3NF分解
① 计算候选键
② 求最小依赖集
③在最小依赖集基础上划分关系(合并相同属性导出的,添加未出现的属性,如果候选码未包含在内则添加候选码集合)
如(摘自b站一位小姐姐的笔记)
BCNF分解
安利一个很好理解的网课 数据库原理关系模式相关例题记录-BCNF
方法
①计算关系中属性的闭包,如果该闭包中不包含关系的所有属性,且为非平凡的函数依赖,则需要拆解
②非平凡的函数依赖$A→B$,则将关系$R$变为$R-B$,并构造一个新的关系模式$A∪B$
例题
例题二很神奇,要注意$R2$的时候已经没有$C$了,要进行对应属性的转换。
关系代数
安利网课 数据库 关系代数
传统的集合运算
笛卡尔积、交、并、差
专门的关系运算
选择、投影、连接、除
重点应该就是选择、投影、自然连接
例题
答案:就是题目会很复杂,慢慢绕一定可以绕出来
sql
真不知道怎么复习这块,没学也不会。不知道能不能靠做题苟过去。
做题练习网站 sqlbolt
对table的创建、修改、删除
create
create table r1
(A D1,
B D2,
C D3,
primary key (A),//主码
unique (C),//候选码
foreign key (B) references r2);//外码
sql基本类型
完整性约束
not null - 禁止在该属性上插入空值
unique - 可以用unique($A_1,A_2,…$)产生候选码
check - 限制属性域
参照完整性 - 外码约束
delete
delete from r
where ...
drop
drop table r; //从数据库中删除关于r的所有信息
alter
alter table r add A D;
alter table r drop A;
insert
insert into r
values(...)
insert into r
select ...
from ...
where ...
select
select
from
where
update
update r
set A = ...
where ...
update r
set A = case
when pred1 then result1
when pred2 then result2
...
else result0
end
update r
set A =(
select ...
from ...
where ...
);
更名
old-name as new-name
like
%
匹配任意子串
_
匹配任意字符
order by
排列元组的显示次序。
asc 升序, desc 降序。
order by A desc, B asc;
limit 和 offset
SELECT *
FROM Movies
ORDER BY Title ASC
LIMIT 5 OFFSET 5;
表示将Movies表中所有电影按照Title升序排序,并取出第6-10部电影的信息。
join
natural join
outer join
聚集函数
avg / min / max / sum / count
group by
having
在分组后才起作用。
E-R模型
画E-R图
自求多福。
E-R图转换为关系模型
① 实体名字转换为各个关系模式的名字
② 实体的属性就是关系的属性,实体的码就是关系的码
③ 实体间联系的转换
一对一联系:在任意一方加入对方的主码并设为外码,并加入联系本身的属性
一对多联系:将少的那方的主码加入多的那方作为外码,并同时将联系的属性加入多的那方
多对多联系:将联系本身转换为一个关系模式,将联系双方的主码加入其中设为码,并将联系的属性也加入其中
联系举例(方便理解)
一对一联系:一个经理只管理一个商店,一个商店只能有一个经理
一对多联系:一个画家可以绘制多幅作品,一幅作品只能由一个画家完成
多对多联系:一位学生可以选修多门课程,一门课程可以被多个人选修
联系基数
完全参与联系(E-R图中双线表示):该端实例至少只有1个参与到联系中,最小基数为1
部分参与联系(E-R图中单线表示):该端实例可以不参与联系,最小基数为0