Explore BrainMass

Database Normalization

Consider a typical sales invoice that would include the following information. Design a single table to hold all of the information required to store an invoice including this information. Next, apply normalization to reduce this table to third normal form. Prepare a Word document showing the original and final tables. Include a short summary (2-3 paragraphs) of the problems with the original single table design and how normalization improved the design.
? Order_id
? Order_date
? Customer_id
? Customer_name
? Customer_address
? Customer_city
? Customer_state
? Item_id
? Item_description
? Item_qty
? Item_price
? Item_total_price
? Order_total_price

Please consider the following functional dependencies (FDs):
Order_Id -> Customer_id, Order_date, Order_total_price
Item_Id, Order_Id -> Item_Qty, Item_total_price, Item_description, Item_Price
Customer_id -> Customer_Name, Customer_Address, Customer_City, Customer_State
Item_Id -> Item_description, Item_price
You will use these FDs as you analyze the table for normalization.
Also, we do not want to loose any information (e.g. Order_total_price is potential derivable from other pieces of data, we want that field to show up in one of the resulting tables).

Solution Preview

The above columns can be divided into 4 tables of each in 3 NF as shown below. Check the attached document for ...

Solution Summary

This solution clearly explains Database Normalization concepts using an example.