In a typical practical case, students complete a project which would include the design, development and implementation of a database application. You do some work on the project each week, beginning with selecting your application environment, collecting requirements and designing the database schema, obtaining and loading your data into a commercial database system, and finally writing a number of SQL queries, programs with embedded SQL queries, and exercising other features of SQL, such as possible triggers or constraints.
Possible extensions to such an application project may include the development of a graphical user interface, web-based front end, or some client-server architecture. The tuning of the underlying system with some query optimization strategies for improved performance will also be desirable.
Choices of technology to consider include what backend database server to work with, such as Oracle8i, MS Sequel Server, or MySQL, what platform and programming language to work with, as well as what front-end tool to use for GUI development. You may want to try out java, JDBC connections to DBMS, and servlets, or java server pages and so on. The SUN web site is a good place to get started with exploring possible technologies to try out.
Possibilities for applications are infinite, and up to your imagination. Some examples include:
A second type of project may be concerned with developing one particular module of a typical database system, or to develop some enhanced tool for data management. Such a project will help with gaining a better understanding of the functioning and internals of a DBMS engine.
Examples of such a DBMS system module may be:
You may be able to make use of the Minibase software downloadable at the same site as the main course text book for some code to get you started with for example a simple query optimizer.
Or, you could look at the website of the previous offerings of the advanced undergraduate database course at WPI, namely, http://www.cs.wpi.edu/~cs4432/d01. There you will find a step by step course project to design a B-tree index structure and then to utilize this index structure for SQL-like query processing over several data files. This course web page also contains a simple project on concurrency control via object locking, that could easily be extended into a more powerful transaction processing strategy. This or variations of such a project would be a very informative project to give you a sense about some of the internals of a DBMS.
The third type of project would be a more researchy effort that either implements a portion of some on-going research project here at WPI or elsewhere, that implements ideas described in some paper in the recent literature, or that pursue some research ideas of your own. Examples of such type of projects range widely. Just pick up the database literature and browse for a few of the cool data management topics, such as :
You may find some on-going projects in the WPI DSRG research lab listed on the DSRG webpage at http://davis.wpi.edu/dsrg.
rundenst@cs.wpi.edu / 1996