CS2102: Database Management

What's in a Database Course?

To some extent it is questionable whether the study of databases should constitute an independent module or even a topic in a computer science curriculum. Indeed, the design, implementation, and maintenance of a database application involve all aspects of computer science from design and modeling, human computer interface, networking, data structures and algorithms, to even hardware. From this viewpoint a database application is just another computer application. Yet there seems to be a number of requirements that may be specific to a database application to the point that they characterize it and that they justify our study of the principles underlying the management of data and of the principles of the systems that have been designed and implemented for such a task: the database management systems.

Description

The aim of this module is to introduce the fundamental concepts and techniques necessary for the understanding and practice of design and implementation of database applications and of the management of data with relational database management systems. The module covers practical and theoretical aspects of design with entity-relationship model, theory of functional dependencies and normalisation by decomposition in second, third and Boyce-Codd normal forms. The module covers practical and theoretical aspects of programming with SQL data definition and manipulation sublanguages, relational tuple calculus, relational domain calculus and relational algebra.

Textbooks

Database Management Systems", by R. Ramakrishnan and J. Gerke, Mac GrawHill, Third Edition

"Introduction to Database Systems", by S. Bressan and B. Catania, Mc GrawHill.