很好的例子:

数据库 函数依赖及范式(最通俗易懂) - 蔡军帅 - 博客园
一、基础概念 要理解范式,首先必须对知道什么是关系数据库,如果你不知道,我可以简单的不能再简单的说一下:关系数据库就是用二维表来保存数据。表和表之间可以……(省略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。