数据库的三大范式[通俗易懂]

数据库的三大范式[通俗易懂]当你应聘后端岗位的时候,数据库的知识必不可少,今天给大家分享一下数据库三大范式的通俗理解第一范式:无重复的列第二范式:属性完全依赖于主键第三范式:属性不依赖于其他非主属性总结:第一范式(1NF)原子性:保证数据不可再分第二范式(2NF)前提:满足第一范式每张表只描述一件事情,就是主键对应着所有信息第三范式(3NF)前提:满足第一和第二范式第三范式需要保证表中的数据和主键直接相关,而不是间接相关注意:阿里巴巴要求关联查询的表不得超过3张,数据库的性能更加重要,适当考虑规范性就好其实目前关系数据库有六种范式:

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

第一范式:无重复的列

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

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

总结:

第一范式(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

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

数据表之间的关系

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192735.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在MT4上使用双线MACD指标源码

    在MT4上使用双线MACD指标源码MACD指标是股票交易中经典的一款技术分析指标,该指标由两条曲线和柱线组成。基本用法:MACD金叉:DIFF由下向上突破DEA,为买入信号。MACD死叉:DIFF由上向下突破DEA,为卖出信号。MACD绿转红:MACD值由负变正,市场由空头转为多头。MACD红转绿:MACD值正转负,市场多头转空头。DIFF与DEA均为正值,即都在零轴线以上时,大势属于多头市场,DIFF向上突破DEA,可以做买入信号。DIFF与DEA均为负值,即都在零轴线以下时,大势属于空头市场,DIFF向下跌破DEA,可做卖出信号。DE

    2022年5月7日
    100
  • 安全关机程序[通俗易懂]

    安全关机程序[通俗易懂]安全关机程序最近在实验室用ftp下点东西,但是由于实验室晚上12点就会断电。于是需要在此之前关掉机器,图省事就用WindowsXP自带的计划任务每次设置成11:50就调用“shutdown-s”命令自动关机。但是好几次都发现没法正常关机,第二天早上起来就会检测磁盘。于是就做了个实验,发现确实当使用flashfxp下载东西时,关机会不能正常关机,等待确定终止flashfxp程序。发现原因后,很简单

    2022年7月22日
    10
  • 并发与并行的区别_并发执行和并行执行

    并发与并行的区别_并发执行和并行执行学习多线程的时候会遇到一个名词:并发。这是属于操作系统中的词汇,需要了解并发和并行的区别,从网上搜集了几种说法帮助理解。一:并发是指一个处理器同时处理多个任务。并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。二:并行

    2025年8月10日
    2
  • roc曲线的意义_【科研助手】ROC曲线在医学诊断类稿件中的应用「建议收藏」

    roc曲线的意义_【科研助手】ROC曲线在医学诊断类稿件中的应用「建议收藏」ROC曲线,即受试者工作特征曲线(receiveroperatingcharacteristiccurve),是以灵敏度为纵坐标,1-特异度为横坐标绘制而成的曲线,其在临床医学诊断类稿件中受到人们的广泛关注且应用逐渐深入。而稿件中的ROC曲线应用是否合理及数据逻辑能否行得通,还需认真分析。今天,小编就跟大家聊一聊ROC曲线在医学诊断类稿件中的应用。传统的诊断试验评价方法要求将试验结…

    2022年5月17日
    57
  • 编写java程序应用for循环打印菱形_打印空心菱形

    编写java程序应用for循环打印菱形_打印空心菱形简单的利用JAVA输出菱形

    2022年9月29日
    4
  • 实时数据库简介和比较—PI

    实时数据库简介和比较—PI实时数据库是数据库系统发展的一个分支,它适用于处理不断更新的快速变化的数据及具有时间限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,实时数据库系统的主要内容包括:实时数据库模型;

    2022年8月3日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号