Party Hire Case Study

Party Kids is a company that rents out inflatables, tables, and chairs for children's parties.

It is owned Ms Donta Pop and she has been very happy to see her business grow rapidly over the past 2 years. She has recently purchased dozens of new tables, a number of new types of inflatables and dozens of chairs.

To store it all, Ms Pop has rented out 2 new storage facilities, so that she now has one location on the east side of town, one central, and one in the west.

Ms Pop has been finding it impossible to keep track of customer details, bookings, and the storage location of her assets. She has been trying to manage with a paper system but has been making mistakes like hiring out an item twice for the same day. So, she has now hired you to shift her records into database.

You have interviewed Ms Pop and you believe you have enough information to begin planning the database. This is what you know:

  • Ms Pop owns over 500 asset items. She is carrying:
    • 3 inflatable models. She owns 20 inflatables in all.
    • 3 chair models. She owns 100's of chairs.
    • 1 table model - a plastic folding table that seats 10 people. She has no plans to purchase a different model of table.
  • Assets within a model category are all the same price. For example, for cushioned seats the price is $10 per day, and for small plastic chairs it's $2 per day.
  • Whenever Ms Pop purchases a new asset, she tags it. For chairs and tables this means a sticker with a unique number for each item. For inflatables it means marking it with a name e.g. ModelA#1.
  • She wants to keep track of customer feedback about each single item and about the hiring event in general
  • With regard to customer payments:
    • Ms Pop passes on her bank details to customers over the phone (or in person) when the booking is made and customers pay directly into her account
    • She only accepts lump sum payments (not partial payments)
    • She accepts payments before and after rental
    • She will sometimes apply discounts to a booking, but never to individual assets
  • Her assets can be stored in any of the 3 locations and each location can hold all assets
  • She doesn't want to store details about the manufacturers or distributors of her assets
  • She doesn't want to store details about her 3 storage locations.

Task 1

1. Create an MS Word document named "Your Given Name - Your Student Number Party Kids.docx" e.g. Harpreet 123456 Party Kids.docx.

2. Create an ER Diagram from the above scenario, being sure to:

a) Use Crow's Foot Notation
b) Mark cardinality, existence, primary keys (with an underline), and foreign keys (with the letters "FK" in brackets).
c) Ensure the entities are in a normalised state
d) Write any assumptions you make if you think it important to clarify the reasons for building particular relationships, creating particular attributes, or leaving something out.
e) Place your name and student number within the drawing
f) Insert that ER Diagram into your Word document. If you use Lucidchart or similar you could take a screenshot.

Task 2

Create your solutions for following tasks in Microsoft SQL Server and:

  • Write a T-SQL comment above each SQL statement you write, stating your name, the task you are solving, and the purpose of the code. For example, "Harpreet. Q1. Creating a database" and Harpreet Q1: Creating a table, above the statements required for question 1.
  • Paste all the SQL code that you write into your MS Word document. That is, paste it as plain text
  • Paste screenshots from Microsoft SQL Server into your MS Word document. The screenshots should show your code along with the relevant messages window and/or outputs window

Task 2a

1. Write two CREATE statements. One to build a database named "PartyKids" and one to build within it a table named Customer which will store details about PartyKids customers. The columns should match the attributes listed in your ER Diagram. All columns should be required columns (that is, don't allow NULL values).

2. Use a single INSERT statement to create the details of 7 customers. Name one of the customers "John P Smith" and record his address as 12/1 Flinders St, Melbourne 3000. [Note: If you didn't include address details in the Customer entity in your ER Diagram, do so now and then redo task 2a.1]

3. Use a SELECT statement to display full details of all customers

4. Change the address of John Smith to 15/1 Flinders Street and then display the name and address only of all customers

5. Display the details of all customers whose first name that starts with the letter "J"

6. Display the details of all customers who live in Victoria. Note that all Victorian postcodes are in the 3000's and no other states use the 3000s.

7. Delete John P Smith from the database

8. Add a 2nd table to your database.

  • It should store details about bookings made by a customer so name it "Booking" or something similar. If your ER diagram doesn't show a customer entity linked to table that lists bookings (party hires) made by customers, then add one now. Ensure your Booking table contains, at the minimum, attributes to store the date of the booking and any customer feedback.
  • Build a relationship between the Booking table and the Customer table and make it impossible to create a new Booking that doesn't belong to an existing Customer.
  • Insert the details of at least 6 bookings. Enter details into every column of each record. The bookings should all belong to just 3 customers - 1 for one customer, 2 for another, and 3 for the 3 rd .

9. Use a DELETE statement to try to delete a customer who has a booking. It should not be possible.

10. Display all bookings grouped by customer. Display full booking details, but don't show any customer details.

11. Display the customer names and booking dates of all customers who have made a booking and sort them from the most recent booking to the least recent.

12. Display the names of customers who have not yet made a booking.

Task 2b

13. Create all the tables you have drawn up in your ER Diagram and build the relationships between them. Choose your data types carefully. Note that you will need to buid the tables on the "one" side before the tables on the many side.

14. Add at least 3 records to every table and then display them all. Note that you will need to insert records into the tables on the "one" side before inserting into tables on the many side.

15. Display the names of all customers who have rented inflatables

16. Display the names of all customers who have rented chairs or inflatables

17. Display a count of the number of booking days of each customer

18. Display the total amount of money received from each customer. That is, display one one value per customer.

Task 3

19. Ms Pop is curious to know why a computer expert like you would draw a diagram before using database software. Write 200 to 250 words explaining the purpose of creating your ER Diagram before building the database

20. Ms Pop is thinking about accepting credit card payments from customers and keeping a record of the payments in her database. She is concerned about storing personal details such as credit card numbers and customer addresses. Write 150 to 200 words naming the main legal issue at play and the techniques you could use to help secure her database.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.