数据库设计一二三四范式有何区别

范化是在识别数据库中的数据元素、关系、以及定义所需的表和各表中的项目这些初始化工作之后的一个细化的过程。常见的范式有1NF 2NF 3NF BCNF以及4NF。

1NF,第一范式。第一范式是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,即可能需要定义一个新的实体。新的实体由重复的属性构成,新的实体和原来的实体之间为一对多的关系。第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能是属性组合或由组属性组成。简而言之,第一范式就是无重复的列。例如,由“职工号”、“姓名”、“电话号码”组成的表(一个人即可能有一个办公电话和一个移动电话),这时将其范化化为1NF可以将电话号码分为“办公电话”和移动电话两个属性,即职工(职工号,姓名,办公电话,移动电话)。

2NF,第二范式。第二范式是在第一范式的基础上建立起来的,即满足第二范式必须先满足第一范式。第二范式要求数据库表中的每一个实例或行必须可以被唯一的区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。如果关系模式R为第一范式,并且R中每一个非主属性完全依赖于R的某个候选键,则称R为第二范式模式。例如,在选课关系表(学号、课程号、成绩,学分)中,关键字为组合关键字(学号,课程号),但由于非主属性学分仅依赖于课程号,对关键字(学号,课程号)只是部分依赖,而不是全部依赖,所以此中方式会导致数据冗余以及更新异常等问题,解决办法是将其分为两个关系模式:学生表(学号,课程号,分数)和课程表(课程号,学分)。新关系通过学生表的外关键字课程号关联,在需要时进行连接。

3NF,第三范式。如果关系模式R是第二范式,且每个非主属性都不依赖于R的候选键,则称R是第三范式的模式。例如,学生表(学号,姓名,课程号,成绩),其中学生姓名无重名,所以该表有两个候选码(学号,课程号)和(姓名,课程号),则存在函数依赖:学号->姓名,(学号,课程号)->成绩,(姓名,课程号)->成绩,唯一的非主属性成绩对码不在部分依赖,也不存在传递依赖,属于第三范式。

4NF,第四范式。一个表中只有一个多值事实。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值