基本信息

编辑推荐
作者是腾讯的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性能优化》,被誉为数据库性能优化领域的经典。
目录
推荐序二
推荐序三
推荐序四
推荐序五
推荐序六
前言
第一篇 事务管理与并发控制基础理论
第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
前言
关系数据库管理系统有两大核心技术,一是事务处理,二是查询优化。对于数据库技术从业者来说,如果能把这两种技术珠联璧合融于一体,则如同长出两只翅膀,能助君振翅高飞、翱翔万里。
2017年,笔者的第二本著述即将问世。本书是一本讨论数据库事务管理和并发控制技术的书,融合了事务管理和并发控制原理、主流数据库的事务实现、开源数据库内核事务处理和并发控制源码剖析。本书能够帮助技术爱好者掌握事务处理的核心技术—事务管理和并发访问控制。
笔者期望,把自己对技术的深度探索以文字形式分享给读者,与数据库技术爱好者一起享受数据库内核技术之美。于是工作之余,周末枯坐敲击键盘,夜晚遐想苦思代码,便有了这本小作。
什么是艺术
书名冠以艺术一词,笔者实不敢当。艺术之大,笔者仰望如高山、如皓日。
惴惴之际,笔者试对艺术做一注解,谬误之词,请读者见谅。
艺术,美也; 工程技术,美之实现也。数据库的工程实现,有美其中。代码有形之体美,算法有神之韵美,数据库内核之大之复杂故有极深的逻辑之美。爱美之心,笔者如同万千生灵,亦有之。于是因爱美而去尝试展示数据库之美,才有了笔者第一著述《数据库查询优化的艺术》和第二本著述《数据库事务处理的艺术》。
本书的主要内容
本书主要讨论的内容包含四个话题:
话题一:事务处理技术中的一致性和隔离性,即ACID技术中的C和I。
话题二:对于一致性,本书主要从事务模型和并发控制的角度出发进行讨论,着手于原理怎样保障正确性、主流数据库怎样实现各种并发控制技术等进行探讨。比如封锁控制技术等。
话题三:对于隔离性,本书以并发控制技术为出发点,在明确数据库的一致性之后,从数据库性能的角度出发讨论数据库隔离性的实现技术。比如著名的MVCC技术。
话题四:从工程实践的角度,讨论Informix、Oracle、PostgreSQL和MySQL是怎样实现一致性和隔离性的。
本书共分四篇,四个话题贯穿始终,分别从原理(第一篇)、主流数据库实现(第二篇)、源码级实现(第三、四篇)这三个角度进行了深度讨论。
其中,原理是灵魂,是统领工程实现的纲,对于事务处理,就是要确保怎样保障数据的一致性。所以本书的第一篇,就从数据异常现象这个引子出发,对并发控制技术的原理进行讲述,并分析了多种并发控制技术是怎样解决数据异常现象的。这有别于经典的数据库理论书籍,本书不单纯为讲理论而讲原理,而是结合原理和工程实践中的知识和关键点讲原理,使得原理在工程实践中有落脚点、有着力之处。这是第一篇内容的价值所在。
尽管原理相同,但是不同的数据库的工程实现却是不同的。所以在第二篇,笔者选取了主流的数据库系统,包括Informix、Oracle、PostgreSQL和MySQL,对它们的一致性和隔离性的实现技术,以及工程实现的背后、折射的原理思想进行了深度探索、对比。以期帮助读者对事务管理和并发控制技术的原理有进一步的认识,对主流数据库的相关实现情况有全面的掌握,更期望读者通过阅读能把握主流数据库基于相同原理却又有着不同实现的在工程设计方面的不同考量之处。
最能帮助掌握核心技术的,只有源码。本书第三篇揭示了PostgreSQL的事务处理的技术之美;第四篇揭示了MySQL和InnoDB的事务处理的技术之美。而全书中,似在不经意间,在山石小径旁,长满了对原理、对工程实现的比较,以展示美与美的不同。如果读者能够在读书之际,自己再多做比较,则会领悟到更多的美……
本书的主要特色
从工程实践的角度看,本书通过原理分析、实例分析、代码分析,进行了三个对比:
序言
海翔在数据库管理系统领域的第二本著作《数据库事务处理的艺术:事务管理与并发控制》马上就要出版了,他邀请我作序,我没有犹豫就欣然答应了。事后,我自己都觉得奇怪为什么会这么痛快,但细细想来,还是有充分理由的。这个序得写!
首先,我对在数据库核心技术领域长期辛勤耕耘的人表示尊敬。数据库是信息系统的基础和核心,对数据库实现技术是否真正掌握关系到我国在信息技术核心领域的自主可控战略是否能顺利实现。大家都知道,长期以来我国的信息产业大而不强,信息化成本居高不下,信息安全受到威胁。数据库就是基础软件中的最重要的部分之一。因此,国家从十五开始就对这个领域的研究开发进行了持续的支持。先是在863计划下设立“数据库重大专项”,后来又在国家中长期科技发展规划中设立了“核心电子器件、高端通用芯片和基础软甲产品(简称核高基)”项目,对这个方向的研发工作给予引导。但是,由于国外数据库巨头已经形成市场垄断,短期间内企业要在这个领域赢利几无可能,因此,一些有实力的大企业都不愿意投身到这个领域来,形成了长期都由一些小公司在苦苦挣扎的窘境。人才能否“引得来、留得住、长得好”,是这些技术型小公司普遍遇到的问题。因此,我对长期坚持在这个领域的从业人员始终抱有好感,只要可能就愿意帮助他们。
其次,从我们教学的经验看,要深入理解数据库实现,非常需要解读开源系统实现代码的图书作为学习的参考。数据库系统庞杂,要弄懂系统实现的代码需要锲而不舍的精神。海翔阅读了PostgreSQL和MySQL(InnoDB)等几个开源系统的代码,并根据自己的理解进行了解读,通过对比不同的实现能帮助读者深入了解事务的概念和实现技术。事务管理是数据库系统的核心技术,有一句话形容事务管理“好懂难做”,意思是要理解这些概念并不难,但是要实现起来,还是很复杂的。因此,通过阅读开源系统的源代码,能更好地掌握相关的内容。海翔的书能起到这个作用。
第三,我和海翔有师生之谊。本世纪初我们都在人大金仓工作,一同开发金仓数据库系统。海翔是公司员工,同时在中科大就读,我是他的企业导师。海翔平时话不多,少言寡语,但是心里有想法,是那种先做再说的性格。之后,由于种种原因,我离开了金仓回到学校任教。也就逐渐失去了和海翔的联系,直到有一天,他给我送来了他的一本书稿—《数据库查询优化器的艺术》,让我着实吃惊不小。我知道,在IT企业工作压力大,加班是常态。如果不是自己心里有一个目标,坚持不懈,放弃许多休息时间,是很难写出有深度的著作的。我在心里为海翔点赞。之后我们又“失联”了,估摸着他是否又在做什么大事,果不其然,他又完成了自己的第二本著作,《数据库事务处理的艺术:事务管理与并发控制》。再次祝贺海翔!
写到这里,我也该停笔了。希望读者能从海翔的书中看到他对数据库事务处理的思考,以及他奋斗的影子。
杜小勇
中国计算机学会数据库专委会主任
出版社代注:
杜小勇教授,教育部科学技术委员会学部委员,中国计算机学会(CCF)常务理事、专委工委主任、数据库专委会主任,数据库领域著名专家,中国人民大学理工处处长。
推荐序二
数据库的基本特征之一是支持多用户共享数据,而事务管理和并发控制是提供这一支持的核心技术,是大型数据库有别于某些表格管理软件的关键特性之一,也是实现一个大型数据库管理系统时会面临的最有挑战性的技术之一。
本书从基本原理和案例系统分析深刻论述了该领域的进展现状与典型实现技术,特别是源码分析对有志于学习或定制开源数据库管理系统的开发人员提供了很好的参考。对数据库有关的各类从业者了解这一主题提供了难得的参考资料。
海翔热爱数据库研发,对数据库技术一直抱有一颗坚韧、执着之心,本书是他的经验和思索的体现,值得仔细研读。
张孝(博士)
中国人民大学信息学院副教授
推荐序三
事务是数据库的核心概念之一,提供ACID(原子性、一致性、隔离性、持久性)特性的事务处理,是数据库系统能够商用化,并用来支持金融级业务的核心技术之一。一方面,大学本科或研究生的数据库教材更多的是偏向于事务的基本概念或基本技术的介绍;另一方面,现有大部分的技术文档对事务管理和并发控制的内容介绍缺乏重要的实现关键细节,无法有效地帮助学习者建立理论与实践之间的紧密联系。
而海翔的这本《数据库事务处理的艺术:事务管理与并发控制》:
不仅有对事务管理和并发控制的原理性介绍,如事务模型、基于封锁的并发控制技术、基于MVCC的并发控制技术等
媒体评论
——张孝(博士) 中国人民大学信息学院副教授
这本书具备较好的深度、广度、新度,这让我十分期待。
——卢卫(博士后) 中国人民大学信息学院副教授
本书聚焦于数据库中的事务处理,从原理、主流数据库实现、源码级实现三个角度进行了深度的探讨。尤其是后两个部分的介绍,让本书成为不可多得的有关于DBMS事务管理模块内部技术细节的参考资料。
——彭煜玮(博士) 武汉大学计算机学院副教授
海翔的著作以独到之角度阐释事务原理与并发控制,以庖丁解牛之刀为广大数据技术从业者剖析出宝贵的关节,实在是让人手不释卷。
——盖国强 云和恩墨创始人/Oracle ACE总监
学习MySQL看姜老师的书,学习优化器和事务处理,就看海翔老师的作品吧。
——姜承尧 腾讯金融支付数据库运营与研发部副总监
作者在数据库内核领域有多年理论研究与开发实践经验,目前负责腾讯金融分布式数据库TDSQL的内核研发工作。TDSQL旨在解决强一致性、高可用、高性能、分布式、配套设施、安全保障等方面的难题,为腾讯内外大量政企、金融客户的稳定运行保驾护航。