Databases (lp3 VT20)
Databases (lp3 VT20)
TDA357 / DIT621 Databases lp3 VT20 (7.5 hp)
Course is offered by the department of Computer Science and Engineering
- 2020-01-22: Fire is open for Lab 0 submissions. We need GU student representatives. Contact Thomas if you want to volunteer!
- 2020-01-21: The schedule has been updated.
- 2019-11-19: Started construction of this page by copying information from last time. More information will be added and some old information might be updated.
- Course responsible: Thomas Hallgren.
- Teaching assistants: Alejandro Gomez, Agustín Mista, Yasmeen Emampoor, Benjamin Sannholm.
- Student representatives: Adrian Eliasson (TKDAT), Kasper Hall (TKDAT), Carl Jendle (MPSC), Albin Johansson (TKITE), Viktor Fredholm (TKITE), Tomas Reed (GU).
All teachers and students can be reached through their Inbox in Canvas.
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.
First lecture: 22 January 2020 at 13:15-15:00 in HB2. Thereafter,
- Lectures: Monday 15-17 HB2, Thursday 10-12 HB3.
- Exercises: Wednesday 8-12, 10-12, 13-15 in EL43.
- Labs on Monday 10-12, Thursday 8-10, Friday 13-15, usually in ED-3582 + EG 3503/4/5.
The detailed schedule with times and locations is in TimeEdit.
Lectures, exercises, deadlines (copied from last year, expect some minor changes):
|22/1 Wed||Lecture 1||Introduction||Notes 1, Book 1, Slides|
|23/1 Thu||Lecture 2||SQL 1||
Notes 2, Book 2,
|27/1 Mon||Lecture 3||SQL 2||Notes 2, Book 2|
|27/1 Mon||Deadline 0||Group registration||Fire|
|28/1 Wed||Exercise 1||SQL||Questions, Solutions_pdf, Solutions_sql|
|30/1 Thu||Lecture 4||Entity-Relationship modelling||Notes 3, Book 4|
|3/2 Mon||Lecture 5||The relational data model||Notes 4, Book 2|
|3/2 Mon||Deadline 1||SQL construction and queries||Lab PM|
|6/2 Thu||Lecture 6||Functional dependencies and normal forms||Notes 5, Book 3|
|10/2 Mon||Lecture 7||SQL constraints and triggers||Notes 7, Book 7, Slides|
|12/2 Wed||Exercise 2||ER modelling||Questions, Solutions|
|19/2 Wed||Exercise 3||Functional dependencies||Questions|
|20/2 Thu||Lecture 8||Alternative data models, JSON (Matthías?)||Notes 9, Book 11,12, Slides|
|20/2 Thu||Deadline 2||Database modelling||Lab PM|
|24/2 Mon||Lecture 9||Databases in software applications||Notes 8, Book 9, Slides|
|26/2 Wed||Exercise 4||Triggers and software applications||Questions|
|27/2 Thu||Lecture 10||Transactions, authorization, indexes||Notes 7.7, 7.9, 8.7, 6.7; Book 6,8,10|
|29/2 Sat||Deadline 3||Triggers||Lab PM|
|2/3 Mon||Lecture 11||Relational algebra and query compilation||
Notes 6, Book 2,5,16, Slides
|4/3 Wed||Exercise 5||JSON||Questions, Solutions|
|5/3 Thu||Lecture 12||(?) Cassandra NoSQL (Johan Buratti, Spotify)|
|9/3 Mon||Lecture 13||Recap and exam preparation||exam-2018-3 answers quiz|
|11/3 Wed||Exercise 6||Theory topics||Questions, Solutions|
|13/3 Fri||Deadline 4||Application program (graded in lab sessions)||Lab PM|
|20/3 Fri||Exam||Johanneberg 8:30-12:30||old exams|
- Jyrki Nummenmaa and Aarne Ranta: Databases in 144 pages (free PDF), lecture notes (a book in construction).
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.
Book web page. Paper copies and eBook available in the Chalmers Library.
The course has following components:
- programming assignment ("lab")
- supervised work in programming class ("labs")
- course literature
- discussion group
Only the programming assignments and the exam are compulsory.
Changes made since the last occasion
- Written exam, individual.
- Programming assignment, in groups of two, four parts.
Learning objectives and syllabus
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
The syllabus page shows a table-oriented view of course schedule and basics of course grading. You can add any other comments, notes or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the 'Edit' link at the top.