4. 关系型数据库-基础理论 文章目录前言一、ORM框架二、ACID、CAP、BASE1. ACID2. CAP3. BASE三、N1问题四、Normalization三范式1. 第一范式1st NF 列不可再分原子性2. 第二范式2nd NF记录的唯一性约束主键约束 )3. 第三范式3rd NF 字段冗余性的约束外键约束五、FMEA方法论Failure Mode and Effects Analysis六、Profiling和PerformanceSchema查询分析前言基础理论ORM框架、ACID原则、事务Transaction、N1问题、Normalization三范式、FMEA方法论Failure Mode and Effects Analysis、Profiling和PerformanceSchema查询分析等一、ORM框架ORM全称为对象关系映射Object-Relational Mapping是一种将对象模型和关系数据库之间进行映射的技术。它的主要目的是为了简化开发人员在应用程序中访问数据库的过程通过将面向对象的语言中的对象和类转化为关系型数据库中的表和行使得开发人员可以使用面向对象的思维来操作数据库。分类有三种基于数据查询的ORM通过将数据库查询结果映射为对象以实现数据的读取、过滤和转换。基于对象操作的ORM通过将对象转化为对应的SQL语句以实现数据的增删改查操作。基于事务的ORM通过将对象操作组合为一个事务以确保数据的一致性和完整性。优势简化数据库操作ORM工具隐藏了底层数据库的细节使开发人员可以更加专注于业务逻辑的实现而不必关心数据库操作的细节。提高开发效率ORM工具自动生成数据库操作的代码减少了手动编写SQL语句的工作量同时还提供了很多常用的操作方法和功能加快了开发速度。提高代码的可维护性ORM工具将数据库操作和业务逻辑代码分离使得代码更加清晰和易于维护。跨数据库的支持ORM工具可以屏蔽不同数据库之间的差异开发人员可以在不同的数据库之间切换而无需修改代码。提供缓存和性能优化ORM工具通常具有缓存机制和性能优化功能可以提高数据库查询的效率和性能。应用场景Web应用开发ORM工具可以方便地与前端开发技术如HTML、CSS、JavaScript结合用于开发各种类型的Web应用。移动应用开发ORM工具可以用于移动应用的后端开发实现与数据库的交互。数据分析与报表生成ORM工具可以用于从数据库中提取数据并进行统计分析和报表生成。企业级应用开发ORM工具可以与其他企业级框架如Spring、Hibernate等结合使用实现大规模企业应用的开发和管理。二、ACID、CAP、BASE1. 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. CAPCAP理论是分布式系统设计中的基础理论由计算机科学家Eric Brewer在2000年提出。该理论指出任何分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三个特性中的两个。一致性C所有节点在同一时间看到的数据完全相同。对分布式系统来说写入操作成功后所有读取操作都应该获得最新的数据。可用性A系统提供的服务必须一直处于可用状态对于用户的每一个请求总能在有限时间内返回结果不保证是最新数据。分区容忍性P相对于传统单机数据库分布式系统在遇到网络分区节点间网络故障导致消息丢失或延迟时仍然能够继续对外提供服务。3. BASEBASE理论是对CAP中的一致性和可用性进行一个权衡的结果理论的核心思想就是我们无法做到强一致但每个应用都可以根据自身的业务特点采用适当的方式来使系统达到最终一致性。Basically Available基本可用Soft state软状态Eventually consistent最终一致性三、N1问题四、Normalization三范式三范式是具有最小冗余的表结构。具体如下1. 第一范式1st NF 列不可再分原子性第一范式的目标是确保每列的原子性每列都是不可再分的最小数据单元也称为最小的原子单元。2. 第二范式2nd NF记录的唯一性约束主键约束 )第二范式要求每个表只描述一件事情。满足第一范式并且表中非主键列不存在对主键的部分依赖。3. 第三范式3rd NF 字段冗余性的约束外键约束第三范式定义是要求字段无冗余。满足第二范式并且表中的列不存在对非主键列的传递依赖。除了主键订单编号外顾客姓名依赖于非主键顾客编号。五、FMEA方法论Failure Mode and Effects Analysis六、Profiling和PerformanceSchema查询分析本文的引用仅限自我学习如有侵权请联系作者删除。参考知识

相关新闻

最新新闻

Docker Compose 一条命令拉起 Prefect:本地开发环境最小配置与常见坑

Docker Compose 一条命令拉起 Prefect:本地开发环境最小配置与常见坑

Docker Compose 一条命令拉起 Prefect:本地开发环境最小配置与常见坑 【免费下载链接】prefect Prefect is a workflow orchestration framework for building resilient data pipelines in Python. 项目地址: https://gitcode.com/GitHub_Trending/pr/prefect …

2026/9/5 23:40:44
Code Mode不是按钮,而是面向可扩展软件的协作契约

Code Mode不是按钮,而是面向可扩展软件的协作契约

如果你看过程序员用 AI 对话框生成整个订单模块,再看一遍他后来如何为了支持多租户把模块推倒重做,大概会同意一件事:Code Mode 这个词,重点不在 Mode,而在“这模式是否面向可扩展软件”。Dex Horthy 发布 AI That Wor…

2026/9/5 23:40:44
Delphi Ehlib组件实战:从安装到高级数据展示与打印

Delphi Ehlib组件实战:从安装到高级数据展示与打印

简介:EhLib.VclFmx 12.0.035 是一款面向 Delphi 与 C Builder 开发者的专业级增强控件库,专为 RAD Studio(2010–XE12)及 Lazarus 环境设计,显著提升数据库应用开发效率与界面交互体验。资源包共含 2000 个文件&#x…

2026/9/5 23:40:44
NocoBase外部存储权限全链路讲解:谁能传、谁能看、在哪管

NocoBase外部存储权限全链路讲解:谁能传、谁能看、在哪管

NocoBase外部存储权限全链路讲解:谁能传、谁能看、在哪管 【免费下载链接】nocobase NocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-prove…

2026/9/5 23:40:44
Vue 3 拖拽列表迁移指南:vue.draggable.next 从 Vue 2 平滑升级的完整方案

Vue 3 拖拽列表迁移指南:vue.draggable.next 从 Vue 2 平滑升级的完整方案

Vue 3 拖拽列表迁移指南:vue.draggable.next 从 Vue 2 平滑升级的完整方案 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 本文围绕 vu…

2026/9/5 23:40:43
Perplexity端侧PII-Tracer:本地数据安全与隐私保护的新选择

Perplexity端侧PII-Tracer:本地数据安全与隐私保护的新选择

Perplexity 最近发布的端侧工具 PII-Tracer,把“个人身份信息检测”这件事从云端 API 拉回到了本地机器。它要解决的场景很直接:日志、工单、文本记录里有大量姓名、邮箱、手机号、证件号、地址等敏感字段,过去做清洗要么写正则,要…

2026/9/5 23:35:43