CMSC 424 Database Design (Spring 2001)

 

Term Project - Car Rental Company

 

1.      Goal

 

You will develop a database system to automate the administrative and customer service functions of an automobile rental firm.

 

2.          Application Overview

 

The car rental company allows customers to reserve rental cars over the internet, the company also allows customers to rent cars by calling up car rental personnel or by walking up to the rental counter.

 

The rental car company has a number of branches and each car is assigned to a home branch. Cars are always rented from the home branch but may be returned to a different branch. Cars are sometimes shifted from location to location – i.e. the home branch location of a given car can be changed.

 

The company offers various types of cars and various price plans. Cars are grouped into the following classes: Subcompact, Compact, Midsized, Full sized, Luxury. Pricing varies by class of car, duration of rental. The company periodically offers special deals, e.g. one week rental of midsized car for $150. The company also offers discounts for organizational memberships, e.g. AAA, AARP. There is a separate set of fees when a car is not returned to the car’s home branch – this fee will depend on the identity of the home branch and the branch to which the car is returned, e.g. the fee might depend on the distance between the home branch and the return location.

 

We assume that a customer must register before he or she rents a car. Once the customer is registered, the registration data stays in the system.

 

 

3. Application Requirements

 

3.1 Data:

 

Car data: Information about each rental car including manufacturer, model, year, type, state in which car is registered, registration number, mileage, location (branch of rental company to which car is assigned, repair record.

 

Customer data: Name of each member, driver’s license number, address, gender, home phone number, work phone number, credit card number, record of all rental activity including reservations made, specific cars rented, types of cars rented, rental locations, mileage driven during rental, any damages to rental cars, organizational memberships.

 

Other data: Any other data necessary to support tasks described in next section.

 

3.2 Tasks:

 

Registration: Customer registers with system.

 

Update customer: Customer information can be modified in case of change of  address, credit card, driver’s license information etc.

 

Drop customer: Delete information if customer does not want his or her information recorded in the system. This is only allowed if a customer has no pending reservations and if the customer has returned all cars rented and fully paid any charges.

 

New car: Records information pertaining to new cars added to the fleet

 

Drop car: Car is taken out of service

 

Car query: Query for cars by model, brand, color, registration number, class, rental fee rate, damage record, mileage etc.

 

Make reservation: A customer reserves a car. For each reservation, the customer show be able to specify class of car, pick-up location and time, return location and time, any special requirements, whether customer wants to buy rental insurance. Customers should be able to view lists of available classes of cars and prices. The customer should be provided with a confirmation number after the reservation has been made. The system should make sure that there will always be appropriate cars available to customers who have made reservations.

 

Update/cancel reservation: A customer can update/cancel reservations.

Rent car: Customer picks up a car. Record relevant information such as pick-up time, mileage when car is picked up etc.

Return car: A car is returned Record relevant information such as mileage upon return, return time, return location, damages. Note that rental fee will be adjusted if the return time and date are different from what was reserved. Charges for damages will also be assessed.

 

Decision support: The system should be able to answer the following questions:

  1. What are the n most popular cars?
  2. What is the average mileage per day for each class of car?
  3. What is the average mileage per day for each model and make of car?
  4. What is the revenue per day for each model and make of car?
  5. For each model and make of car, how many dollars of revenue are generated for each mile the car is driven?

 

Rules of the game

 

·        Groups: The project is to be done in groups of 2-3 students. A roster for each group must be submitted to the professor by the date specified in the "Due Dates'' section of this assignment. The groups are "self­policing'' , e.g., each group is responsible for its own division of labor, scheduling, etc.. Note: If an unreconcilable problem arises in your group, it is your responsibility to contact the professor as soon as possible. After the project is due, it will be too late.

 

·        Assumptions: In cases where the above description of the application is incomplete, it is acceptable to make assumptions about the application providing that: 1) they are explicitly stated in the report, 2) they don't conflict with any of the requirements specified above, and 3) they are ''reasonable'' , e.g., it is not reasonable to assume that the rental car company has only one customer, and that the customer has never rented a car. If you have a question about the acceptability of any of your assumptions, check with the professor or TA.

 

·        Reports: A report should be handed in for grading at the end of each phase. The report must be formatted in a reasonable manner (i.e., using a text processor and a decent printer). Reports are due during class on the date specified in the "Due Dates'' section of this assignment.

 

·        Implementation: The final phase of the project requires a working implementation of the system to be built, tested, and demonstrated. A large part of the project grade depends on the quality of this implementation. The implementation will be carried out using the ORACLE database system, using SQL along with C, C++ and/or Java. A portion of the project grade will be based on the user interface. A portion of the grade will also depend on the quality of error detection and management, i.e., your system should be robust to data entry errors, etc.

 

5. Project Phases

 

The three phases of the project cover the following work processes:

 

Phase I: Requirements Analysis and Conceptual Modeling

Phase II: Conceptual Modeling and Task Emulation

Phase III: Implementation and Testing

 

6. Reports

 

The Phase I report must contain:

 

1. A short description of the purpose of the project

2. The assumptions that you have made about the car rental company

3. A description of the business rules and procedures associated with the car rental company

4. Describe the different categories of users who will interact with the system

5. Ten use-cases that describe scenarios that arise in the operation of the rental car company. These use cases should cover a wide range of conceptually different scenarios.

6. A draft conceptual schema using the E­R model. This should capture the overall functioning of the organization but does not have to include an exhaustive list of attributes

7. Description of forms and documents  that will be presented to various categories of users

 

 

The Phase II report must contain:

 

1.      A short description of the purpose of this phase of the project.

2.      A revised version of the Phase I report that takes into account design changes.

3.      A description of the problems encountered in this phase and justification for the solutions.

4.      The documentation produced in this phase, i.e.,

·        A detailed schema using the E­R model,

·        list of the attributes for each entity and relationship,

·        explanations of the non­obvious entities and relationships,

·        the relational schema in 3rd or BCNF form. Or the DDL statements to create the relational schema.

·        explanations (e.g., primary keys, etc.),

·        the code for each task:  Pseudo­code and the embedded DML code.

 

The Phase III report must contain:

 

1.      A description of the purpose of this phase of the project,

2.      A description of the problems encountered in this phase and justification for the solutions.

3.      Any revisions made to the relational schema definition from Phase II,

4.      The documentation produced in this phase, i.e.:

·        a source program listing.

·        a users manual for the system.

·        your testing efforts: erroneous cases, that your system can detect and handle reasonably.

·        a description of the system's limitations and the possibilities for improvements.

 

5.      In addition, a demo of the implemented system is required. All members of the group should attend this demo, to explain the aspects of the project for which they were responsible.

 

6.    Due Dates

 

 

Project Starts

2/23

Group rosters due

2/27

Phase I due

3/15

Phase II due

4/5

Phase III due

5/10

Demos

5/10,11

 


 

 

 

 

Web Accessibility