mikecoding
2019-06-15 13:22:33
数据库范式-四大范式和BC范式
要求:在范式一的基础上,且每一个非主属性完全函数依赖于码。
特点:
1)满足第一范式。
2)表中的每一个非主属性,必须完全依赖于本表码。
3)只有当一个表中,主码由两个或以上的属性组成的时候,才会出现不符合第二范式的情况。
分数完全依赖(学号,课程)系名部分依赖(学号,课程),即知道学号或者课程就能确定系名.宿舍楼部分依赖(学号,课程),即知道学号或者课程就能确定宿舍楼.
由于非主属性系名,宿舍楼不完全依赖与码,不符合第二范式,可改为
https://unacademy.com/lesson/normalization/FZWFHACX
要求:在满足第二范式的基础上,且每一个非主属性既不部分依赖于码也不传递依赖于码。
特点:
1)满足第二范式。
2)非主属性不能传递依赖于码。
示例:(以下例子 不符合 第三范式)
/学号 系别 系主任/
Sno Sdept Shead
1001 计算机系 张三
主键:Sno
不满足原因:Shead传递依赖于码,Sno->Sdept->Shead,可得Sno->Shead。
BCNF
超键:如果一个关系(表)中所有属性(列)都由一个属性集合决定,那么这组属性集合称为超键。
显然,由一个关系的所有属性组成的属性集合必然是这个关系的超键。
通俗地讲,超键用来唯一确定一个元组(行,记录)。
候选键:一个可以用来唯一确定一个元组的极小的属性集合,即极小超键。(minimal superkey)
主键:一个关系的所有候选键中选择一个用来唯一确定关系的元组,这个候选键成为主键。
外键:在一个关系中,如果一个属性集合是另一个关系的主键,这个属性集合称为外键。
评论