University of Oxford Logo University of OxfordSoftware Engineering - Home
Follow us on twitter
Twitter
Linked in
Linked in
Google plus
Google plus
Digg
Digg
Pinterest
Pinterest
Stumble Upon
Stumble Upon

Database Design

Relational database technology is the dominant approach to information storage, with products that offer an unmatched combination of abstraction and performance. To use these products effectively, however, requires an understanding of the underlying principles and concepts.

Course dates

13th October 2014Oxford University Department of Computer Science 0 places remaining.
11th May 2015Oxford University Department of Computer Science03 places remaining.
7th December 2015Oxford University Department of Computer Science16 places remaining.
16th May 2016Oxford University Department of Computer Science18 places remaining.

Objectives

At the end of the course, students will

  • have had a thorough introduction to the underlying principles of modern relational databases; and
  • be able to use these insights in designing data models.

Contents

Introduction
evolution of database systems; database system architecture; database management systems.
The entity-relationship model
semantic modelling; entity-relationship diagram elements; entity-relationship diagrams; design principles; modelling constraints; limitations of the entity-relationship model.
The relational data model
objectives; aspects; terminology; relational integrity; views; relational algebra; relational calculus; limitations of the relational data model.
SQL
queries; subqueries; full relation operations; modifying databases; defining relation schemas; defining views; constraints and triggers.
Normalisation
functional dependencies and normalisation; denormalisation.
Query optimisation
query processing; query decomposition; a heuristical approach to query optimisation.
Transaction management
recovery; concurrency.
Distributed databases
principles; client/server systems; DBMS independence; data warehousing.

Requirements

Some familiarity with discrete mathematics would be useful; Software Engineering Mathematics would be an ideal preparation.