Skip to main content Skip to navigation

CS258-15 Database Systems

Department
Computer Science
Level
Undergraduate Level 2
Module leader
Andrew Hague
Credit value
15
Module duration
10 weeks
Assessment
Multiple
Study location
University of Warwick main campus, Coventry
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%)
Seminars 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 D3
Weighting Study time
Unsupervised practical Assignment 30%

Unsupervised practical assignment. This assignment is worth more than 3 CATS and is not, therefore, eligible for self-certification.

In-person Examination 70%

CS258 Exam


  • Answerbook Pink (12 page)
Assessment group R2
Weighting Study time
On-campus Examination - Resit 100%

CS258 resit examination


  • Answerbook Pink (12 page)
Feedback on assessment

Individual written feedback on each assignment.

Past exam papers for CS258

Courses

This module is Core for:

  • UCSA-G500 Undergraduate Computer Science
    • Year 2 of G500 Computer Science
    • Year 2 of G500 Computer Science
  • UCSA-G503 Undergraduate Computer Science MEng
    • Year 2 of G500 Computer Science
    • Year 2 of G503 Computer Science MEng
    • Year 2 of G503 Computer Science MEng
  • Year 2 of UCSA-I1N1 Undergraduate Computer Science with Business Studies
  • USTA-G302 Undergraduate Data Science
    • Year 2 of G302 Data Science
    • Year 2 of G302 Data Science
  • Year 2 of USTA-G304 Undergraduate Data Science (MSci)
  • 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:

  • UCSA-G4G1 Undergraduate Discrete Mathematics
    • Year 2 of G4G1 Discrete Mathematics
    • Year 2 of G4G1 Discrete Mathematics
  • Year 2 of UCSA-G4G3 Undergraduate Discrete Mathematics