关系数据库:实现正规化

ZDNet软件频道 时间:2003-05-30 作者:ZDNet China , 翻译:周靖 |  我要评论()
本文关键词:
在该系列的上一篇文章中,我们已经从一个表着手,并对其进行了处理,使其符合1NF的要求。该表最终变成了4个表。现在,让我们通过应用2NF、3NF和BCNF来完成正规化过程。
本文译自Builder.com,未经许可请勿转载在设计阶段,花在数据正规化上的时间可能比花上其他任何任务上的时间都要多。而且数据越多,这个过程所花的时间更长。根据以往的经验,你可能发现最困难的就是满足第一范式(1NF)的所有要求,因为将重复的值移动到另一个表时,经常会消除不恰当的依赖。

完成最困难的部分后,你可能选择在1NF之后就停止了,但不要这样做。请继续对数据进行正规化,尽可能地通过第二范式(2NF),第三范式(3NF),甚至通过Boyce-Codd范式(BCNF)。这样就能找出那些具有依赖性的数据元素,否则它们会在设计过程中悄悄地溜走,并在以后造成问题。最好在设计期间就发现这些问题——不要等到用户发现自己的工作无法完成,或者等到你开始损失金钱的时候。


系列文章简介
你现在正在阅读的是Builder.com Relational Database Design系列中的一篇文章。如果错过了前3篇文章,请首先阅读它们:
《关系型数据库:理论背后的灵感》
《关系型数据库:使用范式创建数据库》
《关系型数据库:应用第一范式》


在该系列的上一篇文章中,我们已经从一个表着手,并对其进行了处理,使其符合1NF的要求。该表最终变成了4个表。现在,让我们通过应用2NF、3NF和BCNF来完成正规化过程。

继续未完的工作

我们的示范数据库在完工以后,将用来存储和书籍有关的数据;这是一个非常简单的目的,所以只需要一个简单的数据库。我们现在已经有4个表,而且全部正规化为1NF(记住,关键字段是用星号表示的): 

Books: {*Title, *ISBN, Price}
Authors: {*FirstName, *LastName, *State, *ZIP}
Categories: {*Category, Description}
Publishers:

 


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134