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.