๐Ÿ“‘ Document Stores

  • Data Model: JSON-like documents (key-value pairs with nested structure)
  • Use Case: When you want a flexible schema and hierarchical data (e.g., blog posts, user profiles)
  • Queryable Fields: โœ… Yes โ€“ you can query inside the document fields

Example:

{
  "user_id": 123,
  "name": "Alice",
  "orders": [
    { "item": "Book", "price": 10 },
    { "item": "Pen", "price": 2 }
  ]
}

Popular Databases: MongoDB, CouchDB, Firestore


๐Ÿ”‘ Key-Value Stores

โ€ข Data Model: Simple key โ†’ value pairs

โ€ข Use Case: Fast lookups and caching (e.g., session storage, leaderboards)

โ€ข Queryable Fields: โŒ No โ€“ you retrieve by key only

Example:

"session_abc123" โ†’ "{ user_id: 123, status: 'active' }"

Popular Databases: Redis, DynamoDB, Riak


๐Ÿงพ Wide-Column Stores

โ€ข Data Model: Rows with dynamic, sparse columns grouped into column families

โ€ข Use Case: Time-series data, write-heavy workloads, IoT, logs

โ€ข Scales Horizontally: โœ… Excellent for massive datasets across many machines

Example:

UserIDNameEmailLastLogin
123Alicealice@mail.com2024-03-01

Popular Databases: Cassandra, HBase, ScyllaDB


๐Ÿ”— Graph Databases

โ€ข Data Model: Nodes and relationships (edges)

โ€ข Use Case: Social networks, fraud detection, recommendation engines

โ€ข Query Language: Cypher (Neo4j), Gremlin, SPARQL

Example:

(Alice) -[FRIEND]-> (Bob)

Popular Databases: Neo4j, ArangoDB, JanusGraph