Princeton University
Computer Science Dept.

Computer Science 425
Database Systems

Andrea LaPaugh

Fall 2004

Project Overview

The goal of the course project is to have you explore in greater detail some aspect of the design or use of database systems. The choice of project is yours, but it does need to be approved. You may work individually or in pairs. Most projects are primarily experimental -- the implementation and evaluation of some technique or application. This includes simulations to study performance in detail (e.g. of indexes or query evaluation). If you choose to implement a database for an application, the database must have some complexity that makes it more than straightforward (see more discussion of this in item 3 below). Theoretical projects analyzing some aspect of database design are possible, but your analysis must go beyond textbook treatments of the subject. A project may be primarily in-depth literature research of the state-of-the-art of an area within databases that we have not covered in class. However, such projects must include critical analysis of the results in the literature.

Here are some suggestions. You may choose one or use them as guides to specifying your own project.

  1. In past offerings of COS425, the same project was done by all students. It was the implementation and evaluation of the main query optimization algorithm. A detailed specification of that project can be found in the COS 425 spring 2001 project description.
  2. Implement the main file organizations and index structures that we have studied: sorted files, B+ trees, linear hashing and extensible hashing. Design workloads of inserts, deletes and searches to study the performance of these organizations in detail using simulation (you can't control the disks to do actual measurements). This project involves determining how one should model workloads and system behavior as well as getting data on the performance of the storage and indexing methods.
  3. Implement an application that requires database support. Implement the user interface, the application interface to the database and the database. This application needs to have some complexity in functionality, constraint maintenance, reliability or user interface. The application should be something in which you are interested and for which you can obtain or generate a reasonable set of interactions and data for testing. (See Chapters 6 and 7 of our text (Raghu Ramakrishnan and Johannes Gehrke, Database Management Systems, Third Edition), for a discussion of "application development".)
  4. Extensible Markup Language(XML) is being promoted as more than an enhanced markup language. It can indicate structure and semantics for a document. A lot of work is being done which considers XML as specifying a semistructured data model and develops query languages for XML documents. This is presented in Chapter 27 of our text, which we will discuss in class. However, many details are not covered in the text. Explore some aspect of XML as a database language. Possibilities:
  5. Database techniques and systems exist for special kinds of data. For example, Chapter 28 of our text presents techniques for spatial (geometric) data. Your project may focus on techniques for a special kind of data. Possibilities include:
Important note:If you are a graduate student and wish to satisfy your programming requirement with the COS 425 project, you must choose an implementation project, and you must notify me in advance that you want to use the project to satisfy the requirement.

Requirements

Each individual or pair must:
  1. By 5pm on Nov. 5, 2004 send email to Professor LaPaugh containing a one-paragraph description of your project. Each individual must email Professor LaPaugh to confirm partnerships.
  2. During the week of Nov. 29, 2004 meet with Professor LaPaugh for 15-20 minutes to discuss project progress and issues.
  3. Submit by 5pm Tues. Jan 11, 2005 (Dean's date) a report that describes your project. This must include the goals of the project, your methodology and the results. If it is an experimental project, you need to describe what was implemented, the major implementation decisions, how you designed the experiments, and the experimental results. Your code should be in an appendix. If it is a theoretical study, you need to describe the problem, review what was known about the problem before your analysis, and give the details and the results of your theoretical analysis. If it is a literature-based project, you need to describe the major issues under study, summarize the major techniques and experiments presented in the literature and critically analyze the results. You must have a bibliography that includes recent research.
  4. After the project report is submitted and before 5pm Mon. Jan. 17, 2005 each individual or pair must meet with Professor LaPaugh for a project demonstration (where applicable) and discussion.
Projects will be graded on thoroughness and depth of analysis. Difficulty will be taken into consideration. Keep in mind that evaluation is an important part of any project. Be clear on the goals of your project and how you demonstrate or measure success.

A.S. LaPaugh Tue Oct 19 13:25:43 EDT 2004