You have been asked to design a data model

Assignment Help PL-SQL Programming
Reference no: EM13134787

IMPORTANT INFORMATION 

You must use the official USQ data modelling and normalization methodology. This methodology is based on Clive Finkelstein's techniques (SR 2.1 and SR 2.2) and all the examples in the lectures, study book and the tutorials use this methodology. 
It is perfectly acceptable if you submit neat hand-drawn ERD's. Alternatively, you might wish to use Word. If you use a CASE or drawing tool, you must adapt the drawing to conform to the USQ methodology. 
This assignment may require a significant amount of work but you should treat it as an exercise in examination preparation as well as an assignment. This assignment covers much of the same ground as the exam and will provide you with a strong indicator of your level of preparedness for the exam. Most of the questions are at examination standard although the data modelling exercise is somewhat more substantial than what would be expected in an examination setting. 

SECTION A (Data Modelling) 

Law Associates is a large legal practice based in Sydney. You have been asked to design a data model for the practice based upon the following specification: 

The practice employs nearly sixty lawyers who work in a wide variety of specialty areas. A speciality id and description is stored for each speciality. Each lawyer employed by the practice is classified as a partner, an associate, a junior or an intern. The practice stores the following information for all lawyers: Name, address, telephone, email, base salary and the one area of law in which that lawyer specialises. For partners, the practice also stores information about the percentage of the partnership held by the lawyer and the area of speciality that lawyer leads. Each area of speciality has one partner who acts as a leader (or resident expert and consultant) in that area. For associates, the practice also stores details about the percentage of cases the associate has won. 

Juniors and interns undertake prescribed training courses and a record is kept. All training courses are registered and the name of the course, the duration (in days), the start date, the end date and details about the training organisation. Although a course is only offered by one training organisation, these organisations typically offer many courses. We store the name, address, telephone, email and Law Society accreditation number for all training organisations. When a lawyer completes a course, the grade received on that course is recorded. 

We store details about the qualifications of all lawyers. Each lawyer may have many qualifications and a list of qualifications is stored, including the name of the qualification, its level (undergraduate or postgraduate) and the name of the university offering the qualification. 

Each lawyer may take on many cases. A case is assigned to at least one lawyer but may be assigned to as many as four. If more than one lawyer is assigned to the case, one of the lawyers must be designated as a leader. Only seniors may be leaders of cases involving multiple lawyers. A case must have one or more clients but a client may initiate many cases over time. For case, we store a unique identification number, the estimated duration of the case, the client number/s of the clients involved, and the estimated start date. For client, we store an identification number, name and address. When any lawyer is assigned to a case, we store the date assigned and the date the lawyer leaves the case. A lawyer may become involved in a case on multiple occasions. 

As cases can take years to resolve during the cases proceedings the layer in charge of the case may be unavailable as they be working on other cases. During this period the work associated with the case is assigned to the junior lawyer with mentoring from the layer originally assigned to the case. Upon the return of the principal lawyer to the case an evaluation is done of the assisting lawyer to record their performance for future evaluation. In the instance where a junior is assigned to a case where more than one lawyer is involved the other layers provide an evaluation of the junior lawyer as well. During the length of the case a number of junior layers could be assigned to assist with the case. 

Prepare the following: 

a) An ER diagram for the system. Show all entities, relationships, cardinalities and optionalities. Also, include all intersection entities. You must use the Finkelstein methodology as per the study book and tutorials. (15 Marks) 

b) A list of relations (equivalent to Finkelstein entity list). Produce complete relations for all entities and attributes. Show all primary and foreign keys. Include all attributes that are specifically mentioned and all key attributes. You may need to create primary and foreign keys that are not specifically mentioned. You must use the Finkelstein methodology as per the study book and tutorials. (15 Marks) 

c) A single SQL statement or multiple statements that create/s the table for the relation training courses for jurors and interns. All key and attribute constraints should be included and data types suitable to each attribute should be chosen.
(10 Marks) 

SECTION B (Normalisation) 

Produce a set of relations (equivalent to the Finkelstein entity list) in third normal form (3NF) from the following un-normalised relation. Show your working and entitles for 1NF, 2NF and 3NF. You must use the Finkelstein methodology as used in the study book and tutorials. 

PATIENT(patient id, name, address, age, gender, admitting doctor id, admitting doctor name, admitting doctor grade, date of admission, date of release, number of days in hospital, ((ward id, ward name, (( bed number, date arrived, date departed )) )), reason for admission) 

Notes: 
1. A new patient id is assigned for each admission to hospital 
2. The admission to hospital must be authorised by only one admitting doctor. 
3. During the hospital stay, the patient may be moved from ward to ward and from bed to bed within a ward. 
4. Bed numbers are not unique within the hospital but are unique within the ward. 

SECTION C (SQL) 
MARKING CRITERIA 

1. Four marks awarded for each correct SQL statement. 
2. Alternative approaches to the model answer could be accepted unless they do not follow the rules / requirements set out in the specification, are poorly optimised or are poorly constructed (SQL). 
3. Part marks may be awarded if an answer only has a small problem or an alternative solution is presented that works but is not ideally optimised / constructed. 

The following E-R diagram represents a Car Hire database. 

In this question, you will use the CAR HIRE database. The CAR HIRE database including appropriate data will be made available on the USQ Oracle server. You may query any of these tables but may not make changes. 

The table descriptions appear below, including the column names and data types. 


I_CAR 

Column Name Type and Size Constraints Description 
Registration VARCHAR2(7) NOT NULL Registration number of the car. This is the Primary key. 
Model_name VARCHAR2(8) FK Model for the car. Foreign key into the Models table. 
Car_group_name VARCHAR2(2) FK Group code defining type of car and rental cost. Foreign key into the CarGroups table. 
Date_bought DATE Date the car was purchased. 
Cost NUMBER(8,2) The original cost of the car. 
Miles_to_date NUMBER(6) The current mileage of the car as read at the end of the most recent rental. 
Miles_last_service NUMBER(6) The mileage of the car when it was last serviced. 
Status CHAR(1) The current status of the car. 'A' for available, 'H' for on hire, 'S' for being serviced, 'X' for in need of service or repair. 
I_CARGROUP 

Column Name Type and Size Constraints Description 
Car_group_name VARCHAR2(2) NOT NULL The car group code. This will be one of the following values: 'A1', 'A2', 'A3', 'A4', 'B1', 'B2', 'B3', or 'B4'. This column is the primary key for this table. 
Rate_per_mile NUMBER(3) The charge per mile for cars in this group in cents. 
Rate_per_day NUMBER(5,2) The rental charge per day for cars in this group in dollars and cents. 

I_MODEL 

Column Name Type and Size Constraints Description 
Model_name VARCHAR2(8) NOT NULL The model name, an abbreviation of the full model name. This is the primary key for this table. 
Car_group_name VARCHAR2(2) FK The group to which this model of car belongs. 
Description VARCHAR2(30) Full description of the model. 
Maint_int NUMBER(5) Number of miles between services for this model. 

I_CUSTOMER 

Column Name Type and Size Constraints Description 
Cust_no NUMBER(5) NOT NULL The customer account number. This is the primary key for this table. 
Cust_name VARCHAR2(20) NOT NULL The name of the customer. 
Address VARCHAR2(20) Street address of the customer. 
Town VARCHAR2(20) Town the customer lives in. 
County VARCHAR2(20) County the customer lives in. Default is Australia 
Post_code VARCHAR2(10) Postcode for the town. 
Contact VARCHAR2(20) Name of person to contact. 
Pay_method CHAR(1) Code to indicate the usual payment method for this customer. 'A' indicates an account, 'C' indicates cash or credit card, NULL indicates unknown. 

I_BOOKING 

Column Name Type and Size Constraints Description 
Booking_no NUMBER(5) NOT NULL A serial number used to uniquely identify the booking. This is the primary key for this table. 
Cust_no NUMBER(5) FK Customer number of the customer making the booking. 
Date_reserved DATE Date on which the booking was made. 
Reserved_by VARCHAR2(12) Name of the person who took the reservation. 
Date_rent_start DATE Date on which the rental commences. 
Rental_period NUMBER(3) Length of rental period in days. 
Registration VARCHAR2(7) FK Registration of the car actually rented. 
Model_name VARCHAR2(8) Model of the car rented. 
Miles_out NUMBER(6) Miles on the odometer at the start of the rental. 
Miles_in NUMBER(6) Miles on the odometer at the end of the rental. 
Amount_due NUMBER(6,2) Cost of the rental. Calculated when the car is returned. 
Paid CHAR(1) Flag to indicate if this rental has been paid for. 'Y' if it has been paid and 'N' if not. 

Write SQL queries to solve the following specifications. Provide only the queries - output is not required. 
1. Display the total number of customers that do not have a county recorded in for their address information. 
2. Display each customer number and the total number of bookings that customer has made. Order the result by largest number of bookings at the top of the list. 
3. Display full details for the oldest booking recoded in the database. 
4. Display the registration and the number of times the car has been rented for the car/s that has been rented the greatest number of times. 
5. Display the count of number cars whose cost is less than the average cost of all the cars that are available for booking (status = A) 

SECTION D (10 marks) 
PART MARKING: For this section, we will use part marking. This means we will supply model answers to all questions but we will only mark 5 questions. We will choose these randomly and each question chosen for marking will be worth two marks. The choice of the 5 random questions will be from the odd numbered questions. If you do not answer a question that is chosen for marking, you will receive no marks. You should therefore attempt all the questions. These questions are designed to hone your SQL skills before the exam. 


Use the relations below to write SQL queries to solve the business problems specified. 

Note: You do not have access to the tables or the data for this database. This is the same conditions you would be experiencing in an exam citation. These questions are designed to hone your SQL skills before the exam. 

CLIENT(clientno#,name, client_referred_by#) 
ORDER(orderno#, clientno#, order_date, empid#) 
ORDER_LINE(orderno#, order line number#, item_number#, no_of_items, item_ cost, shipping_date) 
ITEM(item_number#, item_type, cost) 
EMPLOYEE(empid#, emp_type#, deptno, salary, firstname, lastname) 

Notes: 

1. Each client may be referred by another client. If so, the client number of the referring client is stored in referred_by. 
2. The total cost for a particular order line = no_of_items * item_cost. 
3. While we will choose 5 from the odd numbered questions you are encouraged to attempt all the questions. 

1. Display all the rows and columns in the CLIENT table. Sort by client name in reverse alphabetical order. 
2. Display the item number and total cost for each order line (total cost = no of items X item cost). Name the calculated column TOTAL COST. 
3. Display all the client numbers in the ORDER table. Remove duplicates. 
4. Display the order number and client number from the ORDER table. Output the result in the format. Client clientno ordered orderno 
5. Display full details from the ORDER_LINE table where the item number is (first condition) between 1 and 200 (no or operators) OR the item number is greater than 1000 AND (second condition) the item cost is not in the list 1000, 2000, 3000 OR the order number is not equal to 1000. 
6. Display the client name and order date for all orders using the traditional method. 
7. Repeat query (6) but also display all clients who have never ordered anything. 
8. Display the client name and order date for all orders using the natural join keywords. 
9. Display the client name and order date for all orders using the JOIN . . . USING method. 
10. Display the client number, order date and shipping date for all orders where the shipping date is between three and six months after the order date. 
11. Display the client number and name and the client number and name of the person who referred that client. 
12. Display the client name in upper case only and in lower case only. 
13. Display the second to fifth characters in each client name. 
14. Display the item_cost and then round it to the nearest hundred, ten, unit, tenth and hundredth. 
15. Display the item_cost and then truncate it to the nearest hundred, ten, unit, tenth and hundredth. 
16. Display the order number, order line number and the shipping date. If the shipping date is null, display the string not shipped yet . 
17. Display the order number and average item cost for each order. 
18. Display the clientno and total value for all orders placed by that client. Output the result in the following format: Client clientno has placed orders to the value of total value 
19. Display all clients whose name begins with the letter J or contains the letter M anywhere or contains E as the third letter. 
20. Using a set operator, display the client number of all clients who have never placed an order. 
21. Using a set operator, display the client number of all clients who have ever placed an order and whose name does not contain the string Sm. 
22. Display the order number, number of lines in the order, total number of items and total value for all orders that have a total value greater than $100 
23. Display the client name for all clients who have placed an order where any order line has more than 3 items. Do not use a table join anywhere in your query. 
24. Display the order number for all orders whose average item cost is greater than the overall average item cost across all orders. 
25. Display the client number and the value of the highest value order placed by that client. (High challenge question - well above exam standard). 
26. Display the earliest shipping date in the format: DD/MON/YYYY 
27. Display the order number and the number of months since the order was shipped for all orders that have been shipped in the last year (365 days). (Hint: Unshipped orders will have a null value). 
28. Display the item_number, the total number of times that item has been sold and the average cost for that item. Restrict that output to items that have been included in more than 500 orders. (Hint: Assume an item will appear in only one order line of an order). 
29. Display the surname for all employees who earn less the average salary of all those employees in the department with the lowest average salary. 
30. Display the client number and the total number of orders the client has placed for all clients who have placed at least one order in 2011. (Hint: Use exists). 

MARKING CRITERIA 

SECTION A 

1. Entities - no missing entities, appropriate names, no redundant entities, etc. 
2. Cardinalities and optionalities all shown and correct. 
3. Complete list of relations, showing all applicable attributes, primary keys and foreign keys. 
4. Sophistication: well presented solution; good layout; innovative approach; correct diagrams/notation; solution easy to read and understand; solution comprehensive 

SECTION B 

1. Relations - no missing relations, appropriate names, no redundant relations. 
2. All primary keys present and correctly notated. 
3. All foreign keys present and correctly notated. 
4. All attributes present. 
5. All repeating groups resolved. 
6. Derived attributes indicated in brackets. 
7. All 2NF and transitive dependencies resolved. 
8. All relations correctly notated using USQ methodology. 

SECTION C 

1.Four marks awarded for each correct SQL statement. 
2. Alternative approaches to the model answer could be accepted unless they do not follow the rules / requirements set out in the specification, are poorly optimised or are poorly constructed (SQL). 
3. Part marks may be awarded if an answer only has a small problem or an alternative solution is presented that works but is not ideally optimised / constructed. 
4. There are 5 questions for the total of 20 marks. 

SECTION D 

1.Two marks awarded for each correct SQL statement of the 5 chosen to mark. 
2. Alternative approaches to the model answer will often be accepted unless they do not follow the rules / requirements set out in the specification, are poorly optimised or are poorly constructed (SQL). 
3. Part marks may be awarded if an answer only has a small problem or an alternative solution is presented that works but is not ideally optimised / constructed.

Reference no: EM13134787

Questions Cloud

Calculate the rate of production of h2o : The rate of decomposition of C3H6 in the following reaction is 0.45 M/s.  Calculate the rate of production of H2O. 2 C3H6 + 2 NH3 + 3 O2 → 2 CH2CHCN + 6 H2O
What is the budgeted net income for february : What is the budgeted net income for February.
Explain how you arrived at conclusions : Explain how you arrived at this conclusions. Write a balance chemical equation for the reaction that occurs when sodium cyanide dissolves in water.
Midpoints of any quadrilateral form parallelogram : How can one prove that the 4 midpoints of the four sides of any quadrilateral form the vertices of a parallelogram using graph geometry (ie. x1, y1 etc. to denote the four vertices)?
You have been asked to design a data model : Law Associates is a large legal practice based in Sydney. You have been asked to design a data model for the practice based upon the following specification
Calculate keq : 8.0 moles of CO2 and 9.0 moles of H2O are places in a 5.0L vessel. When equilibrium is established, [C2H4]=0.45 M. Calculate Keq
What is the size of the firms profit : What is the size of the firm's profit. Suppose that the allocatively efficient output level in long-run equilibrium is 200 meals. Is the deadweight loss for this firm greater than or less than $60?
Identify the implied population in the information : Identify the implied population in the information here. Government agencies carefully monitor water quality and its effect on wetlands
Explain the regions of high electron density : Identify the most stable arrangement of the regions of high electron density. Diagram and name the type of structure that the molecules has based on positions of the atoms.

Reviews

Write a Review

PL-SQL Programming Questions & Answers

  Write sql statement to produce single column

Write an SQL statement to produce a single column called ItemLocation that combines the SKU_Description,the phrase "is located in."

  Create report using wizard or based on sql query

Create a report using the wizard or based on an SQL query that that shows Courses that instructors are approved to teach. Show Course Number, First Name, and Last Name of Instructor.

  Write sql queries

Write a query to display the last name, department number, and salary of any employee whose department number and salary both match the department number and salary of any employee who earns a commission.

  Determine resonant frequency in series rlc resonant circuit

Given the series RLC resonant circuit in the figure, operating at variable frequency, determine: The resonant frequency ω o ,  The circuit’s quality factor Q , The cut-off frequencies, f 1  & f 2  and the bandwidth BW

  Write queries in sql and relational algebra

Write given queries in SQL and relational algebra: Determine cities from which one can fly to Toronto with one change of planes, and using same type of the aircraft for both legs of trip.

  Write sql statement to create user defined function

Write SQL statement which creates user defined function which returns int value. This int return value is obtained by deducting the lowest Count field value from the highest Count field value of Part table.

  Write sql commands to implement profile

Write SQL commands which would implement this profile. Next, write query that would list profile, profile resource name, and limit value for the new profile.

  Write pl-sql procedures and functions

Write PL/SQL procedures and functions to populate and query that database

  Describe the meaning of keyword exists and not exists

Describe the meaning of the keyword EXISTS. Describe how any and all relate to EXISTS and NOT EXISTS. Write a query which will display names of any customers who are interested in all artists.

  Design new transaction by sql statements

Code SQL statements to update view as follows: change spelling of Mark Tobey to Mark Toby. Design new Transaction for Mark Toby. Suppose you have essential transaction, work, and customer data.

  Convert requirement to logic and then to sql

Prepare the SQL query for each of given requirements. Convert requirement to logic, then to SQL. Illustrate the names of all products which have been sold.

  Write down name of actors in ascending order

Write down actors (or actress, your choice, but not both) who have won at least two (2) Academy Awards for best actor/actress. Provide the actor name, movie title & year. Order the result by actor name."

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd