Skip to content

Data Modeling & Persistence

Tier: 1 (System Constraints)

Concepts: 14

Durability: Timeless (grounded in mathematical set theory and physical storage constraints)


Fundamental Tensions

Tension Description
Normalization vs. Query Performance Normalization eliminates redundancy and update anomalies but requires joins that increase read latency. Denormalization improves reads but introduces data inconsistency risk. This tension is mathematical: you cannot simultaneously minimize both redundancy and join operations.
Consistency vs. Availability Strong consistency requires coordination that blocks during failures; high availability requires accepting stale or divergent reads. The CAP theorem proves this is a fundamental limit in distributed systems, not an engineering trade-off.
Schema Rigidity vs. Flexibility Enforced schemas catch errors early and enable optimization but resist change; flexible schemas accommodate evolution but defer validation and risk data quality issues. This reflects the inherent tension between safety and adaptability.
Write Optimization vs. Read Optimization Structures optimal for writes (append-only logs, normalized tables) differ from those optimal for reads (denormalized views, materialized aggregates). Optimizing for one degrades the other due to fundamental I/O patterns.
Data Integrity vs. Performance Constraints, foreign keys, and isolation guarantees protect data integrity but require locks, checks, and coordination that reduce throughput. Removing safety measures improves speed but risks corruption.

Concepts


Cross-Domain Transfer Summary

This Domain Concept Transfers To
Functional Dependency and Normalization Configuration management, API design, document structure
Denormalization Caching strategies, API response design, report generation
ACID Properties Message queues, distributed transactions, file system journaling, version control
Transaction Isolation Levels Concurrent programming, distributed systems, caching, collaborative editing
Relational Model Spreadsheets, type systems, API query languages
Document Model API responses, configuration files, serialization formats
Graph Model Dependency management, network analysis, recommendation systems
Event Sourcing Version control, accounting, audit systems, undo/redo
CQRS API design, caching architectures, reporting systems
Indexing Concepts Search engines, caching, file systems
Schema-on-Write vs Schema-on-Read Static/dynamic typing, API versioning, serialization formats
Referential Integrity Type systems, API validation, form validation
Temporal Data Version control, audit systems, analytics
CAP Theorem Distributed systems, caching, multi-region deployments


Canonical Sources

Source Coverage
Codd, "A Relational Model of Data for Large Shared Data Banks" (1970) Foundational relational theory, normalization, relational algebra
Date, "An Introduction to Database Systems" (multiple editions) Comprehensive database theory, normalization, constraints
Gray & Reuter, "Transaction Processing: Concepts and Techniques" (1992) ACID properties, transaction isolation, recovery
Kleppmann, "Designing Data-Intensive Applications" (2017) Modern synthesis of data models, distributed data, consistency
Berenson et al., "A Critique of ANSI SQL Isolation Levels" (1995) Isolation level semantics and anomalies
Snodgrass, "Developing Time-Oriented Database Applications in SQL" (2000) Temporal data modeling
Young, "CQRS Documents" (2010) CQRS and event sourcing patterns
Fowler, "Event Sourcing" pattern (2005) Event sourcing fundamentals
Gilbert & Lynch, "Brewer's Conjecture" (2002) CAP theorem proof and implications
Knuth, "The Art of Computer Programming, Vol. 3" (1973) Indexing and search algorithms