|
楼主 |
发表于 2009-3-28 13:55
|
显示全部楼层
问题二,第一范式(1nf)的问题[已解决]
有书这样介绍第一范式的.
清华大学出版社,<<access数据库技术与应用>>简明教材 p27 页
比如对于关系R(姓名,地址,电话),存在这样两条记录,(张洁,河南开封,3324110)和(张洁,河南开封,3324299).从中可以看出,电话可以再分,可以分为电话一和电话二,因此不符合第一范式.
要通过规范化达到第一范式,有三种解决方法:
1.将电话作为主键,重复存储姓名和地址;
2.将姓名作为主键,电话分为电话一和电话二;
3将姓名作为主键,每条记录中只保留一个电话号码.
以上三种办法,第一种会造成资源浪费,第3种会造成部分信息丢失,只有第2种最合理.
理解1和2,不理解3.
是不是这样理解,如果将姓名作为主键了,则姓名字段不能重复.也就是说张洁只能有一条记录,从而两个电话只能存储一个就丢失了?
****************************************************
第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值 都是不可再分的最小数据单位,则称R是第一范式的关系。例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话 和一个家里电话号码) 规范成为1NF有三种方法:
一是重复存储职工号和姓名。这样,关键字只能是电话号码。
二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性
三是职工号为关键字,但强制每条记录只能有一个电话号码。
以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。
*********************************************************************************
这个解释容易听懂
[ 本帖最后由 wbxfq 于 2009-4-2 16:05 编辑 ] |
|