美文网首页
数据库范式简单总结

数据库范式简单总结

作者: 清风明月兮丶 | 来源:发表于2017-08-19 19:38 被阅读0次
第一范式(1NF):
  • 数据表的每一列是基本列,不可再拆分(下面的表1的结构则不符合第一范式,当然,目前在用的各种数据库也不允许创建这种表)
    表1
  • 不可有重复列

第二范式(2NF):
  • 数据表必须有主键(关键字或组合关键字)以区分各行数据
  • 非关键字段不允许存在对关键字的部分依赖

举例:

假定选课关系表为SelectCourse(学号,姓名,年龄,课程名称,成绩,学分)
关键字为组合关键字(学号,课程名称),决定关系关系如下:

(学号,课程名称) → (姓名,年龄,成绩,学分)

这个数据库表不满足第二范式,因为存在如下决定关系:

(课程名称) → (学分)
(学号) → (姓名,年龄)`

即存在组合关键字中的某字段决定非关键字的情况。
满足2NF的数据表设计示例:

把选课关系表SelectCourse改为如下三个表:
学生:Student(学号,姓名,年龄);
课程:Course(课程名称,学分);
选课关系:SelectCourse(学号,课程名称,成绩)。


第三范式(3NF):
  • 不允许传递依赖
    满足第三范式的数据库表不允许存在如下依赖关系:
    关键字段 → 非关键字段x → 非关键字段y

BC范式(BCNF):
  • 不允许关键字间的依赖

关键字互相决定
(仓库ID) → (管理员ID)
(管理员ID) → (仓库ID)


第四范式(4NF):
  • 消除表中的多值依赖关系

举例:

有这样一个关系 <仓库管理员,仓库号,库存产品号> ,假设一个产品只能放到一个仓库中,但是一个仓库可以有若干管理员,那么对应于一个 <仓库管理员,库存产品>有一个仓库号,而实际上,这个仓库号只与库存产品号有关,与管理员无关,就说这是多值依赖

相关文章

  • 数据库范式简单总结

    第一范式(1NF): 数据表的每一列是基本列,不可再拆分(下面的表1的结构则不符合第一范式,当然,目前在用的各种数...

  • 数据库范式

    1. 什么是数据库范式?为什么要学习数据库范式? 数据库范式(database normal form):数据库表...

  • mysql基础汇总

    简单说一下数据库的三范式? 第一范式:数据库表的每一个字段都是不可分割的 第二范式:数据库表中的非主属性只依赖于主...

  • 范式

    数据库(第一范式,第二范式,第三范式)

  • (系列7)数据库

    MySQL 数据库概念 范式 范式是数据库设计规范,范式越高则数据库冗余越小,但查询也更复杂,一般只需满足第三范式...

  • 2-2 — 2- 设计范式

    符合数据库设计的范式概要,那么就是一种简洁的设计,可以避免异常冗余 第一范式(1NF,最简单,最容易遵守):数据库...

  • 数据库:范式总结

    数据库中的范式指的是满足某种设计规范,常见有1NF,2NF,3NF,BCNF,4NF。下面是自己的一些简单理解,同...

  • 数据库范式总结

    文集列表:自我修养--瞎写的故事python--入门到放弃杂七杂八--啥都有操作系统--不要低估一颗底层的心机器学...

  • 设计数据持久层(上):理论分析

    关系数据库 关系 事务 数据库范式 第一范式(1 NF): 第一范式要求每个属性值都是不可再分的。 第二范式(2 ...

  • 57、【数据库技术】【MySQL】数据库范式

    1、概述 数据库范式是关系型数据库理论中比较重要的概念。“范式”可以理解成是“规则”、“规范”,数据库范式就是设计...

网友评论

      本文标题:数据库范式简单总结

      本文链接:https://www.haomeiwen.com/subject/ncrtdxtx.html