Course syllabus

Contact details

Discord server

The course has a Discord server for communication, and for signing up to receive help during lab sessions. Join the discord server here. Consider using a new user with your chalmers email.

https://discord.gg/TNE92ThtMg

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

Examiner and course responsible: Jonas Duregård

Questions regarding the assignment should be asked in lab sessions, or the discord forum channel #questions. Specific requests concerning the labs e.g. to do the labs alone or get deadline extensions should be sent to:

Lab responsible: Lorenzo Perticone (preferably through Discord)

The best way to contact Jonas is by DMs on Discord. Otherwise, jonas.duregard@chalmers.se or phone: 031-772 1028 (for urgent or complicated matters)

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)
  • Alternative data models: XML, JSON, NoSQL

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

Schedule

Complete Schedule in timeedit:

https://cloud.timeedit.net/chalmers/web/public/ri1Y54y6Z65ZZ0Q56g6650015Y06x37X0gY600QQ5277gQ5.html

Course literature

Lecture notes (a book in construction):

Jyrki Nummenmaa and Aarne Ranta, Databases in 137 pages, manuscript, available here (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. You will have to attend at least one lab session (towards the end the course) to demonstrate your solution to the programming assignment. 

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)
Deadline of Task 4 and 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.

Examination form

Written exam in January, individual. 

Allowed aids on exam: You are allowed to bring one hand written double sided A4 of notes to the exam, that you hand in along with your solutions (you can get it back later). 

Exams are scored with a total of 60 points, and the grades are determined. Grade is determined by these limits:
27, 38, 49 for grades 3,4,5
Programming assignment, in groups of two, four parts graded pass/fail. Passing the assignment is required for a passing grade in the course. 

Course summary:

Date Details Due