Type a branch, a subject or a topic — “round robin”, “paging”, “civil”.

Database Management Systems

A database is a machine for answering questions about data without losing any of it. These topics take a single query and a single transaction and follow each one through the engine, step by step.

Start from the beginning →

13 topics you can watch now, 11 still to come.

Foundations

What a database gives you that a folder of files does not, and the layering that makes it possible.

  • Database users and the DBA
  • Instances vs schemas

Data models

How a question about the world becomes a question about tables.

  • Relational model
  • SQL as algebra

Schema design

Splitting tables until no fact is stored twice — and knowing when to stop.

  • Lossless decomposition

Storage and indexing

Where the rows actually live, and how the engine finds one fast.

  • Pages and heap files
  • Clustered vs secondary indexes

Query processing

One query, several possible plans, and the cost of each.

  • Sort-merge join
  • Hash join
  • Cost-based plan selection

Transactions

Many users at once, and the guarantee that none of them sees a half-finished change.

  • MVCC snapshots

About Database Management Systems

A database management system exists because concurrent access to shared data is genuinely hard, and almost every hard part is invisible when things go right. Two people editing the same row, a crash halfway through a transfer, a query that has to touch a billion rows — the guarantees that make these boring are what this subject is about.

The material splits cleanly in two. One half is about representing information faithfully: what a relation is, why normalisation removes classes of anomaly rather than merely tidying, how a functional dependency constrains what can be stored. The other half is about making it fast and safe under concurrency: indexes, join strategies, locking, logging, recovery.

The second half is where animation earns its place. A serialisability conflict, a write-ahead log replayed after a crash, a nested-loop join walking two relations — each is a sequence of steps in a specific order, and reading the order off a static diagram is much harder than watching it run once.

What to know first

  • Comfort with tables, rows and columns as a way of holding data
  • Some exposure to SQL, even if only SELECT and WHERE

Where it gets used

  • Choosing an index that the query planner will actually use
  • Knowing which isolation level a piece of business logic really requires
  • Reading a slow query plan and recognising the join strategy in it
Dashed entries are mapped but not animated yet. The running order is not fixed until a topic is built. Browse the other subjects.