您的位置:首页 > 数据库

数据库三范式

2014-09-13 10:34 183 查看
在设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求,称为不同范式,越高的范式意味着数据库设计的越好,冗余越小。

第一范式:不包含重复组的关系式第一范式的关系。

    我们一般设计的数据库大都满足第一范式的关系,我举例子来说明。


 


大家仔细看这两张图,就可以发现  图1.1包含重复组,所以不符合第一范式的关系,而图1.2则满足第一范式的关系。

第二范式:如果关系模式R∈1NF,并且R中的每个非主属性都完全函数依赖于主键,则R∈2NF。

      要想理解第二范式就要先了解主键可以有一个字段组成,也可以有两个字段组成,有两个字段组成的主键叫复合主键。

由定义可以看出..所有主键只有一个列组成的1NF都满足2NF的关系。

                               复合主键则不都满足2NF的关系。

        下面也以例子来说明。



图2.1就是不符合2NF的关系,因为并不是每个非主属性都完全函数依赖于主键。比如      供应商名称部分依赖于主键,因为组件ID和供应商名称没有关系,供应商只和供应商ID有关,所以存在部分依赖,不满足第二范式的关系。再比如,供应商地址也是部分依赖于主键,因为组件ID和供应商地址没有关系,供应商地址只和供应商ID有关,也存在部分依赖,不满足2NF。

  要想让这张表满足2NF的关系,则应该将上面这张表拆分成下面两张表。



图2.2就是满足第二范式的关系。

第三范式:如果R∈2NF,并且在数据库表中不存在传递依赖关系,则关系模式属于第三范式的关系。

                   意思是如果在表中存在 A→B,B→C,这就存在了传递依赖关系A→C,所以不满足第三范式的关系。

范式越高,意味着数据库设计的越好,就可以有更小的数据冗余,可以更好的进行数据有效性检查,还可以提供存储效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息