数据库设计三范式

转载 2018年01月13日 15:14:28

前言

    因为合作要进行对数据库三范式的规范,所以重新拿起了课本对三范式进行了再一次的学习,这次本博文主要从举例子的角度来理解数据库的三范式。

内容

    下面要说的三范式,都是在特定的场景中进行规范的。


1、第一范式:确保每列保持原子性(属性不可再分)


    解析:当我们在录入一些个人信息的时候,我们会涉及到联系方式这一项。有时候联系方式这个可以作为独立的字段,但是对于某些特定情境中,联系方式又会分为邮件、QQ号、手机号、座机号等等。我们所说的属性不可再分强调的是某种特定情况下的规范。例如:

 

    上面的表中的字段都满足了属性不可再分。


2、第二范式:确保每列都和主键相关(完全依赖)


    第二范式是建立在第一范式的基础之上的,强调的是数据库中的每一列都要和主键相关,而不是单单依赖主键的其他字段。下面是我在网上看到的例子:

 

    其中,当有两个字段联合作为主键,那么该表中的任何字段都应该同时依赖这两个主键字段。这个表中是以订单编号和商品编号作为联合主键。这样在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关。所以在这里违反了第二范式的设计原则。

3、第三范式:确保每列都和主键直接相关,并不是间接相关(不存在传递依赖)


    例如字段1、2、3,字段1为主键,2完全依赖字段1,那么3完全依赖字段2,从而依赖字段1,这样的关系在数据库中,是不符合三范式的。如下表中:

 


    其中卡号为主键,姓名完全依赖卡号,性别完全依赖姓名间接依赖卡号。


    综上所述,菜鸟眼中的数据库三范式大概就是这个样子,还请大神多多指教。



简要概括:


1.有主键,且列不可分;
2.确保表中的每一列都和主键相关;
3.是直接相关,而不是间接相关;




原文链接: http://blog.csdn.net/zlt995768025/article/details/50965065

原文链接:

数据库三范式的简单理解

参考书籍:数据库系统概论第四版-王珊、萨师煊 数据库范式 范式的级别       设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递...
  • zymx14
  • zymx14
  • 2017年04月08日 23:58
  • 1284

MySQL设计之三范式的理解

网上查找了一些资料,记录如下并加入自己的理解。 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。...
  • WangQYoho
  • WangQYoho
  • 2016年10月23日 11:18
  • 4063

数据库三范式解析

一、基本介绍   设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。 目前关系数据库有六种范式:第...
  • ls5718
  • ls5718
  • 2016年06月27日 16:00
  • 563

三范式数据库设计和反范式的思考(转)

当我们拿到一个新的需求,我们把需求从头到尾搞清楚 后,就开始画流程图—>用例图—->设计数据库—->进入开发阶段—->编码—->测试—–>项目上线,至此一个项 目就算完成。 在这里我们只对设计数...
  • adparking
  • adparking
  • 2014年12月11日 11:42
  • 1043

理解数据库设计的三大范式

为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。   ...
  • heicm
  • heicm
  • 2014年10月28日 15:45
  • 1675

数据库的三范式详解

数据库的三范式 1N:关系R中的属性都是不可分割的项. 2N:在1N的基础上,每个非主属性完全函数依赖于码. 3N:在2N的基础上,每一个非主属性既不部分依赖于码也不传递依赖于码....
  • bluend1004
  • bluend1004
  • 2013年08月17日 21:22
  • 947

数据仓库3级范式(3NF)基础

一、引言   最近在整理理大数据模式下的数据仓库数据模型,资料来自互联网和读过的数据仓库理论和实践相关。 二、3NF (1)1NF-无重复的列   数据库表的每一列都是不可分割的基本数据项,同一列中不...
  • oDaiLiDong
  • oDaiLiDong
  • 2015年11月23日 17:48
  • 2182

关系型数据库三范式

关系数据库、 三大范式
  • niclascage
  • niclascage
  • 2015年10月07日 21:35
  • 1746

数据库三范式简单理解------阿冬专栏

数据库设计当中三范式是经常遇到的,如果实际项目数据库设计中能达到第三范式基本也就满足要求了,那么如何快速有效的理解三个范式,同时应用于实际项目中去呢? 首先看看标准定义的三个范式: 第一范...
  • zhangdong305
  • zhangdong305
  • 2015年08月24日 09:50
  • 2880

数据库设计(三范式,冗余字段,逆范式)

数据库设计(三范式,冗余字段,逆范式)   在设计数据库的时候,应该注意一下什么呢?首先来看一张表。 学生成绩表            姓名         性别         j...
  • cy_weiyi
  • cy_weiyi
  • 2015年07月31日 14:17
  • 539
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库设计三范式
举报原因:
原因补充:

(最多只允许输入30个字)