DATABASE SYSTEMS (2008/2009, Semester 2) 

 MODULE OUTLINE Created: 29-Dec-2008, Updated: 11-May-2009
Module Code CS2102/CS2102S
Semester Semester 2, 2008/2009
Modular Credits CS2102 ( -- ) / CS2102S ( -- )
Faculty School of Computing
Department Computer Science
Timetable Timetable/Teaching Staff
Module Facilitators
ASSOC PROF Bressan, Stephane Lecturer
DR Karras Panagiotis Co-Lecturer
BAO ZHIFENG Teaching Assistant
WU HUAYU Teaching Assistant
DDL code for tutorial
Gradiance for home assignments
DML code for tutorials
Sybase at SoC
DDL (Cleaning) code for tutorials
Tags --

Synopsis | Learning Outcomes | Syllabus | Schedule | Teaching Modes | Prerequisites | Practical Work | Assessment | References

This course provides and initial yet robust coverage of the fundamental topics pertaining to the design and implementation of database application and to the management of data with database management systems. The course covers both practical and theoretical aspects. The focus is on relational database technology. The course covers both practical and theoretical aspects. The focus is on relational database technology.

This second year introductory course introduces the fundamental concepts and techniques necessary for the understanding and practice of the design and implementation of database applications and of the management of data with database management systems. The course covers both practical and theoretical aspects in order to provide immediate and long term learning benefits. The focus is on relational database technology. Students are expected to acquire practical skills for the design and implementation of database applications. In particular, they should master entity-relationship design, normalization, and SQL data definition and manipulation. Students are expected to acquire a deep understanding of the basic concepts underlying the design and querying of relational database applications with database management systems. In particular they should understand the theory of query languages, integrity constraints and normalization. On completion of this course, students should be able to understand state-of-art database technology, to easily follow technological developments, to understand and learn independently proprietary aspects of commercial database management systems, to integrate a database application development and management team and to actively contribute as designers or programmers. The emphasis is put on conceptual understanding of design and programming with a focus on the software engineering benefits of good design and elegant programming. Issues related to performance and performance tuning are addressed as digressions when appropriate but are generally left for study in subsequent modules (such as CS5226) as they require deeper understanding of the architecture, the algorithms and the data structures at the core of the database management system (as studied in CS3223). at the core of the database management system (as studied in CS3223).


The introduction lectures tries and identifies the specific requirements of a database application. These requirements (e.g., management of large and homogeneous collections of structured data) motivate the rest of the syllabus, while their initial discussion in class allows to introduce the basic concepts and to give the elementary definitions (e.g., hierarchy of storage, transaction).

Design is covered in a series of lectures that present and discuss data models in general, logical modeling with the relational data model, conceptual modeling with the entity-relationship model and as normalization with functional dependencies (second, third and Boyce-Codd normal forms). In these lectures and in the associated assignments and tutorials, the importance of physical and knowledge independence is emphasized. The importance of integrity constraints is underlined both in practice (SQL data definition language) and in theory (functional dependencies theory and normalization).

A primer in SQL programming is given as soon as the semester’s schedule allows. Then a series of lectures iteratively deepen the knowledge and understanding of SQL queries by studying not only SQL data manipulation advanced constructs but also the theoretical query languages domain relational calculus, t-uple relational calculus and algebra (thus highlighting the spectrum of choices for writing queries in SQL).

Transactions, stored procedures, triggers as well as the connectivity of SQL with programming language are also studied for the effective implementation of applications.



Relational Model

The Relational Model

Integrity Constraints

Relational Calculus

Logic and Calculus

T-uple Relational Calculus (TRC)

Domain Relational Calculus (DRC)

Relational Algebra


Data Definition Language

Data Manipulation Language


Simple Queries

Aggregate Queries

Nested Queries

SQL and Programming Languages

Procedural SQL

Database connectivity

Embedded SQL

Entity-Relationship Model

Entities and Relationships


Mapping from ER diagrams to Relational Schema


Anomalies and Decomposition

Functional Dependencies


Consult the lesson plan for a detailed schedule for this semester.


As a core module, this unit deploys conventional strategies for teaching and learning. It consists of lectures and tutorials.

Tutorials on practical topics are conducted in the laboratory in order to allow students to immediately verify their answer and experiment with a database management system. All tutorials are designed to require students' active participation.

All efforts are made to maintain a lively and interactive learning and teaching environment.

This is, in particular achieved by leveraging the available information and communication technologies. We make extensive use of NUS Integrated Virtual Learning Environment (IVLE). For instance we use online discussion forums for both administrative and technical discussions. We use the Gradiance online assignment for flexible and rigorous online continuous assessment.


Prerequisites: (CS1102 or CS1102C or CS1102S) and (CS1231 or MA1100)

Preclusions: CS2102S, IT2002


Practical work takes the form of three tutorial in the laboratory and one group project. SQL tutorials are conducted in the laboratory as early as weeks 3, 4 and 5 in order to give an early practical knowledge of SQL programming and to motivate the rest of the material studied. The project is done in teams of 4 to 5 students. The project consists in building a Web-database application, generally a variation on the theme of the online catalog. The objective of the project is to apply the concepts and techniques learned in class for the design and programming of a database application. The evaluation of the project considers the scope of concepts and techniques used and their relevance. For instance, students should try and appropriately use the simple and advanced SQL constructs that have beenl earned: simple queries, aggregate queries, integrity constraints, views, etc.

Final Exam 60%
Home assignments 10%
Midterm 20%
Project 10%

Total 2 items
Title and AuthorEdition / Year /
Introduction to Database Systems
Author:S. Bressan and B. Catania
- / 2005

Companion Website
Database Management Systems
Author:Raghu Ramakrishnan and Johannes Gehrke
3e / 2002

Companion Website

Synopsis | Learning Outcomes | Syllabus | Schedule | Teaching Modes | Prerequisites | Practical Work | Assessment | References