CSC 468: Database Management System Implementation
Winter 2009

Instructor: Alexander Dekhtyar, dekhtyar@csc.calpoly.edu, 14-215

Office Hours:
When
Who Where
Monday 1:30pm - 2:30pm Alex 14-215
Tuesday Alex 14-215
Wednsday 9:00am - 12:00pm Alex 14-215
Thursday Alex 14-215
Friday 1:30pm - 2:30pm Alex 14-215

Additional appoinments: send email.

Final Exam Date: Monday, March 16, 2009, 1:10 - 4:00pm


News and Notes

Old News and Notes

Course Materials

Syllabus Postscript PDF
Groups HTML
Wiki HTML

Project

Project-related supplemental information

Overview Postscript PDF [January 4, 2009]
Index Structures Postscript PDF [January 23, 2009]
Stage 1 Due: February 11, 2009 Postscript PDF [January 23, 2009]
Stage 1 DiskAddress change Postscript PDF [February 6, 2009]
Stage 2 Due: February 23, 2009 Postscript PDF [February 2, 2009]
XPLite Postscript PDF [February 18, 2009]
Stage 3 Due: March 9, 2009 Postscript PDF [February 20, 2009]


Labs

Lab 1 Due: January 7, 2009 SQL recap Postscript PDF [January 9, 2009]
Lab 2 Due: January 14, 2009 XML and XML DTD Postscript PDF [January 9, 2009]
Lab 3 Due: January 23 January 26, 2009 NEUStore Postscript PDF [January 14, 2009]
Lab 4 Due: February 2, 2009 SAX and DOM Postscript PDF [January 26, 2009]
Lab 5 Due: February 9, 2009 XPath Postscript PDF [February 4, 2009]
Lab 6 Due: March 16, 2009 Oracle Optimizer Postscript PDF [March 9, 2009]

Project Code
Stage 2 Server code stub ServerSide.java [February 13, 2009]
Stage 2 Client code stub ClientSide.java [February 13, 2009]

Project and Lab Data
Lab 1 BAKERY-setup.sql, BAKERY-insert.sql, BAKERY-drop.sql
README, zip file of the BAKERY dataset (csv)
Lab 3 goods.csv
Lab 4 SAXtest.java (SAX parser test), MyContentHandler.java (used by SAXtest.java)
text.xml (used by SAXtest.java)
DOMtest.java (DOM parser test),
Project Endurance test files: molecules.xml (~120 Kb), hiwiki-stub.xml (~12 Meg)
Project Tokenizer: tokenizer.zip, tokenizer spec, README
Project XML Files: Cent_25_2006.xml, Present.xml, franks.xml, Eureka.xml

Project and Lab Tests
Lab 4 ruble_1000.xml, Schilling_1.xml,
clash_broadway.xml, Present.xml,
its_a_grind.xml, louisasPlace.xml,
memento.xml, officeSpace.xml
[February 2, 2009]
Project Stage 1 ElementIndexTest.java
StructureIndexTest.java
ContentIndexTest.java
AttributeIndexTest.java
[February 6, 2009]
Project Stage 1 FullTest.java [February 9, 2009]
Project Stage 2 stage2Test.csh
stage2endurance.csh
[February 20, 2009]
Project Stage 3 Repository setup:stage3setup.csh
Repository delete:stage3cleanup.csh
[March 2, 2009]
Differential Unit tests #1: stage3basic.csh [March 2, 2009]
Differential Unit tests #2: stage3basic.csh [March 4, 2009]
Lab 5 queries: stage3lab5.csh [March 2, 2009]

JDBCTest.java
classes12.jar (JDBC driver)

Homeworks

Homework 1 Due: February 13, 2009 Postscript PDF [January 30, 2009]
Homework 2 Due: February 20, 2009 Postscript PDF [February 9, 2009]
Homework 3 Postscript PDF [March 10, 2009]
Homework 4 Postscript PDF [March 14, 2009]

Lecture Notes

Lecture 1 DBMS Organization PDF [January 2, 2009]
Lecture 2 Overview of Data Storage Postscipt PDF [January 2, 2009]
Lecture 3 Buffer Management Postscipt PDF [January 2, 2009]
Lecture 4 Storage of Relational Data Postscipt PDF [January 2, 2009]
Lecture 5 Management of data on disk Postscipt PDF [January 2, 2009]
Lecture 6 Index Structures: Part 1 Postscipt PDF [January 2, 2009]
Lecture 7 Index Structures: Part 2: B+-trees Postscipt PDF [January 2, 2009]
Lecture 8 Intro to Query Execution Postscipt PDF [January 2, 2009]
Lecture 9 Query Execution: One-pass algorithms Postscipt PDF [January 2, 2009]
Lecture 10 Query Execution: Nested Loop Join Postscipt PDF [January 2, 2009]
Lecture 11 Query Execution: Two-pass algorithms Postscipt PDF [January 2, 2009]
Lecture 12 Query Execution: Multi-pass algorithms Postscipt PDF [January 2, 2009]
Lecture 13 Query Execution: Review Postscipt PDF [January 2, 2009]
Lecture 15 Query Processing: Overview Postscipt PDF [January 2, 2009]
Lecture 16 Query Equivalences Postscipt PDF [January 2, 2009]
Lecture 18 Cost-Based Query Optimization Postscipt PDF [January 2, 2009]
Lecture 19 Transaction Processing Postscipt PDF [January 2, 2009]
Lecture 20 Concurrency Control Postscipt PDF [January 2, 2009]
Lecture 21 Crash Recovery Postscipt PDF [January 2, 2009]
Lecture 22 Oracle's Query Optimizer Hints Postscipt PDF [March 9, 2009]


Project

NEUStore

NEUStore is a Java package developped at Northeastern University by Professor Donghui Zhang. It implements some base classes for paginated data and index storage on disk. Our project will be using NEUStore.

Home page HTML
Download(version 1.3) neustoreroot.tgz
Documentation PDF


-

XML

The course project involves building a native XML DBMS and a processor for a subset of XPath.

W3C Materials
XML Recommendation (1.0) HTML
Document Object Model (DOM) Level 1 HTML Postscript PDF
Xpath 1.0 HTML

Lecture notes

Most lecture notes are taken from Fall 2007 CSC 560 class, although some had been written earlier for various database courses.
Intro to XML Postscript PDF [January 2, 2009]
XML Recommendation in a nutshell Postscript PDF [January 2, 2009]
Document Type Definitions Postscript PDF [January 2, 2009]
Document Object Model Postscript PDF Powerpoint [January 2, 2009]
Document Object Model PDF Powerpoint [January 2, 2009]
Storage of XML in Relational Databases (Shredding) Postscript PDF [January 2, 2009]
XPath Postscript PDF [January 2, 2009]
Evaluation of XPath Axes Postscript PDF [January 2, 2009]
Other Materials
CSC 560 XML indexing wikiHTML
Survey of XML indexing PDF
CSC 560 Bibliography HTML


eXist

eXist is an open-source native XML DBMS. We will be using it for two purposes: as training grounds for XPath and as benchmark for query answers (i.e., your DBMS shall produce the same query results as eXist does on the same data).
Home page HTML
Documentation HTML
Documentation HTML
Downloads HTML Java JAR (1.2.1-rev7764) (local) Java JAR (1.2.1.-rev7764) (Sourceforge) EXE (1.2.4-rev8072) (PC, MS Vista)

Other Materials

SQL-92

Oracle

General Database Resources


August 28, 2007, dekhtyar at csc.calpoly.edu