Instructor
- Boris Glavic: http://cs.iit.edu/~glavic
- Email: bglavic@iit.edu
- Phone: 312.567.5205
- Office: Stuart Building, room SB 226C
- Office Hours: Tuesdays, 12pm-1pm
- Course Webpage: http://cs.iit.edu/~cs425
- DBGroup Webpage: http://cs.iit.edu/~dbgroup
- Google Group: https://groups.google.com/d/forum/cs425-2014-fall-group
TAs
- Xing Niu
- Email: xniu7@hawk.iit.edu
- Office: Stuart Building, room SB 019a
- Office Hours: Thursdays, 3:00pm-4:00pm
- Dhatrika Nagalakshmi
- Email: ndhatrik@hawk.iit.edu
- Office: Stuart Building, room SB 108
- Office Hours: Wednesdays 3:30 PM - 4:30 PM
Syllabus
syllabus.pdfCourse Overview
10:00 am - 11:15 am, Tuesdays + Thursdays, SB 104
Databases management systems are a crucial part of most large-scale industry and open-source systems. This course familiarizes students with important concepts of database systems and design. We will learn how to design a database using the Entity-Relationship model, how query and modify a database using the declarative SQL language, and study APIs for write application programs that use a database system to persist data. Furthermore, the course given an overview of important database systems techniques such as indexing, query optimization and execution, concurrency control, and recovery.
Students will develop a database application as a course project. Starting from assessing the application requirements, over designing the database schema, and implementing the application.
Workload
Prerequisites
- Courses: One of CS 331, CS 401, or CS 403
Reading Material
- The following text book is required reading material for the course.
- Silberschatz, Korth, and Sudarshan , Database System Concepts, 6th Edition , McGraw Hill , 2010
- The slides for the course will be made available on the course schedule page
Grading Policies
- Course Project: 20%
- Midterm Exam: 25%
- Final Exam: 35%
- Homework Assignments: 20%
Detailed Course Topics
- The relational data model
- Database modelling and design
- The Entity-Relationship (ER) model
- Database design and normalization
- SQL
- Data-definition language (DDL)
- Data-manipulation language (DML)
- Formal relational languages
- Relational algebra
- Tuple and domain calculus
- Database Architecture
- Database System Concepts
- Transactions processing and concurrency control
- Recovery
- Indexing
- Query processing and optimization
- Security and access control
Course Objectives
After attending the course students should be able to:
- Understand the underlying ideas of database systems
- Understand the relational data model
- Be able to write and understand SQL queries and data definition statements
- Understand relational algebra and its connection to SQL
- Understand how to write programs that access a database server
- Understand the ER model used in database design
- Understand normalization of database schemata
- Be able to create a database design from a requirement analysis for a specific domain
- Know basic index structures and understand their importance
- Have a basic understanding of relational database concepts such as concurrency control, recovery, query optimization, and access control