Course syllabus


TDA357 / DIT621 Databases lp2 HT20 (7.5 hp)

Course is offered by the department of Computer Science and Engineering


There will be no on-Campus teaching in this course. The Timeedit Schedule shows room bookings for lab sessions, and these rooms are available for students who wish to use them but supervision is handled through Zoom.

Contact details

Slack channel

The course has a Slack-workspace for communication, and for signing up to receive help during lab sessions (instructions will come soon). Join the slack channel here (should work with your student email adress):

After joining, the Slack workspace can be accessed here:

Please change your presentation name to reflect your first and last name. 

Examiner and course responsible: Jonas Duregård

Can be contacted by DMs on Slack
Phone: 031-772 1028 (for urgent or very complicated matters)

Questions regarding the assignment should be asked in lab sessions, or the slack channel. Specific requests concerning the labs e.g. to do the labs alone should be sent to Alejandro Gómez:

Alejandro is the Head of Assignments for the course and deals with all practicalities of the lab assignments, please do not email Jonas about the labs. 

Course purpose

The course covers the basic principles of database systems as seen by users, application programmers and database administrators. A laboratory assignment develops these topics as a running example throughout the course. These include programming in SQL, as seen by a user querying or modifying an existing database, by a database designer, and by an application programmer invoking SQL from a host language. Course contents include:

  • Database querying and manipulation through SQL
  • Entity-Relationship modelling
  • Functional dependencies, normal forms, and relational algebra
  • Interfacing to a database from a host language (Java/JDBC)
  • Altenative data models: XML, JSON, NoSQL

The course is thus a typical first course in database systems, and occupies a traditional place in the curriculum.


Complete Schedule in timeedit:

Lecture schedule. All lectures will be given in Zoom, links will be added to this page.

v 45 Tisdag 2020-11-03
10:00 - 11:45 Databaser, Databases
  Onsdag 2020-11-04
08:00 - 09:45 Databaser, Databases
  Fredag 2020-11-06
10:00 - 11:45 Databaser, Databases
v 46 Tisdag 2020-11-10
10:00 - 11:45 Databaser, Databases
  Onsdag 2020-11-11
08:00 - 09:45 Databaser, Databases
v 47 Onsdag 2020-11-18
08:00 - 09:45 Databaser, Databases
v 48 Tisdag 2020-11-24
10:00 - 11:45 Databaser, Databases
  Onsdag 2020-11-25
08:00 - 09:45 Databaser, Databases
v 49 Tisdag 2020-12-01
10:00 - 11:45 Databaser, Databases
  Onsdag 2020-12-02
08:00 - 09:45 Databaser, Databases
v 50 Tisdag 2020-12-08
10:00 - 11:45 Databaser, Databases
  Onsdag 2020-12-09
08:00 - 09:45 Databaser, Databases
v 51 Tisdag 2020-12-15
10:00 - 11:45 Databaser, Databases


Course literature

Lecture notes (a book in construction):

Jyrki Nummenmaa and Aarne Ranta, Databases in 144 pages, manuscript, available here (Links to an external site.)

 (Links to an external site.)

Further reading (was the course book before):

  • Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Widom, Database Systems: The Complete Book, 2/E, Pearson Education, 2008.

Lecture slides will be published continuously.

Common questions: Do I need to buy the The Complete Book? Answer: No, you do not. Looking at earlier course evaluations, some found the book very useful, many found that lecture slides and free online sources are enough and they had limited or no use of the book. 

Course design

The course has following components:

  • lectures
  • exercises
  • programming assignment ("lab")
  • supervised work in programming class ("labs")
  • course literature
  • discussion group
  • exam

Only the programming assignments and the exam are compulsory.

Each week of the course has one or two themes for the lectures, and the friday exercise session (exercises in week 1-6 only). Lecture and exercise themes for each week of the course (as well as assignment deadlines):

Week 1: SQL
Deadline of Assignment Task 0 (register in fire) on Friday

Week 2: Design using ER

Week 3: Design using functional dependencies and normal forms
Deadline of Assignment Task 1 on Tuesday

Week 4: Constrants and triggers + Database connectivity and JDBC
Deadline of Assignment Task 2 on Friday

Week 5: Semi-structured data: JSON and NoSQL

Week 6: Transactions + Relational algebra
Deadline of Assignment Task 3 on Tuesday

Week 7: Repetition (no exercise)
Final deadline for all Assignment Tasks (including resubmissions!) on Friday

Learning objectives and syllabus

Learning objectives:

On successful completion of the course the student will be able to:
Knowledge and understanding

  • explain the semantic meaning of queries using relational algebra
  • describe the effects of transactions and indexes in a relational database

Competence and skills

  • construct an Entity-Relationship diagram for a given domain
  • translate an Entity-Relationship diagram into a relational database schema
  • apply design theory concepts for relational databases such as functional dependencies and normalization
  • retrieve and modify data using a database language for respective task
  • design a database interface using constraints, views, triggers and privileges
  • implement a relational database schema and related interface using a data definition language
  • communicate with a database, through a database interface, from a software application

Judgement and approach

  • evaluate and create different models for a database domain using EntityRelationship diagrams and relational schemas
  • contrast different data models, such as the relational and the semi-structured data models

Link to the syllabus Chalmers. (Links to an external site.)
Link to the syllabus GU. (Links to an external site.)


If the course is a joint course (Chalmers and Göteborgs Universitet) you should link to both syllabus (Chalmers and Göteborgs Universitet).

Examination form

Written exam in January, individual. Exactly how this will work with the ongoing pandemic is yet to be announced. 

Programming assignment, in groups of two, four parts.

Course summary:

Date Details Due