The following exercises are based on the Premiere Products database.
1. Using your knowledge of Premiere Products, determine the functional dependencies that exist in the following
table. After determining the functional dependencies, convert this table to an equivalent collection of tables that
are in third normal form.
Part (PartNum, Description, OnHand, Class, Warehouse,
Price, (OrderNum, OrderDate, CustomerNum,
CustomerName, RepNum, LastName, FirstName,
NumOrdered, QuotedPrice) )
2. List the functional dependencies in the following table that concerns invoicing (an application Premiere Products
is considering adding to its database), subject to the specified conditions. For a given invoice (identified by
the InvoiceNum), there will be a single customer. The customer's number, name, and complete address appear
on the invoice, as does the date. Also, there may be several different parts appearing on the invoice. For each
part that appears, display the part number, description, price, and number shipped. Each customer that orders
a particular part pays the same price. Convert this table to an equivalent collection of tables that are in third normal
form.
Invoice (InvoiceNum, CustomerNum, LastName, FirstName,
Street, City, State, Zip, Date, (PartNum,
Description, Price, NumShipped) )
3. The requirements for Premiere Products have changed. A number and a name now identify each warehouse.
Units of each part may be stored in multiple warehouses, and it is important to know precisely how many parts
are stored in each warehouse. In addition, Premiere Products now wants to manage information about the suppliers
from which it purchases parts. For each part, Premiere Products needs to know the number and name of
each supplier as well as the expected lead time for delivering each part. (Lead time is the amount of time a supplier
is expected to take to deliver the part after Premiere Products has ordered it.) Each part can have many suppliers, and each supplier can supply many parts. Using this information, convert the following unnormalized
relation to fourth normal form:
Part (PartNum, Description, Class, Price,
(WarehouseNum, WarehouseName, OnHand),
(SupplierNum, SupplierName, LeadTime) )