Undergraduate Section
Note that this is an undergraduate only section for CS425!Instructor
- Boris Glavic
- Email: bglavic@iit.edu
- Phone: 312-567-5205
- Office Hours: Mondays 12pm-1pm, SB 206b
- Course Webpage: http://cs.iit.edu/~cs425
- Course web forum: cs425-2017-fall-group
- Instructor Webpage: http://cs.iit.edu/~glavic
- Research Group Webpage: http://cs.iit.edu/~dbgroup
TAs
- Qitian Zeng
- Email: qzeng3@hawk.iit.edu
- Office Hour:: Friday 10:30am-12:30pm, SB 012
- Phone: 312-532-4153
- Xincheng Yang
- Email: xyang76@hawk.iit.edu
- Office Hour:: Thursday 3:30pm-5:30pm, SB004
- Phone: 312-532-4153
Syllabus
syllabus.pdfCourse Overview
3:15 pm - 4:30 pm, Mondays + Wednesdays, SB104
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
Further Links, Background Reading, Examples
- https://github.com/IITDBGroup/cs425 contains additional links to documentation for the technologies you need to understand (Docker, PostgreSQL, and Git), example SQL scripts, explanation on how to use the provided PostgreSQL docker container, and how to use SQL notebooks.
Grading Policies
- Course Project: 20%
- Midterm Exam: 25%
- Final Exam: 35%
- Homework Assignments: 20%
The final grade for the course is computed by weighting the individual grade percentages. The final percentage determines your grade:
- A 80% or higher
- B 50% or higher
- C 35% or higher
- D 25% or higher
- E 20% or higher
- F less than 20%
- Note that bonus points are excluded when calculating the 100% bound. For example, if a home work assignment makes up 5% of the total grade and has 50 regular points and 10 bonus points then it will contribute your points divided by 50 times 0.05 to the final grade.
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