Interactive course · 7 lessons · ~2.5 hours

Databases:
a field guide to every species

There is no best database: only data models that fit or fight your access patterns. This course dissects each major species: how it lays bytes on disk, what queries it makes cheap, what it quietly makes impossible, and the moment in a real system where you'd reach for it. Every lesson lets you operate the machinery yourself.

01

Relational: tables, joins, and forty years of being right

Create an update anomaly with your own hands, then normalize it away. Run a join. Watch an index turn a million-row scan into 20 steps. Understand why ACID made SQL the default: and what it costs.

normalizationjoinsB-tree indexesACID
02

Key-value: the fastest thing that can possibly work

One operation: GET(key): made absurdly fast. Operate a hash-based store, build a cache with TTLs, then hit the wall: try to query by value and watch the model shrug.

O(1) lookupsRedis / DynamoDBcaching & TTLvalue opacity
03

Document: the object you meant to store

Store a blog post with its comments as one JSON tree: one read, no joins. Then pay for it: duplicate an author's name into 200 documents and try to rename them. Embed vs reference is the whole game.

MongoDB-styleembed vs referenceschema-on-readdenormalization
04

Wide-column: design the table around the query

Cassandra-style: the primary key is the physical layout. Route queries by partition key and watch them fly: or omit it and get rejected. Then run the LSM write path: memtable, SSTables, compaction.

partition + clustering keysLSM treesquery-first modelingwrite-optimized
05

Graph: when the relationships are the data

Ask "friends of friends of friends" in SQL and count the exploding join rows; ask a graph store and walk pointers. Traverse a live network, find paths, and learn where graphs beat everything: and where they don't.

nodes & edgestraversal vs joinNeo4j-styleindex-free adjacency
06

The specialists: time-series, search, vector

Three engines built by deleting general-purpose features: compress a metrics stream 10×, query text through an inverted index instead of a scan, and find "similar" items by distance in embedding space.

time-seriesinverted indexvector similaritypurpose-built
07

Choosing: the decision, and the master table

Every species side by side: data model, query power, scaling shape, failure modes. Then a scenario gauntlet: eight real workloads, you pick the engine, the lesson argues back. Ends with polyglot persistence done sanely.

decision frameworkcomparison tablepolyglot persistencescenario drill
data & structures cheap operation expensive / impossible

Scope note: this course is about data models and storage engines: the shape of the data and the physics of one node. How any of these databases replicate, shard, and survive failures is the subject of the Database Replication and Distributed Systems courses; the three together form the full picture.