Midterm Practice Questions


Q1. Why would you choose a database system instead of simply storing data in operating system files? When would it make sense not to use a database system?


Q2. Consider the following schema:

Suppliers(SID integer, sname varchar(40), address varchar(40))

Parts(PID integer, pname varchar(40), color varchar(40))

Catalog(SID integer, PID integer, price real)

The Suppliers relation describes suppliers of parts. The Parts relation contains information about each part. The Catalog relation lists the prices in dollars charged for parts by suppliers. (The keys are uppercase: sid is a key for Suppliers, (sid,pid) is a key for Catalog, and pid is a key for Parts.)

Write the following queries in relational algebra.

  1. Find the names of suppliers who supply all blue parts.
  2. Find the names of suppliers who supply two or more parts.
  3. Find the names of parts that do not have a supplier.
  4. Find the names of parts that have exactly one supplier.

Q3. (From Textbook Ex. 5.3) The following relations keep track of airline flight information:

Flights( _flno: integer_, from: string, to: string, distance: integer, departs: time, arrives: time, price: real)

Aircraft(_aid: integer_, aname: string, cruisingrange: integer)

Certified(_eid: integer, aid: integer_)

Employees(_eid: integer_, ename: string, salary: integer)

Italics denote primary keys. Note that the Employees relation describes pilots and other kinds of employees as well; every pilot is certified for some aircraft, and only pilots are certified to fly.

Write each of the following queries in SQL.

  1. Find the names of aircraft such that all pilots certified to operate them have salaries more than $80,000.
  2. For each pilot who is certified for more than three aircraft, find the eid and the maximum cruisingrange of the aircraft for which she or he is certified.
  3. Find the names of pilots whose salary is less than the price of the cheapest route from Los Angeles to Honolulu.
  4. For all aircraft with cruisingrange over 1000 miles, find the name of the aircraft 1nd the average salary of all pilots certified for this aircraft.
  5. Find the names of pilots certified for some Boeing aircraft.
  6. Find the aids of all aircraft that can be used on routes from Los Angeles to Chicago.
  7. Identify the routes that can be piloted by every pilot who makes more than $100,000.
  8. Print the enames of pilots who can operate planes with cruisingrange greater than 3000 miles but are not certified on any Boeing aircraft.
  9. A customer wants to travel from Madison to New York with no more than two changes of flight. List the choice of departure times from Madison if the customer wants to arrive in New York by 6 p.m.
  10. Compute the difference between the average salary of a pilot and the average salary of all employees (including pilots).
  11. Print the name and salary of every nonpilot whose salary is more than the average salary for pilots.
  12. Print the names of employees who are certified only on aircrafts with cruising range longer than 1000 miles.
  13. Print the names of employees who are certified only on aircrafts with cruising range longer than 1000 miles, but on at least two such aircrafts.
  14. Print the names of employees who are certified only on aircrafts with cruising range longer than 1000 miles and who are certified on some Boeing aircraft.