TDA357 / DIT621 Databases lp2 HT19 (7.5 hp)

Course is offered by the department of Computer Science and Engineering

Contact details

Examiner and course responsible: Jonas Duregård
Phone: 031-772 1028 

Questions regarding the assignment should be asked in lab sessions, or sent to Alejandro Gómez:

Questions regarding exercise sessions should be sent to Selpi:

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.



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.

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.
Link to the syllabus GU.


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. You are allowed to bring one double sided A4 sheet of hand written notes to the exam. A printed reference will be provided at the exam location, for reference it can be found here db-cheatsheet.pdf.

Programming assignment, in groups of two, four parts

Course summary:

Date Details Due