Reference and Selective Reading
You do not need to read the source books front-to-back for this module. Use the concept pages and practice pages first. Open these local chunks only when you need alternate exposition, more worked examples, or a deeper exercise lane.
Source Roles
| Source | Role | Why it is here |
|---|---|---|
| Database System Concepts (Silberschatz) | Primary teaching source | Cleanest formal presentation of the relational model, SQL semantics, integrity constraints, normalization, views, transactions-at-SQL-level |
| Designing Data-Intensive Applications (Kleppmann) | Modern overview | Best pragmatic framing of schema evolution, consistency, and the tradeoffs you meet in production |
| Database Internals (Petrov) | Low-level support | Use when you need to know why a plan looks the way it does at the storage / index level |
| Distributed Systems Concepts and Design (Coulouris) | Peripheral | Distributed transactions and replication; revisited in later modules |
Read Only If Stuck
Cluster 1: The Relational Model
- Silberschatz: Structure of relational databases
- Silberschatz: Database schema
- Silberschatz: Keys
- Silberschatz: Schema diagrams
- Silberschatz: Relational algebra, part 1
- Silberschatz: Relational algebra, part 2
- Silberschatz: Relational algebra, part 3
- Silberschatz: Relational algebra, part 4
Cluster 2: SQL as a Query Language
- Silberschatz: SQL data definition
- Silberschatz: Basic structure of SQL queries, part 1
- Silberschatz: Basic structure of SQL queries, part 2
- Silberschatz: Additional basic operations, part 1
- Silberschatz: Additional basic operations, part 2
- Silberschatz: Set operations
- Silberschatz: Null values
- Silberschatz: Aggregate functions, part 1
- Silberschatz: Aggregate functions, part 2
- Silberschatz: Nested subqueries, part 1
- Silberschatz: Nested subqueries, part 2
- Silberschatz: Nested subqueries, part 3
- Silberschatz: Modification of the database, part 1
- Silberschatz: Join expressions, part 1
- Silberschatz: Join expressions, part 2
- Silberschatz: Join expressions, part 3
- Silberschatz: Join expressions, part 4
Cluster 3: Schema Design and Normalization
- Silberschatz: Features of good relational designs
- Silberschatz: Decomposition using FDs, part 1
- Silberschatz: Decomposition using FDs, part 2
- Silberschatz: Normal forms, part 1
- Silberschatz: Normal forms, part 2
- Silberschatz: Normal forms, part 3
- Silberschatz: FD theory, part 1
- Silberschatz: Algorithms for decomposition, part 1
- Silberschatz: More normal forms (4NF, BCNF nuances)
- Silberschatz: Reducing ER diagrams to relational schemas, part 1
- Silberschatz: Reducing ER diagrams to relational schemas, part 2
- Silberschatz: Reducing ER diagrams to relational schemas, part 3
- Silberschatz: Extended ER features, part 1
- Silberschatz: ER design issues
Cluster 4: Constraints, Integrity, and DDL
- Silberschatz: SQL data definition
- Silberschatz: Integrity constraints, part 1
- Silberschatz: Integrity constraints, part 2
- Silberschatz: Integrity constraints, part 3
- Silberschatz: SQL data types and schemas, part 1
- Silberschatz: Views, part 1
- Silberschatz: Views, part 2
- Silberschatz: Materialized views, part 1
- Silberschatz: Materialized views, part 2
- Silberschatz: Functions and procedures, part 1
- Silberschatz: Triggers, part 1
- DDIA: The merits of schemas
Cluster 5: SQL Performance Basics
- Silberschatz: Part six - query processing and optimization
- Silberschatz: Query processing overview (15.1)
- Silberschatz: Measures of query cost, part 1
- Silberschatz: Measures of query cost, part 2
- Silberschatz: Selection operation, part 1
- Silberschatz: Join operation, part 1
- Silberschatz: Join operation, part 2
- Silberschatz: Transformation of relational expressions, part 1
- Silberschatz: Estimating statistics of expression results, part 1
- Silberschatz: Choice of evaluation plans, part 1
- Silberschatz: Index definition in SQL
- Silberschatz: Transaction concept (17.1)
- Silberschatz: A simple transaction model (17.2)
- Silberschatz: Transaction atomicity and durability (17.4)
- Silberschatz: Transaction isolation (17.5)
- Silberschatz: Transaction isolation and atomicity (17.7)
- Silberschatz: Transaction isolation levels (17.8)
- Silberschatz: Transactions as SQL statements (17.10)
- DDIA: Chapter 7 - Transactions
- Database Internals: Chapter 5 - Transaction processing and recovery
External References
Open these only when you are ready to run code or ship a change, not as part of first-pass learning: