University of Oxford Logo University of OxfordSoftware Engineering - Home
On Facebook
Follow us on twitter
Linked in
Linked in
Google plus
Google plus
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.


This course normally runs twice a year.

Course dates

9th May 2023Oxford University Department of Computer Science - held onsite - four day course due to the bank holiday 0 places remaining.
27th November 2023Oxford University Department of Computer Science - Held in the Department07 places remaining.
29th April 2024Oxford University Department of Computer Science - Held in the Department15 places remaining.


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.


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.
queries; subqueries; full relation operations; modifying databases; defining relation schemas; defining views; constraints and triggers.
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.


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