前几周听到了范式,当时可一头雾水,刚看出一点眉头,就把书上的一个例子提出来,大家共同来理解。

    查了一些东西,第一范式是对关系模式的最基本的要求,当然第一到第五范式都是我们该了解的,只是第四和第五不需要关注。

    为什么要规范化呢?

    直接看例子吧:

 

由于在上表中保存的数据因为不是关系数据模式保存的,所以会很麻烦:

 
1,插入异常:无法输入还未出版的书的作者的详细信息,因为他们没有ISBN编号;
2,删除异常:有出版商细节的书不能被删除;
3,更新异常:如果出版商的地址改变,就需要更新由该出版商出版的所有书所在的行。
 
除了以上典型的三点,还很难确定某位作者写的每本书,一本书可能有几位作者,Authors字段可能有很多个值,这样的搜索就必须搜索所有的这些值。与之相关的问题是,常常需要重新构建书的表格,让它包含多个作者。同时,由于重复跨行的地址细节,储存的效率很低,而且,因为重复输入数据,出现错误的可能性也很高。
 
            然而规范化能解决以上让人头大的问题
 
第一范式可以删除重复组,这里就是删除多名作者:将他们提取到单独的表,称之为AUTHORS。数据结构现在应该如下所示:
 
新的 BOOKS:

AUTHOR:

这就是第一范式(1NF):没有重复分组。

 

例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话和一个家里电话) 规范成1NF有三种方法: 

一是重复存储职工号和姓名。这样,关键字只能是电话号码。 

二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性。

三是职工号为关键字,但强制每条记录只能有一个电话号码。

以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。

 

 

ps.话说我删了一篇博文,怎么那个博客统计里数量还没变呢,呵呵,一定是规范化不好,嘿嘿