Module Identifier CS27310  
Academic Year 2000/2001  
Co-ordinator Dr Mark Ratcliffe  
Semester Semester 2  
Pre-Requisite CS10720 or CS12420, CS10610  
Course delivery Lecture   22 lectures  
  Workshop   (Up to) 4 workshop sessions  
  Practical   (Up to) 2 x 2hr sessions  
Assessment Exam   2 Hours   100%  
  Supplementary examination   Will take the same form, under the terms of the Department's policy    

General description
This module develops the concepts of database design and implementation. The emphasis is on relational systems but object databases are introduced. It covers practical topics concerned with modelling and effective use of the facilities provided by a modern Database Management System (DBMS). Theoretical topics include data modelling, placing particular emphasis on the data model, relational algebra and the realisation of the relational model in a DBMS.

This module aims to familiarise students with the techniques used in designing and implementing database systems, and with the concepts embodied in relational database systems. Students will gain practical skills and develop their understanding through the use of a small scale DBMS. Students will be introduced to the concepts in object databases.

Learning outcomes
On successful completion of this module, students will be able to:

1. Database System Concepts - 1 Lecture
Persistence. Outline history: file-based, network, relational and object-based systems. Databases, DBMS and applications programs. DBMS as reuse.

2. Relational Modelling I - 4 Lectures
Entities and relationships. Connection traps. The design of relations. Transformation of an E-R model into a relational schema.

3. The Relational Model - 4 Lectures
Domains, Relations and tuples. Primary and foreign keys. Referential integrity. Relational algebra. Null values and the outer join. Data normalisation. Validating a design.

4. SQL2 and implementation - 2 Lectures
Introduction. Status. DDL statements. SELECT clauses. Constraints. Built-in functions. Queries and views. Nested SELECT.

5. Introduction to Object Databases - 2 Lectures
Perceived weaknesses of the relational model. Possible benefits of an object model. ODMG model.

6. Building and Manipulating Object Databases - 3 Lectures
Design; use of the UML. ODL and database aspects of CORBA. OQL and OML.

7. Object Relational Systems - 1 Lecture
Comparisons of relational and object systems. Object oriented extensions to relational systems. SQL3.

8. Building Applications - 1 Lecture
Integrity constraints. Introduction to transactions. Rollback.

9. Standard Interfaces - 1 Lecture
Forms; binding, GUI items, user support. Reports. Languages provided with DBMS.

10. Procedural Interfaces - 1 Lecture
DBMS connections and services. ODBC, JDBC. Application development. The data dictionary.

11. Large Scale DBMS - 2 Lectures
Concurrency. Security. Distributed Databases.

Reading Lists
** Recommended Text
C.J. Date. (2000) An Introduction to Database Systems. 7th. Addison-Wesley
** Supplementary Text
Barry Eaglestone and Mick Ridley. (1998) Object databases: An introduction.. McGraw Hill
** Consult For Futher Information
David M. Kroenke. (2000) Database Processing: Fundamentals, design and implementation. 7th. Prentice Hall, London
Kroenke provides a simple introduction and more useful examples. The E-R notation used in the module is based on Kroenke..