General Description

Propose (Phase 1), model (Phase 2) and implement (Phase 3) a database project. The context and purpose of the database project is to be proposed by each group and must be approved by the instructor. Each group must then design the UML class diagram representing the ER Model for the database and also the relational database model. Finally, each group must also implement the relational model in the MySQL database server, load it with real (or at least realistic) data, and write queries that retrieve information from the database.

Proposal phase

As mentioned there are three phases in this project; the goals of the proposal phase are to take an initial idea and carry out research of the database needs in order to be able to specify the requirements to be implemented. The instructor will approve your initial idea and you must then submit a complete proposal that explicitly lists the information that is to be modeled as well as list the information that will not be modeled. This is needed for your group to place limits on the problem that you have chosen for your project. The proposal will also be used by the the instructor to evaluate the completeness and correctness of your database model. For Extra Credit, you may find a real client that has database needs that you can then build your database project around; this must also be approved by the instructor.

Your proposal is a document similar to a requirements document that is agreed upon between a client and the developers of a system. Since in this project you are the client as well as the developers, you will need to be cautious in the language that you use to describe the problem. You are not being asked to present the database model at this stage, only the information that you will be modeling. You must therefore avoid language that describes your solution (model). For example, do not use such phrases as: "... is a class (or entity)...", "... one to many ...", "... has association with ...", "... is related to ...". You should keep in mind that your target audience/reader of the proposal is a person who is not a modeling expert nor a database expert.

Here is a list of project ideas to avoid due to their use in other classes. In addition to the database ideas listed there, you must also avoid databases for which database models exist in textbooks or other sources. The objective of the project is to have you apply your knowledge. Included contexts to avoid are: University, Bookstore, Banking, Employee/Timecards, Library, Auction, Products and sales orders.

Modeling phase

As you are writing the project proposal, you should start the work of modeling the database by building a UML class diagram and its accompanying documentation. Your proposal will inform you on how to model different aspects of the database and as you build the model, you will find that this process will bring to the surface aspects about the database that you discover only as a result of the modeling work. During this phase, your job is to focus on modeling the database needs as completely and correctly as possible. You must create a UML class diagram of the model while applying the appropriate database design patterns we have learned and also while building a database model that can adapt to future changes. You must use MS Visio to create the UML class diagram.

Implementation phase

The goals of the implementation phase are to demonstrate your relational database skills in creating tables in the relational model, maintaining integrity constraints, inserting/updating/deleting information, and creating queries on the data that you have supplied. Each group's project should have between 10 and 15 tables.

Getting started

Any database project starts with examining the actual data involved (assuming that there is some sample data). Often times, prior to the time you build the relational structures for the database, the raw data for your database exists. It may be filed on paper forms in filing cabinets, or it may be on web sites, or sales forms, or weekly/monthly reports, etc. Before you do any actual modeling, it helps to know what data will eventually be stored in the database, so the first step is to research the problem and to analyze the data available to determine some constraints of your model. One of the most important activities in this first step involves communicating with the client about their needs, since the client is expected to know how their business runs and what is needed from a database. In software engineering, this is the requirements elicitation (also requirements gathering) phase.

You are the clients... as well as the database experts!

As mentioned earlier, in this project each group is a client as well as the database designers. To inject a certain amount of reality in this project, Dr. Monge will play the role of manager and each group independently forms the database design and development teams being assigned the project. For this to work well, the project proposals must clearly state the extent of the information being modeled. Once this is submitted, each group is expected to use the proposal as the definitive document that guides the design and implementation of the database.

Deadlines of project activities
Activity How/Where? When?
Group Proposal: Written description of database being proposed Send (text or html) via E-mail with subject:
CECS-323: [Project Name] full proposal
Tuesday April 15 by end of lab
Final database model and documentation. Printed (hard copy) model to be turned in by end of lab. Copy must also be sent via e-mail with subject:
CECS-323: [Project Name] DB Model
Tuesday April 29 by end of lab
Project Presentations Each group will have approximately 15minutes to present their project, the database model, and the work on the relational model done up to this point. Each student must participate equally in the presentation. Week of May 6th and 8th
Implementation Phase: implement a relational database. Print the relational database scheme, SQL DDL script, SQL DML, and a final report. All these must also be submitted via e-mail. Friday May 16 by 7pm.

NOTE: All of the above deadlines are hard. They will not be adjusted and any team missing a deadline will be penalized in their grade as specified in the syllabus.

Project administration

This is a group project and as such each student will work on this project with at least one other student from the class. Each member of the group has an equal share on the responsibilities in completing the project. Every group must follow these guidelines as you work on the project:

  1. Every group must keep track of the contributions made by each of the members. Every week each group must send a report via e-mail stating the contributions made by each person during that week. All weekly reports are due by the end of lab time every Thursday.
  2. All of these reports must be included with your final project at the end of the semester. In each report, clearly state the contributions and work accomplished by each individual.
  3. Every group member (including sender) must be a recipient of all group-wide e-mail messages -- including the weekly reports; do this in the CC line of the E-mail. As a recipient, each member of the group agrees and accepts the contents of the E-mail message.
  4. The grade in the project will have two components: a group grade that is based on the completeness, correctness, and quality of the project submitted and an individual grade that is based on the contributions the person has made for the success of the team.
  5. When a team presents their project (more details to follow later), I may ask questions to each person to evaluate their understanding of the work accomplished during the project. This may affect a person's individual grade as well as the group grade.

E-mail communication

All E-mail messages must meet the following format requirements:

  1. For group initiated messages, each member of the group must be copied in the CC line
  2. The E-mail subject line must be as specified in the project handout. All other E-mail messages whose subject line is not specified must have an appropriate subject line that starts with CECS-323: [Project name], [specifics here]
  3. The E-mail body must be in HTML or in plain text.

Database Resources