谈谈我对数据库三范式的字面理解

数据库和区块链的异同 链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 前几日有好友询问我关于数据库和区块链的异同,我觉得这个问题非常好,今天刚好有空把当时的聊天情况回忆了一下,可能很多人都有这个困惑,今天就结合相关资料来聊聊,本文存在很多个人倾向性意见,仅供参考。 大部分关于这种命题,一般会用比较两项技术的优缺点来进行,我认为这是和稀泥的方法,首先我认为把区块链和数据库作比较是毫无意义... 阅读详情

今天看了看《数据结构系统原理》(黄靖 主编)这本书(备考自考,不然以我的品味,直接豆瓣9.0以上,哈哈哈)
首先看下书上给出的定义:

  • 第一范式(1NF):设 R 为任一给定关系,若 R 中的每个列与行的交点处的取值都是不可再分的基本元素,则 R 为第一范式
  • 第二范式(2NF):设 R 为任一给定关系,若 R 为 1NF,且其所有非主属性都完全函数依赖于候选关键字,则 R 为第二范式
  • 第三范式(3NF):设 R 为任一给定关系,若 R 为 2NF,且每一个非主属性都不传递函数依赖关系于候选关键字,则 R 为第三范式

个人理解:

  • 第一范式(1NF):确保一张表的所有column(或字段)都是不可再分的,这一点我认同书上的说法,比较好理解(针对字段)
  • 第二范式(2NF):首先一张表至少定义一个主键或联合主键,其次确保非主键的字段只能根据主键(如果是联合主键,也只能是联合主键,不能是联合主键的子集)查询的到(针对主键)
  • 第三范式(3NF):确保每一个非主键,不能具有主键的特性(主键的特性:能够根据它查询到唯一一条数据)(针对表)
    • 举个反例:学生表有学号(主键),姓名,年龄, 系号,系名,系主任
    • 首先存在传递依赖关系:学号->学生->系号->系名->系主任
    • 根据我的定义,该表存在非主键<系号>拥有主键特性,因为可以根据系号查询唯一的<系名>和<系主任>
    • 所以应当将<系名>和<系主任>移至系表,学生表可保留<系号>来索引系表
  • 第三范式(3NF):第一次应该理解错了。应该是非主键关键字,都必须直接依赖主键,不能通过传递依赖的方式依赖主键。

关于什么叫候选关键字,可以参考我的另一篇博客:传送门
函数依赖:学生的姓名可以由学号决定,即姓名依赖学号。就像 y = f(x), 可以看出 y 的取值大小依赖于 x 的大小:传送门

综上,个人浅薄理解,若有错误请指出,核证后立即改正

Rijndael密码算法 一 什么是Rijndael Rijndael是由比利时密码学家设计的分组密码算法,于2000年被选为新一代的标准密码算法——AES。今后会有越来越多的密码软件支持这种算法。 Rijndael的分组长度和密钥长度可以分别以32比特为单位在128比特和256比特的范围内进行选择。不过在AES的规格中,分组长度固定为128比特,密钥长度只有128、192和256比特三种。 二 Rijndael的加... 阅读详情

相关推荐

SAP-ABAP:SAP客户端管理核心事务码SCC4深度解析

SAP客户端管理核心事务码SCC4深度解析

baidu_35680696的博客 1568

数据库三大范式的理解

一: 引言 作为一个数据库的学习者,搞懂关系数据库的三大范式是很有用的。然而教科书上有关数据库范式的介绍都是采用学术性的定义,语法羞涩,让人难懂,故写下自己对数据库范式的理解,给初学者提供帮助,也备日后查看。 本文不介绍规范化程度高于3NF的范式,因为其在实际应用中基本不会用到,原因也是很明显的(查询代价变大),因此,对于很多大型复杂的系统,其数据库设计都...

weixin_30301449的博客 789

跟着团子学SAP CO:基于成本的完工百分比结算:Cost-based POC(以项目为例)

本文以英国及北美会计准则下的基于成本的POC的销售型项目结算对PS模块中的完工百分比进行介绍

Lucas1211的博客 2万+

三个范式的定义与理解

◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。 考虑这样一个表:【联系人】(姓名,性别,电话) 如果在实际场景中,一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF。要符合 1NF 我们只需把列(电话)拆分,即:【联系人】(姓名,性别,家庭电话,公司电话)。1NF 很好辨别,但是 2NF 和 3NF 就容易搞混淆。 ◆ 第二范式(2N...

weixin_34257076的博客 1989

Visual studio 2013 配置 Halcon 13 (非抄袭)

Visual studio 2013 配置 Halcon 13.0.2.2 (其他版本适用) 针对网上抄袭的配置方法均不可用,写了一篇亲试可行的配制方法。如下: 1.下载Halcon安装后(C:\Program Files\MVTec\HALCON-13.0) 添加环境变量,(按下win按键,键入“环境变量”,出现 “编辑系统环境变量”后按下enter即可打开,下方找到“环境变量”按钮)的系...

huyanjackson的专栏 1042

FME入门系列教程3-带你玩转GIS数据搬运与处理

FME(Feature Manipulation Engine)就像GIS界的"瑞士军刀",它能轻松解决90%的数据处理难题。我最初接触FME是因为要处理200多个不同格式的CAD地形图,传统方法需要1周时间,用FME只花了2小时!:支持300+数据格式(Shapefile、GeoJSON、CAD、Excel等)添加Reader(数据源):选择示例数据roads.shp。添加Writer(输出):设置输出为GeoJSON格式。:将常用流程保存为Template(.fmwt)

weixin_41234946的博客 1244

谈谈你对数据库三大范式及反范式的理解

范式 第一范式(1NF) 一个列表的值不能再分割。 例如,假设表中有一个列表示用户的爱好 这个列的值可是:足球 篮球 乒乓球 但是这个值是可以再分割的,分成三个值,分为:足球、篮球、乒乓球 第二范式(2NF) 表中非主键列都必须依赖于主键列 例如,订单表中有订单编号,并且该列是主键列 注意,这几个非主键列中,产品生产地是不依赖于订单编号的,所以这个列不应该出现在订单表中 第三范式(3NF) 直接依赖于主键列,不能间接依赖于,不能依赖传递 例如,订单表中有订单编号,并且该列是主键 注意,顾客编号依赖于

jj89929665的博客 362

Windows11上pip安装IsaacSim5.1.0与IsaacLab

本文详细介绍了CUDA Toolkit 12.8.0、IsaacSim和IsaacLab的安装过程。首先从NVIDIA官网下载并安装CUDA Toolkit 12.8.0,然后通过miniforge创建conda环境(env_isaacsim)安装IsaacSim相关Python包,解决了Windows长路径问题。成功运行IsaacSim后,克隆IsaacLab仓库并完成安装验证,最后通过创建空场景测试环境配置。整个安装过程包含详细的命令行操作和问题解决方法,为机器人仿真开发环境搭建提供了完整指导。

拥抱具身智能,昇腾Ascend C 378

对数据库三大范式的理解

在解释数据库三大范式之前,先介绍一些概念,理解这些概念是必须的。一、函数依赖:关系理论中函数依赖是指关系中属性间的对应关系。        (如:关系中对于属性(组)X的每一个值,属性(组)Y只有唯一的值与之对应,则称Y函数依赖于X,或称X函数决定Y。记作X-&gt;Y。其中X称为决定因素。)举个属性X-&gt;Y的具体例子:“系”系代码系名系地址系电话系专业设置001外国语学院一教8888商务英...

阿树的博客 6103

一点击打印电脑就卡死?资源管理器停止工作的解决方法

Windows11共享的HP1022n打印机导致客户端打印时资源管理器崩溃卡死,电脑停止工作。

gary18的专栏 583

基于STM32的嵌入式平台实现EtherCAT主站

本文将介绍如何在基于STM32的嵌入式平台上构建EtherCAT主站,并提供相应的源代码。使用SOEM库提供的API函数,我们可以实现与EtherCAT从站设备的实时通信和数据交换。在STM32的代码中,使用SOEM库提供的API函数初始化EtherCAT主站。在SOEM库中,我们可以找到EtherCAT主站的实现代码和相关的API函数。使用SOEM库提供的API函数实现EtherCAT主站的功能,包括发送和接收EtherCAT数据帧、处理从站设备的状态等。确保连接正常并且设备能够相互通信。

CodeSageX的博客 2833

浅谈编程范式

| 前言 相信绝大部分开发人员、DBA都听过范式这个词,在MySQL中有第一范式、第二范式、第三范式、BCNF范式等,在开发中也有相应的范式,专业词汇叫编程范式(ProgrammingParadigm)。由于笔者能力、精力都有限,本篇主要通过针对同一业务场景,基于编程范式的概念,核心原理以及用例实现来对比不同范式及其实现业务功能的差异。 范式分类 如图1所示,范式可以简单分为三类: 图...

woqutechteam的博客 1万+

物联网Node-Red开发教程-第6章 HTTP与Web服务

本章摘要(147字): 本章系统讲解了Node-RED中的HTTP节点应用,重点包括: 三大核心HTTP节点功能:http in(接收请求)、http response(返回响应)、http request(调用外部API) 详细演示了REST API开发流程,包括路径参数(req.params)处理和响应构造 提供了创建Hello World API、传感器数据接口等实用示例 涵盖HTTP方法特性、状态码设置及响应头配置等关键知识点 通过流程图和JSON配置直观展示节点连接方式,帮助快速掌握Web服务开发

shihui2003的博客 264

互联网大厂有哪些分库分表的思路和技巧?

分库分表分库分表是随着业务的不断发展,单库单表无法承载整体的数据存储时,采取的一种将整体数据分散存储到不同服务器上的不同数据库中的不同数据表的存储方案。分库分表能够有效的缓解数据的存储压...

架构师小秘圈 184

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

基于知识图谱与Neo4j的数据库课程智能问答系统构建

知识图谱作为结构化组织复杂知识的技术,通过节点和边描述概念间的语义关联,能够有效覆盖传统关键词检索难以处理的跨知识点问题。图数据库Neo4j提供属性图存储与Cypher查询能力,天然适配“概念—关系—概念”的网状知识表达。在智能问答场景中,知识图谱不仅支持定义、比较、因果等多类意图识别,还能输出推理路径,提升答案的可解释性。这一技术组合在在线教育、课程答疑、学习路径推荐等领域有广泛的应用价值。本文以数据库课程为切入点,基于Python完成语料清洗与实体链接,使用Neo4j存储课程知识图谱,并通过Flask封

weixin_33270920的博客 244

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

2020年终小结

文章目录1凄凄切切群1.2 发送到发送到 1凄凄切切群 1.2 发送到发送到

个人中心 323

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

关于三大范式的理解(浅显易懂)

第一范式(原子性) 是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值 不符合第一范式 学号 姓名 班级信息 001 张三 园艺园林学院园林172 002 李四 信息工程学院计科182 符合...

weixin_44491927的博客 5142

数据库三范式简单理解------阿冬专栏

数据库设计当中三范式是经常遇到的,如果实际项目数据库设计中能达到第三范式基本也就满足要求了,那么如何快速有效的理解三个范式,同时应用于实际项目中去呢? 首先看看标准定义的三个范式: 第一范式(1NF) 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个

阿冬专栏 4847

范数知识整理

关于范数的知识整理 向量范数是定义了向量的类似于长度的性质,满足正定,齐次,三角不等式的关系就称作范数。 向量的范数一般有L0, L1, L2与L_infinity范数, L0范数: 定义为 即非0元素个数。 L0范数表示向量中非零元素的个数。如果我们使用L0来规则化参数向量w,就是希望w的元素大部分都为零。L0范数的这个属性,使其非常适用于机器学习中的稀疏编码。在特...

fengqiyunfeiyangya的博客 1019

数据库设计三大范式

第一范式(1NF)无重复的列   所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。 1NF的定义为:符合1N...

xuelem 今天你学了么? 507

数据库三大范式的理解(简单易懂)

什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。 第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据...

weixin_33851604的博客 2425

数据库三范式的简单理解

参考书籍:数据库系统概论第四版-王珊、萨师煊 数据库范式 范式的级别       设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。       目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF

Howard的博客 4万+

关于数据库范式的理解

范式介绍 关系数据库中的关系满足一定的要求,满足不同程度要求的为不同范式。常见范式有第一范式(1NF),第二范式(2NF),第三范式(3NF),BC范式(BCNF)等,满足的范式越高,对数据库关系的要求就越高。同时范式也有传递性,满足第三范式必定会满足第一,第二范式。总体来说,范式是为了消除数据库中属性间依赖关系而存在的关系要求。 基础概念介绍 正式介绍范式之前需要对数据库依赖关系进行简单介绍。 ...

Master_Kin的博客 8199

数据库范式的理解

第一范式(1NF)无重复的列1NF的定义为:符合1NF的关系中的每个属性都不可再分所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个...

大数据星球-浪尖 736

第三范式的简单理解

第三范式(3NF)          定义:如果关系模式满足第二范式,且所有非主标识属性对任何候选关键字都不存在传递依赖,则称关系R是属于第三范式。          简单的说,第三范式要满足以下的条件: 首先要满足第二范式,表示每个非主标识属性都函数依赖于主键,而不是主键的一部分。 其次非主属性之间不存在函数依赖,否则非主属性之间存在了函数依赖,就会存在传递依赖,这样就不满足第三范式。

3706
上一篇: 查找字符数组中出现次数最多的字符
下一篇: SQL多表查询
若水无言
博客等级 码龄10年 10粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值