Task 1
Scenario
Introduction
Milllie’s Musical Emporium (MME) Ltd has grown from a small company based in a small market town, to one of the country’s leading suppliers of musical instruments and associated media (e.g. printed music, books, CDs and DVDs). However, they have never quite managed to move away from using a paper-based filing system for storing customer, sales and stock information. To cope with their growth and allow for more efficient stock recording, the store has decided to computerise their customer management and stock recording system. You have been tasked with developing a database application to meet their needs.
Current Position
Currently, MME Ltd record details of all customers (including their name, address, telephone number, date of birth and bank details, i.e. bank name, address, sort code and account number) who either purchase a musical instrument or media. Records are also kept of every transaction that takes place in any of the stores.
A stock warehouse is also kept. This makes it possible to see where any given product (including its identifier, type, name, description, cost) is currently stored. The stock warehouse also contains details of all purchases and allows stores to move stock from one store to another. This is particularly useful for those customers who wish to purchase a product that is not available in their local store.
The organisation would also like to be able to create management reports, which may, for example, show all sales at a particular store or a group of stores, between certain dates.
Proposed System
Using PostgreSQL, you are required to design and develop a prototype system that not only satisfies the requirements of the current system, but also has features that you consider to be worthwhile enhancements to the current system.
To achieve this, base your system on the following entity-relationship diagram and partial data dictionary
Entity-Relationship Diagram
Partial Data Dictionary
Note: The data dictionary is only partially complete. Task 1:
a) Subsequently, produce a single SQL script file which can be run within PostgreSQL without error and which drops and creates your tables (correctly ensuring that any referential integrity issues can be resolved), and inserts sample data into each table.
The SQL script file must also contain the code for the PL/pgSQL code that you implement in
(b) below.
b) Using PostgreSQL develop:
i. A PL/pgSQL stored procedure (and any associated code) which allows for registration of new customers.
ii. A PL/pgSQL stored procedure (and any associated code) which allows an existing customer to purchase a product. This transaction must
allow the client to specify a specific product to purchase, a delivery date and time, ensuring that the delivery can only be booked if both that product and delivery slot are available.
Each PL/pgSQL stored procedure may require you to develop other PL/pgSQL stored functions, triggers and cursors that you think necessary to fully implement the required functionality.
When developing the system you should take into account the important development issues identified below:
• Data types used should match those used in the tutorial booklet.
• Dates and other relevant data should be validated accordingly.
• Exception Handling must be in place to deal with all errors, e.g. invalid dates, duplicate customers, incorrect products specified, insufficient stock etc.
• Any fields that require mandatory input, i.e. NOT NULL must be validated on input.
Task 2
Millie’s Music Emporium has two users: admin and customer.
For each table specify what privileges you would give each user and briefly explain why they would have this privilege.
As a reminder here is a link to privileges in PostgreSQL: https://www.postgresql.org/docs/13/ddl-priv.html
You do not have to test these privileges in PostgreSQL, just list the commands, i.e. write the relevant GRANT commands for each table and provide a brief explanation.
Task 3:
You are required to prepare and submit a 5 to 10-minute voice-over screencast in which you present a set of Powerpoint slides and critically discuss the potential benefits of using a NoSQL document store database for the organisation from Task 1. It is recommended that you use a software tool such as ‘Screencast-o-matic’ (which can be downloaded for free - https://screencast-o-matic.com/) or OBS (which can be downloaded for free - https://obsproject.com/) to record your screencast. If your screencast exceeds ten minutes then only the first ten minutes will be viewed and assessed.
You must use up-to-date academic research literature in your review, and provide correctly cited references (using the Harvard referencing system) within the Powerpoint slides. Note there is no need to submit a copy of your Powerpoint slides.
It is recommended that you include the following content in your Powerpoint slides:
- A title slide (one slide);
- Slides which provide an overview of NoSQL document stores (two slides maximum);
- Slides which provide a critical discussion of the benefits of NoSQL document stores (two slides maximum);
- A slide (one slide maximum) which gives a summary;
- Two slides maximum which contains your reference list in Harvard format.
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of