CS258 Database Systems
CS258-15 Database Systems
Introductory description
This module studies Data Base Management Systems (DBMSs): the science and technology for organising and retrieving large amounts of structures data efficiently. It presents in depth the Relational Model and the declarative language SQL and explains how it can be used to define and interrogate databases. It also shows how to access databases from procedural programs (such as Java or C++). It discusses the formal underpinnings of Relational Databases, and Relational Algebra and Relational Calculus and how to optimally define the Database using relations/tables. Finally, it also discusses issues pertaining to security and object relation mapping.
Module aims
This module studies Data Base Management Systems (DBMSs): the science and technology for organising and retrieving large amounts of structures data efficiently. It presents in depth the Relational Model and the declarative language SQL and explains how it can be used to define and interrogate databases. It also shows how to access databases from procedural programs (such as Java or C++). It discusses the formal underpinnings of Relational Databases, and Relational Algebra and Relational Calculus and how to optimally define the Database using relations/tables. Finally, it also discusses issues pertaining to security and object relation mapping.
Outline syllabus
This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.
- Overview of databases and database management systems
- The Relational Model and Relational DBMSs
- The SQL declarative Programming Language
- Programming DBs - using SQL from procedural programming languages such as Java and C
- Theoretical underpinnings: Normalisation theory, Relational Algebra and Relational Calculus
- Security and Object Relation Mapping
Learning outcomes
By the end of the module, students should be able to:
- Create appropriate efficient database designs for a range of applications.
- Use notations such as SQL to implement a database design.
- Translate between informal queries and their expression in more formal notations.
- Construct appropriate queries in standard notations for a range of typical queries needed in common applications.
- Identify and express relevant integrity constraints for a given database design.
- Recognise the main security threats to databases, and identify appropriate control measures.
Indicative reading list
Please see Talis Aspire link for the most up to date list.
View reading list on Talis Aspire
Subject specific skills
Understanding of:
- data modelling within the relational model/DBs environment – schema definition, logical DB design and the process of normalization for this goal;
- declarative programming languages (SQL) as a data manipulation and data definition language and how to use SQL from procedural programming languages (C++, Java);
- formal languages for the relational model: Relational Calculus and Relational Algebra;
- data security within the DBMS context, and
- object relation mapping
Transferable skills
Include:
- data management for large-scale analytics
- association of declarative and procedural languages and 2-/3-tier architectures for information systems
- security issues at large
Study time
Type | Required |
---|---|
Lectures | 30 sessions of 1 hour (20%) |
Practical classes | 8 sessions of 1 hour (5%) |
Private study | 112 hours (75%) |
Total | 150 hours |
Private study description
Private study consists of:
- background reading,
- studying taught material from lecture notes/slides and additional textbooks
- acquiring deeper comprehension of lab exercises
- carrying out the module’s individual project.
Costs
No further costs have been identified for this module.
You do not need to pass all assessment components to pass the module.
Students can register for this module without taking any assessment.
Assessment group D4
Weighting | Study time | Eligible for self-certification | |
---|---|---|---|
Unsupervised practical Assignment | 30% | No | |
Unsupervised practical assignment. This assignment is worth more than 3 CATS and is not, therefore, eligible for self-certification. |
|||
In-person Examination | 70% | No | |
CS258 Exam
|
Assessment group R3
Weighting | Study time | Eligible for self-certification | |
---|---|---|---|
On-campus Examination - Resit | 100% | No | |
CS258 resit examination
|
Feedback on assessment
Individual written feedback on each assignment.
Courses
This module is Core for:
- Year 2 of UCSA-G500 Undergraduate Computer Science
-
UCSA-G503 Undergraduate Computer Science MEng
- Year 2 of G500 Computer Science
- Year 2 of G503 Computer Science MEng
- Year 2 of UCSA-I1N1 Undergraduate Computer Science with Business Studies
- Year 2 of USTA-G302 Undergraduate Data Science
- Year 2 of USTA-G305 Undergraduate Data Science (MSci) (with Intercalated Year)
This module is Optional for:
- Year 2 of UCSA-G406 Undergraduate Computer Systems Engineering
- Year 2 of UCSA-G408 Undergraduate Computer Systems Engineering
This module is Option list B for:
- Year 2 of UCSA-G4G1 Undergraduate Discrete Mathematics
- Year 2 of UCSA-G4G3 Undergraduate Discrete Mathematics
Further Information
Term 1
15 CATS (7.5 ECTS)
Module Organisers:
Jonny Foss
Peter Triantafillou