转 数据库关系模式的范式
(
详细解说)
2007-01-24 10:19
关系模式的范式
主要有 4 种范式,1NF, 2NF, 3NF, BCNF 按从左至右的顺序一种比一 种要
求更严格。要符合某一种范式必须也满足它前边的所有范式。一般项目的数 据库设计
达到 3NF 就可以了,而且可根据具体情况适当增加冗余, 不必教条地遵 守所谓规
范。
简单而言,1NF 就是要求一张表里只放相互关联的字段,一个字段里只放一条信 息
,
这只是最基本的要求。至于 2NF, 3NF, BCNF 虽然描述的内容不同,但表现 在数据特
点上很相似,就好比在说不要为了向某厂订购一批货记下来, 就把的厂 的面积、电话
等都放在同一张表里,而应该用两张表,以尽量避免浪费数据存储 空间。因为和同一
个厂可能会交易好几次,但没必要每次交易都记录全部的信 息。
从范式所允许的函数依赖方面进行比较,四种范式之间的关联如下图所示
1NT
消除非主属性对键的部分函数依赖
J
消除非主扈性对键的倍递函数依赖
1
消除主属性对键的部分函数依赖和伎递函数依赖
BCKF
以下对每种范式作一一说明
2.342 第一范式
在关系模式 R 中的每一个具体关系 r 中,如果每个属性值都是不可再分的 最小数
据单位,则称 R 是第一范式的关系。
例:如职工号,姓名,电话号码组成一个表(一个人可能有一个 办公室电 话 和
一个家里电话号码) 规范成为 1NF 有三种方法:
一是重复存储职工号和姓名。这样,关键字只能是电话号码。
二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性 三是职工号为关键
字,但强制每条记录只能有一个电话号码。
以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。