🗄 Databases
Original CC BY-SA compilation from Wikipedia, licensed CC BY-SA 4.0.
From Codd's relational model through transactions, indexing, and NoSQL. Translated into runnable Scheme and Python with SVG diagrams.
| Chapter | |||
|---|---|---|---|
| 1. | The Relational Model | Tables, rows, columns, and keys: Codd's foundation for all structured data | 🗄 |
| 2. | Relational Algebra | Select, project, join, union, difference: the formal operations on relations | 🗄 |
| 3. | SQL Basics | CREATE, SELECT, JOIN, GROUP BY: the language that implements relational algebra | 🗄 |
| 4. | Normalization | Eliminate redundancy by decomposing tables according to functional dependencies | 🗄 |
| 5. | Indexing | B-trees, B+ trees, and hash indexes: trade space for speed on lookups | 🗄 |
| 6. | Transactions | ACID properties guarantee correctness when multiple operations must succeed or fail together | 🗄 |
| 7. | Concurrency Control | Locks, two-phase locking, and MVCC: let multiple transactions run without corrupting data | 🗄 |
| 8. | Recovery | Write-ahead logging and checkpoints: survive crashes without losing committed data | 🗄 |
| 9. | Query Processing | Query plans, join algorithms, and cost estimation: how the engine picks the fastest path | 🗄 |
| 10. | NoSQL and Beyond | Key-value, document, column-family, graph: when relations are not the right shape | 🗄 |
📺 Video lectures: CMU 15-445: Database Systems (Andy Pavlo)
Neighbors
- 🔢 Discrete Math — relational algebra is formal logic applied to tables
- ⚙ Algorithms — B-trees, indexing, and query processing
- 🌐 Distributed Systems — distributed transactions and replication
- 🖥 Operating Systems — storage engines use OS-level abstractions