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.