CO526 Databases: Course Home Page 2018-19 Session

General Information about the course

The entire course will be taught by Peter McBrien, and comprise of three hours per week of combined lectures and tutorials. Lectures for the course will run in weeks 2-10. The exam for the course will be held at the start of the Summer term.

The syllabus and book list are held in DSS and on the departmental course page

To gain access to Panopto Lecture Recordings, Piazza Discussion Forums, and to receive course emails, please register at least to level 2 for this course.

Lecture Slides

The slides are placed here at the time of the lecture. Slides with grey links are provisional versions of the slides. Note that the course content is what is presented verbally during the lectures: you are expected to attend all lectures. Worksheets will be provided during lectures, and answers to those worksheets provided also during lectures.

  1. Introduction
  2. Relational Algebra
  3. Datalog
  4. SQL: An implementation of the RA
  5. SQL: A Language for Database Applications
  6. ER Modelling
  7. Functional Dependencies and Normalisation
  8. Concurrency Control
  9. Recovery

Example Databases

There are four relational databases used in the course for examples, and these four databases are made available for running example queries on both SQL Server and Postgres.

Further examples to download into your own database are found in my databases tools and data mini site.

Examples hosted on a Microsoft SQL Sever 2008 DBMS

To connect to the databases hosted on SQL Server, issue commands in the following form on a CSG Linux machine (and using password 'lab'):

sqsh -S sqlserver -D bank_branch -U lab

Once connected, queries may be entered, terminated by \go. Help on the environment may be found using \help.

The sqshrc file may be copied as .sqshrc in your home directory, and altered to change the default behaviour of sqsh. This file should by default be also present as /etc/sqshrc on CSG Linux machines, but may be absent from recent Ubuntu installations.

Note that this version of SQL Server does not support the various three valued logic tests IF UNKNOWN, IF NOT FALSE, etc. It has been set to use ANSI handling of NULL equality tests.

Examples hosted on a Postgres DBMS

To connect to the databases hosted on Postgres, issue commands in the following form on a CSG Linux machine (and using password 'lab'):

psql -h db -U lab -d bank_branch -W

Once connected, queries may be entered, terminated with a semicolon. Online help may be accessed with \help, and \exit used to exit the psql tool.

Note that this version of Postgres does not support CUBE or ROLLUP.