You are on page 1of 4

1.

Invoice(OrderID, OrderDate, CustomerID, CustomerName, CustomerAddress,


ProductID, ProductDescription, ProductStandardPrice, OrderedQuantity)
FD:
F1: OrderID → OrderDate, CustomerID, CustomerName, CustomerAddress
F2: CustomerID → CustomerName, CustomerAddress
F3: ProductID → ProductDescription, ProductStandardPrice
F4: OrderID, ProductID → OrderedQuantity

InvoiceOrderID OrderDate CustomerID CustomerName


R A B C D

CustomerAddress ProductID ProductDescription ProductStandardPrice


OrderedQuantity
E F G H I

We have:
R(A,B,C,D,F,G,H,I)
FD:
F1:A->B,C,D,E
F2:C->D,E
F3:F->G,H
F4:A,F->I
Key: K{A,F}

Minimal basis:
F1:A->B,C
F2:C->D,E
F3:F->G,H
F4:A->F,I

We see in F2 C is not a key and D,E are not a prime so this relation is not 3NF
R1(A,B,C)
R2(C,D,E)
R3(F,G,H)
R4(A,F, I)
Because key in F4 we have:
R1(A,B,C)
R2(C,D,E)
R3(F,G,H)
R4(A,F, I)
Answer: After decomposition the relation Invoice into 3NF we have 4 relations:
R1(OrderID, OrderDate, CustomerID)
R2(CustomerID, CustomerName, CustomerAddress)
R3(ProductID, ProductDescription, ProductStandardPrice)
R4(OrderID, ProductID, OrderQuantity)

2.
a)
Các phụ thuộc hàm là:
- TechNo -> TechName, DeptID, Department
- DeptID -> Department
- JobNo -> Date, School, SchoolID
- SchoolID -> School
- TechNo, JobNo -> Hoursworked
=> Primary key(TechNo, JobNo)
b)
R(TechNo, TechName, DeptID, Department, JobNo, Date, SchoolID, School, Hoursworked)
* 1NF: Ở đây chưa là dạng 1NF vì TechName còn chứa nhiều giá trị => để chuyển về dạng 1NF
ta chia thành từng hàng khác nhau chứa từng tên
*2NF:
- TechTable(TechNo,TechName,DeptID,Department)
R1(TechNo, JobNo, Date, SchoolID, School, Hoursworked
=> R1 vẫn chưa là dạng chuẩn 2 nên tiếp tục tách R1
- Job(JobNo, Date, SchoolID, School)
- TechJob(TechNo, JobNo, Hoursworked)
=> CSDL được chia dưới dạng chuẩn 2NF thành 3 bảng: TechTable, Job, TechJob.
* 3NF: Các thuộc tính không khóa không phụ thuộc trực tiếp vào khóa chính
- Bảng TechTable vi phạm dạng chuẩn 3 vì Department phụ thuộc bắc cầu vào khóa chính
=> Chia thành bảng:
+) Depttable (DeptID, Department )
+) TechTable ( TechNo, TechName, DeptID)
- Bảng Job vi phạm dạng chuẩn 3 vì Department phụ thuộc vào DeptID
=> Chia thành bảng:
+) School(SchoolID, School)
+) Jobtable( JobNo,Date,SchoolID)
- Bảng TechJob thỏa mãn dạng chuẩn 3:
TechJob(TechNo, JobNo, Hoursworked)
=> CSDL được chia dưới dạng chuẩn 3 thành 5 bảng là: TechJob, School, JobTable, Depttable,
TechTable

You might also like