Data and Database Management with SQL
Module 2
Assignment 1
Purpose
For this assignment, we will simulate the creation of a variety of tables with various attributes. The key to a successful grade on this assignment is the appropriate structure and data types for each attribute. Make sure you pay attention to the information given and choose the data type that BEST meets the client requirements and provides for data validation. Please include the attributes as they appear below (do not add or remove attributes). Follow the instructions and specifications provided. Note: Constraints are not required in this assignment.
Submission
You will submit a total of 2 sql files to CodeGrade. Files should be named appropriately and be in .sql format. Each file must use the postgres standards taught in the course. Ensure your CREATE TABLE statements run together in pgAdmin prior to submission. Use of other SQL languages such as T-SQL will result in an automatic 0 for the assignment. You will have one submission attempt for this assignment.
- File 1: You must submit a SQL document called <LastName>_Assignment1_APU. This document must include ALL commands required to create the database and tables for the client Auto Parts Unlimited.
- File 2: You must submit a SQL document called <LastName>_Assignment1_HG. This document must include ALL commands required to create the database and tables for the client Holy Grounds
- You will submit both files to the Assignment 1 link to CodeGrade. Failure to include both files will result in loss of credit for any missing information as specified in the rubric.
Instructions
As in the practice assignment, you will be working for a company that creates and maintains databases for small business customers. The company has taken on two new clients that you will need to set up with their own databases. Note that since these are two separate databases, you ARE allowed to repeat the names of tables and attributes (for example, both companies have an inventory table. Both tables can be called inventory since they are in different databases). It is encouraged that if you have questions or difficulties with any portion of this assignment that you utilize the discussion board or GAs to gain clarity.
PART 1 (File 1)
The first client is a local auto parts company called “Auto Parts Unlimited”. Complete the following steps for this client:
- Create a database called “auto_parts_unlimited”
- Connect to the database
- Create the following 3 tables based on the client’s requirements:
- Customers: Each customer has the following:
- A unique numeric ID assigned automatically when their record is created (for this assignment you do not need to add a constraint to enforce uniqueness)
- First name
- Last name
- Phone number: format (xxx) xxx-xxxx
- Street Address: Includes street number and name
- Zip: 5 Digit zip code
- State: Must be a two letter abbreviation, does NOT have to be from a prepopulated list
- Employees:
- A unique numeric ID assigned automatically when an employee is hired (for this assignment you do not need to add a constraint to enforce uniqueness)
- The same attributes as a customer plus:
- A hire date
- A salary amount
- A probationary status: Can only be one of two values. Either an employee is still probationary (less than 1 year working for the company) or not.
- Parts Inventory:
- A unique alphanumeric part number (for this assignment you do not need to add a constraint to enforce uniqueness)
- A manufacturer name
- A quantity in stock
- A price
- A backordered status: Only two values, either an item is backordered or not.
- Customers: Each customer has the following:
***************************ASSIGNMENT CONTINUED ON NEXT PAGE****************************
Part 2 (File 2)
The second client is a local coffee shop / bakery called “Holy Grounds”. Complete the following steps for this client:
- Create a database called “holy_grounds”
- Connect to the database
- Create the following tables:
- Coffee Inventory: represents all items in inventory.
- Unique alphanumeric SKU (for this assignment you do not need to add a constraint to enforce uniqueness)
- Name
- Type of roast: Dark, Medium, Light ****(see note below)
- Pounds on Hand: Total pounds of coffee on hand (can be fractional)
- Organic: Only 2 values, either organic or not
- Low Acid: Only 2 values, either low acid or not
- Price per lb
- Sales Transaction: represents either an online or in-store purchase
- Unique receipt ID: A number automatically assigned when a transaction is made. While this is a smaller company, they do have multiple locations and online sales. They complete a total of approximately 250 million transactions a year between these different revenue streams. Make sure you choose a data type that represents whole values with plenty of room to expand as this client likes to keep receipt records for multiple years. (for this assignment you do not need to add a constraint to enforce uniqueness)
- Sale amount
- Sale type: Online or In-Store****(see note below)
- Transaction Date: Date and time a transaction occurs
- Store: represents a physical location where coffee is sold
- Store ID: a unique numeric identifier automatically assigned when each store is launched (for this assignment you do not need to add a constraint to enforce uniqueness)
- Store Manager: First and last name of store manager. Make sure this value is long enough to include both first and last name with a space in between.
- Store phone number: format (xxx) xxx-xxxx
- Street address: Street number and name
- City
- Zip: 5 Digit zip code
- State: Must be a two letter abbreviation, does NOT have to be from a prepopulated list
- Coffee Inventory: represents all items in inventory.
ALLOWED DATA TYPES
The data types accepted for this assignment are found below. To read more about each data type listed, follow the link to the postgres documentation. Ensure you only use the bullet point data types listed below in this assignment! Also be sure to read about each data type to choose the best type for each attribute.
NUMERIC DATA TYPES:
https://www.postgresql.org/docs/current/datatype-numeric.html
- Decimal(precision,scale)
- Numeric(precision,scale)
- Integer
- Serial/Big Serial
MONETARY DATA TYPES:
https://www.postgresql.org/docs/current/datatype-money.html
- Money
CHARACTER DATA TYPES:
https://www.postgresql.org/docs/current/datatype-character.html
- Varchar(n)
- Char(n)
*Must specify length of field (n). Ensure you have enough characters to accommodate. Know difference of when to use char vs. varchar.
DATE/TIME DATA TYPES:
https://www.postgresql.org/docs/current/datatype-datetime.html
- Date
- Timestamp
BOOLEAN DATA TYPES:
https://www.postgresql.org/docs/current/datatype-boolean.html
- Boolean
*******************************GRADING RUBRIC ON NEXT PAGE*********************************
This assignment will be graded on the following rubric:
Item
Points
Database Creation Statements (2)
10
Table Creation Statements (6)
Run in entirety without error
10
Below are the specific point values for attributes by tables. Note that credit is awarded for appropriate definition and data type. Failure to use a data type that does not meet the client requirements and meet data validation needs will result in loss of points for that attribute. Some attributes are weighted more than others because of their difficulty.
Auto Parts Unlimited
Customers: Customer ID
5
Employees: Employee ID
5
Employees: Probationary Status
5
Parts Inventory: Part Number
5
Parts Inventory: Quantity
5
Holy Grounds
Coffee Inventory: Organic
5
Coffee Inventory: Low Acid
5
Sales Transaction: Receipt ID
5
Store: Store ID
5
ALL OTHER ATTRIBUTES (2 points each)
35
Total
100
Bonus
5
Max
105