数据库范式

本文介绍了数据库设计中的范式概念,包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。每个范式都有其特定要求,如1NF强调列的原子性,2NF要求非主属性完全依赖于主属性,3NF则规定非主属性不依赖于其他非主属性。文章还讨论了遵循范式的优势和劣势,以及不遵循范式(反范式)的利弊,帮助理解如何在实际数据库设计中权衡冗余和查询效率。
摘要由CSDN通过智能技术生成

 

什么叫数据库范式

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小

 

范式的分类

第一范式,第二范式,第三范式,BCNF范式(巴斯-科德范式),第四范式,第五范式。

第一范式(1NF)

第一范式强调的是列的原子性,即列不能够再分成其他几列。

 

例如下面这个表,包含userid和userintroduce两列,如果将用户姓名,用户手机号码,用户生日……全部放入userintroduce列中是不符合第一范式的

create table userinfo(userid number,userintroduce varchar2(100));

insert into userinfo values(1,'张三|15356784321|20000101');

 

优化:将userintroduce进行拆分,变成多个列,下面这个表基本满足第一范式。

create table userinfo2(userid number,

username varchar2(20),

phone number,

birthday date

);

 

进一步优化:根据需求来决定,姓名是否需要拆分,号码是否需要拆分成手机号和座机号。

create table userinfo3(userid number,

firstname varchar2(20),

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值