3NF范式建模

举报
Jimmy@^@ 发表于 2020/07/25 16:43:09 2020/07/25
【摘要】 范式:符合某一种级别的关系模式的集合,一张数据表结构符合某种设计标准的级别第一范式:1NF的定义为:每个属性都不可再分,是所有关系型数据库最基本要求 改进 第二范式:2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖比如有两个主键,不能存在这样的属性,它只依赖于其中一个主键,则不符合2NF消除非主属性对于码(主键)的部分函数依赖 表中所有的函数依赖关系: 主属性有两个:学号 与...


范式:符合某一种级别的关系模式的集合,一张数据表结构符合某种设计标准的级别


第一范式:

1NF的定义为:每个属性都不可再分,是所有关系型数据库最基本要求

 

改进

 

 


第二范式:

2NF1NF的基础之上,消除了非主属性对于码的部分函数依赖

比如有两个主键,不能存在这样的属性,它只依赖于其中一个主键,则不符合

2NF消除非主属性对于码(主键)的部分函数依赖

 

 

表中所有的函数依赖关系:

 

主属性有两个:学号  课名

非主属性有四个:姓名系名系主任分数

对于(学号,课名) 姓名,有 学号 姓名,存在非主属性 姓名 对码(学号,课名)的部分函数依赖。

对于(学号,课名) 系名,有 学号 系名,存在非主属性 对码(学号,课名)的部分函数依赖。

对于(学号,课名) 系主任,有 学号 系主任,存在非主属性 对码(学号,课名)的部分函数依赖。

 

 

模式分解

 

 

 



第三范式:

3NF2NF的基础之上,消除了非主属性对于码的传递函数依赖

 

一属性依赖于其他非主键属性,而其他非主键属性又依赖于主键,那么这个属性就是间接依赖于主键,这被称作传递依赖于主属性

 

选课(学号,课名,分数)

学生(学号,姓名,系名)

系(系名,系主任)



符合3NF要求的数据库设计,基本上解决了数据冗余过大,插入异常,修改异常,删除异常的问题。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。