Muutke küpsiste eelistusi

Transaction Processing: Management of the Logical Database and its Underlying Physical Structure 2014 ed. [Kõva köide]

  • Formaat: Hardback, 392 pages, kõrgus x laius: 235x155 mm, kaal: 7332 g, 64 Illustrations, black and white; XV, 392 p. 64 illus., 1 Hardback
  • Sari: Data-Centric Systems and Applications
  • Ilmumisaeg: 09-Feb-2015
  • Kirjastus: Springer International Publishing AG
  • ISBN-10: 3319122916
  • ISBN-13: 9783319122915
  • Kõva köide
  • Hind: 67,23 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 79,09 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Hardback, 392 pages, kõrgus x laius: 235x155 mm, kaal: 7332 g, 64 Illustrations, black and white; XV, 392 p. 64 illus., 1 Hardback
  • Sari: Data-Centric Systems and Applications
  • Ilmumisaeg: 09-Feb-2015
  • Kirjastus: Springer International Publishing AG
  • ISBN-10: 3319122916
  • ISBN-13: 9783319122915
Transactions are a concept related to the logical database as seen from the perspective of database application programmers: a transaction is a sequence of database actions that is to be executed as an atomic unit of work. The processing of transactions on databases is a well- established area with many of its foundations having already been laid in the late 1970s and early 1980s.

The unique feature of this textbook is that it bridges the gap between the theory of transactions on the logical database and the implementation of the related actions on the underlying physical database. The authors relate the logical database, which is composed of a dynamically changing set of data items with unique keys, and the underlying physical database with a set of fixed-size data and index pages on disk. Their treatment of transaction processing builds on the do-redo-undo recovery paradigm, and all methods and algorithms presented are carefully designed to be compatible with this paradigm as well as with write-ahead logging, steal-and-no-force buffering, and fine-grained concurrency control.

Chapters 1 to 6 address the basics needed to fully appreciate transaction processing on a centralized database system within the context of our transaction model, covering topics like ACID properties, database integrity, buffering, rollbacks, isolation, and the interplay of logical locks and physical latches. Chapters 7 and 8 present advanced features including deadlock-free algorithms for reading, inserting and deleting tuples, while the remaining chapters cover additional advanced topics extending on the preceding foundational chapters, including multi-granular locking, bulk actions, versioning, distributed updates, and write-intensive transactions.

This book is primarily intended as a text for advanced undergraduate or graduate courses on database management in general or transaction processing in particular.
1 Transactions on the Logical Database
1(24)
1.1 Transaction Server
1(1)
1.2 Logical Database
2(2)
1.3 Integrity of the Logical Database
4(1)
1.4 Transactions
5(2)
1.5 Transaction States
7(3)
1.6 ACID Properties of Transactions
10(3)
1.7 The Read-Write Model
13(2)
1.8 The Key-Range Model
15(3)
1.9 Savepoints and Partial Rollbacks
18(2)
1.10 Multiple Granularity
20(5)
Problems
20(3)
Bibliographical Notes
23(2)
2 Operations on the Physical Database
25(20)
2.1 Data Structures and Processes on the Server
25(2)
2.2 Database Pages and Files
27(4)
2.3 Buffering and Fixing of Database Pages
31(2)
2.4 Database States
33(1)
2.5 Database Recovery and Checkpoints
34(2)
2.6 Integrity of the Physical Database
36(1)
2.7 Latching of Database Pages
37(2)
2.8 Modifications on the Physical Structure
39(6)
Problems
42(1)
Bibliographical Notes
43(2)
3 Logging and Buffering
45(20)
3.1 Transaction Log
46(2)
3.2 Physiological Logging
48(2)
3.3 Active-Transaction Table and Modified-Page Table
50(2)
3.4 Logging for the Read-Write and Key-Range Models
52(3)
3.5 Logging Structure Modifications
55(2)
3.6 Updating a Data Page
57(1)
3.7 Write-Ahead Logging
58(1)
3.8 The Commit Protocol
59(1)
3.9 The Steal-and-No-Force Buffering Policy
60(1)
3.10 Reducing Disk Access
61(4)
Problems
62(1)
Bibliographical Notes
63(2)
4 Transaction Rollback and Restart Recovery
65(36)
4.1 Transaction Aborts, Process Failures, and System Crashes
66(1)
4.2 Partial and Total Rollbacks
67(2)
4.3 Performing the Undo Actions
69(3)
4.4 Checkpoints
72(1)
4.5 Problems with Do-Undo-Redo Recovery
73(2)
4.6 The ARIES Do-Redo-Undo Recovery Algorithm
75(2)
4.7 Analysis Pass for Do-Redo-Undo Recovery
77(5)
4.8 Redo Pass for Do-Redo-Undo Recovery
82(5)
4.9 Undo Pass for Do-Redo-Undo Recovery
87(5)
4.10 Recovery from a Process Failure
92(1)
4.11 Recovering Structure Modifications
93(8)
Problems
96(2)
Bibliographical Notes
98(3)
5 Transactional Isolation
101(24)
5.1 Transaction Histories
102(3)
5.2 Uncommitted Updates
105(1)
5.3 Isolation Anomalies
106(5)
5.4 Isolation Anomalies and Database Integrity
111(4)
5.5 SQL Isolation Levels
115(1)
5.6 Isolation and Transaction Rollback
116(2)
5.7 Conflict-Serializability
118(2)
5.8 Enforcing Isolation
120(5)
Problems
121(2)
Bibliographical Notes
123(2)
6 Lock-Based Concurrency Control
125(34)
6.1 Locks and the Lock Table
126(2)
6.2 Acquiring and Releasing Locks
128(3)
6.3 Locking Protocol for the Read-Write Model
131(4)
6.4 Key-Range Locking
135(9)
6.5 Deadlocks
144(3)
6.6 Conditional Lock Requests
147(1)
6.7 Algorithms for Read, Insert, and Delete Actions
148(5)
6.8 Predicate Locking
153(6)
Problems
155(2)
Bibliographical Notes
157(2)
7 B-Tree Traversals
159(26)
7.1 Sparse B-Tree Indexes
160(2)
7.2 Saved Paths
162(3)
7.3 Traversals for Read Actions
165(5)
7.4 Traversals for Insert Actions
170(6)
7.5 Traversals for Delete Actions
176(4)
7.6 Traversals for Undo Actions
180(5)
Problems
181(1)
Bibliographical Notes
182(3)
8 B-Tree Structure Modifications
185(36)
8.1 Top-Down Redo-Only Modifications
186(2)
8.2 Tree-Height Increase and Page Split
188(3)
8.3 Tree-Height Decrease, Page Merge, and Records Redistribute
191(4)
8.4 Sequences of Redo-Only Modifications
195(9)
8.5 Redoing B-Tree Structure Modifications
204(3)
8.6 Bottom-Up Structure Modifications
207(5)
8.7 B-Link Trees
212(1)
8.8 Loading of a B-Tree
213(8)
Problems
215(2)
Bibliographical Notes
217(4)
9 Advanced Locking Protocols
221(16)
9.1 Key-Range Locking for Multiple Granules
222(1)
9.2 Intention Locks and Multi-Granular Locking
223(4)
9.3 Logical Locking vs. Physical Locking
227(1)
9.4 Update-Mode Locks
228(2)
9.5 Cursor Stability
230(1)
9.6 Reads Without Locks
231(1)
9.7 Recovery and Concurrent Transactions
232(5)
Problems
234(2)
Bibliographical Notes
236(1)
10 Bulk Operations on B-Trees
237(22)
10.1 Transactions with Bulk Actions
238(3)
10.2 Locking Range Partitions
241(6)
10.3 Bulk Reading
247(1)
10.4 Bulk Insertion
248(2)
10.5 Bulk Deletion
250(2)
10.6 Logging and Undoing Bulk Actions
252(1)
10.7 Complexity of Scanning a Key Range
253(6)
Problems
256(1)
Bibliographical Notes
257(2)
11 Online Index Construction and Maintenance
259(20)
11.1 Secondary-Key-Based Actions
260(2)
11.2 Secondary B-Tree Indexes
262(2)
11.3 Index Construction Without Quiescing Updates
264(2)
11.4 Extraction of the Index Records
266(1)
11.5 Concurrent Updates by Transactions
267(5)
11.6 Populating the Index
272(2)
11.7 Restoration of Clustering
274(5)
Problems
276(1)
Bibliographical Notes
277(2)
12 Concurrency Control by Versioning
279(20)
12.1 Transaction-Time Databases
279(2)
12.2 Read-Only and Update Transactions
281(3)
12.3 Transaction-Level Read Consistency
284(2)
12.4 Statement-Level Read Consistency
286(1)
12.5 Snapshot Isolation
287(2)
12.6 Enforcing the Disjoint-Write Property
289(1)
12.7 Version Management with B-Trees
290(2)
12.8 Update Transactions on Versioned B-Trees
292(7)
Problems
294(2)
Bibliographical Notes
296(3)
13 Distributed Transactions
299(28)
13.1 Distributed Databases
300(1)
13.2 Transactions on a Distributed Database
301(5)
13.3 Atomic Commitment
306(1)
13.4 Two-Phase Commit Protocol
307(4)
13.5 Recovering a Server from a Failure
311(1)
13.6 Isolation and Concurrency Control
312(2)
13.7 Replicated Databases
314(2)
13.8 Remote Backup Databases
316(3)
13.9 Transactions on Key-Value Stores
319(8)
Problems
321(3)
Bibliographical Notes
324(3)
14 Transactions in Page-Server Systems
327(24)
14.1 Data Server
328(2)
14.2 Page-Server Architecture
330(1)
14.3 Client Caching and Page-Server State
331(3)
14.4 Update Propagation
334(1)
14.5 Cache Consistency
335(3)
14.6 Log Management
338(3)
14.7 Recovery from a Client Failure
341(2)
14.8 Recovery from a Server Failure
343(2)
14.9 Concurrency Control
345(1)
14.10 Shared-Disks Systems
346(5)
Problems
347(2)
Bibliographical Notes
349(2)
15 Processing of Write-Intensive Transactions
351(20)
15.1 Group Commit
352(2)
15.2 Online Page Relocation
354(1)
15.3 Write-Optimized B-Trees
355(5)
15.4 Merge Trees
360(3)
15.5 Log-Structured Databases
363(1)
15.6 Databases on Flash Memory
364(7)
Problems
367(1)
Bibliographical Notes
368(3)
References 371(10)
Index 381
Seppo Sippu is Professor (Emeritus) of Computer Science at the University of Helsinki, and Eljas Soisalon-Soininen is Professor of Computer Science and Engineering at the Aalto University School of Science. They started their co-work already in the 1970s on the area of compiler construction and parsing. This work culminated in the two-volume book "Parsing Theory" published by Springer 1988 and 1990.

Already in the 1980s they gradually moved to data structures and algorithms, and also to databases and indexing, partly inspired by the visit of Dr. Soisalon-Soininen at the University of Karlsruhe as a Humboldt grantee. One important topic in the most recent work has been incorporating index operations into database transactions allowing uniform treatment of them both. Sippu and Soisalon-Soininen have published many articles in peer-reviewed conferences and journals, such as Journal of the ACM, ACM Transactions on Database Systems, The VLDB Journal, and IEEE Transactions on Knowledge and Data Engineering.