Instructor: Adel Ardalan
CS 564 is intended to give students a solid background in database management systems, particularly relational database management systems. Such systems will be examined from two perspectives: that of a database system user, and that of a database system implementor.
Approximately half of the course material will focus on the use of database management systems. The concept of a data model will be introduced, the entity-relationship model will be covered, and then the relational data model and the SQL query language will be examined in detail. This part of the course will also cover logical and physical database design issues. Advanced features such as views and security will also be discussed briefly.
The other half of the course will concentrate on the implementation of relational database management systems. Topics to be covered include file organizations, access methods (e.g., ISAM, B+ trees, linear and extendible hashing), external sorting techniques, the implementation of relational database operations, and the basic concepts of query optimization. Concurrency control, recovery, and other advanced implementation issues will also be touched upon as time allows.
Although this is a two-part course, the presentation of the two parts will be interleaved in order to spread the course's programming work out as smoothly as possible over the whole semester.
This schedule is tentative and subject to change during the semester. Lecture slides will be uploaded before each class. The slides are designed to act only as an aid to the lectures, and not a replacement. The slides will not be sufficient on their own. Furthermore, the lectures themselves might often deviate significantly from the textbook in the order, presentation, and actual content.
# | Date | Topic | Slides | Additional Reading | Assignments |
---|---|---|---|---|---|
1 | 9/6 | Introduction | Lecture 1 | Chapter 1 of complete book | Project Stage 0 |
2 | 9/8 | ER Model | Lecture 2 | ||
3 | 9/13 | Relational Model | Lecture 3 | Project Stage 0 Due Project Stage 1 |
|
4 | 9/15 | SQL 1 | Lecture 4 | Chapters 6 and 7 of Elmasri | |
5 | 9/20 | SQL 2 | Lecture 5 | SQLZoo | |
6 | 9/22 | Normalization 1 | Lecture 6 | ||
7 | 9/27 | Normalization 2 | Lecture 7 | Project Stage 1 Due Project Stage 2 |
|
8 | 9/29 | Relational Algebra 1 | Lecture 8 | ||
9 | 10/4 | Relational Algebra 2 | Lecture 9 | ||
10 | 10/6 | SQL 3 | Lecture 10 | ||
11 | 10/11 | Data Storage | Lecture 11 | Project Stage 2 Due | |
12 | 10/13 | Midterm Review | |||
13 | 10/18 | Midterm Exam | |||
14 | 10/20 | Buffer Management | Lecture 14 | Project Stage 3 | |
15 | 10/25 | File Organization | Lecture 15 | ||
16 | 10/27 | Project Stage 3 Review | Lecture 16 | ||
17 | 11/1 | Indexing, B+trees | Lecture 17 | ||
18 | 11/3 | Hashing | Lecture 18 | Project Stage 3 Due Project Stage 4 |
|
19 | 11/8 | Sorting | Lecture 19 | ||
20 | 11/10 | Relational Operators 1 | Lecture 20 | ||
21 | 11/15 | Relational Operators 2 | Lecture 21 | ||
22 | 11/17 | Relational Operators 3 | Lecture 22 | ||
23 | 11/22 | Project Stage 4 Review ++ | Lecture 23 | ||
24 | 11/29 | Query Optimization 1 | Lecture 24 | Project Stage 4 Due Project Stage 5 |
|
25 | 12/1 | Query Optimization 2 | Lecture 25 | ||
26 | 12/6 | Transaction Processing 1 | Lecture 26 | ||
27 | 12/8 | Big Data Systems | |||
28 | 12/13 | Final Review | Lecture 28 | Abbreviated Sample Final Exam | |
12/15 | Stage 5 Due |