本附錄彙整全書引用與推薦的資源,依類型排列;每章末的「延伸閱讀」則依主題排列。標示 者為本教材認為該類別中最值得優先投入的資源。

課程

  • CMU 15-445/645 Intro to Database Systems(Fall 2025,Andy Pavlo)——講義、投影片、作業、BusTub 專案、YouTube 全程錄影。本教材第 2–11 章的結構深受其影響。 https://15445.courses.cs.cmu.edu/fall2025/

  • CMU 15-721 Advanced Database Systems——記憶體資料庫、向量化、編譯、行式儲存、現代 OLAP 的研究所課程。https://15721.courses.cs.cmu.edu/

  • CMU 15-799 Special Topics: Query Optimization——最佳化器專題。https://15799.courses.cs.cmu.edu/

  • UC Berkeley CS186 Introduction to Database Systems——投影片與影片公開,專案以 Java 實作 B+Tree、join、並行、復原。https://cs186berkeley.net/

  • MIT 6.5830/6.5831 Database Systems——論文導讀 + GoDB lab。https://dsg.csail.mit.edu/6.5830/

  • MIT 6.5840 Distributed Systems(舊稱 6.824)——第 14–16 章的最佳搭配:講義、論文、Raft/KV/分片交易 lab。https://pdos.csail.mit.edu/6.824/

  • Stanford CS245 Principles of Data-Intensive Systems——儲存、查詢、交易、分散式的綜合課。

  • CMU Database Group YouTube 頻道——除課程外還有 Vaccination Database Tech Talks、Quarantine Tech Talks 等業界系統(CockroachDB、Snowflake、DuckDB、TiDB……)的架構演講。

書籍

  • A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 7th ed., McGraw-Hill 2019——最完整的教科書;官方網站有投影片與部分章節。https://www.db-book.com/

  • R. Ramakrishnan, J. Gehrke, Database Management Systems, 3rd ed., 2002——第 18 章的 ARIES 與第 12–14 章的執行、最佳化寫得最清楚。

  • A. Petrov, Database Internals: A Deep Dive into How Distributed Data Systems Work, O’Reilly 2019——上半部儲存引擎(B-Tree、LSM)、下半部分散式,與本教材的章節幾乎一一對應。

  • M. Kleppmann, Designing Data-Intensive Applications, 2nd ed., O’Reilly 2025——複寫、分割、交易、一致性與共識的最佳入門與參考。

  • H. Suzuki, The Internals of PostgreSQL(免費線上)——PostgreSQL 內部機制的系統性說明,本教材的 PostgreSQL 內容大量參考。https://www.interdb.jp/pg/

  • E. Rogov, PostgreSQL 14 Internals(Postgres Professional,免費 PDF)——MVCC、鎖、WAL、查詢執行的深入專著,含大量實驗。https://postgrespro.com/community/books/internals

  • J. Gray, A. Reuter, Transaction Processing: Concepts and Techniques, Morgan Kaufmann 1992——交易處理的聖經。

  • P. Bernstein, V. Hadzilacos, N. Goodman, Concurrency Control and Recovery in Database Systems, 1987(免費 PDF)。https://www.microsoft.com/en-us/research/people/philbe/book/

  • P. Bailis, J. Hellerstein, M. Stonebraker (eds.), Readings in Database Systems, 5th ed.(Red Book,免費線上)——經典論文選集與評論。http://www.redbook.io/

  • J. Hellerstein, M. Stonebraker, J. Hamilton, Architecture of a Database System, Foundations and Trends in Databases 2007(免費)——一篇論文長度的「資料庫系統架構總覽」。

  • G. Weikum, G. Vossen, Transactional Information Systems, 2001——並行控制與復原的理論基礎。

  • E. Sciore, Database Design and Implementation, 2nd ed., Springer 2020——以 SimpleDB 逐章實作。

  • M. Winand, SQL Performance Explained/Use The Index, Luke!(免費線上)——索引與執行計畫的實務。https://use-the-index-luke.com/

  • D. Abadi et al., The Design and Implementation of Modern Column-Oriented Database Systems, 2013(免費)——行式系統專著。

論文(依章節)

Codd, A Relational Model of Data for Large Shared Data Banks, CACM 1970。

Ailamaki et al., Weaving Relations for Cache Performance(PAX), VLDB 2001;Crotty et al., Are You Sure You Want to Use MMAP in Your DBMS?, CIDR 2022。

Bayer & McCreight, Organization and Maintenance of Large Ordered Indices, 1972;Lehman & Yao, Efficient Locking for Concurrent Operations on B-Trees, TODS 1981;Graefe, Modern B-Tree Techniques, 2011。

O’Neil et al., The LRU-K Page Replacement Algorithm, SIGMOD 1993;Megiddo & Modha, ARC, FAST 2003。

Graefe, Volcano, TKDE 1994;Boncz et al., MonetDB/X100, CIDR 2005;Neumann, Efficiently Compiling Efficient Query Plans, VLDB 2011;Shapiro, Join Processing in Database Systems with Large Main Memories, TODS 1986。

Selinger et al., Access Path Selection, SIGMOD 1979;Chaudhuri, An Overview of Query Optimization, PODS 1998;Leis et al., How Good Are Query Optimizers, Really?, VLDB 2015;Graefe, Cascades, 1995。

Berenson et al., A Critique of ANSI SQL Isolation Levels, SIGMOD 1995;Adya, Liskov, O’Neil, Generalized Isolation Level Definitions, ICDE 2000;Bailis et al., Highly Available Transactions, VLDB 2014。

Mohan et al., ARIES, TODS 1992;Gray et al., The Recovery Manager of the System R Database Manager, 1981。

Ports & Grittner, Serializable Snapshot Isolation in PostgreSQL, VLDB 2012;Cahill et al., Serializable Isolation for Snapshot Databases, SIGMOD 2008;Wu et al., An Empirical Evaluation of In-Memory MVCC, VLDB 2017。

Gray et al., Granularity of Locks and Degrees of Consistency, 1976;Kung & Robinson, On Optimistic Methods for Concurrency Control, TODS 1981。

O’Neil et al., The LSM-Tree, 1996;Chang et al., Bigtable, OSDI 2006;Dayan et al., Monkey, SIGMOD 2017;Lu et al., WiscKey, FAST 2016;Luo & Carey, LSM-based Storage Techniques: A Survey, VLDBJ 2020。

Stonebraker et al., C-Store, VLDB 2005;Abadi et al., Column-Stores vs. Row-Stores, SIGMOD 2008;Melnik et al., Dremel, VLDB 2010;Leis et al., Morsel-Driven Parallelism, SIGMOD 2014;Dageville et al., Snowflake, SIGMOD 2016;Raasveldt & Mühleisen, DuckDB, SIGMOD 2019。

Gilbert & Lynch, Brewer’s Conjecture, 2002;Brewer, CAP Twelve Years Later, 2012;Abadi, PACELC, 2012;DeCandia et al., Dynamo, SOSP 2007;Karger et al., Consistent Hashing, STOC 1997;Lamport, Time, Clocks, CACM 1978;Verbitski et al., Aurora, SIGMOD 2017;Taft et al., CockroachDB, SIGMOD 2020。

Ongaro & Ousterhout, In Search of an Understandable Consensus Algorithm, ATC 2014;Lamport, Paxos Made Simple, 2001;Chandra et al., Paxos Made Live, PODC 2007;FLP, 1985;Howard & Mortier, Paxos vs Raft, 2020;Oki & Liskov, Viewstamped Replication, 1988。

Gray & Lamport, Consensus on Transaction Commit, TODS 2006;Corbett et al., Spanner, OSDI 2012;Peng & Dabek, Percolator, OSDI 2010;Thomson et al., Calvin, SIGMOD 2012;Garcia-Molina & Salem, Sagas, SIGMOD 1987;Helland, Life beyond Distributed Transactions, CIDR 2007。

Ghemawat et al., The Google File System, SOSP 2003;Dean & Barroso, The Tail at Scale, CACM 2013;Zhou et al., FoundationDB, SIGMOD 2021。

PostgreSQL 官方與社群資源

工具

  • 觀察內部狀態:、、、、、、、、、//。

  • 執行計畫視覺化:https://explain.depesz.com/、https://explain.dalibo.com/、pgMustard。

  • 負載與基準:(TPC-B 風格,可自訂腳本)、HammerDB(TPC-C/H)、sysbench、YCSB、TPC-H 工具()。

  • 監控:pg_stat_* 視圖、pgwatch、pgBadger(日誌分析)、Prometheus postgres_exporter、pganalyze。

  • 高可用與備份:Patroni、pgBackRest、barman、pg_auto_failover、PgBouncer、PgCat、Odyssey。

  • 正確性測試:Jepsen(https://jepsen.io/)、Hermitage(https://github.com/ept/hermitage)、sqllogictest、SQLancer(自動找出邏輯 bug)。

  • 互動式學習:RelaX 關聯代數計算機(https://dbis-uibk.github.io/relax/)、The Secret Lives of Data(Raft 視覺化)、Raft 官網視覺化、Use The Index Luke 的互動範例。

動手專案

保持更新

資料庫領域變化快,但核心概念穩定。建議每年固定閱讀:PostgreSQL 新版本的 release notes、CMU 15-445 當年度的講義更新、VLDB/SIGMOD/CIDR 的 industry track 論文(各大系統的架構論文多發表於此)、 Jepsen 的新分析報告、以及 DDIA 作者 Martin Kleppmann 與 Murat Demirbas(https://muratbuffalo.blogspot.com/)等人的部落格。