Course syllabus
Syllabus for TDA357/DIT622
Exam 2024-01-10 with solutions
To review your exam:
Exams can be reviewed at CSE Student office during their opening hours:
There is a formal procedure for requesting a "reconsideration" of your grade, if you believe there has been a mistake in grading (this is not an appeal, it's just Jonas taking another look at your exam and changing your grade if there has been a mistake). The student office can help you with that. You can also just snap a picture of your solution and send it to Jonas in Slack DM if you have questions about the grading.
Contact details
Slack channel
The course has a Slack-workspace for communication, and for signing up to receive help during lab sessions. Join the slack channel here (should work with your student email address):
https://join.slack.com/t/databases-lp2-23/signup
After joining, the Slack workspace can be accessed here:
Please change your presentation 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 slack channel in #questions. Specific requests concerning the labs e.g. to do the labs alone or get deadline extensions should be sent to:
Lorenzo Perticone (preferably through Slack)
The best way to contact Jonas is by DMs on Slack. 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 |
---|---|---|