Phụ thuộc hàm đầy đủ • Định nghĩa – Tập thuộc tính Y được gọi là phụ thuộc hàm đầy đủ vào tập thuộc tính X nếu nó là phụ thuộc hàm vào X và không phụ thuộc hàm vào bất kỳ một tập con nà
Trang 1Bộ Môn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu Chương III Chuẩn hóa
Trang 23 Khái niệm bao đóng.
4 Phụ thuộc hàm đầy đủ.
Trang 3Bộ Mụn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu Chương III Chuẩn húa
1 Phép tách bảo toàn thông tin.
2 Phép tách bảo toàn tập phụ thuộc hàm.
3.3.5 Kết luận.
1 Các bước đưa về các dạng chuẩn hóa.
2 Kết luận.
Trang 5Bộ Môn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu Chương III Chuẩn hóa
-5
3.3.1 Giíi thiÖu
2 C¸c møc chuÈn ho¸
C¸c quan hÖ tæng qu¸t (® chuÈn ho¸ vµ cha chuÈn ho¸) ·
C¸c quan hÖ 1NF (c¸c quan hÖ ® chuÈn ho¸) ·
Trang 63.3.2 Phụ thuộc hàm
1 Định nghĩa
• Cho trước quan hệ R với tập thuộc tính U={A1, A2, An}, ta
có X, Y ⊆ U là tập các thuộc tính con của U Ta nói Y là phụ thuộc hàm vào X (hay X suy ra Y) nếu và chỉ nếu với mọi quan hệ r xác định trên R và với mọi 2 bộ t1, t2 bất kỳ, nếu t1[X] = t2[X] thì suy ra t1[Y] = t2[Y] tại bất kỳ thời điểm nào.
• Ký hiệu:
– X → Y
• Lưu ý:
– Có thể không có t1[X] = t2[X] nhưng vẫn tồn tại phụ thuộc hàm
– Yếu tố: tại bất kỳ thời điểm nào
Trang 7Bộ Môn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu Chương III Chuẩn hóa
– nÕu X → Y, X → Z th× X → YZ
– nÕu X → Y, WY → Z th× XW → Z
– nÕu X → Y, Z ⊆ Y th× X → Z
Trang 83.3.2 Phụ thuộc hàm
3 Khái niệm bao đóng
• Bao đóng của tập phụ thuộc hàm F+
– Tập hợp tất cả các phụ thuộc hàm được suy ra từ F
• Tập phụ thuộc hàm F tối thiểu
– Nếu không tồn tại một phụ thuộc hàm X → Y Є F sao cho: F \ {X →
Y} tương đương với F– Cách tìm:
• vế phải của các phụ thuộc hàm chỉ để 1 thuộc tính
• vế trái của các phụ thuộc hàm không bỏ được thuộc tính nào
• không có phụ thuộc hàm nào bỏ được
• Bao đóng của tập các thuộc tính X+
– Tập hợp tất cả các các thuộc tính phụ thuộc hàm vào X
– X+ = {A | A là thuộc tính sao cho X → A Є F+}
Trang 9Bộ Mụn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn húa
9
3.3.2 Phụ thuộc hàm
4 Phụ thuộc hàm đầy đủ
• Định nghĩa
– Tập thuộc tính Y được gọi là phụ thuộc hàm đầy đủ vào tập thuộc
tính X nếu nó là phụ thuộc hàm vào X và không phụ thuộc hàm vào bất kỳ một tập con nào của các thuộc tính của X
• Khoá tối thiểu
– X → U Є F+
– Với mọi X' là tập con thực sự của X, không tồn tại: X' → U
• Lưu ý
đẩy đủ trừ khi có giải thích tường minh
Trang 10P2 400 S3 10 Paris P2 200 S4 20 London P2 200
Trang 11Bộ Mụn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn húa
11
3.3.3 Các mức chuẩn hóa
3 Mức 2NF
• Định nghĩa
– Quan hệ R được gọi là ở dạng chuẩn thứ hai (2NF) nếu và chỉ nếu nó
ở dạng chuẩn thứ nhất và mọi thuộc tính không khoá đều phụ thuộc hàm đầy đủ vào khoá chính
– Một thuộc tính được gọi là thuộc tính không khoá nếu nó không tham
dự vào thành phần của khoá chính hoặc khóa ứng cử.
• ý nghĩa
– Giảm vấn đề dư thừa và không nhất quán của dữ liệu
Trang 123.3.3 Các mức chuẩn hóa
• Nhận xét
– Nếu mức 1NF có khóa là khoá đơn: 1NF => 2NF
– Nếu mức 1NF không có thuộc tính không khóa: 1NF => 2NF
• Chuyển từ 1NF sang 2NF: phép tách sơ đồ quan hệ
– Thay thế các quan hệ mức 1NF bằng tập các quan hệ ở mức 2NF
thông qua các ánh xạ – Các vấn đề cần giải quyết khi thực hiện phép tách
• Bảo toàn thông tin khi chuyển đổi.
• Bảo toàn tập phụ thuộc hàm.
– Ví dụ
Trang 13Bộ Mụn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn húa
13
3.3.3 Các mức chuẩn hóa
• Các vấn đề còn tồn tại với mức 2NF
– Phụ thuộc hàm bắc cầu vẫn tồn tại và tạo ra sự dư thừa dữ liệu.– Ví dụ: giả sử City → Status (Status phụ thuộc hàm gián tiếp vào
Trang 143.3.3 Các mức chuẩn hóa
4 Mức 3NF
• Định nghĩa
– Quan hệ R được gọi là ở dạng chuẩn thứ ba (3NF) nếu và chỉ nếu
nó ở dạng chuẩn thứ 2 (2NF) và mọi thuộc tính không khoá đều không phụ thuộc hàm bắc cầu vào khoá chính thông qua các thuộc tính không khoá
– Y gọi là phụ thuộc hàm bắc cầu vào X thông qua Z nếu Y phụ thuộc
hàm vào Z (Z→Y) và Z lại phụ thuộc hàm vào X (X→Z) (với điều kiện X không phụ thuộc hàm vào Z hoặc Y)
Trang 15Bộ Mụn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn húa
• hoặc A là thuộc tính khoá
• Chuyển sang 3NF: phép tách sơ đồ quan hệ
– Thay thế các quan hệ mức 2NF bằng tập các quan hệ ở mức 3NF
thông qua các ánh xạ – Các vấn đề cần giải quyết khi thực hiện phép tách
• Bảo toàn thông tin khi chuyển đổi.
• Bảo toàn tập phụ thuộc hàm.
– Ví dụ
– Định lý: quan hệ mức 1NF luôn có thể tách thành các sơ đồ quan
hệ con mức 3NF mà vẫn bảo toàn thông tin
Trang 163.3.3 Các mức chuẩn hóa
• Lưu ý:
– mức độ chuẩn hoá đối với một lược đồ quan hệ đã cho được xác
định bởi ngữ nghĩa (semantic) chứ không phải bởi các giá trị đã có mặt trong quan hệ tương ứng tại một thời điểm cụ thể nào đó
– phải biết ý nghĩa của dữ liệu rồi mới có thể đưa ra nhận định hiện tại
lược đồ tương ứng của quan hệ đó ở dạng chuẩn nào– HQTCSDL không thể khẳng định rằng một lược đồ quan hệ đã ở
dạng chuẩn tốt nhất (3NF chẳng hạn) nếu như chưa nhận đầy đủ thông tin về các phụ thuộc dữ liệu tương ứng
Trang 17Bộ Mụn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn húa
17
3.3.3 Các mức chuẩn hóa
• Các vấn đề còn tồn tại với mức 3NF
– Phụ thuộc hàm bắc cầu của các thuộc tính khoá vẫn có thể tồn tại
và tạo ra sự dư thừa dữ liệu
– Ví dụ:
Trang 183.3.3 Các mức chuẩn hóa
5 Mức BCNF (Boyce Codd Normal Form) –
• Định nghĩa
– Một thuộc tính (có thể là thuộc tính ghép) được gọi là thuộc tính
quyết định (determinant) nếu một thuộc tính khác nào đó là phụ thuộc hàm đầy đủ vào nó
– Quan hệ đã được chuẩn hoá R được gọi là ở dạng chuẩn BCNF
nếu mọi thuộc tính quyết định đều là khoá ứng cử (candidate key)
• ý nghĩa
– Làm biến mất các phụ thuộc hàm bắc cầu
– Sơ đồ quan hệ sẽ không còn vấn đề dư thừa và không nhất quán
của dữ liệu
Trang 19Bộ Mụn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn húa
– BCNF không nêu lên điều kiện đầu tiên quan hệ đã cho phải ở dạng
chuẩn 3NF và sau đó mới thoả mãn thêm điều kiện nữa Như vậy:
• cần lưu ý là định nghĩa BCNF không hoàn toàn tương đương với định nghĩa 3NF.
• định nghĩa 3NF không hoàn toàn phù hợp với trường hợp của một quan
hệ có hai khoá ứng cử phủ nhau như sẽ xem xét sau này.
– Hai khoá ứng cử là tập phủ nếu mỗi khoá gồm hơn một thuộc tính và có thuộc tính chung
• Tuy nhiên, điều sau đây vẫn còn đúng:
– Bất kỳ một quan hệ nào không ở dạng chuẩn 3NF (hay BCNF) đều có thể
được tách thành một tập tương đương ở dạng chuẩn 3NF (hay BCNF)
– Nếu quan hệ ở mức BCNF thì cũng đã đạt mức 3NF
Trang 203.3.3 Các mức chuẩn hóa
• Cách nhận biết mức BCNF
1 Quan hệ R mức 1NF là BCNF nếu mọi phụ thuộc hàm tối thiểu
X→A (A là thuộc tính đơn, A X) đều có dạng X là khoá.∉
2 Là 1NF và không có bất cứ một phụ thuộc hàm bắc cầu nào
Trang 21Bộ Môn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn hóa
Trang 223.3.3 Các mức chuẩn hóa
• Xét các trường hợp cụ thể
– Trường hợp 3:
• Quan hệ là 3NF nhưng không là BCNF vì khoá ứng cử là tập phủ
• Ví dụ 1: Xét quan hệ SSP(S#, SNAME, P#, QTY)
• Ví dụ 2: Xét quan hệ SJT với các thuộc tính S (Student), J (Subject), T (Teacher)
– ý nghĩa của một bộ trong quan hệ SJT là một sinh viên được chỉ định được học một môn được chỉ định là do một giáo viên được chỉ định dạy
– Mỗi môn học cho mỗi sinh viên học môn đó chỉ do một giáo viên dạy – Mỗi giáo viên chỉ dạy một môn học
– Mỗi môn học có thể do một vài giáo viên dạy
Smith Math Prof White Smith Physics Prof Green Jones Math Prof White Jones Physics Prof Brown
Hình 3.11 Bảng dữ liệu mẫu cho quan hệ SJT
Trang 23Bộ Mụn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn húa
• Ví dụ: quan hệ EXAM với các thuộc tính S (Student), J (Subject), P (Position)
– ý nghĩa của một bộ của quan hệ EXAM là một sinh viên được chỉ định đã thi một môn học được chỉ định sẽ đạt được một vị trí đã chỉ định trong danh sách lớp
– Với mục đích của bài toán, đưa ra một giả thiết không thể có hai sinh viên cùng nhận một vị trí trong một môn học nào đó
Trang 25Bộ Mụn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn húa
25
3.3.4 Phép tách sơ đồ quan hệ
1 Phép tách bảo toàn thông tin.
• Xét ví dụ cụ thể
– Phép tách mất thông tin: tách theo cột B
– R(A, B, C) R1(A, B) R2(B,C) R'(A,B,C)
Trang 263.3.4 Phép tách sơ đồ quan hệ
1 Phép tách bảo toàn thông tin.
• Xét ví dụ cụ thể
– Phép tách bảo toàn thông tin: tách theo cột C
– R(A, B, C) R1(A, C) R2(B,C) R''(A,B,C)
Trang 27Bộ Môn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn hóa
• Th«ng qua phô thuéc hµm
Trang 282 PhÐp t¸ch b¶o toµn tËp phô thuéc hµm.
• XÐt vÝ dô cô thÓ
– R(City, Street, PostalCode)
– F(CS→P, P→C) t¸ch thµnh (SP, CP), dÔ thÊy ®©y lµ phÐp t¸ch b¶o
Hµ Néi §¹i Cå ViÖt 2142
Hµ Néi §¹i Cå ViÖt 2144
Trang 29Bộ Mụn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn húa
29
3.3.4 Phép tách sơ đồ quan hệ
2 Phép tách bảo toàn tập phụ thuộc hàm.
• Kết luận
– Phép tách quan hệ có thể dẫn tới các trường hợp sau:
1 Bảo toàn thông tin + Bảo toàn tập phụ thuộc hàm
2 Không bảo toàn thông tin + Bảo toàn tập phụ thuộc hàm
3 Bảo toàn thông tin + Không bảo toàn tập phụ thuộc hàm
4 Không bảo toàn thông tin + Không bảo toàn tập phụ thuộc hàm
– Việc kiểm tra tính bảo toàn tập phụ thuộc hàm là rất khó khăn và
tốn nhiều thời gian– Định lý:
1 Mọi quan hệ luôn có thể tách thành các sơ đồ quan hệ con mức 3NF
mà vẫn bảo toàn thông tin và bảo toàn tập phụ thuộc hàm
2 Mọi quan hệ ít nhất mức 1NF luôn có thể tách thành các sơ đồ quan hệ con mức BCNF mà vẫn bảo toàn thông tin
– Việc chứng minh các định lý trên sẽ đưa ra phương pháp tách sơ đồ
quan hệ
Trang 303.3.4 Phép tách sơ đồ quan hệ
• một cách tách thành 3NF:
– R(A1, A2, , An), – Tập phụ thuộc hàm tối thiểu: F(X1→ A1, X2→ A2, , Xn→ An) – K là 1 khoá của R
– Phép tách {X1A1, X2A2, , XnAn} U {K} sẽ đảm bảo các tính chất bảo toàn và
đưa ra mức 3NF
• Nhận xét:
– {X1A1, X2A2, , XnAn} đảm bảo tính bảo toàn tập phụ thuộc hàm và 3NF – thêm khóa K => đảm bảo tính bảo toàn thông tin, nhưng nếu 1 trong n quan
hệ con đã có chứa K thì quan hệ con K không cần xét đến
– Có thể tách 1 quan hệ thành BCNF, bảo toàn thông tin nhưng chưa
chắc đã bảo toàn tập phụ thuộc hàm, đồng thời việc kiểm tra tính bảo toàn tập phụ thuộc hàm là rất khó và tốn nhiều thời gian => trong thực tế nhà thiết kế thường dừng ở mức 3NF (Xem slide 28)
• R(City, Street, PostalCode)
• F(CS → P, P → C) tách thành (SP, CP) là những quan hệ BCNF nhưng phép tách không bảo toàn tập phụ thuộc hàm
Trang 31Bộ Môn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn hóa
Trang 33Bộ Mụn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn húa
33
3.3.5 Kết luận.
• Giả sử có 2 khách hàng, thông tin về 2 khách hàng thuê đư
ợc biểu diễn dưới dạng bảng Customer_Rental:
Trang 343.3.5 Kết luận.
– Thuộc tính khóa chính được nhận diện cho bảng chưa
chuẩn hóa Customer_Rental là Customer_No.
– Nhóm lặp lại: (Property_No, PAddress, RentStart, RentFinish, Rent, Owner_ No, OName).
– Để chuyển thành 1NF, phải đảm bảo chỉ có một giá trị tại mỗi ô của bảng – 2 Cách chuyển thành 1NF:
• Cách 1: Loại bỏ nhóm lặp bằng cách đưa dữ liệu tương ứng của khách hàng vào từng hàng của bảng.
Trang 35Bộ Môn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn hóa
35
Trang 363.5 KÕt luËn
3.5.2 KÕt luËn
Trang 37Bộ Môn ĐTTH Khoa ĐTVT, Đại Học BKHN Cơ sở dữ liệu
Chương III Chuẩn hóa