数据库的三大范式

简介: 当你应聘后端岗位的时候,数据库的知识必不可少,今天给大家分享一下数据库三大范式的通俗理解

第一范式:无重复的列


第二范式:属性完全依赖于主键


第三范式:属性不依赖于其他非主属性


总结:


第一范式(1NF)


原子性:保证数据不可再分


第二范式(2NF)


前提:满足第一范式


每张表只描述一件事情,就是主键对应着所有信息


第三范式(3NF)


前提:满足第一和第二范式


第三范式需要保证表中的数据和主键直接相关,而不是间接相关


注意:


阿里巴巴要求 关联查询的表不得超过3张,数据库的性能更加重要,适当考虑规范性就好


其实目前关系数据库有六种范式:


第一范式(1NF),第二范式(2NF),第三范式(3NF),巴斯-科德范式(BCNF),第四范式(4NF),第五范式(5NF,又称完美范式)


目前我们用的最多的就是第一范式(1NF),第二范式(2NF),第三范式(3NF)


第一范式:要求数据库的每一列都是不可分割的原子项


举个例子:




表中 家庭信息 和 学校信息 列都不满足原子性的要求,即不满足第一范式


将第一张图片进行调整,调整后的每一列都是不可再分的,即满足第一范式(1NF)


第二范式(2NF):在第一范式的基础上,非主键属性必须依赖于主键属性


第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合键)




如上图所示,同一个订单中可能包含不同的产品,所以主键必须是订单号和产品号联合组成


但是,产品数量、产品折扣、产品价格与“订单号”和“产品号”都相关,但是订单金额和订单时间仅与“订单号”相关,与“产品号”无关,


第三范式(3NF):在满足第二范式的基础上,保证每列都和主键列直接相关,而不是间接相关


比如在设计一个订单数据表时,可以将客户编号作为一个外键和订单表建立相应的关系,而不可以在订单表中添加关于客户其他信息(如姓名,电话等)的字段。如下图表就是一个满足第三范式的数据库表


订单信息表

订单编号 订单项目 负责人 业务员 订单数量 客户编号

001


冰箱 小明 张三 2台 1

002 洗衣机 小红 李四 8台 2

003 油烟机 小青 王五 7台 3

客户信息表

客户编号 客户名称 客户住址 联系方式

1 张明 翻斗花园 15437897758

2 陈启 五一广场 13286579908

这样在查询订单信息的时候,就可以使用客户编号来引用客户信息表中的信息,也不必在订单信息表中多次输入客户信息的内容,减少了数据臃肿


数据表之间的关系


一对多关系:一个学号对应一个姓名


一对多(多对一):一个老师对应多个班级,一个班级对应多个学生


多对多:学生对应课程,用户对应商品


注意:设计数据库时,多对多关系,需要一个中间表进行关联


总结:需求>性能>范式,不用一味追求范式


目录
相关文章
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
351 0
|
2月前
|
人工智能 运维 关系型数据库
云栖大会|AI时代的数据库变革升级与实践:Data+AI驱动企业智能新范式
2025云栖大会“AI时代的数据库变革”专场,阿里云瑶池联合B站、小鹏、NVIDIA等分享Data+AI融合实践,发布PolarDB湖库一体化、ApsaraDB Agent等创新成果,全面展现数据库在多模态、智能体、具身智能等场景的技术演进与落地。
|
5月前
|
数据库
数据库三范式
数据库设计中的三范式(1NF、2NF、3NF)用于规范数据结构,减少冗余。1NF 要求字段不可再分,保证原子性;2NF 消除部分依赖,确保非主键列完全依赖主键;3NF 消除传递依赖,非主键列只能依赖主键。遵循三范式可提升数据库的完整性与效率。
146 1
|
5月前
|
SQL 安全 关系型数据库
数据库安全管理新范式:DBKEEPER一体化数据库权限管控堡垒机解决方案
在数字化时代,数据库安全至关重要。DBKEEPER提供一站式数据库安全访问与权限管控解决方案,支持多种数据库,具备精细化权限管理、数据脱敏、高危操作拦截、全面审计等功能,助力企业实现智能、安全的数据治理,满足金融、医疗、互联网等行业合规需求。选择DBKEEPER,让数据库安全管理更高效!
数据库安全管理新范式:DBKEEPER一体化数据库权限管控堡垒机解决方案
|
存储 数据库
数据库设计三范式
三范式设计的最终目的都是为了减少我们的工作量,所以说,尽管三范式是一种很好的指导规范,但在实际应用中,我们也不需要太局限在三范式中,更多的是应该从项目中出发,设计出合理的表结构。
|
存储 数据库
数据库设计三范式
数据库设计三范式
118 0
|
存储 关系型数据库 数据库
关系型数据库设计范式:深入理解与实践
【7月更文挑战第20天】关系型数据库设计范式是数据库设计中的重要指导原则,它通过一系列规范来减少数据冗余、提高数据一致性和优化查询性能。在实际应用中,我们应该根据具体需求和数据特点,灵活选择和应用不同的范式级别,以构建高效、可靠和可扩展的数据库系统。同时,也需要注意范式设计带来的挑战和限制,根据实际情况进行权衡和调整。
|
存储 Java 数据库连接
数据库三范式详解及应用
数据库三范式详解及应用
|
存储 Java 数据管理
数据库三范式设计与规范化过程详解
数据库三范式设计与规范化过程详解

热门文章

最新文章