Course codes: Chalmers TDA357, GU DIT620
Spring Term 2018

GoogleGroup | LectureNotes | TimeEdit | Assignment | Fire | LastYear | PostgresTips | QueryConverter

Official URL of this page:

News and changes


Material: Notes = course notes, Book = course book

Date Title Material
17/1 WedLecture 1, Introduction Notes 1, Book 1
18/1 ThuLecture 2, SQL 1 Notes 2, Book 6
21/1 SunLAB 0 DEADLINE group registration
22/1 MonLecture 3, SQL 2Notes 2, Book 6
24/1 WedExercise 1, SQL (Nickey) Questions Solutions
25/1 ThuLecture 4, Entity-Relationship modelling Notes 3, Book 4
29/1 MonLecture 5, The relational data model Notes 4, Book 2
30/1 TueLAB 1 DEADLINE Lab PM SQL tables and queries
31/1 WedExercise 2, Entity-Relationship modelling (Nickey) Questions Solutions
1/2 ThuLecture 6, Functional dependencies and normal forms Notes 5, Book 3
5/2 MonLecture 7, Relational algebra and query compilation Notes 6, Book 2,5,16
14/2 WedExercise 3, Theory topics: relations and dependencies (Natalia) Questions Solutions
15/2 ThuLecture 8, SQL constraints and triggers (Jyrki) Notes 2,7 ; Book 7
16/2 FriLAB 2 DEADLINE Lab PM ER and FD
19/2 MonLecture 9, SQL in software applications (JDBC, SQL injection) (Jyrki) Notes 7, Book 9
22/2 ThuLecture 10, Remaining SQL topics: transaction, authorization, indexes (Jyrki) Notes 2,7; Book 6,8,10
21/2 WedExercise 4, Constraints and triggers (Naga) Questions Solutions
26/2 MonLecture 11, Alternative data models Notes 8, Book 11,12
27/2 TueLAB 3 DEADLINE Lab PM Triggers
28/2 WedExercise 5, JDBC (Alejandro) Questions
1/3 ThuLecture 12, Industrial guest lecture: Johan Buratti, Spotify Cassandra
5/3 MonLecture 13, recap and exam preparation Notes, Book
7/3 WedExercise 6, XML Questions
16/3 FriExam old exams and a quiz

The official course schema is in Time Edit


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:

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

The full description with learning outcomes is available in the student portal


The fastest way to get an answer is to mail the course's Google group!forum/tda357-vt2018

Google Group

If you have any general questions regarding the course, the labs or the exercises, please ask them in our Google group!forum/tda357-vt2018 This will reach all teachers and fellow students.

We have made the group public, so that you don't need to ask for a membership.

Laboration times and supervision

See Time Edit for times and places.

Course assistants will be in the lab rooms to help.

Attendance in these classes is optional. Normally, each student should attend at most one supervised laboration time each week.


There are three assignments (a.k.a. "laborations", "labs"), written individually or in pairs. In addition, there is a "Lab 0", which consists of just registering the group.

The specification ("lab PM") is here

Reporting is done via Fire Before reporting assignments 1 and 2, you must run your program through a test suite.

The final deadline is Sunday 18 March for all returned and corrected labs. No labs will be graded if sent after this deadline.

We guarantee two gradings per lab: one for the version submitted before the ordinary deadline for that lab, the other for a resubmission before the final deadline. If your first submission is after the lab deadline, only one grading is guaranteed.

Labs are by default done in pairs:


The official course book is

Book web page

A new "international edition" was published in summer 2013. The chapters relevant to this course are the same, so either version will be OK. The book is available at Cremona and at web bookshops.

You can also use an on-line book manuscript, referred to as "notes": Databases in 88+ pages. Our plan is to publish these notes as a short course book later, and your feedback will be appreciated!


There are six exercise sessions. Each session is given two or three times; you are supposed to participate at most once at each session.

See Time Edit for exact times and places.

The questions will be posted a few days before each class. The answers will be posted after each class, to encourage everyone to try the exercises themselves.


Written exam, usual grading scales.

Date: Friday 16 March

Time: 8:30 - 12:30

Place: SB Multisal (Samhällsbyggnadshus), Sven Hultins gata 8. Your own cheat sheet permitted (double-sided A4), but a standard one will also be distributed.

The exam questions contain a [standard cheatsheet notes/db-cheatsheet.pdf], which is a reference card covering all E-R, SQL, relational algebra, and XML syntax that is needed in the exam. Your own cheat sheet is also permitted (a hand-written double-sided A4).

Exam review: TBA.

Old exams; these ones have the same format as ours:

Some more old exams, not necessarily similar.


PostgreSQL (the main software, used in assignments). Practical help about using the school's Postgres installation can be found in these PostgresTips.

QueryConverter web application. Support for E-R diagrams, functional dependencies, normalization, and relational algebra. Source: This is experimental teaching software developed to accompany the notes.