数据库的三大范式以及五大约束

一、数据库的三大范式

三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能需求>性能>表结构。所以不能一味的去追求范式建立数据库。

什么是范式:数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的、规范的的数据库,是需要满足一些规范来优化数据存储方式。在关系型数据库中这些规范就可以称为范式。

数据库的三大范式可谓是:实体、属性、关系。

  • 实体:表
  • 属性:表中的数据(字段)
  • 关系:表与表之间的关系

第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性

第二范式(2NF):满足1NF后,要求表中的所有列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情

第三范式(3NF):必须先满足第二范式(2NF),要求:表中的每一列只与主键直接相关不是间接相关,(表中的每一列只能依赖于主键)

错误事例:关键字段 → 非关键字段x → 非关键字段y

正确实例:关键字段 → 非关键字段x
     关键字段 → 非关键字段y

二、数据库五大约束

1、primary key 设置主键约束;
2、UNIQUE 设置唯一性约束,不能有重复值;
3、DEFAULT 默认值约束;
4、NOT NULL 设置非空约束,该字段不能为空;
5、FOREIGN key 设置外键约束。

【主键】
1.主键的注意事项?
主键默认非空,默认唯一性约束,只有主键才能设置自动增长,自动增长一定是主键,主键不一定自动增长;
2.设置主键的方式?
在定义列时设置:ID INT PRIMARY KEY
在列定义完之后设置:primary KEY(id)

【避免操作异常和数据冗余】

参考博文

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容