Welcome to the official repository for the Databases After Graduation course.
This repository contains all course materials, backend examples, SQL scripts, assignments, and installation guides required throughout the course.
This course focuses on practical, production-level database skills used in real backend systems.
Topics include:
- Relational data modeling
- Advanced SQL querying
- Indexing & performance optimization
- Execution plans
- Connecting databases to backend APIs
- ORM vs Raw SQL trade-offs
- Connection pooling
- Backend best practices
By the end of this course, you will understand not only how to write SQL queries, but how databases behave inside real-world backend architectures.
Class_1_Data_Modeling_for_Real_World_Systems/
βββ Concepts/
β βββ Entities_Relationships_Schema_Design
β βββ Query_Driven_Data_Modeling
β βββ Normalization_vs_Denormalization
β βββ Read_vs_Write_Heavy_Schema_Design
βββ Tools/
β βββ MySQL
Class_2_Production_SQL_and_Query_Execution/
βββ Concepts/
β βββ Production_Level_SQL
β βββ Query_Execution_Behavior
β βββ Execution_Plans_EXPLAIN
β βββ Indexing_Strategies
β βββ Read_vs_Write_Performance_Tradeoffs
βββ Tools/
β βββ MySQL
β βββ SQL_Execution_Plan_Analysis
Class_3_Databases_Behind_APIs/
βββ Concepts/
β βββ Backend_Database_Architecture
β βββ API_Request_Lifecycle
β βββ Database_Access_Patterns
β βββ Connection_Pooling
β βββ Pagination_Offset_and_Cursor
β βββ ORM_vs_Raw_SQL_Tradeoffs
βββ Tools/
β βββ Python_FastAPI
β βββ ORM
β βββ Postman
β βββ Swagger_OpenAPI
Class_4_Concurrency_Consistency_and_Reliability/
βββ Concepts/
β βββ Transactions
β βββ Commit_and_Rollback
β βββ Race_Conditions
β βββ Concurrent_Request_Handling
β βββ Transaction_Isolation_Levels
β βββ Read_Replicas_and_Consistency_Tradeoffs
Before starting, make sure you have:
- MySQL
- Python 3.10+
- Postman
- VS Code (recommended)
pip install fastapi
pip install uvicorn
pip install sqlalchemy
pip install pymysql
pip install cryptography
pip install pydantic python-dotenvThis course emphasizes:
- Understanding how databases behave in backend systems
- Writing efficient, scalable SQL
- Designing clean relational schemas
- Thinking in terms of data architecture, not just tables
- The goal is to bridge the gap between academic SQL knowledge and production-level backend development.