数据库的标准化 三范式

数据库的标准化
第一范式
a、定义所需要的数据项,因为他们将成为表中的列。将相关的数据项放置在一个表中。
理解:首先,必须定义数据项。这意味着查看所要的数据,将数据组织为列,定义每一列 的数据类型,最后将所有相关的列放置到他们自己的表中。
b、确保没有重复的数据组。
理解:可以通过将重复的数据划分到多个表中,来删除重复的数据。将数据划分到多个表中的另外的好处是,它避免了某种称为删除异常的(deletion anomaly)情形,即删除一个记录导致删除所想保存的数据。
c、确保存在一个主键。
理解:再将数据划分到多个表中之后,需要通过某个唯一值链接表。为每一个表创建一个主键-将发生作用。但是,不需要创建一个新列:可以使用现存的一个或多个列,只要这些列的组合能够组成一个唯一的主键。但是,如果具有一个ID列,将使得数据的检索更高效。

第二范式
要求主键中的任意列必须没有局部相关性(主键和其他列不能存在相关性)。需要做到每个表的所有列于主键紧密耦合。

第三范式
a、它符合第二范式
b、所有非主键字段都依赖于主键
非主键字段的相关性位于数据之间。列如,街道名、城市和州被邮编所限定。但是邮编和一个人的名字之间不存在直接的相关性。社会保险号码和名字之间的相关性、邮编和地址之间的相关性都被称为传递相关性(transitive dependency)。

消除传递相关性的好处是双重的。
首先,数据重复量降低,因此数据库变得较小。第二个好处是数据的完整性。当重复数据改变时,存在仅更新了某些数据的危险,特别是它被扩展到数据库的不同位置时。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值