php范式,数据库三范式,轻松理解_PHP教程

网上搜罗了一大堆关于数据库范式理解的文章,都是千律一篇的复制粘贴,连例子都是一模一样,拜托有点创意好不,实在看不下去,自己写一篇个人理解三范式的文章。如果有理解上的不正确之处,请联系我:279537592#qq.com (#=>@)

官方定义:第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。

我的理解:第一范式这个不用說了,只要是关系数据库都满足第一范式

官方定义:第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖

我的理解:在第二范式中组合主键(AB)【注明:也叫做复合主键】里面的A或者B 与其他字段不能存在组合重复,为解决这个问题,通常的做法是咱们不用组合主键,添加一个ID,做为单一主键即可满足第二范式。如果不想添加ID,请满足组合主键(AB)里面的A或者B 与其他字段不能存在组合重复。

如:不满足第二范式,复合主键中的A与字段C组合重复

+------------+-----------+-------------------+

pk pk row

+------------+-----------+-------------------+

A B C

+------------+-----------+-------------------+

A D C

+------------+-----------+-------------------+

A E C

+------------+-----------+-------------------+

改为这样满足第二范式(但是不满足第三范式,字段A与字段C是组合重复):

+---------+------------+-----------+-------------------+

pk row row row

+---------+------------+-----------+-------------------+

1 A B C

+---------+------------+-----------+-------------------+

2 A D C

+---------+------------+-----------+-------------------+

3 A E C

+---------+------------+-----------+-------------------+

官方定义:第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三 范式。

我的理解:在第三范式中字段与字段之间不能存在组合重复

如:不满足第三范式,字段A与字段C组合重复

+---------+------------+-----------+-------------------+---------------+

pk row row row row

+---------+------------+-----------+-------------------+---------------+

1 A B C F

+---------+------------+-----------+-------------------+---------------+

2 A D C G

+---------+------------+-----------+-------------------+---------------+

3 A E C K

+---------+------------+-----------+-------------------+---------------+

改为这样满足第三范式:

表1

+---------+------------+-----------+

pk row row

+---------+------------+-----------+

1 A B

+---------+------------+-----------+

2 A D

+---------+------------+-----------+

3 A E

+---------+------------+-----------+

和表2

+---------+-------------------+------------+

pk row row

+---------+-------------------+------------+

1 C F

+---------+--

http://www.bkjia.com/PHPjc/486482.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/486482.htmlTechArticle网上搜罗了一大堆关于数据库范式理解的文章,都是千律一篇的复制粘贴,连例子都是一模一样,拜托有点创意好不,实在看不下去,自己...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xxl子任务_XXL-JOB v2.1.2 发布,分布式任务调度平台

v2.1.2 Release Notes1、方法任务支持:由原来基于JobHandler类任务开发方式,优化为支持基于方法的任务开发方式;因此,可以支持单个类中开发多个任务方法,进行类复用XxlJob("demoJobHandler")public ReturnT …

程序员如何在业余时间提升自己?

简介: 在自省过程中,我们经常会问自己这么几个问题,这段时间我尝试了什么新事物、有了什么变化、得到什么成果。 近年来,出现越来越多“自主学习”、“业余提升" 的相关话题。 我们经常收到一些同学提问:程序员…

百度打造AIR智能道路系统,可降低90%交通事故

12月27日,百度Create 2021(百度AI开发者大会)在“希壤”APP召开,百度创始人、董事长兼CEO李彦宏在演讲中介绍了AIR(AI Road)智能道路系统。作为软硬一体的路端“自动驾驶系统”, AIR智能道路系统…

java jdbc 连接mysql数据库,Java 通过JDBC连接Mysql数据库

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发…

云原生演进趋势下传统数据库升级实践

简介: 在数字化背景下,我们有许多思考。数据库跟以前那有什么不一样呢?什么是所谓的云原生数据库呢?作为使用数据库的开发者,对数据库的需求有什么变化?如今使用数据库我们一般会提什么样的诉求&#xff1f…

不小心把桌面进程结束了怎么办_微信不小心把天聊死怎么办?试试这3招,分分钟结束“尬聊”...

微信不小心把天“聊死”怎么办?试试这3招,分分钟结束“尬聊”!我现在坐的各位小伙伴们应该都会有以下这种经历吧,那就是你明明和一个人好好的在聊天,但突然不小心把天聊死了,其实遇到这种情况下小伙伴千万不…

openGauss汇聚创新力量,共同打造最具创新力的数据库开源社区

[中国,北京,2021年12月28日] 今天,以“汇聚数据库创新力量 逐梦数字时代星辰大海”为主题的openGauss summit 2021在北京线上线下同步举办。大会现场,openGauss开源社区理事会和技术委员会升级,openGauss社区分委会正式…

matlab基本矩阵运算,matlab的矩阵基本运算问题已知A=[a,b,c;d,e,f;h,I,j],B=[l,m,n;x,y,z;q,o,p]...

共回答了22个问题采纳率:95.5%clear all;clc;syms a b c d e f h l j m n x y z o p qA[a,b,c;d,e,f;h,l,j];B[l,m,n;x,y,z;q,o,p];aasum(A);bbdiag(A);ccA*B;ddA.*B;eeAB;ffA/B;ggA.B;hhA.^B;-----------------ee和ff太长了,没写>> aaaa [ adh, bel, cfj]>…

测试功能范围_软件测试难学吗?

一、想要零基础学好软件测试,当然需要对测试有一个良好的认知。你可以大致的浏览一下标题,先看这些标题从理解上看有没有难度。然后在根据自己的情况来判断软件测试是否难学。1、什么是软件测试?软件测试(英语:Software Testing)&#xff0c…

Spring DefaultListableBeanFactory源码分析

DefaultListableBeanFactory源码分析文章目录 一、概述 二、关键结构与存储 Bean定义的存储结构ConcurrentHashMap的使用和意义 三、核心功能解析 四、总结 DefaultListableBeanFactory源码分析 一、概述 DefaultListableBeanFactory 是 Spring 框架中的一个核心类&#xff…

阿里巴巴代码平台架构的演进之路

简介: 这事儿和伽利略有关。 代码平台的发展之路 相信很多做后端服务的同学在看到单机、读写分离、分片这些字眼一定不会觉得陌生。没错,代码服务在发展的开始阶段面临的问题和其他web服务大体一致,所以使用的解决方案也大体一致。 单机服务…

从工具到平台|默安科技研发安全一体化管理平台正式发布

作者|默安科技 数字化转型浪潮下,软件研发安全的重要性毋庸置疑。 据第三方权威调查,接近92%的已知安全漏洞发生在软件应用程序中,且应用中每1000行代码至少出现一个业务逻辑缺陷。 在近年来如火如荼的攻防演练中,应用程序成为…

如何避免 Go 命令行执行产生“孤儿”进程?

简介: 在 Go 程序当中,如果我们要执行命令时,通常会使用 exec.Command ,也比较好用,通常状况下,可以达到我们的目的,如果我们逻辑当中,需要终止这个进程,则可以快速使用 …

边缘指示函数matlab,matlab图像处理——傅立叶变换边缘提取

第一部分 图像的傅立叶变换一、 实验目的1.了解图像变换的意义和手段;2. 熟悉傅里叶变换的基本性质;3. 熟练掌握FFT的方法及应用;4. 通过实验了解二维频谱的分布特点;5. 通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。二…

杭州南江机器人现在是否量产_传亚马逊正开发家庭机器人,高约1米可移动

点击右上角关注我,成为科技圈最靓的仔!智东西(公众号:zhidxcom)编 | 王颖 导语:据外媒报道,亚马逊计划今年推出一款可移动家庭机器人,高度约为1米,可通过语音控制。智东西7月15日消息&#xff0…

OpenYurt 联手 eKuiper,解决 IoT 场景下边缘流数据处理难题

简介: 云计算的出现促使物联网实现爆炸式增长。在设备规模和业务复杂度不断攀升的趋势之下,边缘计算因其能够将计算能力更靠近网络边缘和设备,从而带来云性能成本的降低,也在这波浪潮之下得到快速发展。 作者 | OpenYurt 社区 云…

OS2ATC 2021:开源协作,和而不同

12月26日由中科院软件所主办,清华大学、北京大学以及鉴释科技承办的第九届开源操作系统年度技术会议(OS2ATC)正式拉开序幕,百余位重量嘉宾莅临现场,围绕大会主题“开源协作,和而不同”共同探讨操作系统开源…

ChaosBlade:从混沌工程实验工具到混沌工程平台

简介: ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,已加入到 CNCF Sandbox 中。起初包含面向多环境、多语言的混沌工程实验工具 chaosblade,到现在发展到面向多集群、多环境、多语言的混沌工程平台 chaosblade-box,平台支持…

python 按行写入_Python中将变量按行写入txt文本

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿

简介: RTS NetSDK是未来直播和通信一体化SDK的基石。在RTS NetSDK之上,加一个Multimedia Framework,以及QoS消息处理,就可以构成一个一体化SDK。这对于已经有自己的Framework的客户来说是个好消息,不需要为直播和通信分…