Introduction
Welcome to the portal for the COMP23111 interactive site. Here you will find exercises to complete
that will cover content for each week of the module. These exercises will help you learn about
designing and normalising databases, querying them using MySQL, building websites using PHP for the
back-end to communicate with the database as well as more modern DBMS like NoSQL. For the best
possible experience, it is recommended you complete these workshops on your laptops/computers. Any
questions regarding the workshops can be asked on the discussion board.
Overview
These weeks are centred around a restaurant management system consisting of 30+ entities and the
exercises will test your understanding and ability on various aspects of the database and MySQL. As
you progress through the weeks you will (hopefully) develop a better understanding of the system and
the relations between the entities. Alongside learning the content, you will be able to learn to
query large databases in an interactive way with tasks of different difficulties and with each week,
there will be a set of MCQs to test your understanding of that week's topics.
In the first week, we will begin introducing what databases are, database management systems (DBMS)
both in a relational and non-relational context, the various types of database languages, and end
the workshop looking at the potential threats to databases and the measures that can be taken to
protect a databases integrity, availability and confidentiality.
In the second week, we will start indulging into the several database application design phases,
modelling entity-relationship diagrams and the various elements of it e.g. entities, attributes,
relations etc. and end the week looking at the relationship between parent and child entities.
In the third week, we will delve deeper into designing databases looking at functional dependencies,
their different types, rules and advantages. Then, we will move on to a major topic of this module,
database normalisation. We will look at the modification anomalies it resolves, its advantages and
the steps we take to transform a database from UNF to 1NF, 2NF and end up at 3NF.
In the fourth week, we will start by learning how we convert an ERD into a schema using a set of
guidelines to implement in a specific DBMS. Next, we will move on to learning MySQL where you will
be assigned tasks of solving problems by writing queries to retrieve data from our restaurant
management system. These tasks will range from easy to difficult, potentially requiring you to do
some research about and special commands in MySQL to solve them.
In the fifth week, we look at how to write more complex queries to retrieve data from a database
with many tables. Then, we begin to explore several features of MySQL, such as stored procedures
which can be invoked at any time to perform commands, and triggers which can be used to automate a
task when an INSERT, UPDATE or DELETE query is executed in a database.
Week 6
This week is reading week hence there will be no new content or workshop to complete. Continue to
work on any workshops you haven't completed and the assigned coursework.
In the seventh week, we start to look at the functionality of single-user and multi-user systems,
the concept of transactions to guarantee the ACID properties, the potential problems that may occur
with concurrent system and how process scheduling can be performed to ensure data consistency in a
database for systems which have a large volume of users.
In the eighth week, we move on from querying databases and explore how to integrate a database into
the back-end of a website. This workshop focuses on PHP web programming and how we can create an
interface to allow users to query our database through the back-end which is connected to MySQL,
while abstracting away the underlying low level complexity of the system to increase accessibility.
In the ninth week, we begin introducing a new modern type of DBMS which is growing in popularity in
the industry, NoSQL. This workshop teaches the features/benefits of NoSQL, how the terminology and
commands of SQL translate into NoSQL as well as some practical tasks to assess your understanding of
querying in MongoDB which is a NoSQL database program.
In the tenth week, we take a look at another NoSQL database program called Couchbase and discover
the type of system it is, its relevance in the industry and how it manages ACID transactions.
In the final week, to end the course and workshops, we will look into Amazon Web Services (AWS) and
Firebase, why they have increased in popularity, the problems these cloud based services solve,
their advantages/disadvantages and the future of cloud computing platforms.