简单明了,数据库设计三大范式

数据库范式是关系型数据库设计的基础,包括第一范式、第二范式和第三范式。第一范式强调属性的原子性,避免数据冗余;第二范式要求消除部分依赖,确保数据独立;第三范式则禁止传递依赖,保证数据表之间的关系直接且明确。通过这三个范式的应用,可以优化数据库结构,减少数据冗余,提高数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

范式:简单的说,就是规范数据库表设计,需要满足的一些规范,以优化数据数据存储方式。
在关系型数据库中这些规范就可以称为范式

第一范式

1、每一列属性都是不可再分的属性值,确保每一列的原子性

2、两列的属性相近相似一样,尽量合并属性一样的列,确保不产生冗余数据。

在这里插入图片描述
如果需求是需要地址拆分省、市,并按其分类,那么显然第一个表格是不容易满足需求的,也不符合第一范式。
拆分后,例
在这里插入图片描述
拆分后,符合第一范式。

第二范式

每一行的数据只能与其中一列相关,即一行数据只做一件事

只要数据列中出现数据重复,就要把表拆分开来。

在这里插入图片描述
一个人同时订几个房间,就会出来一个订单号多条数据,这样子联系人都是重复的,就会造成数据冗余。我们应该把他拆开来。

在这里插入图片描述
拆分后,符合第二范式。

第三范式

数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。
像:a–>b–>c 属性之间含有这样的关系,是不符合第三范式的。

比如Student表(学号,姓名,年龄,性别,所在院校,院校地址,院校电话)

这样一个表结构,就存在上述关系。学号–> 所在院校 --> (院校地址,院校电话)

这样的表结构,我们应该拆开来,如下。

(学号,姓名,年龄,性别,所在院校)–(所在院校,院校地址,院校电话)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

藏蓝色攻城狮

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

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

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

打赏作者

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

抵扣说明:

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

余额充值