Professional Documents
Culture Documents
Homework 5 Solutions
Homework 5 Solutions
Homework #5 – Solutions
4.6 - Repeat Exercise 4.5, but use the AIRLINE schema of Figure 3.8.
Answer:
4.8 Write appropriate SQL DDL statements for declaring the LIBRARY relational database
schema of Figure 4.6. Specify the keys and referential triggered actions.
Answer:
4.11 - Specify the updates of Exercise 3.11 using the SQL update commands.
Answer:
Below, we show how each of the updates may be specified in SQL. Notice that some of
these updates violate integrity constraints as discussed in the solution to Exercise 5.10,
and hence should be rejected if executed on the database of Figure 5.6.
(a) Insert < 'Robert', 'F', 'Scott', '943775543', '21-JUN-42', '2365 Newcastle Rd,
Bellaire, TX', M, 58000, '888665555', 1 > into EMPLOYEE.
INSERT INTO EMPLOYEE
VALUES ('Robert', 'F', 'Scott', '943775543', '21-JUN-42', '2365 Newcastle Rd, Bellaire, TX',
M, 58000, '888665555', 1)
(e) Insert < '453453453', 'John', M, '12-DEC-60', 'SPOUSE' > into DEPENDENT.
INSERT INTO DEPENDENT
VALUES ('453453453', 'John', M, '12-DEC-60', 'SPOUSE')
(i) Modify the MGRSSN and MGRSTARTDATE of the DEPARTMENT tuple with DNUMBER=
5 to '123456789' and '01-OCT-88', respectively.
UPDATE DEPARTMENT
SET MGRSSN = '123456789', MGRSTARTDATE = '01-OCT-88'
WHERE DNUMBER= 5
(j) Modify the SUPERSSN attribute of the EMPLOYEE tuple with SSN= '999887777' to
'943775543'.
UPDATE EMPLOYEE
SET SUPERSSN = '943775543'
WHERE SSN= '999887777'
(k) Modify the HOURS attribute of the WORKS_ON tuple with ESSN= '999887777' and
PNO= 10 to '5.0'.
UPDATE WORKS_ON
SET HOURS = '5.0'
WHERE ESSN= '999887777' AND PNO= 10
5.5 - Specify the following additional queries on the database of Figure 3.5 in SQL. Show the
query results if applied to the database of Figure 3.6.
(a) For each department whose average employee salary is more than $30,000, retrieve
the department name and the number of employees working for that department.
(b) Suppose we want the number of male employees in each department rather than all
employees (as in Exercise 5.4a). Can we specify this query in SQL? Why or why not?
Answers:
Result:
DNAME DNUMBER COUNT(*)
Research 5 4
Administration 4 3
Headquarters 1 1
(b) The query may still be specified in SQL by using a nested query as follows (not all
implementations may support this type of query):
SELECT DNAME, COUNT (*)
FROM DEPARTMENT, EMPLOYEE
WHERE DNUMBER=DNO AND SEX='M' AND DNO IN ( SELECT DNO
FROM EMPLOYEE
GROUP BY DNO
HAVING AVG (SALARY) > 30000 )
GROUP BY DNAME
Result:
DNAME DNUMBER COUNT(*)
Research 5 3
Administration 4 1
Headquarters 1 1
5.6 - Specify the following queries in SQL on the database schema of Figure 1.2.
(a) Retrieve the names and major departments of all straight-A students (students who
have a grade of A in all their courses).
(b) Retrieve the names and major departments of all students who do not have any grade
of A in any of their courses.
Answer:
(a) SELECT Name, Major
FROM STUDENT
WHERE NOT EXISTS ( SELECT *
FROM GRADE_REPORT
WHERE StudentNumber= STUDENT.StudentNumber AND NOT(Grade='A'))
5.7 - In SQL, specify the following queries on the database specified in Figure 3.5 using the
concept of nested queries and the concepts described in this chapter.
a. Retrieve the names of all employees who work in the department that has the employee
with the highest salary among all employees.
b. Retrieve the names of all employees whose supervisor’s supervisor has '888665555' for
Ssn.
c. Retrieve the names of employees who make at least $10,000 more than the employee
who is paid the least in the company.
Answers: