Almost every system worth building sits on top of a database, and the difference between a good schema and a bad one is felt for years. I teach students to design, query, and manage relational databases properly - from first principles through to performance tuning.
The core stack is SQL and MySQL, but the design thinking transfers to any relational system students will meet in industry.
Topics I cover
Relational design and normalisation
Entity-relationship modelling, keys, and the normal forms - how to structure data so it stays consistent as a system grows, and when it’s reasonable to denormalise.
SQL querying
From SELECT and WHERE through joins, aggregation, subqueries and views. Students learn to read a question in English and translate it into a correct, efficient query.
MySQL administration
Users and permissions, backups, importing and exporting data, and connecting databases to applications securely.
Performance and optimisation
Indexes, query plans, and the habits that keep a database fast at scale - plus how to diagnose the slow query that’s dragging an application down.
Explore: the anatomy of a relational database
Click through the building blocks that every relational system shares. Click or tap each stage to explore it.
How I teach it
Students design schemas for realistic scenarios - a college enrolment system, an e-commerce store - populate them with data, and then interrogate them with increasingly demanding queries. Design mistakes surface naturally, which is exactly the point.
We connect databases to the applications students build in web development, so prepared statements, injection prevention, and connection handling are learned in context rather than in isolation.
Test yourself
Three quick questions - click an answer to check it instantly.
1. Which SQL statement retrieves data from a table?
2. What does a foreign key do?
3. Normalisation is mainly used to reduce what?
Where this leads
Database skills are among the most consistently in-demand in the industry - every developer, analyst, and administrator uses them. This area also feeds directly into my cybersecurity teaching, where understanding SQL is the first step to understanding (and preventing) SQL injection.