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.
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 |
---|---|---|