ST207      Half Unit

This information is for the 2021/22 session.

Teacher responsible

Mr Marcos Barreto


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), basic SQL queries using SELECT operator, nested queries, aggregate operators such as GROUP BY, integrity constraints and relations, views, 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 NoSQL databases such as key-value stores, document, and graph databases.

The course will demonstrate how various theoretical principles are implemented in practice in a database management system, such as MySQL, SQLite 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. Elmasri and S. B. Navathe. Fundamentals of Database Systems, 7th Edition (Global Edition), Pearson, 2017.
  • P. Lake and P. Crowther. Concise Guide to Databases: a practical introduction. Springer, Undergraduate Topics in Computer Science, 2013.
  • J. Hellerstein and M. Stonebraker, Readings in Database Systems, 4th Edition, Morgan Kaufmann Series in Data Management Systems, 2005,

Additional Reading: 

  • R. Ramakrishnan and J. Gerhke, Database Management Systems, 3rd Edition (International Edition), McGraw-Hill, 2002.
  • C. J. Date, An Introduction to Database Systems, 8th Edition, Pearson, 2003.
  • J. Leskovec, A. Rajaraman and J. Ullman, Mining of Massive Datasets, 3rd Edition, Cambridge University Press, 2018,
  • A. Meier and M. Kaufmann. SQL & NoSQL Databases: models, languages, consistency options and architectures for big data management. Springer Vieweg, 2019.
  • K. Chodorow. MongoDB: the definitive guide. 2nd Edition, O’Reilly Media, 2013.
  • I. Robinson and J. Webber and E. Eifrem. Graph Databases. O’Reilly, 2013.


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 assessment. 

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. 

Key facts

Department: Statistics

Total students 2020/21: Unavailable

Average class size 2020/21: Unavailable

Capped 2020/21: 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