Module Information

Module Identifier
CS27020
Module Title
Modelling Persistent Data
Academic Year
2022/2023
Co-ordinator
Semester
Semester 1
Pre-Requisite
Exclusive (Any Acad Year)
Other Staff

Course Delivery

 

Assessment

Assessment Type Assessment length / details Proportion
Semester Assessment 10 minute worksheets -  quiz worksheets, administered online  10%
Semester Assessment Assesssed practicals  Practical work carried out in demonstration sessions, with signoff via Blackboard quizzes.  20%
Semester Exam 2 Hours   Written Exam  70%
Supplementary Assessment Assignment-based version of practical sessions  - Software development coursework  30%
Supplementary Exam 2 Hours   Written exam  70%

Learning Outcomes

On successful completion of this module students should be able to:

1. Design and validate a relational database from a given enterprise description, justifying design decisions.

2. Implement a database design and a range of complex queries using a relational database management system (RDBMS).

3. Access a database through an appropriate programmatic interface.

4. Explain and provide a rationale for relational, semi-structured and alternative data model concepts.

Brief description

This module develops the concepts of database design, and implementation and use. The emphasis is on relational and semi-structured (XML) systems, with NoSQL systems introduced. It covers practical topics concerned with modelling and effective use of the facilities provided by a modern Database Management System (DBMS). Theoretical topics include data modelling, placing particular emphasis on the data model, relational algebra and the realisation of the relational model in a DBMS.

Content

1. Database System Concepts
Review and persistence, outline history. The value of general models: relational; object oriented; semi-structured. Databases, DBMS and applications programs. DBMS as reuse.

2. Relational Modelling
Entities and relationships. Connection traps. The design of relations. Transformation of an E-R model into a relational schema. Use of UML.

3. The Relational Model
Domains, relations and tuples. Primary and foreign keys. Referential integrity. Relational algebra. Null values and the outer join. Data normalisation. Validating a design.

4. SQL and implementation
Introduction. Status. DDL statements. SELECT clauses. Constraints. Built-in functions. Queries and views. Nested SELECT. Stored procedures.

5. Additional relational integrity constraints
Table and database level constraints. Triggers. Use of stored procedures.

6. Transactions
Introduction to transactions. ACID properties. Rollback.

7. Integration with high level languages
DBMS connections and services. An example API. Application development. The data dictionary. The Java Persistence API
Introduction to and practical demonstration of the Java Persistence API.

8. The semi-structured database model and XML
The model: outline; perceived advantages. The XML standard. XMLSchema and overview, comparison with SQL. XPath, XQuery and XSLT: syntax; power. XML databases: native databases; extensions to RDBMS.

9. Not Only SQL (NoSQL)
NoSQL background. NoSQL paradigms – BigTable, Key-Value, Document, Graph/Triple -stores. Choosing which NoSQL system is appropriate. NoSQL and ACID consistency

Module Skills

Skills Type Skills details
Application of Number
Communication The assessment requires professional written work.
Improving own Learning and Performance
Information Technology The module is a computer science module and so is all about digital capability.
Personal Development and Career planning
Problem solving Problem solving is intrinsic to programming in general, and to database programming in particular.
Research skills Analysing and taking a critical approach to data modelling is central to this module.
Subject Specific Skills In order to develop a database application, it is necessary to research user requirements and available technologies. Additionally an understanding of databases enhances all research skills, as research materials now all reside in databases.
Team work This module will require individual rather than team work.

Notes

This module is at CQFW Level 5