最简单的数据库“范式”教程

本文深入浅出地介绍了数据库设计中的范式理论,包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BC范式(BCNF),以及第四范式(4NF)。通过实例解析了各个范式的概念和应用,强调了数据冗余、插入、删除异常等问题,并提出不同数据库设计应根据实际需求达到相应范式,以实现良好的数据库规范化。文章结尾提醒读者,规范化和效率之间需要权衡,提出了数据库优化的十六字原则。
摘要由CSDN通过智能技术生成

本文参考自最简单的数据库“范式”教程

查看原文: 原文地址

既然都叫最简单的数据库“范式”教程,我觉得它一定要满足这个要求:看完这篇博客,你一定会明白数据库的“范式”和那些诸如“完全函数依赖”,“部分函数依赖”,“传递函数依赖”等烦人的概念,前提是你得跟着我的思路认真的读完它,好,准备好你的半个小时了吗?我们开始。

目录

  1. 什么是范式?
  2. 贯穿全文的一个例子。
  3. 第一范式(1NF)
  4. 几个重要的概念。
  5. 第二范式(2NF)
  6. 第三范式(3NF)
  7. BC范式(BCNF)
  8. 第四范式(4NF)

1. 什么是范式?

范式其实就是关系数据库规范程度的级别,举个我们生活中的例子,老师让打扫卫生,最低标准是扫地,二级标准是扫地+擦桌子,三级标准是扫地+擦桌子+擦玻璃,实际上在标准不断上升的过程中,首先高一级的标准是满足低一级标准的,范式也是如此,只不过它的标准描述的是数据库规范化的程度罢了。数据库中的范式有1NF , 2NF , 3NF , BCNF , 4NF,5NF(本文不讨论)。它们之间的关系1NF < 2NF < 3NF < BCNF < 4NF(默认越大 级别越高)。

2.贯穿全文的一个例子。

这里写图片描述 
这个例子有下面的关系

(学号,课名)->分数 
学号->姓名 
学号->系名 
系名->系主任 
注:A->B:理解为A属性可以唯一确定B属性。

这个例子会在说第二范式和第三范式的时候被逐步优化。

3.第一范式(1NF)

数据库表的每一列都是不可再分的原子数据项,它是一个关系型数据库的最低标准,如果不满足第一范式,那么这个数据库就不是关系型数据库。如下所示: 
这里写图片描述 
这个表我们无法在数据库中直接创建,因为它的这一列,既有系名又有系主任,产生了冲突,如果作出调整,使它符合第一范式,那么应该是这样的: 
这里写图片描述

但是即使这样,数据库中还是会存在诸如插入、删除、数据冗余等异常。比如针对下面的表: 
这里写图片描述

  • 数据冗余:可以看到姓名、系名和系主任这三列冗余非常大。
  • 插入异常:如果目前开设了计算机系,但是尚未招生,那么计算机系是无法插入到表的系名中的,(学号,课名)是主属性,不能为空。
  • 删除异常:如果经济系的学生全部毕业了,在删除所有学生的时候,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值