Databases
Overview
Databases are systems for storing, organizing, and retrieving data. They form the persistence layer of nearly every application, from simple mobile apps to massive distributed systems handling billions of requests.
Why this category matters: Data is the foundation of software. Database design decisions affect application performance, scalability, consistency guarantees, and operational complexity. Understanding database paradigms helps you choose the right tool for each use case.
TL;DR
- Databases store and retrieve structured data for applications
- Relational (SQL) databases offer strong consistency and complex queries
- NoSQL databases offer flexibility, horizontal scaling, or specialized data models
Featured Topics
Relational (SQL) Databases
- PostgreSQL — Most advanced open-source database, industry standard
- MySQL — Popular, widely deployed, good hosting support
- SQLite — Embedded database, serverless, file-based
- SQL Server — Microsoft's enterprise database
NoSQL Databases
- MongoDB — Document database with flexible schemas
- Redis — In-memory key-value store, caching, pub/sub
- DynamoDB — AWS managed NoSQL, auto-scaling
- Cassandra — Distributed database for massive scale
Specialized Databases
- Elasticsearch — Full-text search and analytics
- TimescaleDB — Time-series data (PostgreSQL extension)
- Neo4j — Graph database for relationship-heavy data
- ClickHouse — Columnar database for analytics
- DuckDB — Embedded columnar analytics, in-process
- pgvector — Vector search & embeddings inside PostgreSQL
Cloud Database Services
- AWS RDS — Managed relational databases
- Supabase — PostgreSQL with real-time, auth, and APIs
- PlanetScale — Serverless MySQL with branching
- Neon — Serverless PostgreSQL
Data Access & Warehousing
- Object-Relational Mapping — Mapping tables to objects
- SQLAlchemy — Python's database toolkit and ORM
- Data Warehousing — Analytics at scale (concepts)
- Snowflake — The cloud data warehouse benchmark
- Apache Iceberg — The open table format powering the data lakehouse
- Data Lakehouse — Merging data lakes and warehouses into one architecture
- Trino & Presto — Distributed SQL that queries data where it already lives
Scaling & Data Movement
- Database Sharding — Splitting data across machines to scale writes
- Change Data Capture (CDC) — Streaming every row change out of your database
- Stream Processing — Continuous computation over unbounded data
Comparisons
- SQL vs NoSQL — Which data model fits your access patterns
- PostgreSQL vs MySQL — Choosing between the two open-source leaders
Choosing a Database
Learning Path
Beginner
Learn SQL basics, understand tables, keys, and simple queries. Use PostgreSQL or SQLite.
Intermediate
Master JOINs, transactions, indexing, query optimization. Learn one NoSQL database.
Advanced
Database design, replication, sharding, performance tuning, operational best practices.