Instructor
- Jason Arnold
- Email: jarnold6@hawk.iit.edu
- Phone: 847-987-0179
- Office Hours: Immediately following class
- Course Webpage: http://cs.iit.edu/~cs425
TAs
- Xin Su
- Email: xsu11@hawk.iit.edu
- Phone: 312-479-2925
Syllabus
syllabus.pdfCourse Overview
6:00 pm - 9:10 pm, Tuesdays + Thursdays, SB 204
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.
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: 25%
- Midterm Exam: 25%
- Final Exam: 25%
- Homework Assignments: 25%
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
- 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