第一范式:简单说 列不能再分
第二范式:简单说 建立在第一范式基础上,消除部分依赖
第三范式:简单说 建立在第二范式基础上,消除传递依赖。
BCNF:主属性包含码
做表时,1方主键要加入到多方。
e.g S: A B R:B C
1 2 2 1
3 3 7 2
5 9 3 5
等值连接(S.A=R.C)
A S.B R.B C
1 2 2 1
5 9 3 5
等值连接(S.B=R.B)
A S.B R.B C
1 2 2 1
3 3 3 5
自然连接
A B C
1 2 1
3 3 5
总结:1)等值连接必须要有等值的条件,当条件不同时连接的结果也不相同,两个关系可以没有相同的属性列
2)自然连接必须要有相同的属性列才能进行,即等值连接之后要去除相同的属性列
我们从自然连接中又发现了一个问题,如下图:
就是图中标记为红色的地方,因为不符合我们的条件在自然连接和等值连接的时候都会被丢弃,这种连接叫做内连接,而与内连接相反的就叫外连接
外连接:把R表和S表被丢弃的红色的元组捡了回来,并且在最终连接的表中没有的值用NULL替代,最终结果如下 (全外连接)
左外连接:因为R表在左边,所以最终的结果只保留R表中被丢弃的,S表的仍然丢弃
右外连接:因为S表在右边,所以最终的结果只保留S表中被丢弃的,R表的仍然丢弃
除运算太复杂 我总忘。不说了❤️
投影会去重。