The University of Sheffield
School of Computer Science

COM220 Databases and Logic in Computer Science

Summary This module introduces the foundations of databases and logic in computer science. You will cover theoretical underpinnings including the syntax and semantics of propositional and predicate logics, natural deduction, notions such as soundness, completeness and (un)decidability, normalisation theory of databases, relational algebra and relational calculus. You will also study practical applications of both databases and logic. This will include the use of SQL, including from within other programming languages, and practical applications of formal logic, such as automated reasoning and procedures, and the use of logic for formal verification of computer systems). 
Session Autumn 2026/27
Credits 20
Assessment
  • Examination 
Lecturer(s) Prof. Or Meir & Prof. Po Yang
Resources
Aims

The module aims to:

  • Introduce the standard logics in computer science and their associated proof systems and the main applications of logic in computer science;
  • Enhance analytical and logical skills in reasoning abstractly (about computation and computational modelling); 
  • Provide a thorough grounding in logic for theoretical courses at more advanced levels.
  • Introduce the principles of relational databases, including design and implementation in SQL.
Learning Outcomes

By the end of the module the student will be able to...

  • Create appropriate efficient database designs
  • Translate natural language expressions into formal query notations
  • Convert an initial information model into a normalised database representation, preserving the semantics of the model.
  • Perform proofs in propositional, predicate and modal logics.
  • Explain the principles of the use of formal logic for practical applications.
Content
  • Syntax and semantics of propositional and predicate logic
  • Natural deduction systems for these logics
  • Automated and interactive theorem proving
  • Introduction to linear temporal logic
  • Relational algebra 
  • Database design and normalisation
  • Database queries and query optimisation
Teaching Method For the thread of logic: 1 formal lecture plus 1 exercise/tutorial session per week through the entire semester. For the thread of databases: 1 formal lecture plus 1 lab session per week, for 5 weeks.
Feedback Weekly feedback is provided in the exercise/tutorial sessions.