Skip to main content

/EDUCATION/COMP3211

COMP3211: Advanced Databases

Third Year, 2025/26 · Semester 2

Overall mark 78%

Database internals, query optimisation, and transaction processing, with a Java query-plan optimiser.

SKILLS Query Optimisation · Relational Algebra · Cost Estimation · Transaction Processing

TECHNOLOGIES Java · SQL · SJDB

What the module covered

This module looked inside database management systems, covering storage and buffering, indexes, query processing, transactions, concurrency control, and recovery. It also explored parallel and distributed databases and information retrieval.

For the coursework, I implemented a cardinality estimator and query optimiser for SJDB, a teaching database framework in Java. The optimiser rebuilt canonical relational-algebra plans, pushed selections towards scans, chose a greedy join order, and pushed projections down while preserving attributes needed by later operations. It also handled disconnected query graphs and multiple predicates between the same relations.

What I took from it

The coursework made the cost of intermediate results visible. For one sample query, pushing a selective filter before the joins reduced the peak estimated intermediate size from 80,000 tuples to 8. This was a plan estimate rather than a runtime measurement, but it gave a concrete reason to examine what a query does before trying to make its execution faster.