5CM506 — Data Driven Systems

Database design, SQL, normalisation, and web data integration.

Instructor: Ioannis Tsioulis

Term: Level 5 (UG)

Location: Mediterranean College, Athens

Overview

This module covers the full stack of data-driven application development: relational database design, SQL, normalisation, and integration with web technologies. Students develop hands-on skills in SQL querying, T-SQL scripting, Microsoft Access, and server-side web development with PHP and REST APIs.

Topics

  • The relational model and entity-relationship design
  • Database design and normalisation (1NF, 2NF, 3NF)
  • SQL: single-table queries, joins, outer joins, and aggregates
  • Working with NULLs and advanced query features
  • T-SQL: cursors and JSON
  • Database programming
  • Web integration: HTML, PHP, and REST APIs
  • Microsoft Access: forms, reports, and switchboards

Companion notebooks

The database and SQL part of this module is supported by the open course From One Table to a Cluster: Working with Data at Scale, with hands-on notebooks that run in Google Colab. It is a general course, not tied to this module, but the table shows where to look for each topic.

Topic Notebooks in From One Table to a Cluster
The relational model, primary and foreign keys 1
SQL: single-table queries, working with NULLs, changing data safely 1
Joins, outer joins and aggregates 2
Advanced query features: window functions 2
Why some queries are fast and others slow: indexes and query plans 3

The notebooks run their SQL in SQLite from Python, so a few details of syntax differ from T-SQL. They do not cover entity-relationship design and normalisation in depth, cursors, PHP and REST APIs, or Microsoft Access.

For more practice, the repository Teach—SQL has SQL worksheets with answers, on single tables and on joins, and a small films database in Microsoft Access with exercises.