3NF范式建模

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

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

第一范式:

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

改进

第二范式:

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

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

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

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

主属性有两个:学号  课名

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

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

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

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

模式分解

第三范式:

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

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

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

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

系(系名,系主任)

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

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

作者其他文章

评论(0

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

    全部回复

    上滑加载中

    设置昵称

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

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

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