Question 1. The Relational model (10 marks).
A spreadsheet was used to keep data for the booking system of the ABC Clinic, with sample data shown in Table 1. Columns 1-4 contain information for doctors, Columns 5-9 contain information for patients and the last 3 columns contain information for patient’s appointments with doctors. The spreadsheet for the table is also available on Canvas.
Table 1. Data for the ABC Clinic
With more and more patients and doctors, the ABC Clinic decides to go for database system to manage data. You are asked to design a relational database to keep data to answer clinic operation queries such as:
- List the patient appointments for each doctor for a given date.
- When a patient rings to make an appointment, give the available time slots for a given date.
- Retrieve the address of patients to send notices via mail services.
1.1. (4 marks) A database schema of one relation as shown below is proposed, where semantics of attributes are self-explanatory. Discuss at least two weaknesses of this design.
ABC(doc-name, doc-gender, registration_num, qualification, pat-name, pat-gender,
DOB, address, phone-num, appoint-date, appoint-time, type)
1.2. (6 marks) Propose your own design for the database. Your design must be able to keep all information shown in Table 1. Explain your design. Give the schema for each relation in your database and specify their data integrity constraints (underline primary keys and put asterisk for foreign keys).
Question 2. Relational model -- SQL DDL and DML (10 marks)
According to your design for the ABC database in Question 1.2, complete below tasks to populate your database with the data shown in Table 1.
2.1. (5 marks) Give the CREATE TABLE statement for each relation, including primary key and any foreign key constraints.
2.2. (5 marks) Give the INSERT INTO statements for each relation in your design. All data shown in Table 1 must be inserted into your database.
Question 3. SQL (30 marks).
In addition to the lecture notes, you should also study by yourself the SQL*Plus tutorial on Canvas (the Oracle section) and other resources for Oracle syntax and useful functions.
The ER model for the Academics database is as follows:
The relational schema for the Academics database is as follows:
DEPARTMENT(deptnum, descrip, instname, deptname, state, postcode)
ACADEMIC(acnum, deptnum*, famname, givename, initials, title)
FIELD(fieldnum, id, title)
INTEREST(fieldnum*, acnum*, descrip)
Some notes on the Academics database:
- An academic department belongs to one institution (instname) and often has many academics. An academic only works for one department.
- Research papers (PAPER) are often authored by several academics, and of course an academic often writes several papers (AUTHOR).
- A research field (FIELD) often attracts many academics and an academic can have interest (INTEREST) in several research fields.
Download and run the SQL script academics.sql on Canvas (the Oracle section) to define and populate the Academics database in your Oracle account.
Write ONE SQL query for each of questions 3.1--3.8, and each component of an SQL statement must be on a separate line. Your query should not produce duplicates in output but use DISTINCT only if necessary. Include answers for Questions 3.9 and 3.10 as comments starting with “//” to make an SQL script executable in SQL Developer.
Each question below is worth 3 marks.
3.1. List the names of all the institutions (instname) currently in the database.
3.2. How many academics are there in the department where deptnum=100. Return the total number.
3.3. List in alphabetical order the family name (famname) and given name (givename) of academics who has a title.
3.4. List papers whose title contains the words "Data" or "Software", in upper or lower cases. List the panumand titleof these papers.
3.5. Return the panumof papers written by the academic “Mark Yee”.
3.6. Return the famnameand givenameof academics whose acnumis in the range [100..199] or whose givenamestarts with “S”.
3.7. List the panumof papers having at least two authors.
3.8. List in alphabetical order the famname, givenameof academics who work for institutions in Queensland. Note: the value of Queensland in the database is QLD or Qld.
3.9. The below query is intended to list the fieldnum and title of fields whose fieldnum is between 500 and 599 or whose title contains the word 'Data'. But it has errors. Give the correct SQL query. select fieldnum, title from field where fieldnum >=500 and <=599 or upper(title) like 'Data%';
3.10. Describe in English what the output will be from the SQL query below. Do not give a literal description of each line of the query. select acnum, field.fieldnum, title, descrip from field, interest where field.fieldnum=interest.fieldnum and trim(ID) like 'B.1._'
Question 4. ER model (30 marks).
TXT is a logistics and transport company. You are asked to design a database for scheduling their transport jobs. Requirements for the database are as follows:
- Each truck has a unique registration No, and is also described by type, and year made.
- Each customer of TXT has a unique ABN and is also described by the name, and contact phone number.
- Delivery jobs are identified by the unique job No, and are also described by “from” and “to” destinations, and estimated distance to travel.
- Drivers are identified by the unique employee ID, and are also described by first name, last name, address and phone number.
- A customer may book in several delivery jobs and a job is from only one customer. A job must have an “owning” customer.
- A driver can be assigned several delivery jobs but a job has only one driver. Some description about the job is also recorded. Each job has a Status (eg open, complete,etc) and this is maintained in the database.
- A job is assigned only one truck but a truck can be assigned to several jobs.
According to the given description, state any assumptions you make and construct an Entity Relationship (ER) diagram for the database. You must represent entities, relationships and their attributes, and all applicable constraints in your ER diagram. Explain any concepts in the description that cannot be expressed in the ER diagram.
- Your ER diagram must only use notations from the lecture notes and must not be hand drawn. ER diagrams using other notations will receive zero mark for this question.
- You can use the ER diagramming tool Dia, which can be downloaded from Canvas (The Tools section) and is also available as an App on mydesktop.rmit.edu.au. When exporting your ER diagram in Dia to a pdf file, you need to first set “page setup” to “Fit to 1 by 1” so that your pdf diagram scales properly. You can also use any other diagramming tool.
Some common errors in ER diagrams:
- If the scenario is set in say, a club, you do not need an entity for the club. The arrangement you depict in the ER diagram isthe club.
- Entities do not connect to other entities with straight lines. Entities have relationships to/with other entities so there has to be a relationship between connected entities.
- Every entity must have a primary key.
- The names of all relationships and entities must be unique.
- There are no foreign keys in ER diagrams. They come about as part of mapping an ER model into a relational schema.
Question 5. Relational database design. (20 marks).
Designing an ER diagram is the first step for database design. It is critical that we understand what makes a good design. Figure 2 is an ER diagram designed for the Orders database about customers and their orders for a company. The semantics of attributes, entity sets and relationships is as expressed in their names. Each item in the database must have an “owning” salesman, whether or not it is being ordered.
5.1. (5 marks) Discuss any issues with the given ER diagram. Give your suggested ER diagram.
5.2. (15 marks) Map your suggested ER diagram to a relational database schema. For each relation schema in the mapped relational database schema, indicate the primary key (underline) and any foreign keys (asterisk).