CS 564 Database Management Systems (Fall 2017), Section 002

University of Wisconsin-Madison

Wed+Fri 2:30-3:45 PM, Jack F. Kellner Lecture Hall

Instructor: Adel Ardalan

Course Overview

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.


Schedule

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.

#DateTopicSlidesAdditional ReadingAssignments
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

Course Log


  • Sep 6: Lecture 1 uploaded.
  • Sep 6: Project stage 0 released. Due on Sep 13 @2:00PM.
  • Sep 8: Lecture 2 uploaded.
  • Sep 13: Lecture 3 uploaded.
  • Sep 13: Project stage 1 released. Due on Sep 27 @2:00PM.
  • Sep 15: Lecture 4 uploaded.
  • Sep 15: Lecture 4 updated.
  • Sep 20: Lecture 5 uploaded.
  • Sep 20: Lecture 5 updated.
  • Sep 20: Additional discussion session announced for Mon. Sep. 25. See Piazza for details.
  • Sep 22: Lecture 6 uploaded.
  • Sep 27: Lecture 7 uploaded.
  • Sep 27: Project stage 2 released. Due on Oct 11 @2:00PM.
  • Sep 29: Lecture 8 uploaded.
  • Sep 29: Lecture 8 updated.
  • Oct 4: Lecture 9 uploaded.
  • Oct 4: Lecture 9 updated.
  • Oct 6: Lecture 10 uploaded.
  • Oct 11: Lecture 11 uploaded.
  • Oct 20: Lecture 14 uploaded.
  • Oct 20: Project stage 3 released. Due on Nov 3 @2:00PM.
  • Oct 25: Lecture 15 uploaded.
  • Oct 27: Lecture 16 uploaded.
  • Nov 1: Lecture 17 uploaded.
  • Nov 3: Lecture 18 uploaded.
  • Nov 3: Project stage 4 released. Due on Nov 29 @2:00PM.
  • Nov 8: Lecture 19 uploaded.
  • Nov 8: Lecture 19 updated.
  • Nov 10: Lecture 20 uploaded.
  • Nov 10: Lecture 20 updated.

  • Nov 15: Lecture 21 uploaded.
  • Nov 17: Lecture 22 uploaded.
  • Nov 17: Lecture 22 updated.
  • Nov 24: Project stage 5 released. Due on Dec 15 @2:00PM.
  • Nov 28: Lecture 23 uploaded.
  • Nov 29: Lecture 24 uploaded.
  • Dec 1: Lecture 25 uploaded.
  • Dec 6: Lecture 26 uploaded.
  • Dec 13: Lecture 28 and sample final exam questions uploaded.

Course Logistics

Prerequisites

  • CS 367 is absolutely essential.
  • You should know or be willing to learn C++, in order to do the project. Some C++ tutorials/refreshers:
      CS 368: C++ for Java Programmers - here and here

Lectures

  • Wed + Fri, 2:30-3:45PM, room 2120, Grainger Hall (975 University Ave.)
  • Slides will be posted on this page.

Textbook

  • Database Management Systems, 3rd edition (the cow book), by R. Ramakrishnan and J. Gehrke
  • Other sources
    • Fundamentals of Database Systems, 7th dition, by R. Elmasri and S. B. Navathe
    • Database Systems: The Complete Book, 2nd Edition, by H. Garcia-Molina, J. D. Ullman and J. Widom

Project

  • You'll do your projects in groups of 3 students. It has multiple stages and you submit some work at the end of each stage. You might have a final demo, time permitting. You may find more details in the Projects section of this page. No late submissions.

Exams

  • This course has a midterm and a final exam. You may find the exam dates and locations on this page. There will be no make-up exams, so please schedule accordingly.

Course Staff

  • Lecturer: Adel Ardalan
    • Office hours: Mon 2:30-3:30PM and Wed 4:00-5:00PM, room 4351, Computer Sciences department (1210 W. Dayton St.)
  • TAs
    • Nafisah Islam
      • Office hours: Thu 3:00-4:00PM, room 5364, Computer Sciences department (1210 W. Dayton St.)
    • Varun Naik
      • Office hours: Tue 3:00-4:00PM, room 7354, Computer Sciences department (1210 W. Dayton St.)

Communication

  • Course web site: Check this web page at least once a week.
  • Mailing list: compsci564-2-f17@lists.wisc.edu
  • The course's Canvas page
  • The course's Piazza page here

Course Grading

ComponentWeight
Project40% (6 stages)
Midterm Exam25%
Final Exam35%

Project

Project Stages:

  • Stage 0: C++ warmup
  • Stage 1: conceptual and relational database design
  • Stage 2: normalizing the relational design, creating and querying a database using SQL
  • Stage 3: DB internals 1 (buffer management)
  • Stage 4: DB internals 2 (B+Tree)
  • Stage 5: building a data-driven application


Exams

Midterm Exam

  • Date/time: Oct. 18, 2:30-3:45PM
  • Place: in class (room 2120, Grainger Hall)
  • Covered material: Up to and including material covered in lecture 10

Final Exam

  • Date/time: Dec. 20, 5:05-7:05PM
  • Place: Psychology building, room 113
  • Covered material: Cumulative