Where information lives.
WHAT TO ESTABLISH
What data exists, and how it relates How it is read, and how often How it is written, and how often How much there will be What consistency is required
WHAT THE READ AND WRITE PATTERN DETERMINES
Almost every storage decision.
WHAT RELATIONAL DATABASES SUIT
Structured data with relationships, requiring consistency and flexible querying.
WHAT DOCUMENT STORES SUIT
Data read and written as whole units, with flexible structure.
WHAT KEY-VALUE STORES SUIT
Simple fast lookup by a known key.
WHAT TO CHOOSE BY DEFAULT
Relational, unless there is a specific reason otherwise.
WHY
Most data is relational, and the tooling is mature.
WHAT NORMALISATION ACHIEVES
Each fact stored once, preventing inconsistency.
WHEN TO DEPART FROM IT
When read performance genuinely requires it, deliberately.
WHAT INDEXES DO
Allow finding rows without examining every one.
WHAT THEY COST
Storage, and slower writes.
WHAT TO INDEX
What you filter, sort and join by.
WHAT TO PLAN EARLY
The data model, which is the most expensive thing to change later.