Relational Databases
- PostgreSQL — Open-source, feature-rich, ACID compliance, excellent for complex queries
- MySQL/MariaDB — Lightweight, widely used, good for web applications
- Oracle Database — Enterprise-grade, expensive, highly scalable
- SQL Server — Microsoft’s enterprise database
Key Concepts
- ACID Properties — Atomicity, Consistency, Isolation, Durability
- Normalization — Database design principle to reduce redundancy
- Indexing — Speeds up query performance through data structures (B-trees, hash tables)
- Transactions — Logical units of work maintaining data integrity
- Query Execution Plans — How the database processes queries
NoSQL Databases
- Document Stores — MongoDB, CouchDB (JSON-like documents)
- Key-Value Stores — Redis, DynamoDB (fast caching and sessions)
- Graph Databases — Neo4j (relationships between data)
- Time Series — InfluxDB, Prometheus (metrics, monitoring)
- Wide-Column Stores — Cassandra, HBase (large distributed data)
Query Optimization
Concepts
- Cost-based optimization — Evaluates execution plan efficiency
- Index usage — Choosing appropriate indexes for queries
- Join strategies — Hash joins, nested loop joins, merge joins
- Cardinality estimation — Predicting result set sizes
University Courses
Database Design
- Data Modeling — Conceptual, logical, physical schemas
- Entity-Relationship Model — Designing database structure
- Referential Integrity — Foreign keys and constraints
- Denormalization — Intentional redundancy for performance
Additional Resources
- Andy Pavlo’s lectures on databases
- “Designing Data-Intensive Applications” by Martin Kleppmann
- PostgreSQL and MySQL documentation
- Database courses on platforms like Coursera, edX