Chương 8
Chương 8
Phụ thuộc hàm &
Phụ thuộc hàm &
Dạng chuẩn
Dạng chuẩn
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 2
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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 3
Chấ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)
Đánh giá lược đồ theo dạng chuẩn
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 4
Ngữ 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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 5
Trù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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 6
Khó 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
Lược đồ Phim là 1 thiết kế tốt hay tồi ?
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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 7
Phâ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ữ
trên các quan hệ được phân rã
8
Ví 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
9
Ví 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
Dana Carvey
Mike Meyers
Tênphim Nămsx
Star Wars 1977
Star Wars 1977
Star Wars 1977
Mighty Ducks 1991
Wayne’s World 1992
Wayne’s World 1992
Phim1
Phim2
Xóa
luôn
phim
Trùng lắp
Trùng lắp
Bỏ sót
cập nhật
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 10
Giá 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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 11
Nội dung chi tiết
Chất lượng của lược đồ CSDL quan hệ
Phụ thuộc hàm
-
Định nghĩa
-
Hệ quả và suy dẫn
-
Bao đóng
-
Phủ tối thiểu
-
Khóa
Dạng chuẩn
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 12
Phụ thuộc hàm
PTH (Functional Dependencies)
Là một loại RBTV rất quan trọng để phát hiện các
thiết kế CSDL tốt
Có thể biểu diễn RBTV bằng PTH
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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 13
Phụ 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
tính A
1
, A
2
, …, A
n
-
Thì các giá trị tại các thuộc tính B
1
, B
2
, …, B
m
cũng phải
giống nhau
Ký hiệu
Ta nói A
1
, A
2
, …, A
n
xác định hàm B
1
, B
2
, …, B
m
t1
t2
A’s B’s
Nếu Thì
A
1
, A
2
, …, A
n
→ B
1
, B
2
, …, B
m
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 14
Phụ thuộc hàm (tt)
Định nghĩa
-
Cho quan hệ R
-
A, B là những tập thuộc tính khác rỗng
-
Một thể hiện r(R) thỏa PTH f: A → B nếu
⇒
∀
t1, t2
∈
r,
=
t1[A] t2[A]
=
t1[B] t2[B]
Mỗi giá trị tại A xác định duy nhất một giá trị tại B
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 15
Ví dụ
16
Ví 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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
17
Ví 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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
18
Chú ý
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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
19
Chú ý (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ệ
Thỏa với mọi thể hiện của quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
20
Hệ 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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
21
Ví dụ
Xét lược đồ R(A, B, C, G, H, I)
Và PTH F định nghĩa trên R
f6 là phụ thuộc hàm hệ quả từ F
F = { f1: A → B
f2: A → C
f3: CG → H
f4: CG → I
f5: B → H
}
f6: A → H
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
22
Bao đó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
+
F ⊆ F
+
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
23
Tì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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
24
Suy 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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
25
Ví 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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM