Given this aviation database, named CH2_AVIA, work the following

advertisement
Given this aviation database, named CH2_AVIA, work the following problems:
30. For each table, identify, where possible,
a. The primary key
Table CHARTER:
Table AIRCRAFT:
Table MODEL:
Table PILOT:
Table EMPLOYEE:
Table CUSTOMER:
CHAR_TRIP
AC_NUM
MOD_CODE
EMP_NUM
EMP_NUM
CUS_CODE
b. A superkey
Note: The super key and secondary key compositions were
described in the note that accompanied Problem 27. The same
arguments may be pursued with reference to parts b, c and e of this
problem.
Table CHARTER:
Table AIRCRAFT:
Table MODEL:
Table PILOT:
Table EMPLOYEE:
Table CUSTOMER:
CHAR_TRIP + CHAR_DATE
AC_NUM + MOD-CODE
MOD_CODE + MOD_NAME
EMP_NUM + PIL_LICENSE
EMP_NUM + EMP_DOB
CUS_CODE + CUS_LNAME
c. a candidate key
Table CHARTER: No practical candidate key is available. For example,
CHAR_DATE + CHAR_DESTINATION + AC_NUMBER +
CHAR_PILOT + CHAR_COPILOT
will still not necessarily yield unique matches, because it is possible to fly an
aircraft to the same destination twice on one date with the same pilot and copilot.
You could, of course, present the argument that the combination of all the
attributes would yield a unique outcome.
Table AIRCRAFT:
Table MODEL:
Table PILOT:
See the previous discussion
See the previous discussion
See the previous discussion
Table EMPLOYEE: See the previous discussion. But Perhaps the combination
of
EMP_LNAME + EMP_FNAME + EMP_INITIAL + EMP_DOB
will yield an acceptable candidate key.
Table CUSTOMER: See the previous discussion
d. The foreign key(s)
Table CHARTER:
CHAR_PILOT (references PILOT)
CHAR_COPILOT (references PILOT)
AC_NUMBER (references AIRCRAFT)
CUS_CODE (references CUSTOMER)
Table AIRCRAFT:
Table MODEL:
Table PILOT:
Table EMPLOYEE:
Table CUSTOMER:
MOD_CODE
NONE
EMP_NUM (references EMPLOYEE)
NONE
NONE
e. a secondary key.
Table CHARTER:
CHAR_DESTINATION
Table AIRCRAFT:
Table MODEL:
Table PILOT:
Table EMPLOYEE:
Table CUSTOMER:
CHAR_DATE + AC_NUMBER +
MOD_CODE
MOD_MANUFACTURER + MOD_NAME
PIL_LICENSE + PIL_MED_DATE
EMP_LNAME + EMP_FNAME + EMP_DOB
CUS_LNAME + CUS_FNAME + CUS_PHONE
31. Create the Entity Relationship diagram. Hint: Take a look at the table contents.
You will discover that an AIRCRAFT can be used to fly many CHARTER trips,
but that each CHARTER trip is flown by one AIRCRAFT. Similarly, you will
discover that a MODEL references many AIRCRAFT, but each AIRCRAFT
references a single MODEL, and so on.
Note: Database design properly precedes the creation of table
structures and contents. However, we have found that our students
generally find it much easier to understand design concepts and
requirements after they have examined some data. By observing
actual attribute values, the abstract notion of relationships becomes
"real" and, therefore, more easily understood. So, throughout this
chapter and in the chapter's question and problem sets, we have
shown the table structures and contents first and then the E-R
diagram is constructed to reflect the available information. Actually,
this process is too often typical of real world projects in which
"documentation after the fact" and "reverse engineering" are an
unfortunate reality. Do stress that proper design always begins at the
conceptual level and that table structures and contents are done at the
implementation stage... after the design is judged to be correct. We will
follow the appropriate procedures when we examine design issues in
greater detail in Chapter 3.
After carefully exploring the CH2_AVIA database's contents, note the following
relationships:

a CUSTOMER can request many CHARTER trips, but each CHARTER trip is
requested by one CUSTOMER.

each CHARTER trip requires one AIRCRAFT, but an AIRCRAFT may be used
to fly many different CHARTER trips.

each AIRCRAFT is of a certain MODEL and, because the charter company may
have many aircraft of a given model, each MODEL may reference many
AIRCRAFT.

a PILOT may pilot many CHARTER trips, but each CHARTER trip is piloted by
one PILOT.

a PILOT may serve as a copilot on a CHARTER trip.

each PILOT is an EMPLOYEE (but not all EMPLOYEEs are PILOTs!).
The E-R diagram reflects this list of relationships:
The Chen ERD
1
CUSTOMER
M
requests
M
CHARTER
M
copilots
flies
M
1
pilots
1
AIRCRAFT
M
1
PILOT
references
1
1
is a
1
EMPLOYEE
MODEL
The Crow’s Foot ERD
CUSTOMER
requests
copilots
CHARTER
flies
pilots
AIRCRAFT
PILOT
references
is a
MODEL
EMPLOYEE
Remind the students that the orientation of the E-R diagram's components is immaterial.
Show the students that the E-R diagram is just as valid if the entities are re-arranged. The
key is the proper identification of all the relationships. However, emphasize these points:

It is considered to be good form to avoid crossing relationship lines

The dual relationships between CHARTER and PILOT are a typical indication of
the existence of synonyms. Such synonyms are undesirable. (They will be
removed in problem 33.)

Relationships are always read from the 1 to the M side in a 1:M relationship.
Therefore, AIRCRAFT flies CHARTER and MODEL references AIRCRAFT.

If a 1:1 relationship exists, that relationship is read from the entity that contains
the common attributes to the entity that contains the unique attributes. Therefore,
the EMPLOYEE is a PILOT. (The EMPLOYEE entity contains the common
attributes such as names and addresses, while the PILOT entity contains only
those attributes – such as medical certificates and pilot licenses that are unique to
pilots.)
32. Create the relational schema.
Problem 31's E-R diagram, when implemented, yields problem 32's Relational Schema.
33. Modify the ERD you created in problem 31 to eliminate the problems created by
the use of synonyms. Hint: Modify the CHARTER table structure by eliminating
the CHAR_PILOT and CHAR_COPILOT attributes, and then create a
composite table named CREW to link the CHARTER and EMPLOYEE tables.
(Some crewmembers, such as flight attendants, may not be pilots. That’s why the
EMPLOYEE table enters into this relationship.)
The following ERD shows the results of the modification:
The Chen ERD
1
CUSTOMER
M
requests
M
flies
CHARTER
1
1
M
AIRCRAFT
M
CREW
M
1
PILOT
1
is an
references
1
1
MODEL
EMPLOYEE
The Crow’s Foot ERD
M
CUSTOMER
requests
CHARTER
flies
requires
AIRCRAFT
CREW
references
is assigned to
PILOT
is an
EMPLOYEE
MODEL
As you review this solution, explain that the modification requires action at the
implementation level. First, you would have to delete the original relationship between
CHARTER and PILOT, then create the CREW table to contain the CHAR_TRIP and
EMP_NUM attributes, then create the relationship between CHARTER and EMPLOYEE
through CREW. The new database relationships are illustrated in the following relational
schema. (Use the CH2-AVIA_CO_2 database on the Instructor’s CD.)
The CREW table contents are shown next.
Note that the table no longer contains nulls and
that a separate entry is made for each
crewmember. This structure makes it possible to
add as many crewmembers as necessary to any
charter flight.
Compare the contents of this CREW table to the
CHAR_PILOT and CHAR_COPILOT entries in
the original CHARTER table and note that no
information has been lost as a consequence of
the structural change.
Download