数据库 —— 设计三大范式和五大约束

本文详细介绍了关系数据库中的1NF、2NF、3NF和BCNF范式,以及主键约束、唯一约束等五大约束,帮助理解数据库设计的最佳实践。

一、三大范式

        建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。

        1、字段原子性

        2、字段需要依赖主键

        3、字段不依赖其他非主字段

(一)第一范式(1NF)

        数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。

 (二)第二范式(2NF)

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

        一条数据做一件事,不掺杂复杂的关系逻辑。同时对表数据的更新维护也更易操作。

(三)第三范式(3NF)

        表中的每一列都要与主键直接相关,而不是间接相关(表中的每一列只能依赖于主键)。

        非主属性必须直接依赖主属性,不能通过一个非主属性来传递一下

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

        第二范式与第三范式的本质区别:在于有没有分出两张表。

        第二范式是说一张表中包含了多种不同实体的属性,那么必须要分成多张表,第三范式是要求已经分好了多张表的话,一张表中只能有另一张标的ID,而不能有其他任何信息,(其他任何信息,一律用主键在另一张表中查询)。

(四)BCNF范式(BCNF是3NF的改进形式)

        若关系模式R是第一范式,且每个属性都不传递依赖于R的候选键。这种关系模式就是BCNF模式。即在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖

二、五大约束:

主键约束唯一性,非空性
唯一约束唯一性,可以空,但只能有一个
默认约束该数据的默认值
外键约束需要建立两表间的关系
非空约束设置非空约束,该字段不能为空

五大约束的语法示例:

1. 添加主键约束

Alter table 表名 add Constraint 主键名 primary key(字段)

2.  添加唯一约束

Alter table 表名 add Constraint 约束名 unique(字段)

3.  添加默认约束

Alter table 表名 add Constraint 约束名 default(默认内容) for 字段名

4.  添加检查约束

Alter table 表名 add Constraint 约束名 check (字段表达)

5.  添加外键约束

Alter table 表名 add Constraint 约束名 foreign key(字段) references 表名(字段名)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宇宙超级无敌程序媛

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

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

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

打赏作者

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

抵扣说明:

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

余额充值