Databases & Data Management
Relational models, SQL, indexing, query processing, transactions, concurrency, recovery and distributed data.
Databases are one of the areas where practical experience and theoretical foundations constantly meet.
After years of working with relational databases, it is easy to become comfortable with queries, indexes and transactions while gradually losing sight of the mechanisms that make those abstractions reliable.
Going back to database theory helped me reconnect everyday engineering decisions with deeper questions about data modelling, concurrency and system behaviour.
Why does an index make one query faster and another more expensive? What really happens when two transactions modify related data concurrently? How does a database recover after a crash? How do replication and distribution change the guarantees we can expect?
This section collects the books I use to move from data modelling and SQL to the internal mechanisms that make database systems correct, efficient and resilient.
Topics in This Section
Relational Model · SQL · Database Design · Normalization · Indexing · Storage · Query Processing · Query Optimization · Transactions · ACID · Isolation · Concurrency Control · Recovery · Parallel Databases · Distributed Databases · Big Data · Blockchain Databases
Database System Concepts
Abraham Silberschatz, Henry F. Korth & S. Sudarshan
7th Edition — McGraw-Hill
Level
Foundation → Advanced
Best for
Relational databases, transaction management, query processing and database-system internals.
Database System Concepts is one of the main academic references I use when I want to understand not only how to work with a database, but how the database itself works.
The book spans the full path from relational modelling and SQL to physical storage, indexes, query optimisation, concurrency control, recovery and distributed database processing.
That makes it especially useful for connecting concepts that are often studied separately but interact constantly in real systems.
What I Use It For
- relational modelling and relational algebra;
- SQL and advanced SQL features;
- entity-relationship modelling;
- normalization and relational design;
- physical data storage;
- indexes and access structures;
- query processing;
- query optimization;
- ACID transactions;
- isolation and concurrency anomalies;
- locking and concurrency control;
- crash recovery;
- parallel and distributed databases;
- distributed transaction processing;
- big-data concepts and modern database architectures.
Chapters Worth Reading
Relational Model & SQL
Chapter 2 — Introduction to the Relational Model
Relations, schemas, keys and the foundations of the relational model.
Chapter 3 — Introduction to SQL
Core SQL operations, querying and data manipulation.
Chapter 4 — Intermediate SQL
More advanced query structures and database capabilities.
Chapter 5 — Advanced SQL
Advanced SQL mechanisms and features useful for complex applications.
Database Design
Chapter 6 — Database Design Using the E-R Model
Conceptual modelling through entities, relationships, constraints and schema design.
Chapter 7 — Relational Database Design
Functional dependencies, normalization and the design of well-structured relational schemas.
Big Data & Analytics
Chapter 10 — Big Data
Architectures and approaches for storing and processing large-scale datasets.
Chapter 11 — Data Analysis
Concepts and techniques for analysing data beyond traditional transactional workloads.
Storage & Indexing
Chapter 12 — Physical Storage Systems
Storage technologies and the physical foundations on which database systems operate.
Chapter 13 — Data Storage Structures
How database systems organise records and data structures on persistent storage.
Chapter 14 — Indexing
Indexes and access methods used to reduce the amount of data that queries need to examine.
Query Processing & Optimization
Chapter 15 — Query Processing
How SQL statements are translated into executable operations and how query cost is evaluated.
Chapter 16 — Query Optimization
How a database compares alternative execution strategies and chooses an efficient query plan.
Transactions, Concurrency & Recovery
Chapter 17 — Transactions
Transaction concepts, atomicity, consistency, isolation and durability.
Chapter 18 — Concurrency Control
Concurrency anomalies, locking and mechanisms used to preserve correctness when transactions execute simultaneously.
Chapter 19 — Recovery System
Logging, recovery and techniques used to restore a consistent database state after failures.
Parallel & Distributed Databases
Chapter 20 — Database System Architectures
Architectural models for modern database systems.
Chapter 21 — Parallel and Distributed Storage
How data is partitioned and stored across multiple machines.
Chapter 22 — Parallel and Distributed Query Processing
Executing and optimizing queries across distributed resources.
Chapter 23 — Parallel and Distributed Transaction Processing
Transaction management when data and computation span multiple nodes.
Advanced Topics
Chapter 24 — Advanced Indexing Techniques
More sophisticated indexing approaches for specialised workloads.
Chapter 25 — Advanced Application Development
Advanced patterns for database-backed applications.
Chapter 26 — Blockchain Databases
The relationship between database concepts and blockchain-based data management.
My Suggested Learning Path
Relational Foundations
Chapters 2–5
Database Design
Chapters 6–7
Storage & Indexing
Chapters 12–14
Query Execution
Chapters 15–16
Transactions & Concurrency
Chapters 17–19
Distributed Databases
Chapters 20–23
From SQL to System Behaviour
One of the reasons I value this book is that it makes it easier to connect familiar database operations with the mechanisms underneath them.
SQL
The declarative interface used to describe what data an application wants.
Query Optimizer
Transforms that request into a physical execution strategy based on available access paths and estimated cost.
Storage Engine
Uses indexes, pages and storage structures to retrieve and modify the underlying data.
Transaction Manager
Coordinates concurrent operations while preserving the guarantees expected by applications.
Recovery System
Ensures that committed changes survive failures and incomplete operations do not corrupt the database state.
A SQL statement is only the beginning of the story. The interesting part is how the database turns that statement into a correct and efficient execution.
How I Use This Book
I find database concepts easier to revisit when I start from behaviours that appear in real applications and then trace them down to the mechanisms responsible for them.
“Why did adding an index make this query faster?”
That leads to physical storage, access paths, B-tree-style indexes and query optimization.
“How can two individually correct transactions produce an incorrect result when they run concurrently?”
That leads to isolation, concurrency anomalies, locking and serialization.
“What happens if the database crashes between two writes?”
That points toward atomicity, write-ahead logging and recovery mechanisms.
“What changes when the same database workload is distributed across several machines?”
That opens the door to partitioning, distributed query processing and distributed transaction management.
Start from the behaviour visible to the application, then follow it downward until the database mechanism behind it becomes clear.
Related Areas
Database systems connect naturally with several other areas in this library.
Distributed Systems
Replication, consistency, partitioning, distributed transactions and failure handling.
Algorithms & Data Structures
B-trees, hashing, sorting, search algorithms and query optimization.
Software Architecture & Microservices
Data ownership, service boundaries, consistency models and transaction patterns across services.
Machine Learning & Artificial Intelligence
Data preparation, analytics, storage models and efficient access to large datasets.
Blockchain & Smart Contracts
Replicated state, transaction ordering, immutability and alternative approaches to shared data management.