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.

CS4221: Database Design and Tuning

Description

This module addresses the design and performance tuning of database applications. The syllabus focusses on relational database applications implemented with relational database management systems. Topics covered include normalisation theory (functional, multi-valued and join dependency, normal forms, decomposition and synthesis methods), entityrelationship approach and SQL tuning (performance evaluation, execution plan verification, indexing, de-normalization, code level and transactions tuning). The syllabus optionally includes selected topics in the technologies, design and performance tuning of non-relational database applications (for instance, network and hierarchical models and nested relational model for an historical perspective, as well as XML and NoSQL systems for a modern perspective).

BT5110: Data Management and Warehousing

Description

This module aims to provide students with practical knowledge and understanding of basic issues and techniques in data management and warehousing with relational database management systems. The module covers data management concepts, conceptual (entity relationship model) and logical design (relational model) and database management (data definition, data manipulation, SQL) with relational database management systems.The module covers data warehousing concepts, data warehousing design and data warehousing with relational database management systems and tools.

Textbooks

"The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling", by Ralph Kimball and Margy Ross, Wiley, Third Edition

CS1231: Discrete Structures

Description

This module introduces mathematical tools required in the study of computer science. Topics include: (1) Logic and proof techniques: propositions, conditionals, quantifications; (2) Relations and Functions: Equivalence relations and partitions, partially ordered sets, well-ordering principle, function equality, Boolean/identity/inverse functions, Bijection; (3) Mathematical formulationo of data models (linear model, trees, graphs); (4) Counting and Combinatoric: Pigeonhole Principle, Inclusion-Exclusion Principle, Number of relations on a set, number of injections from one finit set to another, Diagonalisation proof: An infinite countable set has an uncountable power set; Algorithmic proof: An infinite set has a countably infinite subset, subsets of countable sets are countable.