一、三大范式
建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。
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 表名(字段名)

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

被折叠的 条评论
为什么被折叠?



