Course pages 2016–17
Databases
Last change: Wed Mar 15 11:01:09 GMT 2017
Revision guide
- Since the syllabus has changed this year, many of the Past exam questions are no longer relevant.
- Topics that are no longer covered include functional dependencies and normal forms. For example, there is no need to revise for questions such as y2016p4q5.
- However, many other questions are still relevant. In particular those related to ER data modelling, implementing ER models in a relational database, and the balance between read-optimised representations of data and update-optimised representations of data. So one could imagine questions similar to y2016p4q6 or y2014p4q5.
- Of course there may be questions related to topics that are new to the syllabus, such as graph-oriented databases and document-oriented database. Although there are no past questions I have exposed the solutions to suggested supervisions and practical work to aid in your revision.
Lecture notes
- One slide per page: Databases_1B_2017.pdf
- Two slides per page: Databases_1B_2017_2up.pdf
Suggested supervisions
Practical work
- Relational databases using HyperSQL
- Getting started with HyperSQL
- The database system: relational-db.jar
- Data sets
- Small database (858.2 kB) : relational-small.zip
- Large database (657.4 MB): relational-large.zip
- HyperSQL exercises
- Solutions
- Graph-oriented using Neo4j
- Getting started with Neo4j
- The database system: graph-db.jar
- Data sets
- Small database (1.1 MB) : graph-small.zip
- Large database (581.3 MB): graph-large.zip
- Neo4j exercises
- Solutions
- Document-oriented using DoctorWho
- Getting started with DoctorWho
- The database system: document-db.jar
- The Java API : moviedb-javadocs
- Data sets
- Small database : document-small.zip
- Large database : document-large.zip
- DoctorWho exercises
- Solutions
Nothing below is examinable!
Bacon number in SQL: contest winner.
Some open source relational database systems
- HyperSQL : http://hsqldb.org.
- Postgres : http://www.postgresql.org/
- MySQL : http://www.mysql.com/
- SQLite : http://www.sqlite.org/
A few "NoSQL" pointers
Further reading
- Tarkski's 1941 paper "On the Calculus of Relations".
- A short biography of Alfred Tarski http://en.wikipedia.org/wiki/Alfred_Tarski.
- Codd's original 1970 paper describing the relational model (reprinted here in 1983).
- A short biography of Edgar Codd http://en.wikipedia.org/wiki/Edgar_F._Codd.
- Chen's original 1976 paper on Enitity-Relationship models.
- A short biography of Peter Chen http://en.wikipedia.org/wiki/Peter_Chen.
- Data Cube: A Relational Aggregation Operator Generalizing Group-By, Cross-Tab, and Sub-Totals