The application is an automobile company, such as General Motors, Ford, Toyota, or Volkswagen (or maybe a company from yesteryear like Studebaker, Hudson, Nash, or Packard). In our hypothetical company, it has been decided to redesign a major part of the database that underlies company operations. Unfortunately, the manager assigned to solicit database design proposals is not very computer literate and is unable to provide a very detailed specification at the technical level.
E-R Model • Construct an E-R diagram representing the conceptual design of the database. • Be sure to identify primary keys, relationship cardinalities, etc. 2. Relational Model • After creating an initial relational design from your E-R design, refine it based on the principles of relational design • Create the relations in database you used for earlier projects. • Create indices and constraints as appropriate. • If as you refine your design, you discover flaws in the E-R design, go back and change it (even if the earlier design passed the checkpoint.) Your final E-R design must be consistent with your relational design. 3. Populate Relations • Include enough data to make answers to your queries interesting and nontrivial for test purposes. • You may find it helpful to write a program to generate test data. 4. Queries: You should run a number of test queries to see that you have loaded your database in the way you intended. The queries listed below are those that your client (the manager from the package delivery company) wants turned in. They may provide further hints about database design, so think about them at the outset of the project. • Show sales trends for various brands over the past 3 years, by year, month, week. Then break these data out by gender of the buyer and then by income range. • Suppose that it is found that transmissions made by supplier Getrag between two given dates are defective. Find the VIN of each car containing such a transmission and the customer to which it was sold. If your design allows, suppose the defective transmissions all come from only one of Getrag’s plants. • Find the top 2 brands by dollar-amount sold in the past year.
• Find the top 2 brands by unit sales in the past year. • In what month(s) do convertibles sell best? • Find those dealers who keep a vehicle in inventory for the longest average time.
5. Interfaces: There are several types of users who access the database. Each may need a special application • The database administrator (you) may use SQL either via the command line or SQL Developer. • The vehicle locator service needs a lookup application to check inventory both locally and at nearby dealers. This service allows a dealer to find a vehicle match the desires of a potential customer. Marketing may want to review these inquiries to do future product planning. • Online customers need an elegant Web interface to find dealers and check products, inventories, and prices. However, for this project, a command-line interface will suffice if your Web and/or GUI skills are not up to the challenge. (After all, this is a database course, not the Web Apps course, nor the User Interface course.) • The marketing department needs sales reports and may want to do special data mining and analysis. Provide them with a simple interface to generate some OLAP results.
These interfaces can be built as Web applications using Java applets or a scripting language. A standalone Java application using Swing to create a GUI Other GUI development tools you may know (but be sure they are platform independent, see note below) You can choose to implement any type of interfaces using any preferred programming languages. Upon completion and submission, you will get bonus points for your project.