CMT220: Databases and Modelling
School | Cardiff School of Computer Science and Informatics |
Department Code | COMSC |
Module Code | CMT220 |
External Subject Code | 100754 |
Number of Credits | 20 |
Level | L7 |
Language of Delivery | English |
Module Leader | Professor Irena Spasic |
Semester | Spring Semester |
Academic Year | 2025/6 |
Outline Description of Module
Database systems are the most widely used software systems in commerce and industry. Database management systems are used to store and manage the complex integrated information resources of organisations. This module introduces the theoretical and practical issues relating to the design and use of these systems. In addition to the provision of a sound foundation in traditional, second generation database systems, it explores the representation and management of complex information resources with NoSQL database technology.
On completion of the module a student should be able to
-
Design a relational database, i.e. map conceptual models to efficient representations in a database schema
-
Manage relational database systems
-
Use SQL to define and query a relational database
-
Discuss and evaluate the principles of data integrity, security and concurrency control
-
Model and manage information using markup languages
-
Describe and evaluate the principles behind other types of database management systems, for example NoSQL
How the module will be delivered
The teaching delivery follows a flipped classroom approach, where students engage with learning materials before attending face-to-face sessions. Lecture slides and pre-recorded videos are provided in advance, allowing students to study the content at their own pace. To reinforce their understanding, they are provided with a quiz that assesses the corresponding learning outcomes. This is formative assessment only and does not count towards the overall mark on the module.
During face-to-face classes, learning is structured into two key parts:
-
Live Coding Session – The first half of the class is dedicated to live coding, where the lecturer demonstrates key programming concepts in real time. This interactive session helps students observe problem-solving techniques, coding best practices and debugging strategies.
-
Lab Class – The second half is a hands-on lab session, designed with scaffolding to support students as they apply their knowledge to practical tasks. Pair programming is also incorporated, encouraging collaboration, peer learning and improved coding proficiency.
This active learning approach ensures students engage deeply with the material, develop problem-solving skills and reinforce their understanding through both individual study and collaborative practice.
Skills that will be practised and developed
Understanding the role of information in decision making
Designing relational databases (including conceptual design, logical design, physical design)
Evaluation of issues concerning database applications, including security and data integrity
Modelling information using markup languages (XML and JSON)
Awareness of the differences between relational and NoSQL databases
How the module will be assessed
The module will be assessed through two online open-book assessments:
-
A class test that involves a timed practical implementation task.
-
An online exam scheduled during the Spring exam period.
Students will be provided with reassessment opportunities in line with University regulations.
Assessment Breakdown
Type | % | Title | Duration(hrs) |
---|---|---|---|
Class Test | 50 | Timed Practical Implementation | N/A |
Exam online – Spring semester | 50 | Databases And Modelling | 2 |
Syllabus content
Introduction to databases
Information, data and knowledge
Database systems
Relational data model
Structured Query Language (SQL)
Relational algebra
Database design
Conceptual database design (ER diagrams)
Logical database design (ER to SQL)
Physical database design (indexes)
Security, transactions and concurrency
Security and integrity
Transactions and recovery
Concurrency control
Markup languages and NoSQL databases
XML, XPath and XQuery
JSON
NoSQL
MongoDB