Database Systems

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.

·····

Select a stage above to see what it involves.

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.

Latest Blog Post

Nicki James Shepherd on why AI in education keeps getting disability wrong


Scroll to Top