Postgre SQL Video Store Assignemnt

You are a database consultant with Ace Software, Inc., and have been assigned to develop a database for the Johnson Video Store in town. The owners have been keeping their records of videos and DVDs purchased from distributors and rented to customers in stacks of invoices and piles of rental forms for years. They have finally decided to automate their record keeping with a relational database.

You sit down with the owners to discuss their business and watch their operation for about a week. You discover quickly that a video and a DVD are both copies of a movie kept in a separate plastic case that is rented out. They have several copies of each movie they rent; therefore, there are several videos and DVDs for each movie title. You learn that in their inventory they have several thousand videos and DVDs, which they get wholesale from about a half dozen distributors. The video and DVD prices for them are based on the quantity of their shipment and the past business they have done with each company.

The price of a DVD for a movie might be different from the price of a video for the same movie, even from the same distributor. Each distributor provides different types of movies (e.g., suspense, horror, mystery, comedy, etc.). A single distributor may provide several different types of movies in both video and DVD format. It is possible to obtain the same movie from multiple distributors and at different wholesale prices.

Each video and DVD has a unique identification number that The owners assign in their inventory, in addition to the distributor’s serial number for the item. Each movie also has a unique identification number. The owners assign in addition to the title and any movie IDs the distributors use in their electronic catalogs. Distributors provide electronic catalogs to the owners, and the information from these catalogs must be included in the database.

The owners need to record when a video or DVD is rented, when a video or DVD is returned, and all customer charges such as late and damaged fees, failure to rewind fees, and taxes. They need a report of which videos are returned late because there are standard and late charges. On occasion, there are discount prices for specific movies or types of movies. Customers want to rent movies based on actors or actresses, running length, type of movie, rating, year released, the director, and the Academy Awards won (by the movie, the actors, the actresses and/or the directors). Customers also want to know how many videos they have rented in the last month, year, and so forth. The owners need to keep only basic information on customers in their database, such as name, address, telephone numbers, etc.

There must be no limit to the number of video and/or DVD copies of a movie that the owners can have in their inventory. Video/DVD ID numbers, movie ID numbers, and distributor ID numbers for videos, DVDs, and movies are all different. Also, each movie must be able to have an unlimited number of actors, actresses, directors, and Academy Awards (i.e., Oscars). Other types of awards (e.g., Golden Globe, People’s Choice, etc.) are not of interest for this application. The rental of equipment, sale of videos, DVDs, popcorn, etc., is not to be kept in the database.

1. Draw an ERD utilizing a software of your choice.

2. Develop metadata from the ERD and document in an Excel spreadsheet.

3. Using PostgreSQL, develop and execute an SQL script file of DDL SQL to create the database tables in the metadata document.

4.Using PostgreSQL, develop and execute an SQL script file of DML SQL INSERT statements to populate the tables using SQL INSERT statements for at least 5 rows of data per table.

5.Using PostgreSQL develop and execute an SQL script file to:

      – Show the contents of all tables

      – Retrieve all of the customers’ names, account numbers, and addresses (street and zip code only), sorted by account number

      – Retrieve all of the DVDs rented in the last 30 days and sort in chronological rental date order

      -Update a customer name to change their maiden names to married names. You can choose which row to update.  Make sure that you use the primary key column in your WHERE clause to affect only a specific row.

      – Delete a specific customer from the database. You can choose which row to delete.  Make sure that you use the primary key column in your WHERE clause to affect only a specific row.

The metadata should be submitted in an Excel spreadsheet.  All other outputs for the database design, SQL code, and SQL results should be submitted in a single Word file in order, by step, and clearly labeled. The Word file should also have a preface describing the database lifecycle steps and methodologies and a conclusion section containing lessons learned from this project.