本附錄彙整全書引用與推薦的資源,依類型排列;每章末的「延伸閱讀」則依主題排列。標示 者為本教材認為該類別中最值得優先投入的資源。
課程
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://www.postgresql.org/docs/current/;特別是 Part VII Internals(第 50 章以後)。
原始碼:https://git.postgresql.org/(鏡像 https://github.com/postgres/postgres);Doxygen:https://doxygen.postgresql.org/
PostgreSQL Wiki:https://wiki.postgresql.org/(Developer FAQ、Tuning Your PostgreSQL Server、Don’t Do This、Lock Monitoring、SSI)。
郵件列表 (設計討論與 patch 審查,許多功能的「為什麼」只在這裡找得到)與 Commitfest:https://commitfest.postgresql.org/
每個 release 的 Release Notes(新功能摘要)與 PostgreSQL 18 Release Notes:https://www.postgresql.org/docs/18/release-18.html
Planet PostgreSQL(社群部落格聚合):https://planet.postgresql.org/;優質技術部落格:Crunchy Data、Cybertec、pganalyze、EDB、Citus、Neon、Dalibo、Percona。
會議錄影:PGConf.dev、PGCon(歷史)、PGConf.EU、PGConf.ASIA、FOSDEM PGDay;台灣 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 的互動範例。
動手專案
BusTub(CMU 15-445):https://github.com/cmu-db/bustub
cstack Let’s Build a Simple Database:https://cstack.github.io/db_tutorial/
Build Your Own Database From Scratch:https://build-your-own.org/database/
mini-lsm:https://skyzh.github.io/mini-lsm/;toydb:https://github.com/erikgrinaker/toydb
MIT 6.5840 Raft lab:https://pdos.csail.mit.edu/6.824/labs/lab-raft.html
SQLite 文件(Architecture、File Format、WAL、Testing):https://www.sqlite.org/docs.html
保持更新
資料庫領域變化快,但核心概念穩定。建議每年固定閱讀:PostgreSQL 新版本的 release notes、CMU 15-445 當年度的講義更新、VLDB/SIGMOD/CIDR 的 industry track 論文(各大系統的架構論文多發表於此)、 Jepsen 的新分析報告、以及 DDIA 作者 Martin Kleppmann 與 Murat Demirbas(https://muratbuffalo.blogspot.com/)等人的部落格。