Databases clicked for me the moment I stopped thinking in tables and started thinking in relationships. This repo is that shift, worked through with a student-course-registration system and the real schemas from two full-stack projects.
It brings together my SQL foundations, database design practice, and the software engineering documentation that describes how those systems were planned, tested, and built.
fundamentals/notes/— database fundamentals, normalization, SQL query notesfundamentals/student-course-registration/— a worked mini-project:schema.sql— tables, keys, constraints, relationshipsseed.sql— sample dataqueries.sql— joins, aggregation, filtering
Real schemas from the two full-stack projects I worked on, with the software engineering writeups that describe them:
case-studies/cinebook/schema.sql— the MySQL schema for the cinema booking systemcase-study.md— requirements, stakeholders, features, and design decisions
case-studies/clinic-appointment/schema.sql— the Supabase/PostgreSQL schema for the clinic scheduling systemcase-study.md— the healthcare scheduling problem and system design
Team project note: CineBook and Clinic-Appointment-System were completed as academic team projects. The schemas here are included as evidence of database design work, not as a claim that I personally wrote every line. Each case study keeps its own full team disclaimer.
engineering-practice/templates/— functional and non-functional requirements, use-case, test-case, and risk-register templatesengineering-practice/notes/— software engineering basics, UML diagrams, requirements engineering, testing basics, project management
These are the planning and documentation artifacts that support the case studies.
Database design and system design are two halves of the same thing: understanding how a system's data and behavior fit together. The CineBook and Clinic schemas now sit next to the case studies that explain their requirements and the templates used to document them — instead of being scattered across separate repos.
The student-course-registration mini-project is a self-contained SQL example:
# From a MySQL client, run in order:
mysql -u root -p < fundamentals/student-course-registration/schema.sql
mysql -u root -p < fundamentals/student-course-registration/seed.sql
mysql -u root -p < fundamentals/student-course-registration/queries.sqlThe case-study schemas are reference material for the two larger projects and are documented in their respective repositories.
This repo consolidates the content of two previous repositories (database-systems-sql and software-engineering-system-design). Their content now lives here — database design and system design are two halves of the same thing, and keeping them together makes that connection explicit.