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.
-
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.
-
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.
-
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".)
-
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:
-
Read the current research papers on XML models and query languages. Compare
and contrast techniques. What are the performance gains and losses over
using a conventional relational model?
-
Choose one XML query languages and show how to develop a specific application
where information is contained in XML documents and accessed using queries
in the language chosen. Develop specific sets of queries and document sets
to illustrate your application. Ideally, you could find free software implementing
the query language. Short of this, you can create the documents and simulate
the results of a general implementation of the query language.
-
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:
-
Select an example of a special kind of data other than spatial data and
write a review paper describing the important techniques and issues, with
references and critical analysis.
-
Implement and evaluate an important method for specialized data, e.g. multidimensional
indexing (see Section 28.3 of our text).
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:
-
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.
-
During the week of Nov. 29, 2004 meet with Professor LaPaugh for
15-20 minutes to discuss project progress and issues.
-
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.
-
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