Welcome to the Advanced Databases module. This is a core module on the MSc in Computing (Advanced Software Development).

During this module we will cover a number of core concepts for enterprise use of databases. This module will not teach you SQL or or SQL/Database programming. It is assumed you have learned this in your undergraduate degree. If you don’t have an IT undergraduate degree or you didn’t have a Databases modules, then you may need to do some additional learning around SQL.

For each topic, a reading list will be provided covering some basic and advanced discussions on the topics. I’ve listed some recommended text books on Databases.

The module is divided into 3 main components.

1. Review of Databases, their role and how to design,

2. Advanced topics for Databases, including Alternative Database architectures, Database & Query optimisation, Database Security and Distributed Databases.

3. Advanced Database solutions including cloud database services and alternative databases

Classes will be a mixture of lecture, in-class exercises, research, independent learning, and for the later part of the module we will be using the flipped class room, where each student will present a short lecture on a database topic.

Module Overview & Admin Notes

Read and understand these notes.

Click here to download these notes.

L0-AdvDB-Overview AdvDB Subject

CORRECTION: Assignment A = 70% and Assignment B = 30% (this is subject to change. Any change will be notified in class)


Preparation for Lab work

I will be asking you to follow some tutorials and exercises on an Oracle Database. The easiest way to do this is to use a virtual machine.

Step 1: Install VirtualBox. This is software to allow you to run virtual machines.

Step 2: Download and import a pre-built virtual machine. Oracle provides several virtual machines that are pre-built with lots of software. Download this pre-built virtual machine. It contains an installed Oracle Database Enterprise Edition (it has all the database features), contains some additionally installed software, and also some tutorials. Follow the installation instructions.

You will need a PC/Laptop that is 64bit and capable of running Virtualisation.

You will need to change some of the configuration settings for this machine. Change RAM to 4G, and number of CPUs to 2.

Alternative 1: Docker

Docker is a great option for setting up different test environments. But you need to be comfortable with working at the command line and with troubleshooting setup and configurations.

Check out this GitHub page with some helpful commands for setting up Databases from different vendors.

Not all of the necessary commands are listed, and you will need to know how Docker works to get setup with using this option.

Alternative 2: Setup a Free Cloud Database — Recommended

Everything seems to be in the cloud, but some of the challenges with using “Free” cloud hosting is you get a limited Database. Limited as in, you only get limited features and these are only available for a limited time.

Oracle has an Always Free offering where you can setup 2 enterprise level databases, in addition to having 2 virtual machines (for your web tier applications, blogs, web server, etc) and some other benefits.

Here are some instructions for setting up your Always Free Oracle (Enterprise) Database. (NB. there might be some layout/screen changes in the following. They keep changing the layout!)


Michael Stonbreaker – Those Who Forget the Past Are Doomed to Repeat It

Modern Data Practice and the SQL Tradition