## Database Programming :: Projects :: Normalize This

### Problem

For each of the tables below you are to do the following:

- List the functional dependencies if they aren't already listed.
- Write the table in 1NF or explain why it is already in 1NF.
- Write the table in 2NF or explain why it is already in 2NF.
- Write the table in 3NF or explain why it is already in 3NF.
- Underline the primary key at each step.
- After writing the table in 3NF, list the foreign keys and which table holds their corresponding attribute.

### Table One

Shipment (ShipNum, ShipperName, ShipperContact, ShipperFax, PackageNum, PackDepartureDate, PackArrivalDate, PackDestinaltionCity, PackShipCost, InsuranceValue, InsurerCompany, InsurerAddress)

FDs = {ShipNum --> ShipperName, ShipperContact, ShipperFax

PackageNum --> PackDepartureDate, PackArrivalDate, PackDestinationCity, PackShipCost, InsuranceValue, InsurerCompany

InsurerCompany --> InsurerAddress }

### Table Two

Truck (TruckNum, TruckType, TypeDesc, TruckMiles, DatePurchased, TruckSerialNum, BaseCity, BaseState, BasePhone, BaseManagerName, ManagerPhone, BasePhone)

Assumptions: A truck is based at a single base and a base can be the base for many trucks.

### Table Three

R (A, B, C, D, E, F, G, H, I, J)

FD = { A,B,C,D --> E, F, G, H, I J

B, C, D --> E, F

A --> G, H, I, J

E --> F

H, I --> J }