🏫
Module Reviews
  • Welcome
  • School of Computing
    • CP2106 Independent Software Development Project (Orbital)
    • CS1010J Programming Methodology
    • CS1231 Discrete Structures
    • CS2030 Programming Methodology II
    • CS2040 Data Structures and Algorithms
    • CS2100 Computer Organisation
    • CS2102 Database Systems
    • CS2103 Software Engineering
    • CS2105 Introduction to Computer Networks
    • CS2106 Introduction to Operating Systems
    • CS3103 Computer Networks Practice
    • CS3223 Database Systems Implementation
    • CS3230 Design and Analysis of Algorithms
    • ES2660 Communicating in the Information Age
    • IS1103 IS Innovations in Organisations and Society
  • NUS Business School
    • ACC1701 / ACC1002 Accounting for Decision Makers
    • BSP1702 / BSP1004 Legal Environment Of Business
    • BSP1703 / BSP1005 Managerial Economics
    • BSP2701 Global Economy
    • DAO1704 / DSC1007 Decision Analytics using Spreadsheets
    • DAO2702 / DSC2008 Programming for Business Analytics
    • DAO2703 / DSC2006 Operations and Technology Management
    • DBA3701 / DSC3214 Introduction To Optimisation
    • DBA3712 / DSC3224 Dynamic Pricing & Revenue Management
    • DOS3701 / DSC3201 Supply Chain Management
    • DOS3703 / DSC3203 Service Operations Management
    • ES2002 Business Communication for Leaders
    • FIN2704 / FIN2004 Finance
    • FSP4003 Field Service Project
    • MKT1705 / MKT1003 Principles of Marketing
    • MNO1706 / MNO1001 Organisational Behavior
    • MNO2705 / MNO2007 Leadership and Decision Making under Uncertainty
  • Other faculties
    • GEH1035 Phy’cal Qns from Everyday Life
    • GEQ1000 Asking Questions
    • GER1000 Quantitative Reasoning
    • GESS1025 / GES1035 Singapore: Imagining the Next 50 Years
    • GET1004 / GEK1531 Cyber Security
    • LAM1201 Malay 1
    • LAM2201 Malay 2
    • MA2001 / MA1101R Linear Algebra I
    • MA1521 Calculus for Computing
    • PC1141 Introduction to Classical Mechanics
Powered by GitBook
On this page
  • What it is about
  • Assessment components
  • Comments
  • Tutorials
  • Project
  • Mid-terms and Finals
  • Other information

Was this helpful?

  1. School of Computing

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+

PreviousCS2100 Computer OrganisationNextCS2103 Software Engineering

Last updated 3 years ago

Was this helpful?