During the conversion of the model no new decisions were made.
Functional Dependencies and 3NF
All tables have primary keys, and all columns in each table contain atomic values, so the schema is in 1NF
MATERIAL_BUNDLE Table
(MaterialType, VendorID, DatePurchased) -> Quantity
(MaterialType, VendorID, DatePurchased) -> Price
(MaterialType, VendorID, DatePurchased) -> ReturnDate
No column is dependent on anything other than the full primary key
SEED_BUNDLE Table
(SeedType, VendorID, DatePurchased) -> Quantity
(SeedType, VendorID, DatePurchased) -> Price
(SeedType, VendorID, DatePurchased) -> Return Date
No column is dependent on anything other than the full primary key
VENDOR Table
VendorID -> Name
VendorID -> Address
VendorID -> PhoneNum
No column is dependent on anything other than the full primary key
CONTACTS Table
VendorID, FarmerContact are both part of primary key
ISRESPONSIBLEFOR Table
FarmerID, FieldLocation are both part of primary key
FARMER Table
FarmerID -> Name
FarmerID -> PhoneNum
FarmerID -> Address
FarmerID -> Salary
FarmerID -> HireDateNo
Column is dependent on anything other than the full primary key
FIELD Table
Location -> SoilType
Location -> CurrentPlant
Location -> DatePlantedNo
Column is dependent on anything other than the full primary key
HARVEST Table
(HarvestDate, FieldLocatoin) -> PlantType
(HarvestDate, FieldLocatoin) -> PlantCount
(HarvestDate, FieldLocatoin) -> ExpirationDate
(HarvestDate, FieldLocatoin) -> ReturnDate
(DistributorID, FarmerContact) -> DistributorSold
The Harvest table is dependent on the FieldLocation and HarvestDate. The Distributor mentioned
above refers to the ID of the Distributor who bought the harvest, if applicable.
DISTRIBUTOR Table
DistributorID -> Name
DistributorID -> Address
DistributorID -> PhoneNum
All columns are fully dependent on primary key
Functional Dependencies and 3NF
All tables have primary keys, and all columns in each table contain atomic values, so the schema is in 1NF
MATERIAL_BUNDLE Table
(MaterialType, VendorID, DatePurchased) -> Quantity
(MaterialType, VendorID, DatePurchased) -> Price
(MaterialType, VendorID, DatePurchased) -> ReturnDate
No column is dependent on anything other than the full primary key
SEED_BUNDLE Table
(SeedType, VendorID, DatePurchased) -> Quantity
(SeedType, VendorID, DatePurchased) -> Price
(SeedType, VendorID, DatePurchased) -> Return Date
No column is dependent on anything other than the full primary key
VENDOR Table
VendorID -> Name
VendorID -> Address
VendorID -> PhoneNum
No column is dependent on anything other than the full primary key
CONTACTS Table
VendorID, FarmerContact are both part of primary key
ISRESPONSIBLEFOR Table
FarmerID, FieldLocation are both part of primary key
FARMER Table
FarmerID -> Name
FarmerID -> PhoneNum
FarmerID -> Address
FarmerID -> Salary
FarmerID -> HireDateNo
Column is dependent on anything other than the full primary key
FIELD Table
Location -> SoilType
Location -> CurrentPlant
Location -> DatePlantedNo
Column is dependent on anything other than the full primary key
HARVEST Table
(HarvestDate, FieldLocatoin) -> PlantType
(HarvestDate, FieldLocatoin) -> PlantCount
(HarvestDate, FieldLocatoin) -> ExpirationDate
(HarvestDate, FieldLocatoin) -> ReturnDate
(DistributorID, FarmerContact) -> DistributorSold
The Harvest table is dependent on the FieldLocation and HarvestDate. The Distributor mentioned
above refers to the ID of the Distributor who bought the harvest, if applicable.
DISTRIBUTOR Table
DistributorID -> Name
DistributorID -> Address
DistributorID -> PhoneNum
All columns are fully dependent on primary key