CSE 562 Database Systems (Spring 2016)

Instructor: Dr. Jan Chomicki (chomicki@buffalo.edu, office hours: M 2:00-4:00, 338I Davis)

Teaching Assistant: Subhadeep Karan (skaran@buffalo.edu, office hours: W 10:00-11:00, F 4:00-5:00, 302 Davis)

Registration number: 15262

Credit hours: 3.0

Time: MWF 12:00-12:50pm

Location: Davis 101

Text: H. Garcia-Molina, J. D. Ullman, J. Widom. Database Systems: The Complete Book, Second Edition, Prentice Hall, 2009. Book website.

Prerequisites: A solid background in programming and data structures. A significant programming experience in Java. This is not a place to learn Java or programming/data structures.

Course grade breakdown:

  1. Two tests (40%)
  2. Cumulative final (30%)
  3. Extended homework in SQL (5%)
  4. Team project (25%)

Academic integrity policy: I will follow the UB Graduate School Academic Integrity Policy and CSE department academic integrity policy.

Incomplete grades: I will follow UB Graduate School Incomplete grade policy.

Make-up policy: The request should be made sufficiently in advance of the test, for valid reasons. The make-up should be scheduled before the next class.

Late submission policy: The submissions are due at midnight on the due date. No late submissions are accepted. Any exceptional deadline extensions need to be applied for and approved before the deadline. Supporting documentation (for example, medical) should also be submitted at the same time.

Grading: Questions about the grading have to be raised with the TA within a week after the graded assignment was returned.

Attendance and punctuality: Attendance is mandatory. No late arrivals in class.

Disability Services: Students with physical or learning disabilities should register with the university Disability Services Office (http://www.student-affairs.buffalo.edu/ods/) in order to receive accommodation.

Course objectives: Introduce the students to fundamental data management issues: database design, query languages, database file organization, query processing and optimization, transaction processing.

Course summary:

  1. Introduction and overview (0.5 weeks).
  2. Relational data model (4.5 weeks): data definition, integrity constraints, relational algebra, SQL.
  3. Indexing (3 weeks): disk storage, buffering, heap files, sorted files, hashed files, B+ trees, sparse and dense indexes.
  4. Query processing and optimization (2 weeks): cost analysis, selection, join, plan enumeration and selection.
  5. Database design (1.5 weeks): functional dependencies, normal forms.
  6. Transaction processing (1.5 weeks): concurrency control, recovery, distribution.
  7. Selected issues in contemporary DBMS (2 weeks):