Relational Database
Data organised as tables with declared relationships, queried declaratively and guarded by constraints.
A relational database stores data as tables of rows and columns, with relationships expressed by keys and integrity enforced by declared constraints. It is queried declaratively: you describe the result you want and the engine chooses how to obtain it.
Its enduring advantage is that correctness can be delegated to the schema. A foreign key, a uniqueness constraint, or a not-null declaration is enforced for every writer, including the ones written years later by people who never read the original code. Application-level validation protects only the paths that go through it.
Transactions are the second pillar: a set of changes either all happen or none do, which is what makes multi-step operations safe under concurrency and failure.
Two things worth holding onto when working through an abstraction layer. The layer's update semantics are usually partial — an absent key means "leave this column alone", not "clear it" — so clearing a field means writing an explicit null, and deleting a key from an object before saving is a no-op that in-memory tests happily pass. And a mirrored copy of a database in an analytics warehouse can carry duplicate rows from the synchronisation process, so any count taken there should be de-duplicated before it is trusted.
See also5
Hand-picked in the note itself — the neighbours worth reading next.
Database Migration
A versioned, ordered change to a database schema, applied once and recorded.
Data & Content5 connections
Schema Drift
Divergence between a schema and the code, types, or documentation that describe it.
Data & Content9 connections
Draft and Published
Keeping an in-progress version of content separate from the live one, with all the state that implies.
Data & Content5 connections
Idempotence
The property that performing an operation twice has the same effect as performing it once.
Systems & Tooling12 connections
Multi-Tenancy
One deployment serving many isolated customers, with tenancy threaded through data, routing, and access.
Data & Content7 connections
Related3
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from8
Notes elsewhere in the wiki that reach for this one.
- Database MigrationData & Content
A versioned, ordered change to a database schema, applied once and recorded.
- Draft and PublishedData & Content
Keeping an in-progress version of content separate from the live one, with all the state that implies.
- Feature FlagData & Content
A runtime switch that decouples shipping code from enabling behaviour.
- Headless CMSData & Content
A content system exposing structured data through an API, with presentation left entirely to consumers.
- IdempotenceSystems & Tooling
The property that performing an operation twice has the same effect as performing it once.
- Multi-TenancyData & Content
One deployment serving many isolated customers, with tenancy threaded through data, routing, and access.
- Schema DriftData & Content
Divergence between a schema and the code, types, or documentation that describe it.
- Seed DataData & Content
Initial content created programmatically to make an empty system usable or demonstrable.