【入门mysql】关系规范化之概念

本文深入探讨了关系数据库中的基本术语,如元组、属性、候选码等,并详细阐述了第一、二、三范式及BC范式的作用与定义。通过理解和应用这些范式,可以有效减少数据冗余,消除各种异常,使数据组织更加合理。

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

一、关系中的基本术语

(1)元组:也叫做记录,就是一行
(2)属性:就是列,也叫字段
(3)候选码:能唯一标识元组的属性
(4)主码: 候选码种的一个
(5)主属性与非主属性:候选码中的属性称为主属性

二、范式作用

应用数据库范式可以带来许多好处,最重要的好处可以归结为三点:
1.减少数据冗余(最主要)。
2.消除异常:插入异常,更新异常,删除异常等。
3.让数据组织的更加和谐。

三、三大范式和其他范式

第一范式(1NF)

1、定义:
字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式。数据表中得所以字段都是不可分割的原子值或者说数据库表中的字段都是单一属性的,不可再分。即 字段值 还可以继续拆分的就不满足第一范式。
注意:范式,设计的越详细对于某些实际操作肯更好,但不一定都是最好的。

第二范式(2NF)

1、定义:必须满足第一范式的前提下,第二范式还要求,除主键的每一列都必须完全依赖与主键。
如果出现不完全依赖,只可能发生在联合主键的情况。(如果候选码是单属性,则一定是2NF)

第三范式(3NF)

1、定义:必须先满足第二范式,除开主键列的其他列之间不能有传递依赖关系
2、传递依赖的三个条件
若x→y y→z,满足(条件):y不能确定x;y不属于x的子集;z也不属于y的子集
结果:则x→依赖→z;
3、不满足范式的解决:拆表。

BC范式(BCNF):

定义:如果关系模式R(U,F)∈1NF。若F中任一函数依赖X→Y且Y¢X 时X必含有R的一个码,则R∈BCNF。
通常,BCNF的条件有多种等价的描述,换言之,若关系模式R属于第一范式,且每个属性都不部分依赖和传递函数依赖于码,则R属于BCNF。

最后,关于范式比较难理解,可以通过做一些题目来加深对范式的理解(重点:找到候选码)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值