CS 386d Database Systems
Spring 2014

Prof. Don Batory   batory@cs.utexas.edu
office hours
TA Akanksha Bansal akankshabansal90@gmail.com
office hours
1-3pm Wednesday, GDC 3.718F
Room GDC 4.304
Time 9:30-11:00 Tuesday, Thursday
Unique# 53993
Ground Rules Code of Conduct and Academic Honesty
Your Grades UTCanvas
Final Exam Friday, May 9th, 9am-12noon (GDC 4.304 -- our classroom!)

Course Objectives

This is a graduate-level introduction to the principles of relational database systems. We review and explain fundamental ideas and algorithms that are used in the construction of centralized DBMSs, distributed DBMSs, and database machines. Topics to be covered include:  query processing and optimization, database machines, object-oriented databases, concurrency control and recovery. Recent directions in database research are also surveyed.

Course Prerequisites

All students must have taken undergraduate database or its equivalent.  If you are in need of a database refresher, I recommend any version of this text:

It is a good text to present the (external, not internal) basics of databases.

Lecture Notes, Texts, and Class Lectures

Notes for each lecture will be posted immediately after a lecture. Class lectures are supplemented by papers. Both are available via hyperlinks in the course outline below.  Students are responsible for reading these papers.  Remember: DO NOT PRINT THESE PAPERS ON CS PRINTERS!


The last class periods of the semester are devoted to student group presentations. These presentations will survey recent results presented in major database conferences. Group lectures will be critiqued prior to the actual presentation to enhance quality and content.  Topics for presentation can be chosen from any recent database conference, among them are:

Programming Projects and Homework

A series of 4 programming projects is given in this course.  The first project will refresh your memory on SQL and your use of DBMSs; you will build in the 2nd-4th an inverted file system using Berkeley DB (which is a file management system written in Java). An award (of no particular consequence) will be given to the judged-fastest entry.

> turnin -- submit bansal cs386_HP <yourname>.pdf/zip

where HP is a designator H1,H2, ... for homeworks and P1,P2... for programs.

> turnin -- list bansal cs386_HP

> turnin -- verify bansal cs386_HP


Final grades will be determined approximately by the following scheme:

  1. Your accumulative project grade will determine the maximum final grade for the course.  Ex: if you get a "B" average across all of your projects, your final grade will be no greater than a "B".
  2. Final counts 40%; midterm counts 35%; classroom participation 10%; and class presentation counts 15%.

Homework grades and class participation is used to decide borderline cases for final grades.

Extenuating Circumstances

If you have difficulty meeting the requirements of this course, fail to hand in an assignment, or miss an exam because of extenuating circumstances, please advise the instructor in writing (not email) at the earliest possible date so that your situation can be discussed. If you encounter an unexpected medical or family emergency or a random act of Nature that causes you to miss the due date for homework or miss a quiz or exam, you must present suitable documentation in writing (not email) to the instructor before special consideration will be given. A file of all written correspondence will be kept by the instructor and decisions regarding them will be made at the end of the semester.

Course Outline

Numbers in [brackets] indicates the estimated number of lectures on a topic. The number indicated is a lower-bound, as there will be class room discussions to work on problems and review of homework assignments. Papers that are listed below are required readings and are accessible via a web link.

Topic [# of lectures + days of discussion] Assignment
Query Processing [6]
Complete Course Survey
Due Fri Jan 17th 10pm

P1: SQL Refresher
Due Wed, Jan 22, 12noon

H1: Query Optimization #1
Due Thurs, Jan 23, 12noon

H2: Query Optimization #2
Due Fri, Jan 31, 12noon

Data Definition Language and Database Loading
Due Mon, Feb 10, 12noon
Data Strorage, Data Warehouses, Database Optimization [4]
H3: Query Optimization #3
Due Mon, Feb 17, 12noon

H4: Group Assignments
Due Wed, Feb 19, 12noon

Informal Assignment With Solutions

Data Manipulation Language and Query Processing
Due Wed, Feb 26, 12noon

H5: Group Progress Report
Due Fri, Feb 28, 12noon

Midterm  [1]

Concurrency Control [7]
H6: CC & R Basics
Due Fri, Mar 21, 5pm

P4: MDB Query Optimization
Due Thurs, March 27, 10pm

H7: Multi Granularity Locking
Due Sat, Mar 29, 10pm

H8: Pulling It All Together
Due Monday, Apr 7, 5pm

Recovery [3+1]

Current Trends in Database Research, Group Presentations [6]

Course Recap [1]