THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ
Trang 1CHƯƠNG 4
THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ
“Làm thế nào để có một cơ sở dữ liệu tốt?”
Trang 2Quá trình thiết kế CSDL
Thế giới thực
Tập hợp các yêu cầu
và phân tích Các yêu cầu CSDL Thiết kế khái niệm
Lược đồ logic (trong một mô hình dữ liệu bậc cao) Ánh xạ mô hình dữ liệu
Lược đồ khái niệm (trong mô hình dữ liệu của một DBMS cụ thể )
Trang 3Cần loại bỏ dư thừa dữ liệu
Khi dư thừa dữ liệu dẫn đến những khó khăn khi cập nhật dữ liệu
Trang 4Phụ thuộc hàm
Dạng dư thừa dữ liệu thường gặp
Trang 5Hệ qui tắc suy diễn Amstrong
A1 Phản xạ (Reflexivity)
Nếu Y ⊆ X thì X→Y
A2 Tăng trưởng (Augmentation)
Nếu X→Y thì mọi Z⊆U, XZ→YZ
A3 Bắc cầu (Transitivity)
Nếu X→Y và Y→Z thì X→Z
Trang 6Hệ tiên đề Armstrong là đúng và đủ
Trang 7Các qui tắc suy diễn bổ sung
Quy tắc hợp (the union rule)
Nếu {X→Y, X→Z} đúng thì X→YZ đúng
Quy tắc giả bắc cầu (the pseudotransitivity rule)
{X→Y, WY→Z} đúng thì WX→Z đúng
Quy tắc tách (the decomposition rule)
Nếu (X→Y) đúng và Z⊆Y thì X→Z đúng
Trang 8Tập phụ thuộc hàm tối tiểu
F và G là tương đương nếu F+=G+, ký hiệu F~G
Có thể kiểm tra được F và G, tập nào phủ tập nào và chúng
có tương đương hay không (tính X+)
Định lí 7.9:
Cho tập phụ thuộc hàm F luôn tìm được phủ tối tiểu của F
Trang 9Tập phụ thuộc hàm tối tiểu
Tập PTH F là tối tiểu nếu:
1 Vế phải của mỗi phụ thuộc trong F gồm đúng một thuộc
tính
2 Không thể bỏ đi một phụ thuộc nào trong F mà vẫn thu
được một tập phụ thuộc tương đương với nó
3 Không thể bỏ đi bất kỳ một thuộc tính nào ở vế trái của
một phụ thuộc nào trong F mà vẫn thu được một tập phụthuộc tương đương với nó
Trang 10Tập phụ thuộc hàm tối tiểu
Cho F = {A→B, B→A, A→C, C→A, B→C}
Có thể tìm được hai tập phụ thuộc tối tiểu tương đương với FF1 = {A→B, B→C, C→A}
F2 = {A→B, B→A, A→C, C→A}
Trang 11Phép tách các lược đồ quan hệ
Việc tách một lược đồ quan hệ trước hết là thay thế tập U các thuộc tính bằng những tập con U1, U2,…, Uk của nósao cho
U = U1 ∪ U2 ∪…∪ Uk
Chú ý rằng ở đây, ta không đòi hỏi U1, U2,…, Uk phải rời nhau
Trang 13Phép tách các lược đồ quan hệ
Ta sử dụng một số ký hiệu sau:
Dấu hoa thị (*) ký hiệu phép kết nối tự nhiên trên giao của hai
tập thuộc tính
ρ = (R1, R2,…, Rk) hay ρ = (U1, U2,…, Uk) là phép tách lược
đồ quan hệ trên U thành các lược đồ con tương ứng với các tập con thuộc tính U1, U2,…, Uk
ri = là hình chiếu của quan hệ r lên tập con thuộc tính Ui
mρ(r) = r1 * r2 *… * rk là kết quả của phép kết nối tự nhiên của
các hình chiếu của r lên các tập con thuộc tính trong
phép tách ρ
Trang 14Phép tách các lược đồ quan hệ
Phép tách U thành {U1, U2,…, Uk} được gọi là
kết nối không thất thoát (hay ngắn gọn là LJ ) nếu với mỗi quan hệ r của lược đồ này, ta đều có
r = r1 * r2 *… * rk = m ρ(r)
Trang 15Tách kết nối không mất thông tin
Kiểm tra được tính kết nối không thất thoát của một phép tách (thuật toán 3.2)
Trang 16Tách kết nối không mất thông tin
Tập các phụ thuộc hàm là: A→C, B→C, C→D, DE→C, CE→A
Trang 17Tách kết nối không mất thông tin
Tập các phụ thuộc hàm là: A→C, B→C, C→D, DE→C, CE→A
Trang 18Phép tách các lược đồ
Mặc dù là những tính chất quan trọng của phép tách lược đồ
quan hệ nhưng một phép tách có thể thoả mãn tính
chất này nhưng lại không thoả mãn tính chất kia
Chẳng hạn, phép tách lược đồ quan hệ 〈ABCD, {A→B, C→D}〉
thành hai lược đồ 〈AB, {A→B}〉 và 〈CD, {C→D}〉 là phép tách bảo toàn phụ thuộc nhưng không phải là phép tách với kết nối không thất thoát
Trang 19phép tách các lược đồ
Ta xét lược đồ CSZ với ba thuộc tính C (City), S (Street)
và Z (Zip code) và tập phụ thuộc hàm F = {CS→Z, Z→C}
Từ phụ thuộc hàm Z→C hay CS∩CZ→CS−CZ suy ra
rằng
phép tách CSZ thành hai lược đồ CS và CZ có tính chất kết nối không mất thông tin
nhưng không có tính chất bảo toàn phụ thuộc
Trang 201NF
Trang 21Cho lược đồ quan hệ R = 〈U, F〉 với khoá K
R được gọi là thuộc dạng chuẩn thứ hai (2NF)
nếu nó thuộc dạng chuẩn thứ nhất và
Trang 22(X→Y), (Y→A), và không có (Y→X)
Trang 23Lược đồ quan hệ R = 〈U, F〉 được gọi là thuộc dạng
chuẩn Boyce-Codd (BCNF) nếu từ (X→A) đúng trong R
và A∉X kéo theo X là siêu khoá
Định lý 7.12
Nếu lược đồ quan hệ R = 〈U, F〉 thuộc dạng chuẩn
Boyce-Codd (BCNF) thì nó thuộc dạng chuẩn thứ ba
Trang 24Chuẩn hoá lược đồ quan hệ
Bổ đề 7.7: Giả sử R = 〈U, F〉 là một lược đồ quan hệ và
ρ = (R1, R2,… Ri , Rk) là một phép tách của R, trong đó ∀i, Ri = 〈Ui, Fi〉.
Giả sử ρ là kết nối không thất thoát Khi đó, nếu thay thế lược đồ Ri trong ρ
bởi S1, S2,…, Sm , với σ = (S1, S2,…, Sm) là phép tách kết nối
không thất thoát của Ri thì phép tách τ = (R1, R2,…, Ri-1, S1, S2,…,
Sm, Ri+1,…, Rk) thu được cũng là kết nối không thất thoát
Giả sử ρ là kết nối không thất thoát Nếu bổ sung vào ρ một số lược đồ
quan hệ trên U ( Rk+1,…,Rn ) thì phép tách
τ = (R1, R2,…, Rk, Rk+1,…,Rn ) thu được cũng là kết nối không thất thoát.
Trang 25Chuẩn hoá lược đồ quan hệ
Ví dụ
Tách để đưa lược đồ về chuẩn BCNF (trang 33)
Trang 27Phép tách bảo toàn phụ thuộc thành 3NF
Nếu có những thuộc tính không xuất hiện trong bất kỳ một phụ thuộc hàm
nào của F, ở cả vế trái lẫn vế phải thì ta xác định một lược đồ quan
hệ gồm những thuộc tính này rồi xoá chúng khỏi U.
Nếu một trong các phụ thuộc hàm của F chứa toàn thể các thuộc tính của
U thì phép tách cần tìm chỉ gồm R.
Trường hợp còn lại, phép tách kết quả gồm các lược đồ ứng với các tập
thuộc tính có dạng XA, trong đó mỗi phụ thuộc hàm X→A là thuộc F
Tuy vậy, nếu xảy ra tình huống X→A1, X→A2,…, X→Ak cùng thuộc F thì
thay cho các lược đồ với tập thuộc tính dạng XAi, ta sử dụng lược đồ ứng với tập thuộc tính XA1A2…Ak vì rõ ràng sự thay thế này cho kết
Trang 28Tỏch vừa là LJ vừa bảo toàn phụ thuộc
Định lý 7.14 Cho R(U) là một l−ợc đồ quan hệ, trong đó tập thuộc tính U =
{A1, A2, ,An} và F là tập các phụ thuộc hàm xác định trên R Không giảm tổng quát, giả sử F là một phủ tối tiểu có dạng:
F = {Yj → Aij ⏐j=1, 2, , m}.
Gọi X là một khoá của l−ợc đồ R(U, F) Khi đó phép tách:
ρ = (Y1Ai1, Y2Ai2, , YmAim , X)
là một phép tách của R, thỏa mãn ba tính chất sau:
z ρ là một phép tách bảo toàn thông tin;
z ρ là một phép tách bảo toàn tập F;
z Các l−ợc đồ con trong ρ đều ở 3NF.
Trang 30Phụ thuộc đa trị
NÕu X → Y tho¶ trªn r th× X →→ Y còng tho¶ trªn r
Trang 32−ợc đồ quan hệ TBK(CTHRSG) cho ở ví dụ 7.17 cùng với tập D các phụ
phụ thuộc đa trị nh− sau:
→T Mỗi lớp học phần do một giảng viên chịu trách nhiệm.
→C Tại mỗi phòng học, trong mỗi giờ học chỉ có một lớp học phần.
→R Tại mỗi giờ học, mỗi giảng viên chỉ có thể dạy đ−ợc ở một phòng học.
→G Đối với mỗi lớp học phần, mỗi sinh viên chỉ có một điểm đánh giá.
→R Tại mỗi giờ học, mỗi sinh viên chỉ có mặt ở một phòng học.
→→HR Tập các cặp phòng-giờ học đ−ợc xác định theo mỗi học phần mà
thuộc gì vào bất cứ thuộc tính nào khác
Trang 33Ví dụ tách LJ đ−a về 4NF
z Xét thấy C →→ HR vi phạm 4NF, do vậy tách TBK thành (CHR) và (CTSG) L−ợc đồ con (CHR) có khóa là HR đã ở dạng chuẩn bốn L−ợc đồ (CTSG) có khóa là CS ch−a ở dạng chuẩn bốn vì có C →→ T ( suy ra từ C → T) vi phạm chuẩn