Relational Database
Data organized 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 synchronization process, so any count taken there should be de-duplicated before it is trusted.
See also5
Database Migration
A versioned, ordered change to a database schema, applied once and recorded.
Data & Content13 connections
Schema Drift
Divergence between a schema and the code, types, or documentation that describe it.
Data & Content11 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 & Tooling23 connections
Multi-Tenancy
One deployment serving many isolated customers, with tenancy threaded through data, routing, and access.
Data & Content9 connections
Related3
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from13
- ACIDData & Content
The four guarantees a transactional database makes so concurrent, interrupted work never leaves data half-done.
- B-TreeComputation & Algorithms
A self-balancing tree with many children per node, designed to minimize the number of disk reads a lookup costs.
- Database MigrationData & Content
A versioned, ordered change to a database schema, applied once and recorded.
- DenormalizationData & Content
Deliberately duplicating data to make reads faster, trading update complexity for query simplicity.
- 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 behavior.
- Hash TableComputation & Algorithms
A key-value structure that uses a digest of the key to index an array of buckets.
- 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.
- Write-Ahead LoggingComputation & Algorithms
Recording the intent of a change durably before applying it, so a crash can be recovered.