当前位置: 首页 > news >正文

4. 关系型数据库-基础理论

文章目录

  • 前言
  • 一、ORM框架
  • 二、ACID、CAP、BASE
    • 1. ACID
    • 2. CAP
    • 3. BASE
  • 三、N+1问题
  • 四、Normalization三范式
    • 1. 第一范式(1st NF -列不可再分,原子性)
    • 2. 第二范式(2nd NF-记录的唯一性约束,主键约束 )
    • 3. 第三范式(3rd NF- 字段冗余性的约束,外键约束)
  • 五、FMEA方法论(Failure Mode and Effects Analysis)
  • 六、Profiling和PerformanceSchema查询分析

前言

基础理论

ORM框架、ACID原则、事务Transaction、N+1问题、Normalization三范式、FMEA方法论(Failure Mode and Effects Analysis)、Profiling和PerformanceSchema查询分析等


一、ORM框架

ORM全称为对象关系映射(Object-Relational Mapping),是一种将对象模型和关系数据库之间进行映射的技术。
它的主要目的是为了简化开发人员在应用程序中访问数据库的过程,通过将面向对象的语言中的对象和类转化为关系型数据库中的表和行,使得开发人员可以使用面向对象的思维来操作数据库。

  1. 分类有三种:
  • 基于数据查询的ORM:通过将数据库查询结果映射为对象,以实现数据的读取、过滤和转换。

  • 基于对象操作的ORM:通过将对象转化为对应的SQL语句,以实现数据的增删改查操作。

  • 基于事务的ORM:通过将对象操作组合为一个事务,以确保数据的一致性和完整性。

  1. 优势:
  • 简化数据库操作:ORM工具隐藏了底层数据库的细节,使开发人员可以更加专注于业务逻辑的实现,而不必关心数据库操作的细节。

  • 提高开发效率:ORM工具自动生成数据库操作的代码,减少了手动编写SQL语句的工作量,同时还提供了很多常用的操作方法和功能,加快了开发速度。

  • 提高代码的可维护性:ORM工具将数据库操作和业务逻辑代码分离,使得代码更加清晰和易于维护。

  • 跨数据库的支持:ORM工具可以屏蔽不同数据库之间的差异,开发人员可以在不同的数据库之间切换而无需修改代码。

  • 提供缓存和性能优化:ORM工具通常具有缓存机制和性能优化功能,可以提高数据库查询的效率和性能。

  1. 应用场景:
  • Web应用开发:ORM工具可以方便地与前端开发技术(如HTML、CSS、JavaScript)结合,用于开发各种类型的Web应用。

  • 移动应用开发:ORM工具可以用于移动应用的后端开发,实现与数据库的交互。

  • 数据分析与报表生成:ORM工具可以用于从数据库中提取数据,并进行统计分析和报表生成。

  • 企业级应用开发:ORM工具可以与其他企业级框架(如Spring、Hibernate等)结合使用,实现大规模企业应用的开发和管理。

二、ACID、CAP、BASE

1. ACID

‌数据库事务中的四大特性ACID

ACID 是用来描述数据库事务的属性。反过来说,满足 ACID 属性的一系列数据库操作被称为事务。

  • A:原子性(Atomicity):一个事务中的所有操作,要么全部完成,要么全部不完成。事务是一个不可分割的最小操作单元,意味着 “全有或全无”(All or Nothing)。

  • C:一致性(Consistency):在一个事务执行之前和执行之后,也就是事务开始和完成时,数据都必须保持一致状态。意味着数据库总是从一个一致性的状态转换到另外一个一致性的状态。

  • I:隔离性(Isolation):在并发环境中,当不同的事务同时操作相同的数据时,事务之间互不影响。事务通常来说是不可见的,意味着一个事务所做的修改在最终提交以前,对其他事务是不可见的。

  • D:持久性(Durability):只要事务成功结束,它对数据库所做的更新就必须永久的保存下来。

数据库事务在实现时会将一次事务涉及的所有操作全部纳入到一个不可分割的执行单元,该执行单元中的所有操作要么都成功,要么都失败,只要其中任一操作执行失败,都将导致整个事务的回滚。

下图解释了 ACID 在数据库事务中的含义。

对于单个节点的事务,数据库都是通过并发控制和恢复机制(日志技术)保证事务的ACID特性。
对于跨多个节点的分布式事务,通过两阶段提交协议(two phase commiting)来保证事务的ACID。

神书 DDIA (Designing Data Intensive Applications) 中关于 ACID 有几点很好的见地,值得我们思考:

  • 一致性其实是应用程序的责任,而不是数据库的职责范围。应用程序可以使用原子性和隔离来保证数据的一致性。而数据库系统只能保证各种数据库规则被执行了。

  • ACID 四个属性中只有隔离是用来描述并发情况的,原子性并不描述并发情况。

  • 各个弱隔离级别都会带来一些限制,我们需要清楚其底层机制。

2. CAP

CAP理论是分布式系统设计中的基础理论,由计算机科学家Eric Brewer在2000年提出。该理论指出,任何分布式系统,最多只能同时满足,一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三个特性中的两个。

  1. 一致性(C):
    所有节点在同一时间看到的数据完全相同。对分布式系统来说,写入操作成功后,所有读取操作都应该获得最新的数据。

  2. 可用性(A):
    系统提供的服务必须一直处于可用状态,对于用户的每一个请求总能在有限时间内返回结果(不保证是最新数据)。

  3. 分区容忍性(P):
    相对于传统单机数据库,分布式系统在遇到网络分区(节点间网络故障导致消息丢失或延迟)时,仍然能够继续对外提供服务。

3. BASE

BASE理论是对CAP中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。

  1. Basically Available(基本可用)

  2. Soft state(软状态)

  3. Eventually consistent(最终一致性)

三、N+1问题

四、Normalization三范式

三范式是具有最小冗余的表结构。具体如下:

1. 第一范式(1st NF -列不可再分,原子性)

第一范式的目标是确保每列的原子性,每列都是不可再分的最小数据单元(也称为最小的原子单元)。

2. 第二范式(2nd NF-记录的唯一性约束,主键约束 )

第二范式要求每个表只描述一件事情。满足第一范式,并且表中非主键列不存在对主键的部分依赖

3. 第三范式(3rd NF- 字段冗余性的约束,外键约束)

第三范式定义是,要求字段无冗余。满足第二范式,并且表中的列不存在对非主键列的传递依赖
除了主键订单编号外,顾客姓名依赖于非主键顾客编号。

五、FMEA方法论(Failure Mode and Effects Analysis)

六、Profiling和PerformanceSchema查询分析


本文的引用仅限自我学习如有侵权,请联系作者删除。
参考知识


http://www.jsqmd.com/news/1161561/

相关文章:

  • Umi-OCR终极指南:免费离线OCR软件完整使用教程
  • Java Agent架构设计:ReAct工程化落地的四层解耦与生产就绪实践
  • 小明学架构师的第三课:怎么判断一个架构“好不好“,架构质量属性与评估方法
  • 终极解决方案:3分钟修复Windows 10/11的PL-2303驱动兼容性问题
  • 快餐加盟哪家靠谱?2026专业餐饮加盟品牌优选:渝八两快餐店加盟/快餐加盟费用/快餐加盟店推荐 - 栗子测评
  • 终极指南:如何快速下载国家中小学智慧教育平台的电子课本?
  • 终极STL转STEP转换指南:如何将3D网格文件转换为CAD友好格式
  • 亚马逊玩具卖家必看:2026最新TIC认证全攻略,从懵圈到通关一篇搞定
  • Fast-GitHub:国内开发者必备的GitHub加速神器,下载速度提升60倍
  • Qwythos-9B:企业级无审查推理模型的5大技术突破与实战部署指南
  • 内行干货|2026上海名表回收行情实测!正规估价避坑与靠谱门店榜单 - 分享测评官
  • 终极指南:无需Office软件,3分钟在浏览器中查看PPT文件
  • 南京漏水点上门检测怎么选?4 项标准甄别专业测漏服务 - 徽顺虹
  • 牙齿护理笔记
  • day01-27.移除元素
  • 数据的原码、反码、补码和移码
  • (4-4)
  • JAVA:Spring Boot 集成 JSQLParser 解析和操作 SQL
  • ZFX山海证券外汇:从公开信息出发,对照外汇行业规范化表达与流程清晰度
  • CentOS 7 一键部署 Zabbix 监控平台实战指南
  • JX-A7T 电池供电 WiFi 配网失败完全指南:为什么电池供电时无法配网?
  • 2026实力之选鹤岗名表名包奢侈品回收万国积家朗格爱马仕迪奥圣罗兰实测公安备案门店全城上门私密交易 - 谊识预商务
  • 如何彻底摆脱网盘限速:八大平台直链下载助手完全指南
  • AndroidMP3Recorder与LAME集成:深入理解NDK与JNI在音频编码中的应用
  • 2026 年 7 月黄金回收 TOP5 测评 杭州连锁小店差异梳理 - 每日生活报
  • 【AI编程时代必备技能】:3步完成Cursor专属Prettier深度定制,提速开发300%
  • 工业安全AI监测新范式:88.5% mAP高精度安全帽检测解决方案
  • Bidfans全局参数校验体系筑牢接口安全与规范基石
  • 并行并查集:用于并发连接查询的无锁实现探索7
  • Formality:时序变换(五)(触发器复制)