As described in Lab 1, you will be building a substantial database application for a real-world scenario of your choosing. You will design a relational schema for the database, and you will create an actual database using a relational database management system. You will populate the database with sample data, write interactive queries and modifications on the database, and develop user-friendly tools for manipulating the database. For ideas on possible databases, see the book's webpage.
Your first step is to identify the domain you would like to manage with your database, and to construct an entity-relationship diagram for the data. Pick an application that you will enjoy working with, since you'll be stuck with it for the rest of the semester.
Try to pick an application that is relatively substantial, but not too enormous. For example, when expressed in the entity-relationship model, you might want your design to have in the range of five or so entity sets, and a similar number of relationships. Note that this is a ballpark figure only! You should certainly include different kinds of relationships (e.g., many-one, many-many) and different kinds of data (strings, integers, etc.), but your application is not required to use advanced features, such as subclassing, multiway relationships, or weak entity sets, if they are not appropriate for your application.
Please use complete sentences, and type (or write neatly) the following:
For this part of the project, you need:
For this part of the project, you need to design the initial webpage for your project. In the future, the webpage will be used to access your database. For now, your webpage should have:
You should title the file index.html and post your webpage in your
public_html directory on comet.
You must turn in, on paper, the SQL commands used (as well as any programs used). You also must demonstrate that your database has the properties listed below, during lab.
For this part of the project, you need an SQL schema that:
You must turn in, on paper, the SQL commands used (as well as any programs used). You also must demonstrate that your database has the properties listed below, during lab.
For this part of the project, you need to populate your database with data. To do this, you may take data from webpages, as in Lab 8 (include references to any webpages you use) or you may create the data, as in Lab 5. The number of tuples per table will depend on your design, but you must have at least 500 tuples of data.
You also must demonstrate that your database has the properties listed below, during lab. The program and webpage used for this simple GUI will be used in later parts of the project.
For this part of the project, you need a webpage with a java applet. The applet should have several buttons and a text window for returning messages. For this first version, when a user pushes one of the buttons, a message should appear in the text window. A different message should appear for each button. (In future versions, each button will be linked to an SQL query, and the messages will be the response from the SQL server to the query.)
Create two natural views for your database. These should incorporate some common query a user would ask of your database. For example, if your database is for employees, you might want a view that consists of the names and addresses of all employees that live in the Bronx.
Write a java interface for a user to interact with your database. A user should be able to click on a button that executes one of your queries from above and displays the results to the screen (using a scrolling text subwindow would be one way to do this). You should have a second button that displays one of your views.
Extra credit points (5% each) will be given, if in addition to above, your interface:
To make bundle a directory, called myproject, you type at the command line:
tar cfv myproject.tar myprojectThis will create a file called myproject.tar that consists of all the files in the directory myproject. To mail it, you can use Netscape mail, or you type at the command line:
mail stjohn < myproject.tar
Since all accounts will disappear after classes end, you should transfer any files you wish to keep to another machine. To do this, make a tarball of the directories and then mail it (or you can use the file transfer program, ftp) to another machine.