Course Evaluation

You can download the results of the course evaluation as well as the action plan.


You can download the exam from March 26, 9:00.

Weekly notes / Slides

Week 06 07 08 09 10 11 12
Weekly notes 01.02.2009 06.02.2009 13.02.2009 20.02.2009 01.03.2009 09.03.2009 15.03.2009
Slides 02.02.2009 05.02.2009 09.02.2009 16.02.2009 18.02.2009 23.02.2009 02.03.2009 05.03.2009 09.03.2009 16.03.2009 19.03.2009
NoteThe slides are in parts based on slides by Jeffrey D. Ullman and Hector Garcia-Molina.



Information about the project is now available in the project description.

You can find a small Java class for a password dialog or a connection dialog here. The Java example from the lecture is available here.

Database Clients

To access the database you can either use the web interface as described below, a graphical frontend (like pgadmin) or you can use a local client (psql). How to obtain such a local client depends on the operating system:

  • Linux:
    If psql is not available on your linux system, tell the administrator or use the package manager to install it. Make sure it is able to connect to the server (which runs 8.3).
  • Mac OS X
    You can download the full PostgreSQL package from Note that this gives you both the server and the client. You might want to switch off the server if you are using the course's remote server.
  • Windows:
    There is a client-only package available from PostgreSQL Frontend for Windows.
    Alternatively, you can download the full PostgreSQL package from Note that this gives you both the server and the client. You might want to switch off the server if you are using the course's remote server.

Access to the Database

Accounts for the database server have been distributed during today's exercise. If you do not have an account yet, please contact me as soon as possible. You should be able to access your account from the IMADA terminal room or the IMADA notebook network using a local client (e.g. psql -h -U dbusername dbusername) and the address The administration interface is available at

The server is not directly accessible from outside IMADA, but you can use an SSH tunnel:

ssh -L 5432:

Then you can access the database server with a local client (e.g. psql -U dbusername dbusername) as localhost.

If you need to access the administrative web server, just type:

ssh -L 8080:

Then you can access the web server as http://localhost:8080/phppgadmin/.

You can also have it more comfortable by putting the following lines into ~/.ssh/config:

Host puma-db
User loginname
LocalForward 5432

Host puma-web
User loginname
LocalForward 8080

In case you are using Windows, you can use the program plink to set up the tunnels:

plink.exe -L 5432:
plink.exe -L 8080:


Week 06 07 08 09 10 11 12
Mon 12-14 (U9) Lecture Lecture Lecture Lecture Lecture Lecture Lecture
Wed 10-12 (U9) Exercise Exercise Lecture Exercise Exercise (IMADA Terminalrum) Exercise Exercise
Thu 10-12 Lecture (U9) Exercise (IMADA Terminalrum) Exercise (IMADA Terminalrum) Exercise (U9) Lecture (U9) Exercise (U9) Lecture (U9)

Office Hours

Just come to my office. If you want to make sure I'm there, contact me before (by e-mail, jabber, skype, phone).


Obligatory course book:

[1] Hector Garcia-Molina; Jeffrey D. Ullman; Jennifer Widom: Database Systems: The Complete Book. Prentice Hall, 2008.

Note: The book has arrived at the book store!

Course Description


The content of DM502 Programming A and DM503 Programmering B must be known.


Project and 1-day take-home exam, for which one combined grade is given. Project and take-home exam count equally in the grade. Grades according to the 7-point marking scale. External examiner.

Examination when the course has been taught. Re-examination after 4th quarter. The re-examination is an oral exam, grades according to the 7-point marking scale, internal examiner.

Withdrawal date:

Withdrawal from the exam must be 7 days before the first exam date.

Course type:

Lectures (22 hours), discussion sessions (20 hours), project work.

Teaching period:

3rd quarter, spring 2009


To give the student theoretical skills and practical experience in the use, design, and implementation of a relational database.


Relational databases, database design (ER-modelling, normal forms), relational algebra, SQL, database access from application programs, basic disk structure, index use and index implementations (hashing based, tree based).

Aim description:

After the course, the student is expected to be able to:

  • design a suitable ER-model for a database, on the basis of a problem description
  • transform an ER-model for a database into a suitable relational model
  • write SQL queries for a relational database
  • optimize a relational database through choice of indexes, use of equivalent SQL-expressions, and use of the theory of normal forms
  • access a databse from an application program
  • describe work done on the above subjects in clear and precise language, and in a structured fashion

Design by | Modified by Peter Schneider-Kamp | CSS 2.0