BBM471 - Database Management Systems (Fall 2018)


Lecturer: Dr. Fuat Akal

TAs: Tuğba Gürgen Erdoğan, Aysun Koçak

Lectures: Mondays, @13:00 (D8)

Office Hours: Open door policy


Course Description


This is a course on database systems that is intended for advanced (3rd or 4th year) undergraduates in computer science. The course offers an introduction to database system concepts in general, particularly relational database design, terminology and techniques to create and modify database management systems (DBMS). Relational algebra, use of SQL query language and transaction management will be covered in detail. In the end of the course, the students are expected to gain an in-depth understanding on how the databases are designed, queried and maintained.



Prerequisites


While not mandatory, it is recommended that the students take BBM 371 prior to BBM 471. In addition, the students are expected to have a sound knowledge of data structures and algorithms.



Course Work


Lectures will be conducted in English in the classroom. Course materials will be in English as well. There will be additional materials as readings, from which you are also responsible in the examinations.



Grading


There will be two midterm (20% + 30%) and one final (40%) examinations.


Examinations will be conducted as materials closed. Except that you can have a cheat-sheet with you. It may be double sided A4 sheet and must be hand written in ink. Exchanging cheat-sheets during the examination is not allowed.


Note that, there will be some readings that you can find on this page throughout the semester, from which you will be responsible in the examination.



Attendance


Attendance is mandatory and worth 10%. Those who failed the class before with F2 or F3 grades will be evaluated over 90%.


Fuat's strict attendance rule : Students can only be entitled to get 10% by attending to at least 70% of the lectures (i.e. 9 lectures), which is the minimum amount of lectures you have to attend officially. Those who can pass this threshold will get that 10% proportionally to the number of lectures attended.


Those who do not attend at least 70% of the lectures will fail the class with F1.



BBM473 Database Laboratory (Mondays, @10:00 (D9))


BBM473 and BBM471 are two separate courses that go hand in hand. It is strongly recommended that you enroll in both. Within BBM473, you will be asked to develop a database project, to attend exercise sessions and to take quizes after each exercise. Lab seesions are not weekly. See the schedule below for lab weeks.

  1. Projects involve two parts. First, you are supposed design and implement a database schema of your own. Second, you are going to develop a web based application that uses your database.
  2. Exercises will be published a day before the lab hour and will be conducted in the classroom. You do not have to submit your solution before.
  3. Following each lab session, a quiz will be conducted and graded.

Requirements:

  1. You will use SQLite and/or MySQL databases to implement your database schema.
  2. Applications will be developed by using either Laravel (PhP) or Django (Python) frameworks.
  3. No other programming language, web framework or database management system will be accepted.

Grading of Laboratory Assignments:


Projects (Part 1 (6%) + Part 2 (20%)) + Quizzes (24%) + Final Examination (50%)


Your design and implementation must be genuine work. Otherwise, your work will be considered as cheating.



Schedule


Week # Date Title Slides BBM473 Lab Session Reading
1 08.10.2018 Course Logistics and Database History
SQL: Introduction
pdf, pdf    
2 15.10.2018 Database Design: ER Diagrams pdf Exercise 0, Exercise 1  
3 22.10.2018 SQL: Advanced pdf Exercise 2  
4 29.10.2018 No lecture      
5 05.11.2018 Database Design: Theory 1 pdf Exercise 3  
6 12.11.2018 Midterm 1      
7 19.11.2018 Database Design: Theory 2 pdf Exercise 4  
8 26.11.2018 Transactions and Isolation pdf    
9 03.12.2018 Data Access: I/O Model, Indexes pdf Exercise 5  
10 10.12.2018 Relational Algebra pdf Exercise 6  
11 17.12.2018 Optimization pdf Exercise 7  
12 24.12.2018 Midterm 2      
13 31.12.2018 Backup, Recovery, Replication   Exercise 8  
14 07.01.2019 NoSQL Systems      


Communication:

The course webpage will be updated regularly throughout the semester. All other course related communications will be carried out through Piazza. Please enroll by following the links below: