Course Overview
The class takes place: Monday + Wednesday, 10:00am - 11:15am, PH 131
Databases management systems are a crucial part of most large-scale industry and open-source systems. This course introduces students to important concepts of database systems and design. We will learn how to design a database using the Entity-Relationship model, how to query and modify a database using the declarative SQL language, and study APIs for writing application programs that use a database system to persist data. Furthermore, the course provides an overview of important database systems techniques such as indexing, query optimization and execution, concurrency control, and recovery.
Undergraduate Only Section
Note that this is an undergraduate only section for CS425!
Instructor
Boris Glavic
- Email: bglavic@iit.edu
- Phone: 312 567 5205
- Office: Stuart Building, room 206b
- Office Hours: Wednesdays, 1:00 pm - 2:00 pm
- Webpage: http://www.cs.iit.edu/~dbgroup/members/bglavic.html
TAs
Vedang Chandrakant Barhate
- Email: vbarhate@hawk.iit.edu
- Phone: TBA
- Office: SB019
- Office Hours: Tuesdays, 10:00 am - 12:00 pm
Syllabus
Prerequisites
- Courses: One of CS 331, CS 401, or CS 403
Grading Policies
Weighting of Deliverable
- homework assignments: 20% = 5% + 8% + 7%
- midterm exam: 25%
- final exam: 35%
- project: 20%
Grading Scheme
Your final course grade is determined based on your total score which is calculated as the weighted sum of the points for each of the deliverables. The weights are as shown above. For each deliverable you will receive between 0
and 100
points. For some deliverables, I am giving additional bonus points. These are not considered for the grade cutoffs. For instance, the first programming assignment is weighted 10%. For sake of the example assume that you get 110 points in this assignment (full points + bonus points), then this assignment would contribute \(0.1 * 110 = 11\) points to your final score. 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.
- A: > 80
- B: > 60
- C: > 50
- D: > 40
- E: < 40
Reading Material
The following text books will be helpful for following the course and studying the presented material. All four textbooks have their merits, but any one should be sufficient as reading material.
- Silberschatz, Korth, and Sudarshan, Database System Concepts,
, McGraw Hill, 2010
The slides for the course will be made available here.
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