This module will introduce you to the ways in which data is stored within a computer system. You will learn about a variety of types of database, including those based on the structured query language (SQL) and those designed to structure data differently (so-called NoSQL databases). You will develop a theoretical understanding about how data should be organised, and will learn how to access and modify the data in a database from an application.
The aim of this module is to instil students with an appreciation of the different ways that data can be stored. By introducing multiple approaches (e.g. SQL-based and NoSQL) students will learn how to select the most appropriate storage for a given application, taking into account the complexities around accessing and writing data. Students will also learn how to construct software to connect an application to a database securely.
The module will also cover concurrency control, backup and recovery, user management, and web development with databases, The module will also introduce modern concepts concerning data systems, which might include big data, the cloud, data warehousing, blockchain, and decentralised systems, and governance.
INTENDED LEARNING OUTCOMES (ILOs) (see assessment section below for how ILOs will be assessed)
On successful completion of this module you should be able to:
Module Specific Skills and Knowledge
1. Understand how to construct a database in which to store data for a given application.
2. Understand how to design applications that uses an API to access and modify data stored in a database
Discipline Specific Skills and Knowledge
3. Document and defend the design of a database for a given application.
4. Contrast between different types of database tools.
Personal and Key Transferable / Employment Skills and Knowledge
5. Design an appropriate data storage scheme for a project within a chosen problem domain.
SYLLABUS PLAN - summary of the structure and academic content of the module
The relational model and its implementation in SQL.
Information modelling.
Database design theory.
Transactions and their use in integrity and recovery management.
NoSQL databases (potential examples including document databases and graph databases).
Database APIs and their construction.