I210 Term Project

advertisement
I210 Term Project
Due Date:
Purpose:
This project will provide an occasion for students to employ all of the skills they have learned
over the course of the term in a single integrated effort that closely mirrors the data management
challenges they are likely to face in their professional careers.
Description:
Students will develop a database system designed to meet the needs of a small to medium size
organization. Pick an application that your whole group will enjoy working with, be creative!
Students can build a database for a supermarket, car dealer, shoe company, software company,
Video chain, etc. Try to pick an application that is relatively substantial, but not too enormous.
This includes:
i)
ii)
iii)
iv)
v)
vi)
defining a problem domain (e.g., used car sales, auctions, service providers, etc.)
specifying the data management needs associated with that domain (e.g.,
capturing sales, maintaining customer information, managing inventory levels)
creating an ER model in accordance with the requirements developed
translating this ER model into a normalized (3NF) relational schema
implementing the relational schema using SQL
manipulating the data in this schema to meet the everyday needs of the website
(i.e., developing SQL commands to insert, update, delete, and query business
data)
Constraints:
This project will be regulated by the following constraints:
a) Whatever else it does, your database must record some kind of sales transaction
(i.e., it must capture the fact that some product or service was sold to some entity for
some amount of money).
b) Whatever problem domain you choose and however you bound the functionality of
your system, the database you ultimately implement should contain about eight
tables. (The point here is to have enough tables so that you can do interesting queries
and reports. You might get by with as few as six and should probably not go above
10.)
c) You must use Oracle to implement your database. You can use your iCommons
Oracle account or any other Oracle implementation (e.g., Oracle XE) that you have at
your disposal.
d) You must work in a group of 2-4 persons. Actually, I think that 3 is the best
number in terms of dividing up the work and thinking through problems. With four,
students start to have communications problems. Also, try to pick people with
compatible work styles. If you like to start working on Wednesday morning, then a
partner who likes to start Sunday night is not a good choice. You may choose to
work alone, but I do not encourage this
Deliverables:
Your final project report shall contain (at minimum) the following sections, but you are free to
add others if you feel ambitious.
1) Table of Contents
2) Requirements: In this section you must clearly define the information that your
database needs to capture, along with any associated business rules (i.e., constraints).
Every data element (column) in your database must be directly traceable to the
requirements you describe in this section. (As such, “record sales” is not an adequate
requirement – something like “for each item purchased, record the item number,
quantity, and customer” would be much better.) You should try to make these
requirements somewhat realistic, but ultimately you have great latitude in
determining the capabilities that you want to build into your system. Your system
doesn’t need to be comparable to that of a major retailer, and if your requirements
section is longer than one or two typewritten pages (single-spaced), then you are
probably making the project harder than it needs to be.
3) ER Model: Draw an ER diagram that reflects the requirements you documented in the
previous section. This diagram should be in at least 3rd normal form, but if you
follow the methods we use in class it will be pretty hard to avoid this
4) Data Dictionary: Define the meanings of each of the data elements (columns) in your
relational schema. (You don’t have to do this for foreign key columns, but you may if
you wish.)
5) SQL statements needed to manipulate the data in your database. For each table,
include at least three example inserts, and one example each of any updates and
deletes that make sense in the context of your requirements. (For example, your
application might never have occasion to delete records from a “Customer” table.)
Please make sure that these statements can actually be executed without errors (e.g.,
the values in your example statements should not violate referential integrity
constraints when executed in the order in which they appear in your documentation).
6) Queries: SQL statements needed to create the reports defined in your requirements
(e.g., show all items purchased by customer 12345 in May of 2009). You need to
have at least five reports (different in syntax, not just parameters) with some obvious
business value. For each query, show its output.
Proposal:
By the third week of class (see course schedule), each individual or group must submit a project
proposal documenting the names of all persons in the group and a draft of the requirements
section of the final project report. This proposal will not be graded – it is just a preliminary check
to make sure that you are headed in the right direction. Failure to turn in the proposal in a timely
fashion may result in a reduction of your final grade.
General Standards:




No specific style or format (e.g., MLA) is required – just present the required information
in a way that makes sense to you.
Spelling and grammar will count against you if they impede my ability to readily
understand your work.
Please ensure that the last names of all members in your group appear on each page of
your project report.
If you are having a problem with a team member who is not pulling her or his weight,
please let me know as soon as possible. At several points in the term I will send an email
asking each student to rate the participation of each group member. These ratings are
confidential but will count toward my grading. If necessary, I will step in and remove
members from groups.
Download