INVOICE TABLE NORMALIZATION ASSIGNMENT
1. Original Relational Schema
INVOICE (INV_NUM, PROD_NUM, SALE_DATE, PROD_LABEL, VEND_CODE, VEND_NAME,
QUANT_SOLD, PROD_PRICE)
Primary Key: (INV_NUM, PROD_NUM)
2. Functional Dependencies
Full Dependency:
(INV_NUM, PROD_NUM) → QUANT_SOLD
Partial Dependencies:
INV_NUM → SALE_DATE
PROD_NUM → PROD_LABEL
PROD_NUM → VEND_CODE
PROD_NUM → PROD_PRICE
Transitive Dependency:
VEND_CODE → VEND_NAME
Therefore: PROD_NUM → VEND_CODE → VEND_NAME
3. Original Dependency Diagram
SALE_DATE
↑
INV_NUM
↑
(INV_NUM, PROD_NUM) → QUANT_SOLD
↑
PROD_NUM → PROD_LABEL
→ PROD_PRICE
→ VEND_CODE → VEND_NAME
4. Decomposed Relations (After Removing Partial Dependencies)
INVOICE (INV_NUM, SALE_DATE)
Primary Key: INV_NUM
LINE (INV_NUM, PROD_NUM, QUANT_SOLD)
Primary Key: (INV_NUM, PROD_NUM)
PRODUCT (PROD_NUM, PROD_LABEL, VEND_CODE, PROD_PRICE)
Primary Key: PROD_NUM
VENDOR (VEND_CODE, VEND_NAME)
Primary Key: VEND_CODE
5. New Dependency Diagrams
INVOICE:
INV_NUM → SALE_DATE
LINE:
(INV_NUM, PROD_NUM) → QUANT_SOLD
PRODUCT:
PROD_NUM → PROD_LABEL
PROD_NUM → PROD_PRICE
PROD_NUM → VEND_CODE
VENDOR:
VEND_CODE → VEND_NAME
6. Normal Forms Achieved
All tables are in Third Normal Form (3NF).
1NF: No repeating groups.
2NF: No partial dependencies.
3NF: No transitive dependencies.