CS2102 Database Systems

Module: CS2102 Database Systems

Semester taken: AY 2019/20 Semester 2

Lecturer: Dr Chan Chee Yong

Tutor: Dr Chan Chee Yong

Textbook: Database Management Systems, 3rd ed., Raghu Ramakrishnan & Johannes Gehrke, 2003. McGraw-Hill

What it is about

This module introduces students to the world of database applications and generally gives you some idea of how data can be structured and stored on the computer. As an introductory module, we were taught all about writing SQL queries and in Data Definition Language (DDL). Finally, the module moves towards a more theoretical aspect of understanding how data is structured with the various normalisation rules to avoid unnecessary data redundancy.

Assessment components

  • Tutorial Attendance & Participation: 5%

  • Assignments: 15%

  • Team Project: 20%

  • Midterm Test: 20%

  • Final Test: 40%

Comments

Before I entered university, I had some exposure to writing SQL queries and how to navigate my way around a MySQL/MariaDB interface. However, this module took it to the next level by teaching a lot of content, from understanding how databases work, to writing our own SQL queries including JOIN and finally, understand the theory behind how data can be structured and organised in an SQL database.

In this increasingly data-driven world, understanding how database systems work is often underrated and even overlooked. In fact, despite being a level 2000 module, it is only an elective module for CS students. However, many CS students still continue to take this module out of interest, especially as this module is rather helpful in understanding databases, which would be required when building applications that require a database.

The lecturer is one of the best professors that I have ever encountered during my time in the School of Computing. Although his lectures are slightly longer than others (sometimes even going beyond 2 hours), I felt that he was very detailed and provided a lot of examples to help in our understanding of the concepts behind the module. He is also very focused on students’ learning and employs many methodologies to help students learn better.

Tutorials

There is a 1-hour tutorial per week which is mostly used to go through some of the tutorial questions. The tutorial will cover concepts taught during the lecture a week before, but most of the time only some questions will be discussed during the tutorial itself. Some students will be selected to present their answers and on average, each student will be presenting their answers twice during the entire semester.

Every few weeks, there will be assignments to be submitted. The questions found in the assignment is very similar to the ones found in the tutorial, and the difficulty and format of the assignments should be very similar to how the mid-terms and finals are conducted.

Project

Perhaps the toughest part about this module is the project. This semester-long project requires you to code a food delivery webapp from scratch, similar to how Foodpanda is developed. There is a long list of requirements that you need to meet and you may spend most of the time writing code that seemingly has nothing to do with databases. It is expected that the workload of the module is going to be very high due to this project.

For CS students, you will realise that this project is much more difficult than the one encountered in CS2103. However, it is also because of the difficulty level of this project that makes it very useful to include in your resume. It is not common for modules to give you the valuable opportunity to develop complex applications.

Mid-terms and Finals

As mentioned earlier, the mid-terms and finals are very similar in nature to the assignments given out at regular intervals of the semester. The mid-terms mostly consisted of writing proper SQL queries and practice is key in getting the correct answers. I managed to score 16/20 for the mid-terms, but the median was like 8/20 whereas the 75th percentile was 11/20. The highest score was 17/20 and it is definitely doable if you practiced the tutorial questions diligently.

The finals consisted more of the normalisation rules taught in the later half of the semester, although there were some instances of the Entity-Relationship (ER) diagram and writing SQL queries being covered. Normalisation rules such as 3NF and BCNF will be very difficult to understand from the start, so make sure you study the examples carefully given in the lectures and tutorials. There are also many answers and discussions on the Internet that can be very helpful in your revision for finals.

Other information

Assignment workload: There are 4 take-home assignments given throughout the semester

Project workload: Extremely high, as the project is essentially full-stack development from scratch

Readings: None

Recommended if: A compulsory module for Information Systems students, but Computer Science students can take it for the Database Systems focus area. Particularly useful for people interested in web development.

Rating: 4.0/5. Overall a very good module and sufficiently challenging, although the project felt unrelated at times.

Expected grade: A

Actual grade: A+

Last updated