3. Data Models and Query Languages
3.8 Terminology introduced here
Terminology introduced here
55- data model layering
- declarative vs imperative query language
- query optimizer
- relation / tuple
- NoSQL / NewSQL
- impedance mismatch
- ORM
- N+1 query problem
- shredding
- one-to-many / one-to-few
- many-to-one
- many-to-many
- associative (join) table
- normalization / denormalization
- hydrating IDs
- star schema
- fact table
- dimension table
- snowflake schema
- dimensional modeling
- one big table (OBT)
- schema-on-read / schema-on-write
- schemaless (misleading)
- data locality
- BSON
- interleaved tables
- column families
- XQuery / XPath / JSON Pointer / JSONPath
- aggregation pipeline
- nonsimple domains
- vertex / edge
- adjacency list / adjacency matrix
- property graph
- tail / head vertex
- hypergraph
- Cypher / openCypher / GQL
- recursive CTE (`WITH RECURSIVE`)
- triple store
- subject-predicate-object
- quads / 5-tuples
- Turtle / N3
- RDF
- Semantic Web / linked data / JSON-LD
- SPARQL
- Datalog / facts / rules / derived virtual tables
- GraphQL
- event sourcing
- CQRS
- command vs event
- projection / read model
- crypto-shredding
- DataFrame / merge
- one-hot encoding
- sparse matrix
- array database
3.7 Decision cheat sheet
Document if the data is a tree of one-to-many relationships typically loaded whole, the items are genuinely one-to-few, and you rarely need to reference nested items directly.
3.9 Worked examples
Contrast the original posts ⋈ follows join, whose cost is linear in followee count — 200 lookups for a normal user, 10,000 for a power user.