Kursöversikt
TDA357/DIT621 Databases VT19 (7,5hp)
Department of Computer Science and Engineering, Chalmers and University of Gothenburg
Revised 23 January 2019
Google group | Lab PM | TimeEdit | Fire | Lecture Notes | Query Converter |
(Lab PM and Lecture Notes: preliminary versions, to be updated. Fire: coming soon)
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.
Schedule
First lecture: 23 January 2018 at 13:15-15:00 in HB2
Thereafter,
- lectures Monday 15-17 HB2, Thursday 10-12 HB3; last lecture 11 March, none 14 February
- exercises Wednesday 10-12, 13-15 in EL43 (notice: we don't use the 8-10 time)
- labs on Monday 10-12, Thursday 8-10, Friday 13-15 in ED-3507
The detailed schema with times and locations is in TimeEdit
Lectures, exercises, deadlines:
23/1 Wed: | Lecture 1 | Introduction | Notes 1, Book 1 |
24/1Thu | Lecture 2 | SQL 1 | Notes 2, Book 2 |
28/1Mon | Lecture 3 | SQL 2 | Notes 2, Book 2 |
29/1 Tue | Deadline 0 | Group registration | Fire |
30/1 Wed | Exercise 1 | SQL | Questions |
31/1 Thu | Lecture 4 | Entity-Relationship modelling | Notes 3, Book 4 |
2/2 Sat | Deadline 1 | SQL construction and queries | Lab PM |
4/2 Mon | Lecture 5 | The relational data model | Notes 4, Book 2 |
7/2 Thu | Lecture 6 | Functional dependencies and normal forms | Notes 5, Book 3 |
11/2 Mon | Lecture 7 | Relational algebra and query compilation | Notes 6, Book 2,5,16 |
13/2 Wed | Exercise 2 | ER modelling | |
16/2 Sat | Deadline 2 | Database modelling | Lab PM |
20/2 Wed | Exercise 3 | Functional dependencies | |
21/2 Thu | Lecture 8 | SQL constraints and triggers | Notes 2,7, Book 7 |
25/2 Mon | Lecture 9 | Databases in software applications | Notes 7, Book 9 |
27/2 Wed | Exercise 4 | Triggers and software applications | |
28/2 Thu | Lecture 10 | Transactions, authorization, indexes | Notes 2,7, Book 6,8,10 |
2/3 Sat | Deadline 3 | Triggers | Lab PM |
4/3 Mon | Lecture 11 | Alternative data models, JSON | Notes 8, Book 11,12 |
6/3 Wed | Exercise 5 | Theory topics | |
7/3 Thu | Lecture 12 | TBA (possibly industrial guest lecture) | |
11/3 Mon | Lecture 13 | Recap and exam preparation | |
13/3 Wed | Exercise 6 | JSON | |
15/3 Fri | Deadline 4 | Application program (graded in lab sessions) | Lab PM |
22/3 Fri | Exam | Johanneberg 8:30-12:30 | old exams |
Contact details
- Aarne Ranta, course responsible.
- Thomas Hallgren, co-teacher
- Alejandro Gómez Londoño, teaching assistant
- Agustin Mitra, teaching assistant
- Matthías Páll Gissurarson, teaching assistant
- Natalia Jurczynska, teaching assistant
- Jyrki Nummenmaa, guest teacher
Course literature
Lecture notes (a book in construction):
Jyrki Nummenmaa and Aarne Ranta, Databases in 131 pages, manuscript, available here
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.
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.
Changes made since the last occasion
Webpage in Canvas
Official course book changed to the emerging lecture notes book
Last programming assignment generalized from Java to other choices of implementation language
XML replaced by JSON
Examination form
Written exam, individual
Programming assignment, in groups of two, four parts
Learning objectives and syllabus
Learning outcomes
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
Course plans
GU course plan: up to date
Chalmers course plan: will be updated to the same content as GU's
Kurssammanfattning:
Datum | Information | Sista inlämningsdatum |
---|---|---|