數據庫事務處理的藝術 : 事務管理與並發控制 数据库事务处理的艺术:事务管理与并发控制

李海翔, 等

  • 出版商: 機械工業
  • 出版日期: 2017-10-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 513
  • 裝訂: 平裝
  • ISBN: 7111582357
  • ISBN-13: 9787111582359
  • 已絕版

買這商品的人也買了...

商品描述

全書共12章,首先介紹數據庫事務管理與並發控制的基礎理論和工作機制,然後從工程實踐的角度對比和分析了4個主流數據庫的事務管理與並發控制的實現原理,後通過源代碼分析了PostgreSQL和MySQL在事務管理與並發控制上的技術架構與設計思想。第壹篇(第1章和第2章)對數據庫事務管理和並發控制的基礎理論、核心技術和工作原理進行了講解。第二篇(第3~6章)對事務管理和並發控制的實現技術、工作原理以及原理背後的設計思想進行了深度分析和對比。第三篇(第7~9章)對PostgreSQL事務處理技術的架構、層次、設計思想、相關數據結構和實現原理進行了深入系統的分析和講解。第四篇(第10~12章)對MySQL/InnoDB事務處理技術的架構、層次、設計思想、相關數據結構和實現原理進行了深入系統的分析。

作者簡介

高級數據庫專家,從事數據庫內核的開發與研究15年,對數據庫系統原理、MySQL和PostgreSQL等開源數據庫的內核有非常深入的研究,對Informix、Oracle和SQL Server等商用數據庫也有深入的研究。15年來就職於人大金倉信息技術有限公司、Oracle公司MySQL全球開發組等單位,從事MySQL、 PostgreSQL和Informix數據庫內核的開發工作。2014年在我社出版《數據庫查詢優化器的藝術》一書,獲得讀者青睞。在MySQL、 PostgreSQL等數據庫社區有著很大的影響力,先後多次受邀作為中國數據庫技術大會、中國系統架構師大會、Oracle技術嘉年華、MySQL技術嘉年華等大會的嘉賓和專家評委,出席大會做主題分享。

目錄大綱

前言

第一篇事務管理與並發控制基礎理論
第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子事務與SAVEPOINT72 
2.5.5長事務的管理73 
2.5.6 XA74
2.6事務相關的實戰問題討論75 
2.7本章小結76 

第二篇事務管理與並發控制應用實例研究
第3章Informix事務管理與並發控制78 
3.1 Informix的事務操作78 
3.1.1開始事務78 
3.1.2提交事務79 
3.1.3回滾事務80 
3.1.4 XA事務80 
3.1.5事務模型82 
3.2 Informix的封鎖技術83 
3.2.1鎖的級別83 
3.2.2鎖的粒度84 
3.3隔離級別與數據異常85 
3.3.1 Informix支持的隔離級別85 
3.3.2隔離級別與日誌的模式86 
3.3.3寫偏序異常87 
3.4本章小結88 

第4章PostgreSQL事務管理與並發控制89 
4.1 PostgreSQL事務操作89 
4.1.1開始事務90 
4.1 .2提交事務90 
4.1.3回滾事務90 
4.1.4 XA事務91 
4.1.5自動控制事務91 
4.2 SQL操作與鎖92 
4.2.1鎖的研究準備92 
4.2.2 INSERT操作觸發的鎖94 
4.2. 3 SELECT操作觸發的鎖94
4.2.4 SELECT FOR UPDATE操作觸發的鎖97 
4.2.5 UPDATE操作觸發的鎖100 
4.2.6 DELETE操作觸發的鎖103 
4.2.7 ANALYZE操作觸發的鎖106 
4.2.8 CREATE INDEX操作觸發的鎖106 
4.2. 9 CREATE TRIGGER操作觸發的鎖107 
4.2.10鎖的相關參數108 
4.3隔離級別與數據異常108 
4.3.1 SQL標准定義的三種讀異常108 
4.3.2寫偏序異常115 
4.4本章小結118 

第5章InnoDB事務管理與並發控制119 
5.1 InnoDB的事務模型119 
5.1.1開始事務120 
5.1.2提交事務與回滾事務121 
5.1.3 MySQL的XA122 
5.2 InnoDB基於鎖的並發控制123 
5.2.1基於封鎖技術實現基本的並發控制123 
5.2.2鎖的種類124 
5.2.3鎖的施加規則127 
5.2.4獲取InnoDB行鎖爭用情況129 
5.2.5死鎖129 
5.3 InnoDB基於MVCC的並發控制130 
5.4隔離級別與數據異常131 
5.4.1 SQL標准定義的三種讀異常131
5.4.2寫偏序異常134 
5.5本章小結138 

第6章Oracle事務管理與並發控制139 
6.1 Oracle的事務操作139 
6.1.1事務管理139 
6.1.2事務屬性和隔離級別140 
6.1.3 XA事務141 
6.2 Oracle的封鎖技術142 
6.2.1元數據鎖的級別142 
6.2.2用戶數據鎖的級別143 
6.3 MVCC技術145 
6.3.1 MVCC的歷史145 
6.3.2深入理解MVCC 147 
6.3.3 Oracle的MVCC149 
6.4隔離級別與數據異常157 
6.4.1 Oracle支持的隔離級別157 
6.4.2寫偏序異常158 
6.5本章小結160 

第三篇PostgreSQL事務管理與並發控制源碼分析
第7章PostgreSQL事務系統的實現162 
7.1架構概述162 
7.1 .1事務和並發控制相關的文件162 
7.1.2事務相關的整體架構164 
7.2事務管理的基礎166 
7.2.1事務狀態166 
7.2.2事務體171 
7.2.3事務運行的簡略過程172 
7.3事務操作173
7.3.1開始事務173 
7.3.2事務提交177 
7.3.3日誌落盤179 
7.3.4事務回滾180 
7.3.5 clog185 
7.4子事務的管理186 
7.4.1子事務與父事務的區別186 
7.4.2保存點187 
7.5本章小結188 

第8章PostgreSQL並發控制系統的實現—封鎖189 
8.1鎖的概述189 
8.1.1鎖操作的本質189 
8.1.2與鎖相關的文件190 
8.1.3與鎖相關的內存初始化191 
8.2系統鎖192 
8.2.1 SpinLock192 
8.2.2 LWLock198 
8.2.3 SpinLock與LWLock比較213 
8.3事