SQL 2

profilejuskickz1
CMIS420-Week4-Project2.docx

Project 2

In this assignment you will be completing the creation of most of the tables for the Online Vehicle Sales (OVS), Inc. online transaction processing (OLTP) database based on the supplied ERD, and fully populating all the tables you create. You will also be performing a number of queries against the populated tables.

Your OLTP tables will be populated with a large number of rows since this is intended to simulate a large number of transactions which will make the data warehouse you’ll create in later assignments more realistic.

In Assignment #1 you already created the CUSTOMERS, VEHICLES, and SALES tables based on the ERD, and populated them with a few rows of data. In this assignment you will create the FINANCING_PLANS, SALES_FINANCINGS, and SALESPERSONS tables and fully populate them. You will not be creating the other tables in the ERD.

You will be making up your own data and in many cases you will need to reuse the same customer, vehicle, and financing plan data for your sales.

For all six tables, unless otherwise specified, you must include all necessary integrity constraints including primary keys, foreign keys (except to tables not created), CHECK constraints, UNIQUE constraints, and NOT NULL constraints. It is good practice, but not required, to explicitly name your constraints.

You can create your database in UGMC’s Virtual Lab Broker.

You should use one or more SQL script files to complete this assignment.

Here are the specific assignment steps. In order to earn full credit you must keep your steps in order, number your steps, and put everything in a single file.

1) Create the FINANCING_PLANS table and populate it with at least 5 (five) rows of data.

2) Add more rows as necessary to your VEHICLES table so that you have at least 50 (fifty) rows of data total. Execute a “SELECT COUNT(*) FROM vehicles” statement after you have added all your new data. Show the INSERT SQL statements you used and the SELECT COUNT(*) statement.

3) Create the SALESPERSONS table and populate it with at least 10 (ten) rows of data. Add a Dealer_ID column but don't set it as a foreign key to the DEALERSHIPS table yet since you won’t be creating that table until a later project.

4) Add more rows as necessary to your CUSTOMERS table so that you have at least 100 (one hundred) rows of data total. Execute a “SELECT COUNT(*) FROM customers” statement after you have added all your new data. Show the INSERT SQL statements you used and the SELECT COUNT(*) statement.

5) Add more rows as necessary to your SALES table so that you have at least 200 (two hundred) rows of data total. Execute a “SELECT COUNT(*) FROM sales” statement after you have added all your new data. Show the INSERT SQL statements you used and the SELECT COUNT(*).

6) Create the SALES_FINANCINGS table and populate it with at least 200 (two hundred) rows of data (i.e. one per sale). Execute a “SELECT COUNT(*) FROM sales_financings” statement after you have added all your new data. Show the INSERT SQL statements you used and the SELECT COUNT(*) statement.

7) Via a single SELECT query display the total count of sales, and the lowest, average, and highest sale price. Show the SQL statement you used.

8) Via a single SELECT query display all customer IDs, names, and zip codes of customers having purchased 2 or more vehicles. Show the SQL statement you used.

9) Via a single SELECT query display the institution and loan type of the financing plan that was used for the most sales. Show the SQL statement you used.

10) Via a single SELECT query display the make of the vehicle involved in the most sales and all customers having purchased a vehicle of that make.

11) Via a single SELECT query display the total count of sales, by model and then by zip code, with the highest values first.

Your submission MUST include one or more .sql files. Please name them with your last name, project, and order to run them. For example: Smith_Project_2_Part_A.sql. Also include drop scripts to un-do the scripts. For example: Smith_Project_2_Part_A_drop.sql.

Project 2 grading rubric

Attribute

Meets

Does Not Meet

CREATE TABLE SQL statements

15 points

Uses an SQL script file.

Creates the FINANCING_PLANS, SALES_FINANCINGS, and SALESPERSONS tables.

Includes all necessary integrity constraints including primary keys, foreign keys, CHECK constraints, UNIQUE constraints, and NOT NULL constraints.

Uses an Oracle RDBMS.

All SQL statements are syntactically correct and execute without error.

0 points

Does not use an SQL script file.

Does not create the FINANCING_PLANS, SALES_FINANCINGS, and SALESPERSONS tables.

Does not include all necessary integrity constraints including primary keys, foreign keys, CHECK constraints, UNIQUE constraints, and NOT NULL constraints.

Does not use an Oracle RDBMS.

All SQL statements are not syntactically correct or execute without error.

INSERT SQL statements

35 points

Populates the FINANCING_PLANS table with at least 5 (five) rows.

Populates your VEHICLES table with at least 50 (fifty) rows.

Populates your SALESPERSONS table with at least 10 (ten) rows.

Add more rows as necessary to your CUSTOMERS table so that you have at least 100 (one hundred) rows of data total.

Adds more rows as necessary to your SALES table so that you have at least 200 (two hundred) rows of data total.

Populates the SALES_FINANCINGS table with at least 200 (two hundred) rows of data (i.e. one per sale).

All SQL statements are syntactically

0 points

Does not populate the FINANCING_PLANS table with at least 5 (five) rows.

Does not populate your VEHICLES table with at least 50 (fifty) rows.

Does not populate your SALESPERSONS table with at least 10 (ten) rows.

Does not add more rows as necessary to your CUSTOMERS table so that you have at least 100 (one hundred) rows of data total.

Does not add more rows as necessary to your SALES table so that you have at least 200 (two hundred) rows of data total.

Does not populates the SALES_FINANCINGS table with at least 200 (two hundred) rows of