CS2102

Course Title

Database Systems

Grade

A

Semester

AY22/23 S1

Review

This module is not all about SQL. Maybe just the first half is. The first half teaches about SQL queries and schema, and the difficulty ramps up with each lecture, so be sure to not skip any of the fundamentals. It starts off with simple select statements, but you'll eventually add more and more syntax like WHERE, JOIN, GROUP BY, HAVING, and more complicated ones like CTE, subqueries, recursion and functions. These later ones are the mind-blowing ones, as they are not what you'd typically associate with SQL. But they are still somewhat useful to know. Just make sure your earlier topics are solid, as most places would likely need that level of SQL understanding.

The second half is about designing your database. Each database needs to store many different fields. This chapter is about how you group these fields into different tables to ensure certain guarantees. These is all under normalisation, which is formalised using algebraic notation, quite simple to understand actually.

As for the workload, it's quite low honestly. You work in groups of 4 to create an ER Model (which is basically a diagram of your database), then you have to create a database with SQL functions. The second assignment was significantly more difficult, because it is quite hard to debug SQL code without a mock database. But other than that, there is one tutorial presentation you have to do and nothing much else.

The midterms was a little tricky, as you have to write working SQL code to perform certain queries. That in and of itself isn't too hard, but the time crunch definitely makes it feel like an actual PE. The finals was a little more standard, as it was more about your theory concepts, and how you apply normalisation rules to design your database.