数据库代写 | INFO20003 Database Systems

本次澳洲代写是关于database system 限时测试的一个Assignment

Authorised Materials

Calculators: Casio fx82 calculators are permitted

Instructions to Invigilators

 The examination paper IS TO REMAIN in the examination room

 Students are to be provided with 1 script book

 Provide extra script books on request

Instructions to Students

 The total mark for this paper is 120

 Ensure your student number is written on all script books and answer sheets during writing time

 Attempt all questions in all 10 sections, which are of unequal marks value

 Answer all questions on the right-hand lined pages of the script book

 Start the answer to each question on a new page in the script book

 The left-hand unlined pages of script books are for draft working and notes and will not be marked

 State clearly and justify any assumptions made

 Write legibly in blue or black pen

 Mobile phones, tablets, laptops, and other electronic devices, wallets and purses must be placed beneath your desk

 All electronic devices (including mobile phones and phone alarms) must be switched off and remain under your desk until you leave the examination venue. No items may be taken to the toilet

This page is left intentionally blank.

Section 1 – ER Modelling

The Australian Department of Health and Human Services (DHHS) has a requirement to store the vaccination record of every individual (known as a patient) that resides in Australia who is eligible for a Medicare card. For families, children under the age of 15 are stored on the family card (refer Figure 1). Each Medicare card number is associated with only one family. Every Medicare card has a ‘valid to’ date stored as a month and year on the card (refer Figure 1). Each family member holds a position number on the card. For example to identify Jessica Smith (refer Figure 1) both her Medicare number (1234567890) and position (4) on the Medicare card would be required.

Figure 1: Australian Medicare card (DHHS, Australia)

Each Medicare card is attached to one residential address, contact email, and phone number. For all patients listed on a Medicare card we record their gender, birthdate, first name, last name, and if they have any known allergies (e.g. Penicillin, Cortisone, Codeine). If patients do have an allergy we need to know what the allergy is and the reaction (severe, moderate or mild).

The DHHS needs to record mandatory vaccinations (e.g. Measles, Polio, Whooping Cough, Diphtheria, Tuberculosis and Tetanus) as well as optional vaccination types (e.g. HPV, Flu, Hepatitis A, Hepatitis B, Cholera, Typhoid, Yellow Fever).

For each vaccination event that is given to patients we must record the vaccination type, date of vaccination and the vaccination batch number. Vaccine producers can produce many different types of vaccines and each vaccine can have many batches.

Patients can receive their vaccination from any registered doctor. Every doctor is identified by a unique medical practitioner number (MPN). We record the Medical Practitioner’s title (Dr, Mr, Mrs, Ms, Prof.), first name, last name, registered business address, email, and business phone numbers.

Q1. Draw a conceptual model in either Crow’s Foot or Chen’s notation for this case study (in your script book). Be sure to write down any assumptions you make.

(20 marks)

This page is left intentionally blank

Section 2 – SQL-DDL

Figure 2: Data model for SQL DDL

Q2. Write SQL statements to create the tables for the above data model. Be sure to specify primary and foreign keys. You do not need to specify whether the fields are NULL/NOT NULL.

Choose appropriate data types for attributes that are not obvious.

(5 Marks)

Section 3 – SQL-DML

Figure 3 shows the schema for a small business database that contains data about employees, products, customers and orders.

Figure 3: Data model for SQL DML

Write a single SQL statement to correctly answer each of the following questions (3A – 3D). DO NOT USE VIEWS or VARIABLES to answer questions. Query nesting is allowed.

The relations are repeated here for your convenience.

employees (empid, lastname, firstname, hiredate, address, phone,

FK

managerid )

orders (orderid,

FK

custid ,

FK

empid , orderdate, shippeddate, freight, shipname)

customers (custid, companyname, contactname, address, phone)

orderdetails (

FK

orderid ,

FK

productid , quantity, discount)

products (productid, productname, unitprice, discontinued)

Q3A. Write a query that returns customers (company names) and the details of their orders (orderid and orderdate), including customers who placed no orders.

(3 marks)

Q3B. Write a query that returns the first name and last name of employees whose manager was hired prior to 01/01/2002.

(4 marks)

Q3C. Write a query that returns customers whose company name is ‘Google’, and for each customer return the total number of orders and total quantities for all products that were not discontinued (‘1’ means discontinued, ‘0’ not discontinued).

(5 marks)

Q3D. Write a query that returns the ID and company name of customers who placed orders in 2007 but not in 2008.

(8 marks)

Section 4 – Query Processing – Joins

Given the schema of Question 3 (SQL-DML), consider the relations Orders and Employees. Imagine that relation Employees has 1,000 pages and relation Orders 50,000 pages. Consider the following SQL statement:

SELECT *

FROM Employees NATURAL JOIN Orders

WHERE freight > 1000;

There are 502 buffer pages available in memory. Both relations are stored as simple heap files. Neither relation has any indexes built on it.

Q4A. What is the cost (in disk I/O’s) of performing this join using the Block-oriented Nested Loops Join algorithm? Provide the formulae you use to calculate your cost estimate.

(3 marks)

Q4B. What is the cost (in disk I/O’s) of performing this join using the Hash Join algorithm? Provide the formulae you use to calculate your cost estimate.

(3 marks)

Q4C. In comparing the cost of different algorithms, we count I/O (page accesses) and ignore all other costs. What is the reason behind this approach?

(2 marks)

Q4D. Which approach should be the least expensive for the given buffer size of 502 pages:

1. Simple Nested Loops Join

2. Page-oriented Nested Loops Join

3. Block-oriented Nested Loops Join

Please write the number of the correct response. No need to provide formulae for question 4D.