数据库建立遵循的三大范式

数据库建立遵循的三大范式

数据库设计深刻影响着存储性能和数据的操作效率,为了避免操作异常,在设计数据库的时候需要满足一定的规范要求,这里就引入了范式。

范式有多种级别:第一范式,第二范式,第三范式,bcnf,第四范式以及第五范式

本章节重点讲解第一范式,第二范式和第三范式

三大范式的共同点是:一张表只描述一个事物

​ 使用外键连接有关系的表

第一范式

第一范式是指数据库表的每一列都是不可分割的基本数据线;也就是原子性

学号(主键)姓名联系方式
9222向高email:xiangg@qq.com;phone:156666

在该表中的联系方式没有遵守第一范式。该练习方式的列包含了邮箱地址和联系电话,应该在该列也要分为两列

第二范式

第二范式是在第一范式的基础之上建立起来的,满足第二范式的前提是先满足第一范式。

第二范式的规则是:

如果表是单键的,那么主键以外的列必须完全依赖主键

如果表是复合主键的,那么主键以外的列必须完全依赖主键,不能仅仅依赖主键的一部分

如示例出现的问题:

学号(主键)学生姓名课程编号课程名称
1216下颚122程序c

该表本来是描述了两个事物的,学生和课程的,不能放到一个表中。因为学生依赖的唯一标识是学号主键,而课程号主键唯一标识的是学生对应的课程

可以将其改进为学生表,课程表,学生表和课程表的中间表。

第三范式

第三范式着重问题还是为了 解决数据冗余的问题。第三范式的基础的前提同样是第二范式。第三范式要求:

表中的非主键列必须和主键直接相关而不能间接相关;也就是说非主键之间不能相关依赖

示例:

用户编号(主键)用户姓名用户等级享受折扣
2464徐华说10.9
2469殿下20.8

该表中:用户等级和享受折扣存在依赖关系,不满足第三范式,需要拆分表格

用户表 只有用户编号,用户姓名,用户等级

折扣表只有用户等级和享受折扣

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@湖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值