TDA357 / DIT621 Databases lp2 HT19 (7.5 hp)
Course is offered by the department of Computer Science and Engineering
Examiner and course responsible: Jonas Duregård
Phone: 031-772 1028
Questions regarding the assignment should be asked in lab sessions, or sent to Alejandro Gómez:
Questions regarding exercise sessions should be sent to Selpi:
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.
Lecture notes (a book in construction):
Jyrki Nummenmaa and Aarne Ranta, Databases in 144 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.
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.
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)
Final deadline for all Assignment Tasks (including resubmissions!) on Friday
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
If the course is a joint course (Chalmers and Göteborgs Universitet) you should link to both syllabus (Chalmers and Göteborgs Universitet).
Written exam in January, individual. You are allowed to bring one double sided A4 sheet of hand written notes to the exam. A printed reference will be provided at the exam location, for reference it can be found here db-cheatsheet.pdf.
Programming assignment, in groups of two, four parts
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.