- Lecture 1 (introduction)
- Answers to revision questions
- Lecture 2 (more relational algebra) Correction to lecture 2 (to cardinality questions I asked in the lecture): cardinality of projection
- Lecture 3 (more relational algebra + relational algebra on multisets)
- Lecture 4 (queries as compound algebraic expressions) Contains answers to exercises from lectures 2 and 3.
- Answer to informal coursework from lecture 4
- Lecture 5 (algorithms for evaluating relational
algebra operations)

Here is a short version of lecture 5 for printing (without algorithm animation). - Lecture 6 Answer to informal coursework from lecture 5 (algorithm for computing difference). Example query optimization.
- Lecture 7 . Conditional tables.
- Lecture 8 . Mostly revision about normal forms, plus
Heath's theorem on lossless decomposition. Just the proof
of Heath's theorem.
**Definition of 2NF fixed on 2 March** - Lecture 9 . Multivalued dependencies and 5NF. Answers to exercises on conditional tables from lecture 7 and to exercises from lecture 8.
- Lecture 9 continued
**Definition of 3NF fixed on 2 March**

For changes on the 2nd of March, please see my email.

Normal forms paper by Ronald Fagin and his other papers on relational databases - Answers to informal coursework from lecture 9
- Lecture 10 Armstrong Closure for FDs.
**after the lecture: some typos fixed and a new slide (after slide 12) added.** - Answer to informal coursework from lecture 10
- Lecture 11 Axioms for functional and multivalued dependencies.
- Lecture 12 Relational calculus (or first order logic)
- Answer to informal coursework from lecture 12
- Lecture 13 Relational calculus and relational algebra. Datalog.
- Lecture 14 More Datalog.
- Answers to informal coursework on Datalog
- Lecture 15 SQL and relational algebra.
- Lecture 16 Revision.

This file is maintained by Natasha Alechina

Last updated May 14, 2007.