ECS 165B Spring 2010 - Database System Implementation

Prof. Todd J. Green
green at cs dot ucdavis dot edu
Office Hours: Tuesdays 11:00-11:50am, 3055 Kemper Hall
Teaching Assistant:
Mingmin Chen
michen at ucdavis dot edu
Office Hours: Wednesdays 11:00-11:50am, 055 Kemper Hall

Meeting times

Class mailing list


(optional) Database Management Systems, 3rd Edition, Ramakrishnan and Gehrke, McGraw Hill, 2003.

Two copies have been placed on reserve in Shields Library, available for 24 hour checkout.

Course Overview

This course is the continuation of ECS 165A, focusing heavily this year on implementation. The centerpiece of the course is the DavisDB project, in which students will work in teams of 1 or 2 to build major components of a single-user relational database system in C++. Course lectures will mainly focus on database systems from an implementation perspective, but will also touch on a number of further topics in database systems and theory. There is no midterm or final exam in this class. However, there will be two closed-book quizzes covering the lecture material.

Lectures and Class Schedule

Week Date Event Handouts
1 Monday 3/29 Course introduction, buffer and file management review Lecture1.pdf
Wednesday 3/31 Buffer and file management review, Project Part 1 overview Lecture2.pdf
Friday 4/2 Project Part 1 overview, indexing review Lecture3.pdf
2 Monday 4/5 Subversion and logistics, tree-structured indices Lecture4.pdf
Wednesday 4/7 Record manager cookbook lecture Lecture5.pdf
Friday 4/9 Dynamic aspects of B+ trees Lecture6.pdf
3 Monday 4/12 Overview of query evaluation Lecture7.pdf
Wednesday 4/14 Relational calculus, relational algebra, and first-order logic Lecture8.pdf
Friday 4/16 Conjunctive queries: containment, equivalence, and minimization Lecture9.pdf
4 Sunday 4/18 Project Part 1 (Record Manager) due @11:59pm
Monday 4/19 Project Part 2 (Indexing) overview Lecture10.pdf
Wednesday 4/21 Query evaluation; external sorting Lecture11.pdf, Chapter 13
Friday 4/23 External sorting; join algorithms Lecture12.pdf
5 Monday 4/26 Physical query operators; summary of topics for Quiz #1 Lecture13.pdf
Wednesday 4/28 Quiz #1; relational query optimization Lecture14.pdf, Quiz #1 solutions
Friday 4/30 Relational query optimization Lecture15.pdf
6 Sunday 5/2 Project Part 2 (Indexing) due @11:59pm
Monday 5/3 Introduction to XML Lecture16.pdf
Wednesday 5/5 Project Part 3 (System Manager) overview; Mid-quarter course evaluation Lecture17.pdf
Friday 5/7 Evaluation results; Querying XML Lecture18.pdf
7 Monday 5/10 Views and Relational Encodings of XML Lecture19.pdf
Wednesday 5/12 Views and relational encodings of XML; Project Part 4 (Query Engine) sneak preview Lecture20.pdf
Friday 5/14 Project Part 4 (Query Engine) Overview and Architectural Cookbook Session Lecture21.pdf
8 Sunday 5/16 Project Part 3 (System Manager) due @11:59pm
Monday 5/17 Project Part 4 Clarifications; Data Warehousing and Decision Support Lecture22.pdf, Chapter 25A
Wednesday 5/19 Data Warehousing and Decision Support; Incremental View Maintenance Lecture23.pdf, Chapter 25B, Reconcilable Differences
Friday 5/21 Query Evaluation Engine Cookbook Session; Column Stores Column Store Tutorial
9 Monday 5/24 Datalog and Deductive Databases Lecture25.pdf
Wednesday 5/26
Friday 5/28
10 Monday 5/31 No Class (Memorial Day)
Wednesday 6/2
Friday 6/4 No Class (Instruction Ends 6/3); Project Part 4 (Query Engine) due @11:59pm
11 Wednesday 6/9 @ 10:30am Quiz #2 and Awards Session


Basic policy: project (80%), quizzes (20%). More detailed breakdown:
Project Part 1 20%
Project Part 2 20%
Project Part 3 10%
Project Part 4 30%
Quiz #1 10%
Quiz #2 10%
Project component grading: correctness (80%), efficiency and style (20%)

Page maintained by green at cs dot ucdavis dot edu