3NF范式建模
【摘要】 范式:符合某一种级别的关系模式的集合,一张数据表结构符合某种设计标准的级别第一范式:1NF的定义为:每个属性都不可再分,是所有关系型数据库最基本要求 改进 第二范式:2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖比如有两个主键,不能存在这样的属性,它只依赖于其中一个主键,则不符合2NF消除非主属性对于码(主键)的部分函数依赖 表中所有的函数依赖关系: 主属性有两个:学号 与...
范式:符合某一种级别的关系模式的集合,一张数据表结构符合某种设计标准的级别
第一范式:
1NF的定义为:每个属性都不可再分,是所有关系型数据库最基本要求
改进
第二范式:
2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖
比如有两个主键,不能存在这样的属性,它只依赖于其中一个主键,则不符合
2NF消除非主属性对于码(主键)的部分函数依赖
表中所有的函数依赖关系:
主属性有两个:学号 与 课名
非主属性有四个:姓名、系名、系主任、分数
对于(学号,课名) → 姓名,有 学号 → 姓名,存在非主属性 姓名 对码(学号,课名)的部分函数依赖。
对于(学号,课名) → 系名,有 学号 → 系名,存在非主属性 系名 对码(学号,课名)的部分函数依赖。
对于(学号,课名) → 系主任,有 学号 → 系主任,存在非主属性 对码(学号,课名)的部分函数依赖。
模式分解
第三范式:
3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖
一属性依赖于其他非主键属性,而其他非主键属性又依赖于主键,那么这个属性就是间接依赖于主键,这被称作传递依赖于主属性
选课(学号,课名,分数)
学生(学号,姓名,系名)
系(系名,系主任)
符合3NF要求的数据库设计,基本上解决了数据冗余过大,插入异常,修改异常,删除异常的问题。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)