数据库事务处理的艺术:事务管理与并发控制

数据库事务处理的艺术:事务管理与并发控制 pdf epub mobi txt 电子书 下载 2025

李海翔 等 著
图书标签:
  • 数据库
  • 事务处理
  • 并发控制
  • 事务管理
  • 数据一致性
  • ACID
  • 数据库设计
  • 数据存储
  • 数据库原理
  • 性能优化
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111582359
版次:1
商品编码:12270612
品牌:机工出版
包装:平装
开本:16开
出版时间:2017-12-01
用纸:胶版纸

具体描述

产品特色

编辑推荐

作者是腾讯的T4级专家,有近20年数据库内核研发经验,曾是Oracle公司MySQL全球开发组核心成员

中国计算机学会(CCF)常务理事、数据库专委会主任、数据库领域著名专家、中国人民大学杜小勇教授亲自作序推荐

人民大学张孝和卢卫教授、武汉大学彭煜炜教授、云和恩墨CEO盖国强、腾讯金融支付数据库运营与研发部副总监姜承尧联袂推荐


内容简介

作者有近20年数据库内核研发经验,曾是Oracle公司MySQL全球开发组核心成员,现在是腾讯的T4级专家。数据库领域的泰斗杜小勇老师亲自为是本书作序,数据库学术界的知名学者张孝博士(中国人民大学)、卢卫博士后(中国人民大学)、彭煜玮博士(武汉大学),以及数据库工业界的知名专家盖国强和姜承尧等也给予了极高的评价。

全书共12章,首先介绍数据库事务管理与并发控制的基础理论和工作机制,然后再从工程实践的角度对比和分析了4个主流数据库的事务管理与并发控制的实现原理,最后通过源代码分析了PostgreSQL和MySQL在事务管理与并发控制上的技术架构与设计思想。

第一篇(1-2章) 事务管理与并发控制基础理论

对数据库事务管理和并发控制的基础理论、核心技术和工作原理进行了讲解,包括数据库事务处理技术的范围、数据的异常现象及成因、事务模型、并发访问控制技术、以及隔离性等。

第二篇(3-6章) 事务管理与并发控制应用实例研究

以Informix、Oracle、PostgreSQL和MySQL/InnoDB等主流数据库系统为例,对他们的事务管理和并发控制的实现技术、工作原理以及原理背后的设计思想进行了深度分析和对比。

第三篇(7-9章) PostgreSQL事务管理与并发控制源码分析

首先对PostgreSQL事务处理技术的架构、层次、设计思想、相关数据结构和实现原理进行了深入系统的分析,然后从功能角度对PostgreSQL的事务模型、并发控制、一致性、隔离性以及其所使用的SS2PL、MVCC、SSI等技术做了深入的讲解。

第四篇(10-12章) InnoDB事务管理与并发控制源码分析

首先对事MySQL/InnoDB的务处理技术的架构、层次、设计思想、相关数据结构和实现原理进行了深入系统的分析,然后从功能角度对MySQL/InnoDB的事务模型、并发控制、一致性、隔离性以及其所使用的SS2PL、MVCC等技术做了深入的讲解。


作者简介

李海翔(网名:那海蓝蓝)

资深数据专家,拥有近20年数据库内核研发经验,曾就职于人大金仓、Oracle公司MySQL全球开发组等,现就职于腾讯TEG计费平台部,T4级专家。中国人民大学工程硕士企业导师。

数据库技术精湛,不仅熟悉PostgreSQL、GreenPlum、MySQL、Informix、CockroachDB等数据库的使用,而且熟悉它们的源码,尤其擅长数据库的查询优化技术、事务处理技术和数据库架构技术。数据库相关工作阅历丰富,从事过数据库研发(JDBC驱动、管理工具套机、内核)、数据库测试、技术团队管理、数据库架构设计等多个岗位。

曾获得北京市科学技术进步奖一等奖和腾讯公司级技术突破奖,做过包括863、核高基、工信部、科技部、发改委、北京市科委等多个重大科技项目在内的30多个国家*大型项目。

除本书外,还撰写并出版了本书的姊妹篇《数据库查询优化器的艺术:原理解析与SQL性能优化》,被誉为数据库性能优化领域的经典。


精彩书评

海翔热爱数据库研发,对数据库技术一直抱有一颗坚韧、执着之心,本书是他的经验和思索的体现,值得仔细研读。

——张孝(博士) 中国人民大学信息学院副教授


这本书具备较好的深度、广度、新度,这让我十分期待。

——卢卫(博士后) 中国人民大学信息学院副教授


本书聚焦于数据库中的事务处理,从原理、主流数据库实现、源码级实现三个角度进行了深度的探讨。尤其是后两个部分的介绍,让本书成为不可多得的有关于DBMS事务管理模块内部技术细节的参考资料。

——彭煜玮(博士) 武汉大学计算机学院副教授


海翔的著作以独到之角度阐释事务原理与并发控制,以庖丁解牛之刀为广大数据技术从业者剖析出宝贵的关节,实在是让人手不释卷。

——盖国强 云和恩墨创始人/Oracle ACE总监


学习MySQL看姜老师的书,学习优化器和事务处理,就看海翔老师的作品吧。

——姜承尧 腾讯金融支付数据库运营与研发部副总监


作者在数据库内核领域有多年理论研究与开发实践经验,目前负责腾讯金融分布式数据库TDSQL的内核研发工作。TDSQL旨在解决强一致性、高可用、高性能、分布式、配套设施、安全保障等方面的难题,为腾讯内外大量政企、金融客户的稳定运行保驾护航。


目录

推荐序一
推荐序二
推荐序三
推荐序四
推荐序五
推荐序六
前言
第一篇 事务管理与并发控制基础理论
第1章 数据库管理系统的事务原理 2
1.1 事务模型要解决的问题 2
1.1.1 为什么需要事务处理机制 2
1.1.2 事务机制要处理的问题——事务故障、系统故障、介质故障 4
1.1.3 并发带来的问题椚��?
常见的读数据异常现象 4
1.1.4 并发带来的问题——写并发操作引发的数据异常现象 8
1.1.5 语义约束引发的数据异常现象 9
1.1.6 其他的异常 11
1.1.7 深入探讨三种读数据异常现象 13
1.2 事务处理技术的原理 17
1.2.1 什么是事务 17
1.2.2 事务的属性 20
1.2.3 ACID的实现技术 24
1.3 事务的模型 26
1.4 并发控制技术 27
1.4.1 并发控制技术的实现策略 27
1.4.2 并发控制技术的实现技术 28
1.5 日志技术与恢复子系统31
1.6 本章小结 32
第2章 深入理解事务管理和并发控制技术 33
2.1 在正确性和效率之间平衡 33
2.1.1 隔离级别 34
2.1.2 快照隔离 36
2.1.3 理解可见性 39
2.2 并发控制 40
2.2.1 基于锁的并发控制方法 42
2.2.2 基于时间戳的并发控制方法 47
2.2.3 基于有效性检查的并发控制方法 52
2.2.4 基于MVCC的并发控制方法 53
2.2.5 基于MVCC的可串行化快照隔离并发控制方法 56
2.2.6 再深入探讨三种读数据异常现象 60
2.3 并发控制技术的比较 62
2.3.1 并发控制技术整体比较 62
2.3.2 S2PL和SS2PL的比较 64
2.3.3 事务属性与并发控制技术的关系 65
2.3.4 SCO和SS2PL的比较 66
2.3.5 TO和SS2PL的比较 67
2.4 深入探讨隔离级别 68
2.4.1 隔离级别与基于锁的并发控制方法 68
2.4.2 隔离级别与各种并发控制技术 69
2.5 事务的管理 70
2.5.1 事务的开始 71
2.5.2 事务的提交 71
2.5.3 事务的中止与回滚 72
2.5.4 子事务与SAVEPOINT 72
2.5.5 长事务的管理 73
2.5.6 XA 74
2.6 事务相关的实战问题讨论 75
2.7 本章小结 76
第二篇 事务管理与并发控制应用实例研究
第3章 Informix事务管理与并发控制 78
3.1 Informix的事务操作 78
3.2 Informix的封锁技术 83
3.3 隔离级别与数据异常 85
3.4 本章小结 88
第4章 PostgreSQL事务管理与并发控制 89
4.1 PostgreSQL事务操作 89
4.2 SQL操作与锁 92
4.3 隔离级别与数据异常 108
4.4 本章小结 118
第5章 InnoDB事务管理与并发控制 119
5.1 InnoDB的事务模型 119
5.2 InnoDB基于锁的并发控制 123
5.3 InnoDB基于MVCC的并发控制 130
5.4 隔离级别与数据异常 131
5.5 本章小结 138
第6章 Oracle事务管理与并发控制 139
6.1 Oracle的事务操作 139
6.2 Oracle的封锁技术 142
6.3 MVCC技术 145
6.4 隔离级别与数据异常 157
6.5 本章小结 160
第三篇 PostgreSQL事务管理与并发控制源码分析
第7章 PostgreSQL事务系统的实现 162
7.1 架构概述 162
7.2 事务管理的基础 166
7.3 事务操作 173
7.4 子事务的管理 186
7.5 本章小结 188
第8章 PostgreSQL并发控制系统的实现—封锁 189
8.1 锁的概述 189
8.2 系统锁 192
8.3 事务锁 214
8.4 事务锁的管理 239
8.5 死锁检测 247
8.6 从锁的角度看用法 254
8.7 本章小结 262
第9章 PostgreSQL并发控制系统的实现—MVCC 263
9.1 快照 264
9.2 可见性判断与多版本 273
9.3 可串行化快照原理 285
9.4 PostgreSQL可串行化快照的实现 289
9.5 隔离级别 336
9.6 本章小结 340
第四篇 InnoDB事务管理与并发控制源码分析
第10章 InnoDB事务系统的实现 342
10.1 架构概述 342
10.2 事务管理的基础 346
10.3 事务操作 353
10.4 InnoDB事务模型 378
10.5 本章小结 382
第11章 InnoDB并发控制系统的实现—两阶段锁 383
11.1 锁的概述 383
11.2 系统锁 386
11.3 事务锁之记录锁 401
11.4 事务锁之元数据锁 433
11.5 SQL语义定义锁 476
11.6 其他类型的锁 493
11.7 事务与锁 499
11.8 本章小结 500
第12章 InnoDB并发控制系统的实现—MVCC 502
12.1 数据结构 503
12.2 可见性判断 506
12.3 多版本的实现 509
12.4 一致性读和半一致性读 511
12.5 本章小结 513
附录 TDSQL简介 514

精彩书摘

  《数据库事务处理的艺术:事务管理与并发控制》:
  1.3事务的模型
  事务的实现,在不同的数据库系统中是不同的,这是因为事务有着不同的模型,在JimGray的《事务处理概念与技术》一书的第四章事务模型中,事务被分为:
  平板事务(FlatTransactions):事务块中的所有SQL语句,构成一个逻辑单元,要么都成功,要么因之一失败都回滚。PostgreSQL的事务管理如果不考虑保存点(Savepoint)机制,可以认为就是一个平板类型的事务,事务块内的一个SQL失败,导致整个事务必须回滚,之前执行成功的操作也必须回滚掉。
  带有保存点的平板事务(FlatTransactionsWithSavepoints):在平板事务的基础上,实现了保存点技术,这样使得一个事务块,可以划分出不同的层次,每个层次之间为一个逻辑单元,后面失败的SQL不影响之前保存点前发生的操作,即回滚发生在局部。PostgreSQL、InnoDB、Informix在平板事务的基础上,支持了保存点技术。
  链式事务(ChainedTransactions):与平板事务不同的是,链式事务在提交一个事务后,释放一些资源如锁等资源,但是,一些上下文环境如事务的载体(存放事务信息的结构体或类等对象)不被释放,会留给下一个事务使用。用户感觉门己的逻辑上的处理单元与之前的事务似乎没有COMMIT之类命令执行的明显分割。如InnoDB的事务模型,就是链式事务的代表(这句话不是说InnoDB不支持平板事务,实际上InnoDB支持平板事务、支持带有保存点的平板事务、支持链式事务,并通过XA技术支持下面谈到的分布式事务)。
  ……

前言/序言

  推荐序一
  海翔在数据库管理系统领域的第二本著作《数据库事务处理的艺术:事务管理与并发控制》马上就要出版了,他邀请我作序,我没有犹豫就欣然答应了。事后,我自己都觉得奇怪为什么会这么痛快,但细细想来,还是有充分理由的。这个序得写!
  首先,我对在数据库核心技术领域长期辛勤耕耘的人表示尊敬。数据库是信息系统的基础和核心,对数据库实现技术是否真正掌握关系到我国在信息技术核心领域的自主可控战略是否能顺利实现。大家都知道,长期以来我国的信息产业大而不强,信息化成本居高不下,信息安全受到威胁。数据库就是基础软件中的最重要的部分之一。因此,国家从十五开始就对这个领域的研究开发进行了持续的支持。先是在863计划下设立“数据库重大专项”,后来又在国家中长期科技发展规划中设立了“核心电子器件、高端通用芯片和基础软甲产品(简称核高基)”项目,对这个方向的研发工作给予引导。但是,由于国外数据库巨头已经形成市场垄断,短期间内企业要在这个领域赢利几无可能,因此,一些有实力的大企业都不愿意投身到这个领域来,形成了长期都由一些小公司在苦苦挣扎的窘境。人才能否“引得来、留得住、长得好”,是这些技术型小公司普遍遇到的问题。因此,我对长期坚持在这个领域的从业人员始终抱有好感,只要可能就愿意帮助他们。
  其次,从我们教学的经验看,要深入理解数据库实现,非常需要解读开源系统实现代码的图书作为学习的参考。数据库系统庞杂,要弄懂系统实现的代码需要锲而不舍的精神。海翔阅读了PostgreSQL和MySQL(InnoDB)等几个开源系统的代码,并根据自己的理解进行了解读,通过对比不同的实现能帮助读者深入了解事务的概念和实现技术。事务管理是数据库系统的核心技术,有一句话形容事务管理“好懂难做”,意思是要理解这些概念并不难,但是要实现起来,还是很复杂的。因此,通过阅读开源系统的源代码,能更好地掌握相关的内容。海翔的书能起到这个作用。
  第三,我和海翔有师生之谊。本世纪初我们都在人大金仓工作,一同开发金仓数据库系统。海翔是公司员工,同时在中科大就读,我是他的企业导师。海翔平时话不多,少言寡语,但是心里有想法,是那种先做再说的性格。之后,由于种种原因,我离开了金仓回到学校任教。也就逐渐失去了和海翔的联系,直到有一天,他给我送来了他的一本书稿—《数据库查询优化器的艺术》,让我着实吃惊不小。我知道,在IT企业工作压力大,加班是常态。如果不是自己心里有一个目标,坚持不懈,放弃许多休息时间,是很难写出有深度的著作的。我在心里为海翔点赞。之后我们又“失联”了,估摸着他是否又在做什么大事,果不其然,他又完成了自己的第二本著作,《数据库事务处理的艺术:事务管理与并发控制》。再次祝贺海翔!
  写到这里,我也该停笔了。希望读者能从海翔的书中看到他对数据库事务处理的思考,以及他奋斗的影子。
  杜小勇
  中国计算机学会数据库专委会主任
  出版社代注:
  杜小勇教授,教育部科学技术委员会学部委员,中国计算机学会(CCF)常务理事、专委工委主任、数据库专委会主任,数据库领域著名专家,中国人民大学理工处处长。
  推荐序二
  数据库的基本特征之一是支持多用户共享数据,而事务管理和并发控制是提供这一支持的核心技术,是大型数据库有别于某些表格管理软件的关键特性之一,也是实现一个大型数据库管理系统时会面临的最有挑战性的技术之一。
  本书从基本原理和案例系统分析深刻论述了该领域的进展现状与典型实现技术,特别是源码分析对有志于学习或定制开源数据库管理系统的开发人员提供了很好的参考。对数据库有关的各类从业者了解这一主题提供了难得的参考资料。
  海翔热爱数据库研发,对数据库技术一直抱有一颗坚韧、执着之心,本书是他的经验和思索的体现,值得仔细研读。
  张孝(博士)
  中国人民大学信息学院副教授
  推荐序三
  事务是数据库的核心概念之一,提供ACID(原子性、一致性、隔离性、持久性)特性的事务处理,是数据库系统能够商用化,并用来支持金融级业务的核心技术之一。一方面,大学本科或研究生的数据库教材更多的是偏向于事务的基本概念或基本技术的介绍;另一方面,现有大部分的技术文档对事务管理和并发控制的内容介绍缺乏重要的实现关键细节,无法有效地帮助学习者建立理论与实践之间的紧密联系。
  而海翔的这本《数据库事务处理的艺术:事务管理与并发控制》:
  不仅有对事务管理和并发控制的原理性介绍,如事务模型、基于封锁的并发控制技术、基于MVCC的并发控制技术等
  还有对现有主流开源数据库,如PostgreSQL、MySQL的关于事务管理和并发控制的实现机制在源码级的深入剖析
  再有多种商业数据库的实现机制分析,如Oracle和Informix
  更有新的技术的剖析,如“write-snapshot isolation”“Serializable Snapshot Isolation (SSI)”
  甚至还有理论、实现之间的优劣对比,以及多种实现技术的优劣对比,多角度地对比拓展了本书的纵深
  这本书具备较好的深度、广度、新度,这让我十分期待。
  我认识海翔已有十二载,在此期间,海翔一直从事于国产数据库的研发工作,取得了诸多令人瞩目的成绩,这本书是对他这些年理论探索和实践经验的总结,我相信对于志在从事数据库相关领域开发和研究的朋友,通过本书的学习,都能从中受益。
  卢卫(博士后)
  中国人民大学信息学院副教授
  (发表多篇SIGMOD、VLDB、ICDE学术论文)
  推荐序四
  事务管理和并发控制是数据管理技术中最重要的几个主题之一,它保障了数据的一致性以及系统的性能。
  本书聚焦于数据库中的事务处理,从原理、主流数据库实现、源码级实现三个角度进行了深度的探讨。尤其是后两个部分的介绍,让本书成为不可多得的有关DBMS事务管理模块内部技术细节的参考资料。
  本书不仅对于从事各类数据库内核研发工作的人员具有很高的参考价值,对于从事数据库应用开发、DBA乃至学习数据库的朋友们来说也值得一读。本书作者在数据库研发领域深耕多年,书中的字里行间显示出他扎实的实践经验和深厚的理论功底,相信各位读者都能从本书中受益匪浅。
  彭煜玮(博士)
  武汉大学计算机学院副教授/《PostgreSQL数据库内核分析》作者
  推荐序五
  —庖丁解牛 高山仰止
  海翔的新书挥就,单只书名就让我顿生敬意,事务处理是数据库技术中最为核心的部分,也是不同数据库之间暗暗较量的关键所在。以此为题的著作,我们熟知的就是Jim Gray的《事务处理概念与技术》,该书一直是数据库领域的筑基之作,令人高山仰止;现在海翔的著作以独到之角度阐释事务原理与并发控制,以庖丁解牛之刀为广大数据技术从业者剖析出宝贵的关节,实在是让人手不释卷的又一机缘。
  在我熟悉的Oracle数据库领域,我一直认为其独到的事务处理机制,成就了Oracle数据库今天的地位。比如Oracle选择了提交读作为主要的事务隔离级别,进而通过Undo机制提供一致性读,而从Oracle 6引入的改变向量(Change Vector)技术更成为了Redo和Undo机制的核心,并由此保障数据库能够从一个一致性的状态不断迁移到下一个一致性状态,Oracle数据库后续的很多卓越特性都由此构建,包括Data Guard技术、闪回技术等,延承至今。
  而随着时代的进步,软硬件性能的提升,数据库产品也在不断进步,比如阿里巴巴的OceanBase基于内存短事务的设计,就不需要Undo日志,而Oracle公司最新透露的研发计划表明他们正在基于NVRAM进行内核改写,这其中最关键的就是对于Redo机制和事务的优化。
  把握历史,兼顾当下,站在前人肩上才能跟上时代的步伐。海翔、冯毅和鹏程,正是站在这样的起点上。他们不仅精研数据库原理,更加是不同数据库内核的研发者,不同的从业经历,使得他们可以从横向和纵向对不同数据库进行剖析,Informix、Oracle、PostgreSQL和MySQL等流行数据库的事务原理在书中均有呈现,真知灼见,俯仰可得。
  这是一本理论结合研发,研发兼顾实践的实力之作,我相信也是作者们致敬大师的心血呈现,我期待这本书能够尽快呈现在案头,一睹为快!
  盖国强
  云和恩墨创始人/Oracle ACE总监
  推荐序六
  事务处理是数据库区别于其他系统的关键特质,JimGray的《Transaction Processing》一书是打开我对数据库世界认识的一扇窗口。当海翔兄告诉我其在撰写《数据库事务处理的艺术》之书时很是感到震惊,因为这并不是一件容易的事情,同时也不是一件任何人都能干好的事情。
  我相信本书的作者李海翔,我的好友,能将数据库事务处理的内部机制描述清楚。一方面,其从事数据库内核行业很多年,在这一方面有着非常深厚的内功基础。另一方面,其擅长于将复杂的问题通过简单的语句描述清楚。相信任何同学在看过本书之后都会有这样的感觉。更为难得的是,本书在事务处理这部分对比了当前主流的多种数据库实现,想必本书必将成为经典之作。
  学习MySQL看姜老师的书,学习优化器和事务处理,就看海翔老师的作品吧。
  姜承尧
  腾讯金融支付数据库运营与研发部副总监/
  《MySQL技术内幕》系列图书作者/Oracle ACE
  前  言
  为什么写这本书
  关系数据库管理系统有两大核心技术,一是事务处理,二是查询优化。对于数据库技术从业者来说,如果能把这两种技术珠联璧合融于一体,则如同长出两只翅膀,能助君振翅高飞、翱翔万里。
  2017年,笔者的第二本著述即将问世。本书是一本讨论数据库事务管理和并发控制技术的书,融合了事务管理和并发控制原理、主流数据库的事务实现、开源数据库内核事务处理和并发控制源码剖析。本书能够帮助技术爱好者掌握事务处理的核心技术—事务管理和并发访问控制。
  笔者期望,把自己对技术的深度探索以文字形式分享给读者,与数据库技术爱好者一起享受数据库内核技术之美。于是工作之余,周末枯坐敲击键盘,夜晚遐想苦思代码,便有了这本小作。
  什么是艺术
  书名冠以艺术一词,笔者实不敢当。艺术之大,笔者仰望如高山、如皓日。
  惴惴之际,笔者试对艺术做一注解,谬误之词,请读者见谅。
  艺术,美也; 工程技术,美之实现也。数据库的工程实现,有美其中。代码有形之体美,算法有神之韵美,数据库内核之大之复杂故有极深的逻辑之美。爱美之心,笔者如同万千生灵,亦有之。于是因爱美而去尝试展示数据库之美,才有了笔者第一著述《数据库查询优化的艺术》和第二本著述《数据库事务处理的艺术》。
  本书的主要内容
  本书主要讨论的内容包含四个话题:
  话题一:事务处理技术中的一致性和隔离性,即ACID技术中的C和I。
  话题二:对于一致性,本书主要从事务模型和并发控制的角度出发进行讨论,着手于原理怎样保障正确性、主流数据库怎样实现各种并发控制技术等进行探讨。比如封锁控制技术等。
  话题三:对于隔离性,本书以并发控制技术为出发点,在明确数据库的一致性之后,从数据库性能的角度出发讨论数据库隔离性的实现技术。比如著名的MVCC技术。
  话题四:从工程实践的角度,讨论Informix、Oracle、PostgreSQL和MySQL是怎样实现一致性和隔离性的。
  本书共分四篇,四个话题贯穿始终,分别从原理(第一篇)、主流数据库实现(第二篇)、源码级实现(第三、四篇)这三个角度进行了深度讨论。
  其中,原理是灵魂,是统领工程实现的纲,对于事务处理,就是要确保怎样保障数据的一致性。所以本书的第一篇,就从数据异常现象这个引子出发,对并发控制技术的原理进行讲述,并分析了多种并发控制技术是怎样解决数据异常现象的。这有别于经典的数据库理论书籍,本书不单纯为讲理论而讲原理,而是结合原理和工程实践中的知识和关键点讲原理,使得原理在工程实践中有落脚点、有着力之处。这是第一篇内容的价值所在。
  尽管原理相同,但是不同的数据库的工程实现却是不同的。所以在第二篇,笔者选取了主流的数据库系统,包括Informix、Oracle、PostgreSQL和MySQL,对它们的一致性和隔离性的实现技术,以及工程实现的背后、折射的原理思想进行了深度探索、对比。以期帮助读者对事务管理和并发控制技术的原理有进一步的认识,对主流数据库的相关实现情况有全面的掌握,更期望读者通过阅读能把握主流数据库基于相同原理却又有着不同实现的在工程设计方面的不同考量之处。
  最能帮助掌握核心技术的,只有源码。本书第三篇揭示了PostgreSQL的事务处理的技术之美;第四篇揭示了MySQL和InnoDB的事务处理的技术之美。而全书中,似在不经意间,在山石小径旁,长满了对原理、对工程实现的比较,以展示美与美的不同。如果读者能够在读书之际,自己再多做比较,则会领悟到更多的美……
  本书的主要特色
  从工程实践的角度看,本书通过原理分析、实例分析、代码分析,进行了三个对比:
  理论对比:对比事务处理中各种并发控制技术等的异同,以扩展读者对事务处理技术理解的深度。并发控制的技术有很多,本书不为单纯讲每一个技术而罗列算法本身的内容,而是着眼于对各种算法的差异进行对比,以揭示不同算法背后的思想。
  实现对比:对比四大主流数据库的事务处理技术的异同,以扩展读者对事务处理技术理解的广度。本书不单纯讲述各主流数据库事务相关的SQL语法,而是着力于透视事务处理和并发控制技术实现的方式之背后的设计考虑点,并随时对比各个主流数据库对于同一个问题的不同实现方式,以展示工程技术之美。
  源码对比:依托代码,直接分析,对比PostgreSQL和MySQL(InnoDB)的事务处理技术的异同,以帮助读者能够结合事务处理技术的原理和工程实践,真正理解、掌握数据库事务处理的技术。只有深入到代码一层,才不会有雾里看花的感觉,置身于代码里,能美在其中、乐在其中。
  本书面向的主要读者
  您想深入了解数据库技术?本书适合您。
  您想深入掌握数据库事务处理技术?本书适合您。
  您想成为数据库内核技术的开发者?本书适合您。
  您想成为数据库核心技术之美的欣赏者、品味者、把握者……本书确实适合您。
  资源及勘误
  由于笔者的水平有限,书中难免会有笔误、差错或遗漏等,希望广大读者能把发现的错误反馈给笔者,笔者将不胜感谢。本书的进步和完善,有您的帮助和爱护,定能再上层楼。您可以发送电子邮件到:database_XX@163.com。由于时间有限,也许笔者不能一一答复所有的电子邮件,但是一定会定期整理并汇总信息到笔者的博客(http://bolg.163.com/li_hx)以及华章网站(http://www.hzbook.com)上。
  致谢
  本书承蒙中国人民大学信息学院院长杜小勇教授指导并作序,心怀感激,念念在心。杜老师是笔者的恩师,析事明理、待人言物、治学严谨,一直是笔者心中的楷模。这是一种人格之美,至美而及笔者并影响了笔者写书的风格。
  在笔者的生命中,家人是最重要的。每每伏案疾书不舍昼夜,亲人们都能够理解包容,给了笔者强大的动力,让笔者内心充满暖意和歉意。特别是,近一年来,家中小果果生命的孕育,亦陪伴、激励着笔者努力在小果果来到这个世界感受生命之美时,努力把这本书写好、写美。这里要特别感谢我的父母、妻子和果果,动力所在,唯爱有美。十年的果果,因爱而感受到生命的美。
  再一次感谢为开源社区无私奉献的人们,感谢经典的数据库著述和论文的作者们,本书成书的过程中,参考了相关的资料和信息,书中也一一标注。在此,一并感谢这些无私的奉献者们。没有他们,本书会逊色很多。
  感谢编辑杨福川先生和李艺女士为本书付出的努力和耗费的心血,书名源于杨先生,书稿样式改于李女士。谢谢他们。
  感谢每一位读者,你们是笔者继续前进的新动力。
  写完自己的第二本书,依旧惭愧本书尚不能达到书名标识的高度,依旧打算迈步从头开始,依旧有着努力的心情,不一样的是书籍内容,期待本书对读者有所帮助。
  李海翔







数据库事务处理的艺术:事务管理与并发控制 精雕细琢,驾驭数据洪流的终极指南 在现代信息系统的核心,数据是驱动业务运转的命脉,而数据库则是承载这些命脉的基石。然而,当海量数据在多用户、高并发的环境下被频繁读写时,数据的一致性、完整性和可靠性便面临着前所未有的严峻挑战。如何确保在复杂的分布式环境和不可预测的网络故障下,数据依然能够保持其原有价值,不被污染、不被丢失?这正是本书——《数据库事务处理的艺术:事务管理与并发控制》——所要深入探讨的核心议题。 本书并非仅仅罗列枯燥的技术概念,而是以一种艺术的视角,将复杂深奥的数据库事务处理理论,转化为一套行之有效的实践方法论。我们旨在帮助您理解事务的本质,掌握事务管理的精髓,以及驾驭并发控制的强大力量,从而构建出稳定、高效、可信赖的数据库系统。 第一篇:事务的基石—— ACID 原则的深度解析 任何数据库事务的健壮性都离不开 ACID 四大特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation) 和 持久性(Durability)。本书将从最基础的层面,为您层层剥开 ACID 原则的面纱。 原子性:不可分割的完整单元 我们将深入探讨原子性是如何通过 日志记录(Logging) 和 回滚(Rollback) 机制来实现的。您将了解到,无论是成功提交的事务,还是需要被撤销的事务,都必须被视为一个不可分割的整体,要么全部完成,要么全部撤销,绝不允许出现中间状态。 我们将分析在不同数据库系统中,原子性实现的具体策略,例如 Write-Ahead Logging (WAL)、Redo/Undo Log 等,并对比它们在性能和可靠性上的差异。 您将学习如何通过合理的事务设计,避免因部分操作失败而导致的数据不一致,确保业务流程的完整性。 一致性:数据的合法性与约束 一致性并非仅仅指数据的“正确”,更重要的是指数据在事务执行后,必须满足预先定义的业务规则和完整性约束。 本书将从数据库层面(如主键、外键、唯一索引、CHECK 约束)和应用层面(如业务逻辑的校验)两个维度,全面阐述如何构建和维护数据的一致性。 您将理解,一致性是所有事务的目标,而原子性、隔离性和持久性则是实现这一目标的手段。 隔离性:互不干扰的独立空间 在多用户并发访问的场景下,如果不对事务进行隔离,不同事务之间相互干扰,将导致一系列难以预料的后果,如脏读(Dirty Read)、不可重复读(Non-repeatable Read)和幻读(Phantom Read)。 本书将系统性地介绍 SQL 标准定义的隔离级别,包括读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。 您将深入理解每种隔离级别所带来的读写冲突以及可能出现的异常现象,并学习如何根据实际业务需求,选择最合适的隔离级别,在数据一致性和并发性能之间找到最佳平衡点。 持久性:永不磨灭的数据承诺 一旦事务成功提交,其所做的所有修改都应该被永久地保存在数据库中,即使系统发生崩溃、断电或其他灾难性事件。 本书将详细讲解持久性是如何通过 数据库的物理存储结构、日志的持久化 以及 故障恢复机制 来实现的。 您将了解到,一次成功的事务提交,意味着数据已经安全地落盘,并且系统具备在任何情况下恢复到该提交状态的能力。 第二篇:事务管理的艺术——设计、控制与优化 理解了 ACID 原则的精髓,本书将进一步引导您进入事务管理的实际操作层面,从设计到执行,再到优化,为您提供一套完整的实战框架。 事务的声明与管理 您将学习如何在不同的数据库系统中(如 MySQL, PostgreSQL, Oracle, SQL Server)使用标准的 SQL 语句(`BEGIN TRANSACTION`, `COMMIT`, `ROLLBACK`)来显式地控制事务的边界。 我们将探讨 自动提交(Autocommit) 模式的原理,以及在何种情况下需要关闭自动提交以实现更精细的事务控制。 本书还将介绍嵌套事务(Nested Transactions)、保存点(Savepoints) 等更高级的事务管理技巧,帮助您处理复杂的业务逻辑。 异常处理与错误恢复 在实际的数据库操作中,各种错误是不可避免的。本书将重点讲解如何在事务中进行有效的异常捕获和处理。 您将学习如何根据不同的错误类型,选择恰当的策略,例如回滚整个事务、回滚部分操作,或者进行补偿事务(Compensation Transactions)来弥补已提交的错误操作。 我们将深入分析数据库的故障恢复过程,了解系统如何在崩溃后利用事务日志恢复到最近一次一致的状态。 性能优化与事务设计 事务的性能直接影响着整个系统的响应速度。本书将为您揭示影响事务性能的关键因素,包括锁的粒度、锁的类型、查询优化、索引设计以及内存管理等。 您将学习如何通过精简事务的长度、减少不必要的锁、优化 SQL 查询语句 以及 合理使用索引 来提升事务的处理效率。 本书还将介绍一些性能调优的最佳实践,例如批量操作、异步处理以及读写分离等,帮助您构建高性能的数据库应用。 第三篇:并发控制的挑战——理解与驾驭锁机制 并发控制是数据库系统为了解决多用户并发访问而产生的冲突而设计的一系列机制。其中,锁(Locking) 是最核心、最普遍的并发控制手段。 锁的基本原理与分类 本书将深入浅出地解释锁的基本概念,包括锁的申请、释放、等待以及死锁(Deadlock)的产生。 您将详细了解不同类型的锁,如共享锁(Shared Lock / Read Lock) 和 排他锁(Exclusive Lock / Write Lock),以及它们在读写操作中的作用。 我们将进一步探讨更细粒度的锁,如 行级锁(Row-level Lock)、页级锁(Page-level Lock) 和 表级锁(Table-level Lock),并分析它们在并发性能和资源占用上的权衡。 死锁的检测与预防 死锁是并发控制中最棘手的问题之一,一旦发生,可能导致部分事务无限期阻塞,甚至整个系统瘫痪。 本书将详细讲解死锁的产生条件,并介绍多种死锁检测算法,例如基于等待图(Wait-for Graph)的检测。 您将学习各种死锁预防策略,例如按顺序加锁、设置合理的超时时间以及使用乐观并发控制等。 乐观并发控制(Optimistic Concurrency Control, OCC) 与悲观锁(Pessimistic Locking)不同,乐观并发控制假设在大多数情况下不会发生冲突。它允许事务在读取数据时不对其加锁,而是在事务提交时才检查是否有其他事务修改了数据。 本书将介绍 OCC 的工作原理,包括版本号(Version Number)、时间戳(Timestamp) 等机制,并分析其在特定场景下的优势和劣势。 您将学习如何根据业务特点,选择适合的并发控制策略,在性能和数据一致性之间做出明智的选择。 多版本并发控制(Multi-Version Concurrency Control, MVCC) MVCC 是一种广泛应用于现代数据库的并发控制技术,它通过为数据的每个版本维护一个副本,来实现读写分离,从而大幅提升并发性能。 本书将深入剖析 MVCC 的工作原理,包括数据快照(Snapshot)、多版本管理 以及 垃圾回收(Garbage Collection) 等机制。 您将理解 MVCC 如何在不引入过多锁的情况下,同时满足多种隔离级别,并显著减少事务之间的阻塞。 本书的价值与受众 《数据库事务处理的艺术:事务管理与并发控制》适合于: 数据库开发人员:深入理解事务原理,编写更健壮、高效的数据库应用。 数据库管理员(DBA):掌握事务管理和并发控制的最佳实践,优化数据库性能,解决棘手的并发问题。 系统架构师:在设计高可用、高并发系统时,做出明智的数据库选型和架构决策。 对数据管理有深入追求的工程师:建立对数据库系统核心机制的深刻理解,提升解决复杂数据挑战的能力。 无论您是初入数据库领域的新手,还是经验丰富的技术专家,本书都将为您提供宝贵的知识和实用的技能。我们相信,通过掌握本书中的理论与实践,您将能够真正驾驭数据洪流,赋予您的应用程序前所未有的稳定性和可靠性。 加入我们,一同开启这场关于数据库事务处理的深度探索之旅,将技术转化为艺术,将挑战化为机遇!

用户评价

评分

作为一名对分布式系统和数据库技术都有一定研究的从业者,我一直关注着如何在高并发、高可用性的场景下,保证数据库事务的可靠性。传统的单机数据库事务处理虽然已经相当成熟,但随着业务的快速发展,分布式事务的挑战也日益凸显。我希望这本书能够触及到分布式事务的一些关键议题,比如两阶段提交(2PC)及其改进方案,以及最终一致性等概念。当然,我更希望书中能提供一些在实际应用中,如何设计和实现可靠的分布式事务的案例和最佳实践。一个能够真正帮助我解决在分布式环境下,如何权衡一致性、可用性和分区容错性(CAP理论)的参考,将是我非常看重的。这本书的篇幅和标题,让我对它在这方面的深度和广度抱有期待。

评分

我是一名有一定年头的老程序员,见证了数据库技术从最初的朴素到如今的繁荣。在我的职业生涯中,数据库事务处理一直是绕不开的话题,也是我不断学习和钻研的重点。我对这本书的期望,是它能提供一种更加宏观的视角,不仅关注技术的细节,更能触及事务处理背后的设计哲学和演进历程。我希望书中能够对各种数据库在事务处理实现上的不同策略进行对比分析,例如不同存储引擎如何影响事务的性能和可靠性。同时,我也期待书中能够探讨一些更高级的话题,比如在新兴的数据库技术(如NoSQL数据库中的事务处理)方面,有哪些新的思路和挑战。这本书能否成为一本能够帮助我梳理过往经验,并为未来技术发展提供一些前瞻性思考的“枕边书”,我非常期待。

评分

我是一名对数据库原理充满好奇的学生,在课堂上接触到事务处理的基本概念后,便被它所蕴含的复杂性和精妙性所吸引。然而,教科书上的讲解往往过于理论化,缺乏足够的实践指导。我一直在寻找一本能够将理论与实践相结合的书籍,能够让我不仅理解“是什么”,更能明白“怎么做”。这本书的书名,尤其是“事务管理与并发控制”这两个副标题,让我觉得它很有可能满足我的需求。我希望书中能够通过丰富的图示和清晰的逻辑,一步步引导我理解事务的各个阶段,以及在多用户访问的情况下,数据库如何巧妙地协调各个事务,避免数据冲突。我对书中关于并发控制的算法和策略部分特别感兴趣,希望能够深入了解它们是如何工作的,以及在不同的场景下,如何选择最合适的并发控制方法。

评分

这本书的封面设计给我留下了深刻的印象,那种沉稳而又不失力量感的蓝色,搭配上金色的书名,仿佛预示着一本内容扎实、值得深入探索的著作。我一直在寻找一本能够系统性地梳理数据库事务处理这一核心概念的书籍,市面上虽然不乏相关的技术文档和论文,但总感觉碎片化,难以形成一个完整的知识体系。我对这本书的期待,不仅仅是了解事务的ACID特性,更希望能够深入理解事务的生命周期,以及在复杂的并发环境下,数据库如何通过各种机制来保证数据的一致性和完整性。这本书的标题,“艺术”二字,更是勾起了我的好奇心。它暗示了事务处理并非死板的技术堆砌,而是需要巧妙的设计和精湛的实现,才能达到“化繁为简,静水流深”的境界。我期待书中能够展现出这种“艺术”的魅力,通过生动的案例和深入的剖析,让我领略到数据库事务处理的精髓所在。

评分

拿到这本书时,我被它厚实的体量所震撼,这让我对其中蕴含的知识量有了初步的认识。作为一名长期与数据库打交道的工程师,我深知事务处理的重要性,但同时也常常在实际工作中遇到各种难以预料的问题,比如死锁、饥饿,以及在某些极端情况下出现的不可预见的错误。我希望这本书能够提供一套清晰的框架,帮助我理解这些问题的根源,并学习到行之有效的解决方案。特别是关于并发控制的部分,我渴望能看到对各种并发控制模型(如锁机制、多版本并发控制MVCC等)的详细阐述,以及它们各自的优缺点和适用场景。我尤其关注那些关于性能优化和高可用性策略的章节,因为这直接关系到我们生产系统的稳定性和效率。这本书能否成为我解决实际问题的“救命稻草”,亦或是为我打开一扇新的技术视野,我拭目以待。

评分

很好,很好,很好,很好,很好

评分

头过年就买了,想着放假看的,没想到上班了才收到,太慢了

评分

挺好的挺好的

评分

不错,不错,很不错呀

评分

非常不错的数据库书籍

评分

非常不错哟!

评分

挺好的挺好的

评分

蛮不错的一本书,可以仔细看下!

评分

很好,很好,很好,很好,很好

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有