General information

In the project, you will have to design and develop a relational database for an imaginary user. You can choose the topic yourself, for example sales database, sports database, music database, or anything you want. The database should be operateable with Python console that demonstrates five different database queries, one update, one insert and one visualization. Project is individual work. If there are any questions, contact the teacher or teacher assistant.

Parts of the project:

  1. Theoretical, design documentation.
    1. Design (description of the topic and limitations; ER-model)
    2. Transformation to a relational model (and integrity constraints)
    3. Description of the program
  2. Practical implementation with SQLite and Python
  3. Video demonstration of the Python interface

Theoretical part:

Use the given report template. The template has the recommended structure and some examples for the content. The template should work with Word and OpenOffice.

Structure of the document

  1. Introduction
  2. ER model and transformation to relational model
  3. Database implementation. First create the SQLite database and then the required parts with Python. Design where you should use indices to speed up queries.
  4. Discussion, reflection and conclusion. 

Design requirements:

Practical part

In the practical part, you have to do a SQLite-database (an actual .sqlite file, not a sequence of SQL commands) and an interactive Python user interface that demonstrates one aspect of the database functionalities. For example, sports-database could print the information of old matches and then ask if you want to update an old score or add a new match result. The whole database is not required to be usable through the Python user interface. It is enough that you do a linear program that demonstrates five queries, one update, one insert and one visualization (done with bokeh-library). More information regarding bokeh-library is in the Python topic and assignment. Bokeh-visualization could be a bar chart for example.

Requirements of the practical part

Returnables for the practical part


Video demonstration

The video demonstration is to show the functionality of the Python interface. You should show all the functionalities of your Python interface (the queries you have implemented and the results). No need to show the document, database, source code, nor anything else than the Python interface. The video length will probably be less than 2 minutes and no audio is required.


Instructions for returning the project

The project should be returned to the correct Moodle activity.

The returnables include:

Returnable file structure

Evaluation criteria

In general, if the project fulfills all the requirements given above on an adequate level, you will receive maximum points from the project. The following things are emphasized in the evaluation: 

Peer-review does not directly determine the grade of the project and it is only a verbal review. However, a good peer-review or not doing the peer-review will affect the grade of the reviewer.

Possible problem areas in the project