Not available in 2020/21
ST207      Half Unit

This information is for the 2020/21 session.

Teacher responsible

Prof Milan Vojnovic


This course is available on the BSc in Actuarial Science and BSc in Mathematics, Statistics and Business. This course is available with permission as an outside option to students on other programmes where regulations permit and to General Course students.


Programming for Data Science (ST101) or Managing and Visualising Data (ST115)

Course content

The goal of this course is to cover basic concepts of database management systems, including relational and other types of database management systems. 

The topics covered will include basic concepts of the relational model, creating and modifying relations using Structured Query Language (SQL), integrity constraints and relations, querying relational data, views, basic SQL queries using SELECT operator, nested queries, aggregate operators such as GROUP BY, application development using JDBC, Internet protocols such as HTTP and XML, storage and indexing, tree-structured indexing using B+ trees, hash-based indexing, query evaluation and algorithms for relational operations, external sorting, transaction management and concurrency, database schema and normal forms, and overview of no-SQL databases such as key-value stores, document, and graph databases. 

The course will demonstrate how various theoretical principles are implemented in practice in a variety of database management systems such as SQLite, MySQL and PostgreSQL. 


20 hours of lectures and 15 hours of seminars in the LT.

Students are required to use their own laptops and install Python on their laptops. 

Students not having a laptop of their own, which can be used for the purpose of the course, will be offered to use personal computers available in seminar rooms.

Formative coursework

Students will be expected to produce 10 exercises in the LT.

A set of exercises will be given in each teaching week.

Indicative reading

Essential Reading: 

  • R. Ramakrishnan and J. Gerhke, Database Management Systems, McGraw-Hill, 2002
  • J. Hellerstein and M. Stonebraker, Readings in Database Systems, 4th Edition, 2005

Additional Reading: 

  • C. J. Date, An Introduction to Database Systems, 8th Edition, Addison-Wesley, 2000
  • J. Leskovec, A. Rajaraman and J. Ullman, Mining of Massive Datasets, 2nd Edition, Cambridge University Press, 2014,


Coursework (40%) in the LT.
Project (60%).

Students are required to hand in solutions to 4 sets of exercises, each accounting for 10% of the final assesment. 

The project will require solving a practical task involving data model design, loading of data into a database, and querying the imported data in the database. 

Important information in response to COVID-19

Please note that during 2020/21 academic year some variation to teaching and learning activities may be required to respond to changes in public health advice and/or to account for the situation of students in attendance on campus and those studying online during the early part of the academic year. For assessment, this may involve changes to mode of delivery and/or the format or weighting of assessments. Changes will only be made if required and students will be notified about any changes to teaching or assessment plans at the earliest opportunity.

Key facts

Department: Statistics

Total students 2019/20: Unavailable

Average class size 2019/20: Unavailable

Capped 2019/20: No

Value: Half Unit

Guidelines for interpreting course guide information

Personal development skills

  • Self-management
  • Problem solving
  • Application of information skills
  • Communication
  • Application of numeracy skills
  • Commercial awareness
  • Specialist skills