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¶
- Functional Dependency and Normalization
- Denormalization as Calculated Trade-off
- ACID Properties as Transaction Guarantees
- Transaction Isolation Levels
- Relational Model as Set-Theoretic Foundation
- Document Model and Hierarchical Data
- Graph Model for Relationship-Centric Data
- Event Sourcing as Append-Only State
- CQRS: Command Query Responsibility Segregation
- Index as Read-Write Trade-off
- Schema-on-Write vs. Schema-on-Read
- Referential Integrity and Constraints
- Temporal Data and Bi-temporal Modeling
- CAP Theorem and Consistency Models
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 |