数据库模型设计,第一范式、第二范式、第三范式简单例子理解

数据库模型设计,第一范式、第二范式、第三范式简单例子理解有几年经验了,也经历了不少项目,接触了各种数据模型,可是数据库模型设计范式只是知道有这个东西,具体范式的要求是什么呢?你是不是还很模糊?赶紧来普及下吧,第一范式、第二范式、第三范式简单例子理解。

大家好,又见面了,我是你们的朋友全栈君。

数据设计一般满足第三范式就够了


第一范式(
无重复的列
定义:数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。如果实体中的某个属性有多个值时,必须拆分为不同的属性
通俗解释:一个字段只存储一项信息
eg:班级:高三年1班,应改为2个字段,一个年级、一个班级,才满足第一范式
不满足第一范式
学号 姓名 班级
0001 小红 高三年1班

改成
学号 姓名 年级 班级
0001 小红 高三年 1班

第二范式(
属性完全依赖于主键
定义:满足第一范式前提,
当存在多个主键的时候,才会发生不符合第二范式的情况。比如有两个主键,不能存在这样的属性,它只依赖于其中一个主键,这就是不符合第二范式
通俗解释:任意一个字段都只依赖表中的同一个字段
eg:比如不符合第二范式
学生证 名称 学生证号 学生证办理时间 借书证名称 借书证号 借书证办理时间
           

改成2张表如下
学生证表
学生证 学生证号 学生证办理时间
     

借书证表
借书证借书证号借书证把你拉时间
   


第三范式(
属性不能传递依赖于主属性
定义:满足第二范式前提,
如果某一属性依赖于其他非主键属性,而其他非主键属性又依赖于主键,那么这个属性就是间接依赖于主键,这被称作传递依赖于主属性。
通俗理解:一张表最多只存2层同类型信息
eg:爸爸资料表,不满足第三范式
爸爸 儿子 女儿 女儿的小熊 女儿的海绵宝宝
         

改成
爸爸信息表:

爸爸 儿子 女儿
     
女儿信息表
女儿 女儿的小熊 女儿的海绵宝宝
     



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142404.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号