Skip to main content

Learning Resources

This module is populated from the chunked books in library/raw/semester-06-databases-distributed/books. Use this page as a source map, not as an instruction to read everything.

Source Stack

BookRoleHow to use it in this module
Database System Concepts (Silberschatz, Korth, Sudarshan)Primary teaching sourceDefault escalation for relational model, relational algebra, SQL semantics, integrity constraints, normalization, views, transactions-at-SQL-level
Designing Data-Intensive Applications (Kleppmann)Modern overview and contextUse for "why relational still wins for OLTP" framing, schema evolution in practice, and as the bridge into later distributed-systems modules
Database Internals (Petrov)Low-level supportPeek under the hood: how B-trees and LSMs affect query plans, how storage layout shows up in EXPLAIN numbers
Distributed Systems Concepts and Design (Coulouris)PeripheralReserve for later modules; not a primary source for relational / SQL mastery

External Resource Gates

Open these only when you are stuck or preparing a production change:

Tool / SiteUse
PostgreSQL docsCanonical reference for every keyword, every operator, every ALTER TABLE variant, and EXPLAIN output format
SQLite docsSecond dialect reference; useful for checking "is this syntax actually standard?"
Use The Index, Luke (Markus Winand)Best single resource on index-aware query writing and plan interpretation
PGExercisesStructured SQL practice, difficulty-graded, using PostgreSQL
SQLZooLower-friction SQL practice with immediate feedback

Resource Map by Cluster

Cluster 1: The Relational Model

NeedBest local chunkWhy
relation / tuple / attribute formalismSilberschatz: Structure of relational databasesCleanest statement of the model
schemas and schema diagramsSilberschatz: Database schemaIntroduces the vocabulary the rest of the module uses
keysSilberschatz: KeysSuperkey/candidate/primary, with worked examples
schema diagramsSilberschatz: Schema diagramsShows FK arrows you will draw for your own designs
relational algebra, part 1Silberschatz: The relational algebra, part 1Selection, projection
relational algebra, parts 2-4Silberschatz: The relational algebra, parts 2-4Joins, set ops, rename

Cluster 2: SQL as a Query Language

NeedBest local chunkWhy
DDLSilberschatz: SQL data definitionCREATE TABLE reference
query basic structureSilberschatz: Basic structure of SQL queries, part 1SELECT FROM WHERE
query basic structure part 2Silberschatz: Basic structure of SQL queries, part 2Aliases, duplicates
additional operationsSilberschatz: Additional basic operationsDISTINCT, arithmetic, string ops
set operationsSilberschatz: Set operationsUNION / INTERSECT / EXCEPT
NULL semanticsSilberschatz: Null valuesThree-valued logic
aggregation and GROUP BYSilberschatz: Aggregate functionsGROUP BY / HAVING mechanics
nested subqueriesSilberschatz: Nested subqueriesScalar, IN/EXISTS, derived tables
joinsSilberschatz: Join expressionsINNER / OUTER / NATURAL
modification DMLSilberschatz: Modification of the databaseINSERT / UPDATE / DELETE

Cluster 3: Schema Design and Normalization

NeedBest local chunkWhy
features of good designsSilberschatz: Features of good relational designsMotivates the whole chapter
decompositionSilberschatz: Decomposition using FDs, part 1Defines lossless decomposition
normal formsSilberschatz: Normal forms, part 12NF, 3NF, BCNF
FD theorySilberschatz: Functional dependency theory, part 1Armstrong's axioms, closure
decomposition algorithmsSilberschatz: Algorithms for decompositionMechanical synthesis
ER diagrams to tablesSilberschatz: Reducing ER diagrams to relational schemasTranslation rules
extended ER featuresSilberschatz: Extended ER features, part 1Inheritance, specialization

Cluster 4: Constraints, Integrity, and DDL

NeedBest local chunkWhy
integrity constraintsSilberschatz: Integrity constraints, part 1Definitions of all constraint types
integrity constraintsSilberschatz: Integrity constraints, parts 2-3Referential integrity, cascade actions
data typesSilberschatz: SQL data types and schemasDomains, user-defined types
viewsSilberschatz: Views, part 1Definition and updatability
materialized viewsSilberschatz: Materialized viewsTrade-offs and refresh
functions and proceduresSilberschatz: Functions and proceduresPL/pgSQL-shaped examples
triggersSilberschatz: TriggersEnforcement and auditing
schema evolution in practiceDDIA: The merits of schemasEvolution, backward/forward compat

Cluster 5: SQL Performance Basics

NeedBest local chunkWhy
query processing overviewSilberschatz: Query processing overview (15.1)What a plan is, and how the optimizer fits
measures of query costSilberschatz: Measures of query cost, part 1What "cost" means in EXPLAIN
selection implementationsSilberschatz: Selection operation, part 1Scan vs seek at the operator level
join implementationsSilberschatz: Join operation, parts 1-6Nested loop, hash, merge joins
relational expression transformationSilberschatz: Transformation of relational expressionsHow the optimizer rewrites
statistics estimationSilberschatz: Estimating statistics of expression resultsWhy estimates go wrong
plan choiceSilberschatz: Choice of evaluation plansCost-based plan selection
index definitionSilberschatz: Index definition in SQLCREATE INDEX mechanics
transactions (concept)Silberschatz: Transaction concept (17.1)ACID, atomicity, durability
isolation levelsSilberschatz: Transaction isolation levelsStandard isolation levels
transactions at SQL levelSilberschatz: Transactions as SQL statementsBEGIN / COMMIT / ROLLBACK
transactions chapterDDIA: Chapter 7 - TransactionsModern operational framing

How To Escalate

  1. Start with the concept page in the module.
  2. If the concept is still not clicking, open the matching Silberschatz chunk from the table above.
  3. If you need a second perspective or "why does this matter in a real system," open the DDIA chunk.
  4. If you need the lowest-level explanation of why a plan looks the way it does, open the Database Internals chunk (Petrov).
  5. If you need authoritative syntax or behavior, open the PostgreSQL docs linked on each concept page.