Question: Continuing on the theme park concept, you must design additional parts of the database and create the following SQL Script Step 1: Design and create

Continuing on the theme park concept, you must design additional parts of the database and create the following SQL Script

Step 1: Design and create the tables

You must create additional tables to hold Project and Activity Data. You will use normalization to come up with your final table design.

IMPORTANT: For Project 2, DO NOT CREATE ANY FOREIGN KEYS FOR ANY OF THE TABLES

A project represents the construction of a facility with a limited scope of work and financial funding. A Project can be composed of many activities which indicate the different phases in the construction cycle.

Example Project Name: Bobba Fetts Bounty Chase Ride

An activity represents the work that must be done to complete the project.

Example Activity Name:

For Example activity name could be Phase 1 Design of Bounty Chase ride Or name could be Final construction of Bounty Chase ride Etc

You must normalize the project table to come up with a new set of tables. You will then write the create script for these tables.

Project (projectId, projectName, firmFedID, firmName, firmAddress, fundedbudget, projectStartDate, projectStatus , projectTypeCode, projectTypeDesc, projectedEndDate, projectManager, (activityId, activityName, costToDate, activityStatus, startDate,endDate) )

To normalize the table, you must use the following function dependencies:

ProjectId, ActivityId -> projectName, firmFedID, firmName, firmAddress, fundedbudget, projectstartDate, projectStatus , projectTypeCode, projectTypeDesc, projectedEndDate, projectManager, activityName, costToDate, activityStatus, startDate, endDate.

projectId -> projectName, firmFedID, fundedbudget, projectstartDate, projectStatus , projectTypeCode, projectedEndDate, projectManager.

projectTypeCode -> projectTypeDesc

firmFedID -> firmName, firmAddress

When creating the tables, use the following column names and data types (important) for columns:

projectId (char(4)) : A 4 character unique identifier (numbers and letters)

projectName (varchar(50)) : The name of the construction project.

firmFedID (char(9)) : A 9 character Federal ID (Example: 123456789)

firmName (varchar(50)): The name of the construction firm.

firmAddress (varchar(50)) : The address of the construction firm.

fundedbudget (decimal(16,2)): The money amount allocated to this project

projectStartDate (date): The date the project started

projectstatus (varchar(25)): The status of the project (either active,inactive,cancelled,completed)

projectTypeCode (char(5)): The project type code are FAC, RIDE, RET, and FOOD.

projectTypeDesc (varchar(50)): The project type descriptions for a project are: Facility, Ride, Retail and Restaurant

projectedEndDate (date) The date the project is scheduled to end.

projectManager (char(8)) The employee number of the employee who is managing this project

activityId (char(4)): A 4 character unique identifier for the activity.

activityName (varchar(50)): The name of the activity

costToDate (decimal(16,2)): The cost of the activity to date

activityStatus (varchar(25)) : The status of the activity (either active,inactive,cancelled,completed)

startDate (date): The date the activity began.

endDate (date): The date the activity ended.

After you complete your normalization process, you will write the script to create the tables which resulted from your normalization. Each table should have a primary key defined.

NOTE IMPORTANT!

You should end up with at least:

a table that will hold the main project data and will have projectId and projectName, along with other related fields based on your normalization process. Please name this table, ProjectMain.

- a table that will hold the main activity data and will have activityId and activityName, along with other related fields based on your normalization process. Please name this table, ActivityMain.

If your normalization is done correctly, you will end up with more than two tables.

Step 2: Create Stored Procedures to populate the tables

You will create the SQL Scripts to create procedures to insert/ update data. The following definitions specify the parameters that can be passed in. The underlined parameters are required.

Make sure that your procedure inserts records if the required parameters do not exist, but they update records if the required parameters do exist.

For example:

If SP_AddUpdateProject: passes in projectID AA01 and it DOESNT exists in the project table(s) , it will insert the values passed in.

If SP_AddUpdateProject: passes in projectID AA01 and it DOES exists in the project table(s) , it will UPDATE the values passed in for the AA01 record.

Procedures Needed:

SP_AddUpdateProject: Adds/Updates a project with all the field information. o Parameters: projectId, projectName, firmFedID, fundedbudget, projectStartDate, projectStatus, projectTypeCode, projectedEndDate and projectManager

SP_DeleteProject: Deletes a project by the project Id. o Parameters: projectId

SP_AddUpdateActity: Adds/Updates activity with all the field information. o Parameters: activityId, activityName, projectId, costToDate, activityStatus, startDate, endDate

SP_DeleteActivity: Deletes an activity by the activity Id and projectId. o Parameters: projectId, activityId

Step 3: Create Stored Procedure to Process Project Delays

You will create the SQL Script to create procedures to insert/ update data and process a project delay

SP_ProcessProjectDelay: Given a project Id, this procedure finds if any max end date of any activity within the project is after the projects projected end date. If this happens, the procedure will calculate how many days it is late (use DATEDIFF) and fines the project $100 for each day late it is late. In addition, the project tables projectedenddate will be updated with the new end date and the fundedbudget will be updated with the original funded budget plus the fines per day late. o Parameters: projectId.

Example: The Falcon Coaster has a ProjectId AA01 has a projected end date of 6/30/2017. It has 2 activities:

ActivityId: AA90 ActivityName: Build Coaster EndDate: 6/01/2017

ActivityId: AA91 ActivityName: Inspect Coster EndDate: 7/30/2017

Since Activity AA91 ends 30 days after the projected end date of the project, the project will have an additional $3,000 (30 X $100) added to the fundedbudget columns original value. Also, the projects new projected end date will be 7/30/17

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!