MEng Software Engineering
Year of entry: 2020
Course unit details:
Fundamentals of Databases
|Unit level||Level 2|
|Teaching period(s)||Semester 1|
|Offered by||Department of Computer Science|
|Available as a free choice unit?||Yes|
Databases are crucial to most of the IT systems we use. When we pay with a credit card, or book a flight, databases ensure that transactions go through smoothly. They are sophisticated systems that pack a great deal of invention, drawing on amazing advances in areas such as logic, concurrency theory, algorithm and data structures and more. We show you how to design and implement a complete database solution on Oracle, the most advanced database platform in existence. You learn how to program in SQL -- the de facto standard for programming databases -- including using triggers and stored procedures.
|Unit title||Unit code||Requirement type||Description|
|Object Oriented Programming with Java 1||COMP16121||Pre-Requisite||Compulsory|
|Object Oriented Programming with Java 2||COMP16212||Pre-Requisite||Compulsory|
The aim of this course unit is to introduce the students to the fundamental concepts and techniques that underlie modern database management systems (DBMSs).
The course unit studies the motivation for managing data as an asset and introduces the basic architectural principles underlying modern DBMSs. Different architectures are considered and the application environments they give rise to.
The course unit then devotes time to describing and motivating the relational model of data, the relational database languages, and SQL, including views, triggers, embedded SQL and procedural approaches (e.g., PL/SQL).
The students learn how to derive a conceptual data model (using the Extended Entity Relationship paradigm), how to map such a model to target implementation model (for which the relational model is used), how to assess the quality of the latter using normalisation, and how to write SQL queries against the improved implementation model to validate the resulting design against the data requirements originally posed. For practical work, the Oracle DBMS is used.
The course unit also introduces the fundamentals of transaction management including concurrency (e.g., locking, 2-phase locking, serialisability) and recovery (rollback and commit, 2-phase commit) and of file organisation (e.g., clustering) and the use of indexes for performance.
Finally, the course unit addresses the topic of database security by a study of threats and countermeasures available. In the case of the former, these include potential theft and fraud as well as loss of confidentiality, privacy, integrity and availability. In the case of the latter these primarily include mechanisms for authorization and access control, including the use of views for that purpose. The course unit also addresses the topic of legal frameworks that give rise to obligations on the part of database professionals by introducing exemplars such as the 1995 EU Directive on Data Protection and the 1998 UK Data Protection Act.
Be able to discuss and explain the importance of data, and the difference between file management and databases.
Be able to discuss and explain the design of database management system (DBMS) architectures and environments (and, in particular, the 3-level ANSI-SPARC architecture).
Be able to discuss and explain the principles of database design.
Be able to discuss, explain and apply conceptual design methodologies, and, in particular, the Extended Entity Relationship Approach.
Be able to discuss, explain and apply the relational model, and, in particular the derivation of relational schemas from conceptual designs and the normalisation of those schemas.
Be able to discuss and explain physical and performance-related design considerations (e.g., the impact of file organisation schemes and of indexes).
Be able to discuss and explain transaction processing.
Be able to discuss, explain and apply the SQL language as implemented in the Oracle DBMS.
Be able to discuss and explain the basic mechanisms to enforce database security, through an understanding of the threats and countermeasures available in classical database management systems.
Be able to discuss and explain the requirements and responsibilities arising from the use of classical database management systems in the light of legal frameworks to protect individuals, institutions and property rights.
Introducing Data Management
Data as an Asset, Records and Files, The Need for Models, The Need for Independence, Database Management as a Service [1 lecture plus background reading]
Understanding Database Architectures
Levels of Abstraction in Data Management, The ANSI/SPARC Approach, Schemas v. Instances, Describing v. Querying v. Changing, DBMS Components and Architectures [1 lecture plus background reading]
Understanding the Relational Paradigm
The Relational Model, The Relational Languages [2 lectures plus background reading] [1 examples clinic, 1 lab exercise]
Building a Conceptual Data Model, Mapping the Conceptual Data Model to a Target, Identifying Functional Dependencies, Normalizing the Schema [5 lectures plus background reading] [3 examples clinics, 2 lab exercises]
Interfacing with Applications
Defining Views, Using Embedded Queries, Procedural Access, and Triggers [1 lecture plus background reading] [1 examples clinic, 1 lab exercise]
Understanding System-Level Issues
Concurrency, Transactions and Recovery, File Organisations and Indexes [2 lectures plus background reading]
Considering Security and Privacy
Threats and Countermeasures, Legal Frameworks [background reading]
Teaching and learning methods
13 in total, 1 per week + an additional lecture in Week 2.
5 in total, each one hour long, run as clinics in support of the taught material, mandatory readings and lab exercises.
5 in total, assessed and supported, each, by one two-hour assisted session. None are optional, all are assessed.
- Analytical skills
- Problem solving
|Practical skills assessment||50%|
COMP23111 reading list can be found on the School of Computer Science website for current students.
|Scheduled activity hours|
|Assessment written exam||2|
|Practical classes & workshops||15|
|Independent study hours|
|Sandra Sampaio||Unit coordinator|
Course unit materials
Links to course unit teaching materials can be found on the School of Computer Science website for current students.