数据库设计范式及数据冗余存储

数据库和数据仓库的区别 一、数据仓库的概念数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的“Building the Data Warehouse”(《建立数据仓库》)一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的... 阅读详情

数据库设计范式及数据冗余存储

数据库三大范式

  • 第一范式:数据库表中的每一字段都是不可再分的原子值
  • 第二范式:数据库表中的非主键字段必须唯一依赖全部的主键而不是部分的主键
  • 第三范式:数据库表中的非主键必须直接依赖于主键而不是间接依赖于主键

举例来说,比如订单与商品与消费者三者关系建表。订单与商品之间是多对多的关系,一个订单对应多个商品,一个商品对应多个订单。

第一范式,记录信息必须拆分到最细。比如订单信息包含订单id、订单送货地址等,如果两个信息并在一起存,则会出现多个不同id带有同一个订单送货地址。拆开之后,在同一个表格仍然会有,这个情况,于是需要将订单地址再单独建表,组织成多对一的关系进行存储。

第二范式,是基于一个表格中的主键不是单列而是多列的情况。比如订单和商品同时存储在同一张表,订单id和商品id作为共同的主键,则此时,商品名称会只依赖与商品id而不是两个id的组合。结果就是,不同的订单id如果带有相同的商品,其订单id和商品id共同组成了唯一性,但是商品名称则会出现大量冗余的情况。所以应该将订单和商品拆表进行存储。

第三范式,是指非主键列不能依赖于另一个非主键列,而应该直接依赖于主键列。比如订单和消费者信息,订单id为主键,消费者id与订单id直接相关,消费者信息如姓名等,如果同存一张表,则关联于非主键信息消费者id,再关联主键订单id。这样会造成,一张表存储大量冗余消费者信息。所以应该对消费者独立建表。

以上的例子并不是非常的准确贴切,不过基本也可以看出核心的矛盾。即是说,三大范式的目的都是为了去除数据的冗余存储,减少数据库存储大量冗余信息,以提高数据库的性能。

数据冗余存储

关于数据冗余存储,在高可用的存储系统设计过程,频繁的使用了数据冗余来保证其高可用。

参考google file system的设计,数据节点乘三,每个数据都被存储了三次,写入性能必然会受到一定的影响,查找性能由于彼此重复并不会出现过多的性能破坏。数据冗余在其中的设计更多的是为了保证,一个数据节点不可用,还有其他的节点可以用于访问数据。

这也是数据冗余存储设计的一个核心目的,保证数据一直都是可以访问的。

在数据库设计中,数据冗余存储的另一个目的则是为了提高性能,与降低冗余的目的一致。具体来说,减少大量重复的数据存储在一张表中,是为了在对表进行检索的时候,减少访问过多重复而又无用处的数据,增加访问到核心数据的速度。对于需要同时访问的数据,可以使用关联的方式,在A表中访问后,基于A表得到的信息去B表在进行关联查询。这种操作近似于进行哈希搜索。比起存在一起进行顺序搜索自然是有其优势。劣势就是需要关联查询,这也是性能消耗的点。

当存储的数据量不是很大的时候,冗余存储带来的性能消耗,比起关联查询带来的性能消耗要小的多,这时候,是允许降低范式进行冗余存储的。

结论

上述的关于尽可能减少冗余存储,和允许适当的冗余存储,两者本身并没有矛盾。没有实践的理论永远不可信。上述的理论有实践基础,但还不够充分,只是他打开了视角,在做数据冗余存储设计的时候或者数据库设计的时候,可以提供一些设计方向,而不一定需要死磕某一些设计原则。多尝试即可。

深度学习中常用的几种卷积(下篇):膨胀卷积、可分离卷积(深度可分离、空间可分离)、分组卷积(附Pytorch测试代码) 膨胀卷积也称为扩张卷积或空洞卷积,一般可通过对标准二维卷积的卷积核设置合适的膨胀率(具体地指卷积核元素之间的距离)实现。合理利用膨胀卷积可在不引入其他参数的同时,扩大输出中元素的感受野,提高特征的全局表示能力。下面通过展示几个不同膨胀率下的卷积核大小以及感受野变化情况,可以更直观的理解:图中灰色为输入,蓝色为卷积核,黄色为输出。1)dilation=1:表示卷积核元素之间距离为1,使用0进行大小为dilation-1=0的填充(这是默认情况),因此。 阅读详情

相关推荐

【新华三】通过路由复制实现Public与VRF路由互通

如上图所示,S6900设备里有两张表,一张是public路由表,默认所有的路由都存放在public路由表里;除此之外还创建了VRF test,因此此设备还有VRF test路由表。通过路由复制实现Public路由和VRF路由互通,默认情况下VRF里的路由单独一张路由表,默认情况下与public路由表相互隔离,两张表之间不可互访。此时的public路由表里面并没有test的路由表。public路由表与VRF路由表之间相互隔离。此时VRF test里的路由也没有其他VRF或Public里的路由,相互隔离。

五大连池的镜子 5281

数据库设计之三大范式及举例说明

三范式是一种重要的数据设计原则,通过避免数据冗余、减少更新异常,确保数据的规范化、一致性和效率。通过将非主键字段与主键字段关联,可以避免数据冗余和更新异常。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。数据库的三范式(3NF)是一种数据设计原则,旨在减少数据冗余和更新异常,提高数据存储的规范性、一致性和效率。通过将重复的数据拆分成独立的表,从而避免了数据冗余和复杂的更新操作。通过拆分成独立的表,可以消除冗余的字段,并确保数据的一致性和更新的合理性。

weixin_53390884的博客 2284

单片机按键识别篇---单击---双击----长按

  最近做一任务需要使用一个按键实现三种功能,分别是按键单击功能,按键双击功能和按键长按功能,可能之前没有接触过这类按键复用情况,顶多也只是简单识别单击和长按,没有想过双击以上按键功能,也是绞尽脑汁,想了半天,又上网看了些例程,算是对于按键的识别有点小小的了解,感觉这个功能挺实用,在此做个随笔。 一、思路   1.识别长按操作思路:我们使用系统定时器定时,然后让系统每过一段时间去扫描按键I/O...

weixin_30311605的博客 3660

数据库设计的三范式

第二范式(2NF):在满足第一范式的基础上,确保每个非主键列完全依赖于主键。换句话说,每个非主键列的值都应该与主键直接相关,而不是与其他非主键列相关。第三范式(3NF):在满足第二范式的基础上,确保每个非主键列之间没有传递依赖关系。需要注意的是,三范式并不是绝对的,有时候为了满足特定的需求,可能需要在设计中做出一些妥协或违反某些范式。第一范式(1NF):确保每个数据表中的每个列都是原子的,即不可再分。数据库设计的三范式是一种规范化的设计方法,旨在减少数据冗余和提高数据的一致性。

qq_24130841的博客 593

【逆强化学习-1】学徒学习(Apprenticeship Learning)

逆强化学习算法1:学徒学习。算法原理+算法步骤+代码+仿真:一个基于gym的小车上山的仿真。附赠学徒学习+Q-Table及学徒学习+DQN的全套代码。

体会编程语言独到的美 7495

Java utgard连接OPC问题记录

怎么开启是个问题, 是在引入openscada的jar包里的Sever类中修改,这就犯难了, 其实没必要, 只要在自己项目下创建与openscada中Server类相同的路径,并复制Server过去改就行了, 项目会优先使用本地类,像下面这样。奇迹发生了,0x00000005解决. 注: 我的安全补丁编码跟网上查到的并不一样, 所以最初没有删,后来全都删了就好了,这个编码规则咱也不知道.安全日志中记录用户登录行为, OPC通信需要使用Windows系统用户进行登录, 如果用户名密码错误这里会有相关记录.

wangxin1949的博客 2840

数据库的三大范式

数据库的三范式是为了减少数据冗余 第一范式(1NF) 第一范式:确定每列保持的原子性(列不可分) 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库满足了第一范式 例:地址可以细分为省、市、区… 不满足第一范式则不是关系型数据库 第二范式(2NF) 第二范式:确保表中的每列都和主键相关 也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在一张数据库表中 例:比如要设计一个订单信息,因为订单中可能会有多种商品,所以要将订单编号和商品编号作为数据库的联合

Bonjour_h的博客 433

避坑指南:Winbond W25Q256JV QSPI Flash状态寄存器那些坑(含QE位不可改的解决方案)

本文深度解析Winbond W25Q256JV QSPI Flash状态寄存器的常见问题与解决方案,重点解决QE位不可修改、写保护区域异常等典型问题。通过实战代码示例和寄存器配置技巧,帮助开发者高效完成Flash读写测试与性能优化,避免常见设计陷阱。

ol7890123的博客 309

服务器硬盘数据冗余,磁盘存储冗余是什么意思?

全部展开多个备份可提高系统可靠性!冗余系统配件主要包括:电源: 高端服务器产品中通常使用双电源系统. 这两个电源是负载平衡的,也就是说,它们都在系统运行时为系统供电. 加载. 某些服务器系统实现DC冗余,而其他服务器产品(如美光的NetFRAME 9000)实现AC和DC完全冗余.存储子系统: 在整个服务器系统中,存储子系统最容易出现故障. 以下方法可以实现子系统的冗余.磁盘镜像: 将相同的数据分...

weixin_39598584的博客 1万+

电机FOC控制实战:STM32 CubeMX配置六路互补PWM与死区优化

本文详细介绍了如何使用STM32 CubeMX配置六路互补PWM与死区优化,实现电机FOC控制。通过实战经验分享,包括时钟配置、定时器设置、死区时间计算及优化技巧,帮助开发者避免常见问题,提升电机控制性能。特别适用于STM32G4系列的无刷电机驱动应用。

weixin_29193259的博客 402

Unity游戏Mono注入实战:从反编译到功能扩展

本文详细介绍了Unity游戏Mono注入的完整实战流程,从使用dnSpy反编译游戏核心逻辑,到编写自定义C#功能DLL,再到利用SharpMonoInjector进行动态注入。文章深入讲解了如何通过Harmony库拦截修改游戏方法,并介绍了使用MelonLoader框架和UnityExplorer进行高级模组开发与调试,最终通过一个游戏对象透视(ESP)案例演示了功能扩展的实现。

weixin_29018335的博客 460

什么是冗余存储

什么是冗余存储

2301_77836489的博客 1777

出现 Connection Failed [MySQL][ODBC Driver]Access denied for user ‘root‘@x(using password:YES)解决方法

Connection Failed [MySQL][ODBC 8.0(w) Driver]Access denied for user 'root'@xxxx (using password:YES)

码农研究僧的博客 1061

反范式设计:打破数据库规范的艺术

反范式设计是数据库设计的一种技巧,它在某些情况下可以提供性能优势和更简单的查询操作。然而,反范式设计也需要谨慎使用,因为它引入了数据冗余,可能增加数据维护的复杂性。范式的目标是消除数据中的重复信息,从而降低存储需求、提高数据一致性和减少数据插入、更新和删除操作的复杂性。数据库设计中的范式是一种重要的规范,它有助于确保数据的一致性和有效性。在反范式设计中,允许在数据库中引入数据冗余,即相同的数据可能出现在多个表中。而不采用反范式设计的情况下,同一个查询可能需要连接多个表,增加了查询的复杂性。

qq_40427481的博客 364

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

IEM模型,地表粗糙度模拟

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

#18 数据仓库(hive)和数据库(mysql)有什么区别?

数据仓库(hive)和数据库(mysql)的区别 数据库(DB=Data Base) 数据仓库(DW=Data Warehouse) (1)数据的类型 数据库(mysql):在线交易数据 数据仓库(hive):历史数据 (2)建模 数据库(mysql):数据库的建模遵循三范式。 数据仓库(hive):采用维建建模。 (3)存储 数据库(mysql):存储在线交易数...

陆山右的技术博客 700

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数据库设计与数据仓库设计区别

数据库设计与数据仓库设计区别 针对数据库设计一般用的是三范式。因为数据库的数据会用于频繁的增删改查,因此出于减少系统压力考虑,会尽量减少冗余,从而提升系统频繁读写数据的效率。而星型、雪花型则是数据仓库的设计模式。与数据库的使用目的不同,数据仓库更多的是存储历史数据,不会有频繁的读写。其主要是用于从历史数据中进行分析,进而获取指导性的生产指引,生成报表等等。而这时数据库设计中的范式拆表以提升效率的方法这时却会适得其反(因为历史数据的量相当庞大,而往往数据分析、BI等又需要从多个表中检索数据来进行,这时大表

m0_37259237的博客 732

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数据库与数据仓库的区别是什么

简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。 数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入...

cuixie2370的博客 104

数据仓库和数据库的区别

1、最直白的区别:数据仓库是面向主题,存储的是历史数据。数据库是面向事务,存储的都是当前在线交易的业务数据; 2、数据仓库是尽量引入冗余数据,保证数据的完整性,采用反范式设计。而数据库是尽量避免数据冗余,采用的是范式规则; 3、本质区别:数据仓库目的是为了分析数据,数据库目的是为了捕获数据; 什么是范式?什么是反范式? 范式强调的没有任何依赖关系,反范式强调的有依赖关系,比如说查询一条数据...

Sunshine_2211468152的博客 4168

基于分布式文件系统Hadoop的数据仓库Hive

Hadoop+Hive的架构图 什么是数据仓库?它与数据库的区别在哪里? 简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。 数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个...

vectorX的博客 659

数据库和数据仓库区别

数据库是面向事务的设计,数据仓库是面向主题设计的。数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反 范式的方式来设计。数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。(维 是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着...

weixin_30487317的博客 225

数据库三范式是什么?

什么是范式? 简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。 什么是三大范式? 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。 第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必...

lizhenglyg的博客 7070

数据库冗余

数据冗余 1.关系数据库的数据冗余形成的原因:表的重复、属性的重复、元组的重复、属性值的重复。有的数据冗余用于数据间建立联系、数据安全或为了数据使用的便利,是必需的数据冗余,而其余的数据冗余为非必需的数据冗余应尽量予以消除。按属性值域集合基的特点将其分为有限类和无限类。无限类属性值偶尔重复不是数据冗余,有限类属性值的重复由一对多或多对多的关系所致,可相机处理之。 关系数据库中的数据冗余主要是指...

weixin_37543460的博客 4027

数据库设计范式

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

weixin_30947043的博客 96

数据库三范式

在设计关系数据库时,遵从不同的规范

星月工厂 1222

数据库设计三大范式

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

心静思远 302
上一篇: 【PAT】1001 A+B Format (20)
下一篇: 【PAT】1005 Spell It Right (20)
浆糊串磕楠
博客等级 码龄10年 4粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值