BBM471 DATABASE MANAGEMENT SYSTEMS / BBM473 DATABASE LABORATORY

SPRING 2024

INSTRUCTOR: Engin Demir

TAs:

LECTURESWed 8:40-11:30 LAB: Fri 16:40-18:30

COURSE DESCRIPTION: This is a course on database systems that is intended for advanced 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). Application development, query optimization, transaction management, concurrency control, recovery mechanisms, parallel and distributed databases 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.

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

TEXTBOOK:  Avi Silberschatz, Henry F. Korth, S. Sudarshan. Database System Concepts, Seventh Edition, 2019. McGraw-Hill, ISBN 9780078022159.

GRADING POLICY:

Coursework BBM471

Midterm Exams (2x30)

60

Final Exam

40

Lab BBM473

Lab Exercises (8x5)

40

Project

60

A minimum of 70% attendance to lectures and 80% attendance to laboratory sessions are compulsory.

COMMUNICATION:

The course webpage will be updated regularly throughout the semester with lecture notes, programming and reading assignments and important deadlines. All other communications will be carried out through Piazza. Please enroll it by following the links

https://piazza.com/hacettepe.edu.tr/spring2024/bbm471
https://piazza.com/hacettepe.edu.tr/spring2024/bbm473

POLICIES:

All work on assignments must be done individually unless stated otherwise. You are encouraged to discuss with your classmates about the given assignments, but these discussions should be carried out in an abstract way. That is, discussions related to a particular solution to a specific problem (either in actual code or in the pseudocode) will not be tolerated. In short, turning in someone else's work, in whole or in part, as your own will be considered as a violation of academic integrity. Please note that the former condition also holds for the material found on the web as everything on the web has been written by someone else.

CLASS SCHEDULE

Week Topic Materials
1 Introduction to Database Management Systems Ch 1
2 Database Design & Normalization Ch 6,7
3 Application Design and Development Ch 9
4 Query Optimization Ch 16
5 Transactions Ch 17
6 Midterm Exam 1
7 Concurrency Control Ch 18
8 Recovery System Ch 19
9 Database System Architectures Ch 20
10 Midterm Exam 2
11 Parallel and Distributed Storage Ch 21
12 Parallel and Distributed Query Processing Ch 22
13 Parallel and Distributed Transaction Processing Ch 23
14 Advanced Topics Ch 24, 25

LAB SCHEDULE

Week Lab Sessions Project Assignments
1 Introduction and Tutorial on DB
2 Exercise - Introduction to SQL
3 Exercise - More on SQL
4 Exercise - Database Design, ER Diagram Project Proposal (due Week 7)
5 Exercise - Design Theory
6 Exercise - Relational Algebra & Logical Equivalence,
Exercise - Optimization of Relational Algebra Expressions
Design Report (due Week 10)
7 Exercise - Indexes
8 Exercise - Transactions and Isolation
9 Review & Feedback
10 Projects DB Design and Development presentation
11 Projects DB Design and Development presentation (cont)
12 Review & Feedback
13 Project Demostrations
14 Project Demostrations (cont)