很好的例子:
数据库 函数依赖及范式(最通俗易懂) - 蔡军帅 - 博客园
一、基础概念 要理解范式,首先必须对知道什么是关系数据库,如果你不知道,我可以简单的不能再简单的说一下:关系数据库就是用二维表来保存数据。表和表之间可以……(省略10W字)。 然后你应该理解以下概念:
范式
第一范式
一个域是原子的(atomic),如果该域的元素被认为是不可分的单元。我们称一个关系模式 R 属于第一范式(First Normal Form, 1 NF) 如果 R 的所有属性的域都是原子的 。
第二范式
- 符合第一范式
非主属性完全依赖于码
第三范式
- 符合第二范式
不存在传递依赖
BCNF 范式
- 符合第三范式
主属性不依赖于主属性
基本概念
- 码:可以标识一个记录的一组属性(可以看作一个属性集)(由确定这组属性的值后,最多只能找到一条记录)。
- 候选码:一个元组中可以作为码的属性集合不止一个,所有的集合都称作候选码。
- 主属性:存在于某个候选码中的属性。
依赖
如果一组属性 X 可以确定另一组属性 Y,X -> Y,那么称为 Y 依赖于 X。
- 完全依赖:如果 X 中少了任何一个属性 X -> Y 不成立
- 传递依赖:传递函数依赖属于关系模式R(U),传递函数依赖在关系模式 R(U)中,设 X,Y,Z 是 U 的不同的属性子集,如果 X 确定 Y、Y 确定 Z,且有 X 不包含 Y,Y 不确定 X,(X∪Y)∩Z=空集合,则称 Z 传递函数依赖于X。