Nội dung chi tiết Chất lượng của lược đồ CSDL quan hệ Phụ thuộc hàm Dạng chuẩn... Đánh giá lược đồ quan hệ dựa trên tiêu chí không theo chuẩn - Ngữ nghĩa của các thuộc tính - Giả
Trang 1Chương 8 Phụ thuộc hàm &
Dạng chuẩn
Trang 2Nội dung chi tiết
Chất lượng của lược đồ CSDL quan hệ
Phụ thuộc hàm
Dạng chuẩn
Trang 3Chất lượng của lược đồ CSDL
QH
Như thế nào là thiết kế 1 lược đồ quan hệ tốt/tồi?
Đánh giá lược đồ quan hệ dựa trên tiêu chí (không theo chuẩn)
- Ngữ nghĩa của các thuộc tính
- Giảm giá trị trùng lắp trong các bộ
- Giảm giá trị null trong các bộ
- Không cho phép tồn tại các bộ dữ liệu sai (không xác
định)
Trang 4Ngữ nghĩa của thuộc tính
Làm thế nào để hiểu được giá trị của thuộc tính trong một bộ?
- Thiết kế lược đồ sao cho dễ dàng giải thích nghĩa của
nó
- Giữ cho các thuộc tính trên quan hệ không được trùng
lắp
Trang 5Trùng lắp dữ liệu
Khi một phần của dữ liệu có thể suy ra từ một số phần dữ liệu khác, ta nói có sự trùng lắp dữ liệu
Trang 6Khó khăn của thiết kế dữ liệu QH
Thiết kế dữ liệu quan hệ đòi hỏi thu thập các lược
đồ quan hệ tốt
Vì nếu lược đồ quan hệ là tồi
- Sẽ có nguy cơ dẫn tới trùng lắp thông tin
- Khó khăn trong việc thêm, xóa, sửa dữ liệu
Tênphim Nămsx Thờilượng Loạiphim Xưởngsx Diễnviên
Star Wars 1977 124 color Fox Carrie Fisher
Star Wars 1977 124 color Fox Mark Hamill
Star Wars 1977 124 color Fox Harrison Ford
Mighty Ducks 1991 104 color Disney Emilio Esteves
Wayne’s World 1992 95 color Paramount Dana Carvey
Wayne’s World 1992 95 color Paramount Mike Meyers
Trang 7Phân rã lược đồ
Phân rã là chia quan hệ gốc thành một vài quan hệ nhỏ hơn
- Mục đích: làm giảm sự trùng lắp thông tin
Hai đặc tính quan trọng cần phải duy trì trong suốt quá trình phân rã
- Sự bảo toàn thông tin
• Có thể tìm được bất kỳ thể hiện nào của quan hệ gốc từ các quan hệ được phân rã
- Bảo toàn phụ thuộc
• Các ràng buộc trên quan hệ gốc phải được đảm bảo còn giữ
Trang 8Ví dụ
Xét quan hệ Phim
Tênphim Nămsx Thờilượng Loạiphim Xưởngsx Diễnviên
Star Wars 1977 124 color Fox Carrie Fisher
Star Wars 1977 124 color Fox Mark Hamill
Star Wars 1977 124 color Fox Harrison Ford
Mighty Ducks 1991 104 color Disney Emilio Esteves
Wayne’s World 1992 95 color Paramount Dana Carvey
Wayne’s World 1992 95 color Paramount Mike Meyers
Bỏ sót cập nhật
Xóa luôn phim Thêm chính xác
Trang 9Ví dụ
Tìm cách tách quan hệ Phim
Tênphim Nămsx Thờilượng Loạiphim Xưởngsx
Star Wars 1977 124 color Fox Mighty Ducks 1991 104 color Disney Wayne’s World 1992 95 color Paramount
Diễnviên
Carrie Fisher Mark Hamill Harrison Ford Emilio Esteves
Tênphim Nămsx
Star Wars 1977 Star Wars 1977 Star Wars 1977 Mighty Ducks 1991
Trang 10Giá trị null trong các bộ
Giá trị null có thể xảy ra ở các trường hợp
- Thuộc tính không được áp dụng
- Giá trị tại thuộc tính chưa xác định
- Giá trị xác định, nhưng chưa nhập
Vì thế
- Nhiều giá trị null được lưu trong nhiều bộ
- Tốn nhiều không gian lưu trữ
- Không chắc chắn cho ra kết quả mong muốn khi sử
dụng các hàm Sum, Count
Trang 11Nội dung chi tiết
Trang 12 PTH được phát biểu dựa trên
- Ngữ nghĩa của môi trường ứng dụng
- Qui tắc
Trang 13Phụ thuộc hàm (tt)
PTH trên quan hệ R biểu diễn mối liên hệ giữa các
tập thuộc tính trong R
- Nếu 2 bộ của R có các giá trị giống nhau tại các thuộc
A’s B’s
Nếu Thì
A , A , …, A → B , B , …, B
Trang 15Ví dụ
Trang 16Ví dụ
Xét lược đồ quan hệ
Và thể hiện
Phim(Tênphim, Nămsx, Thờilượng, Loạiphim, Xưởngsx, Diễnviên)
Tênphim Nămsx Thờilượng Loạiphim Xưởngsx Diễnviên Star Wars 1977 124 color Fox Carrie Fisher Star Wars 1977 124 color Fox Mark Hamill
Star Wars 1977 124 color Fox Harrison Ford
Mighty Ducks 1991 104 color Disney Emilio Esteves
Wayne’s World 1992 95 color Paramount Dana Carvey
Wayne’s World 1992 95 color Paramount Mike Meyers
Trang 17Ví dụ (tt)
Tìm được nhiều PTH
Tênphim, Nămsx → Diễnviên
Không là phụ thuộc hàm
Tênphim, Nămsx → Thờilượng Tênphim, Nămsx → Loại
Tênphim, Nămsx → Xưởngsx
Trang 18Chú ý
Xét thể hiện r1
Tênphim Nămsx Thờilượng Loạiphim Xưởngsx Diễnviên
Star Wars 1977 124 color Fox Carrie Fisher
Star Wars 1977 124 color Fox Mark Hamill
Star Wars 1977 124 color Fox Harrison Ford
Mighty Ducks 1991 104 color Disney Emilio Esteves
Wayne’s World 1992 95 color Paramount Dana Carvey
Wayne’s World 1992 95 color Paramount Mike Meyers
Tênphim → Loại
Trang 19Chú ý (tt)
Xét thể hiện r2
Tênphim Nămsx Thờilượng Loạiphim Xưởngsx Diễnviên
Star Wars 1977 124 color Fox Carrie Fisher
Star Wars 1977 124 color Fox Mark Hamill
Star Wars 1977 124 color Fox Harrison Ford
Mighty Ducks 1991 104 color Disney Emilio Esteves
Kingkong 1993 120 color Paramount Fay Wray
Kingkong 1993 120 black/white Paramount Robert Amstrong
Tênphim → Loại
PTH phải được định nghĩa trên lược đồ quan hệ
Trang 20Hệ quả từ tập PTH
Cho F là tập các PTH định nghĩa trên R
- Nếu có 1 PTH f khác cũng được thỏa với mọi thể hiện
của R
- Thì ta gọi f là hệ quả của F
Trang 22Bao đóng của PTH
Closure of a Set of Functional Dependencies
Cho F là tập các PTH định nghĩa trên R
Tập hợp các PTH hệ quả từ F được gọi là bao đóng của F
- Ký hiệu F +
Trang 23Tìm bao đóng của F
Từ tập F ban đầu ta sử dụng định nghĩa hình thức của PTH để tìm bao đóng F+
Nếu F quá lớn, tìm F+ sẽ khó khăn và tốn thời gian
Trang 24Suy dẫn từ tập PTH
Cho trước một tập PTH trên 1 quan hệ
Có thể suy luận “quan hệ phải thỏa một tập PTH khác nào đó”
Khả năng suy dẫn nhằm khám phá thêm tập PTH
- Rất cần thiết để thiết kế các lược đồ quan hệ đạt chất lượng tốt
Trang 25Ví dụ
Xét lược đồ R(A,B,C) thỏa tập PTH
Ta có thể suy diễn R còn thỏa PTH
F = { f1: A → B
f2: B → C }
f3: A → C
Trang 26Luật dẫn Armstrong
Luật phản hồi
Trang 27Luật dẫn khác
Luật bắc cầu giả
Nếu X → Y và X → Z Thì X → Y, Z
Nếu X → Y và Z ⊆ Y
Thì X → Z
Trang 28Bao đóng của F (tt)
Cho F là tập các PTH định nghĩa trên R
Gọi f là một PTH được suy dẫn từ F
- Áp dụng luật dẫn cho các PTH trong F để có được f
Tập hợp các PTH suy dẫn từ F ký hiệu F’
- Ta muốn F’ = F+
Trang 29Tìm bao đóng của F (tt)
Từ tập F ban đầu ta sử dụng các luật dẫn để tìm bao đóng F+
Áp dụng luật dẫn vào F cho đến khi không không thể áp dụng được nữa
Trang 30• Với mỗi pth f trong F+
∗ Áp dụng luật phản hồi và luật cộng trên f , thêm các pth kết quả vào F+
• Với mỗi cặp pth f1 và f2 trong F+
∗ Nếu f1 và f2 có thể kết nối lại bằng luật bắt cầu
∗ Thì thêm pth kết quả vào F+
- Until F+ không thể thay đổi được nữa
Trang 32Ví dụ
A → B, B → H : A → H
CG → H, CG → I: CG → HI
A → C, CG → I : AG → I
Trang 33- Tìm bao đóng F +
- Kiểm tra f có nằm trong F + không
Tìm bao đóng F+ có hiệu quả ???
Trang 34Nhận xét (tt)
Chuyển sang bài toán thành viên
- Ta chỉ cần tìm bao đóng của tập thuộc tính X dựa trên F
- Kiểm tra Y có thuộc bao đóng của X hay không
Trang 35Bao đóng của tập thuộc tính X
Là tập hợp những VP của các PTH có VT là X nằm trong F
Trang 36Tìm bao đóng của X
(không còn thay đổi được nữa)
Tìm các PTH trong F có VT là các thuộc tính nằm trong X +
F
có VP không nằm trong X +
F
Trang 38 Có D trong bao đóng
Kết luận AB→D suy dẫn từ F
Trang 39 Không có A trong bao đóng
Kết luận D→A không suy dẫn từ F
Trang 40Một số tính chất (tt)
- Hai tập PTH F1 và F2 gọi là tương đương
Bổ đề
Mọi thể hiện của quan hệ
thỏa F1 ≡ Mọi thể hiện của quan hệ thỏa F2
F2 là hệ quả của F1
Trang 41- F1 là hệ quả của F2 ⇒ F1 được suy dẫn từ F2
- F2 là hệ quả của F1 ⇒ F2 được suy dẫn từ F1
Trang 43- F1 là hệ quả của F2 ⇒ F1 được suy dẫn từ F2
- F2 là hệ quả của F1 ⇒ F2 được suy dẫn từ F1
Trang 44Ví dụ
{A→BCDE} → {A→BC, A→D, CD→E}
- Xét CD→ E không thuộc trong F2
- F1 không được suy dẫn từ F2
- F1 không là hệ quả của F2
{A→BC, A→D, CD→E} → {A→BCDE}
- Xét F2 có A → E
Trang 46Một số khái niệm
Trang 47Một số khái niệm (tt)
Trang 49Một số khái niệm (tt)
PTH thừa
Trang 52Thuật toán tìm tập pth nhỏ nhất G dựa trên F
4 For each remaining FD X A in G→
If (G – {X A → }) is equivalent to G,
then remove X A from G.→
Trang 56Ví dụ (tt)
F = { A→C, A→B, B→C }
Có thể bỏ phụ thuộc hàm thừa nào?
Trang 57Khái niệm khóa
Trang 5840 40 50
b c d
- ABC, ABD, ACD, BCD
- AB, AC, AD, BC, BD, CD
Trang 59Khái niệm khóa (tt)
Định nghĩa (theo PTH)
- Cho quan hệ Q và tập PTH F định nghĩa trên Q
- K ⊆ Q+ là một khóa của Q nếu
• (i) f: K → Q + ∈ F+ (K+ = Q+)
• (ii) ¬∃ K’ ⊂ K | K’ → Q+
Trang 61• Nối một nút PTH (thuộc tính) đến một nút thuộc tính (PTH)
• Cung xuất phát từ nút thuộc tính A đến một nút PTH f, cùng với một cung từ nút PTH f đến nút thuộc tính B, biểu diễn cho PTH A → B
Khi F có nhiều PTT, đồ thị của F có chứa chu trình
Trang 63tổ hợp có chứa Ki
Vấn đề
Trang 64Ứng dụng PTH vào khóa
Giới hạn số lượng tổ hợp
Thuộc tính nguồn
• A là một thuộc tính nguồn nếu ¬∃ f : X→ Y ∈ F | A ∈ Y
• Trên đồ thị PTH, thuộc tính nguồn không có cung vào
• Nhận xét: mọi thuộc tính nguồn phải xuất hiện trong mọi khóa của Q
Thuộc tính đích
• B là một thuộc tính đích nếu ¬∃ f : X→ Y ∈ F | B ∈ X
• Trên đồ thị PTH, thuộc tính đích chỉ có cung vào, không
có cung ra
• Nhận xét: thuộc tính đích không xuất hiện trong bất kỳ
khóa nào của Q
Trang 65Ví dụ
F= {f1: AD→B; f2:EG →A; f3: BC →G}
Xác định các khóa của Q?
Trang 67Ví dụ
Không có thuộc tính đích
Có 3 thuộc tính nguồn: E, D, C
Có một chu trình qua các nút G, A, B Các tổ hợp có thể xây dựng: G, A, B, GA, GB, AB, GAB
Trang 68Nội dung chi tiết
Trang 69Dạng chuẩn (Nomal Form)
Được sử dụng để chuẩn hóa quan hệ
Đáp ứng các mục tiêu thiết kế
- Giảm tối đa trùng lắp thông tin
- Kiểm tra RBTV dễ dàng
Trang 708 6
Trang 71PG36 PG16
ngàyTrả
31/8/04 1/9/05 10/6/03 1/12/04 10/8/06
Giá
350 450 350 375 450
chủID
CO40 CO93 Co40 CO93 Co93
chủTên
X Y X Y Y
Không chuẩn (giá trị tại 1 trường không nguyên tố)
Trang 738 6
11A2 T T C Toán 7
DS_Họcsinh Điểm_Họcsinh_Lớp
Trang 74UNF → 1NF
Biến đổi thành các giá trị nguyên tố
Trang 75UNF → 1NF
Tách quan hệ
Trang 7631/8/04 1/9/05 10/6/03 1/12/04 10/8/06
Giá
350 450 350 375 450
chủID
CO40 CO93 CO40 CO93 CO93
chủTên
X Y X Y Y CR76
CR76
Trang 781NF → 2NF
Xét quan hệ Thuê_Phòng
- Khóa: kháchID, phòngID
- Còn có 1 PTH
- Làm xuất hiện PTH không đầy đủ vào khóa
kháchID, phòngID → phòngĐChỉ, ngàyThuê,
ngàyTrả, giá, chủID, chủTên
phòngID → phòngĐChỉ, chủID, chủTên
Trang 791NF → 2NF
phòngID
PG04 PG16 PG36
chủID
CO40 CO93 CO93
chủTên
X Y Y
Phòng
kháchID phòngID
PG04 PG16 CR56 PG04 CR56 PG36
ngàyThuê
1/6/03 1/9/04 1/9/02 10/10/03
ngàyTrả
31/8/04 1/9/05 10/6/03 1/12/04
CR76 CR76
Thuê
Trang 801NF → 2NF
1NF
2NF
Trang 81Nhận xét 2NF
Vẫn còn trùng lắp thông tin
phòngID
PG04 PG16 PG36
chủID
CO40 CO93 CO93
chủTên
X Y Y
Phòng
Trang 822NF → 3NF
Lược bỏ những PTH bắc cầu
Quan hệ đạt 3NF
- Đạt 2NF
- Các thuộc tính không khóa không phụ thuộc bắc cầu
vào thuộc tính khóa
Trang 842NF → 3NF
Tách quan hệ Phòng
phòngID
PG04 PG16 PG36
chủID
CO40 CO93 CO93
Phòng
chủID
CO40 CO93
chủTên
X Y
Chủ
Trang 852NF → 3NF
2NF
3NF
Trang 86Nhận xét 3NF
Vẫn còn trùng lắp thông tin
kháchID phòngID
PG04 PG16 CR56 PG04 CR56 PG36
ngàyThuê
1/6/03 1/9/04 1/9/02 10/10/03
ngàyTrả
31/8/04 1/9/05 10/6/03 1/12/04
CR76 CR76
Thuê
nhânviênID
SG37 SG24 SG37 SG05
nhânviênID → phòngID
Trang 883NF → BCNF
Xét quan hệ Thuê
- Khóa: kháchID, phòngID
- Có PTH VT không chứa khóa
kháchID, phòngID → ngàyThuê, ngàyTrả, nhânviênID
nhânviênID → phòngID
Trang 891/6/03 1/9/04 1/9/02 10/10/03
ngàyTrả
31/8/04 1/9/05 10/6/03 1/12/04
CR76 CR76
Thuê
nhânviênID
SG37 SG24 SG37 SG05
Trang 903NF → BCNF
3NF
BCNF