Databases 101: SQL vs NoSQL
Databases 101: SQL vs NoSQL
Overview
Relational (SQL) databases store structured data in tables with relationships. NoSQL databases optimize for flexible schemas, scale, or specific access patterns.
When to choose which
- SQL: strong consistency, complex queries, transactions (Postgres, MySQL)
- NoSQL: flexible schema, high write scale, document or key-value data (MongoDB, DynamoDB)
Key concepts
- Normalization vs denormalization
- ACID vs eventual consistency
- Indexes and query plans
- ORMs (Prisma, Sequelize, SQLAlchemy) vs query builders (Knex)
Example schema (SQL)
- Tables: users, projects, tasks (FK from tasks->projects)
Checklist
- Write a simple ER diagram
- Define indexes for frequent queries
- Add migrations (Prisma, Alembic, Django migrations)
- Seed development data
Resources
- postgres.ai learning hub
- MongoDB University basics
- Prisma data modeling guide