SlideShare a Scribd company logo
1 of 82
1
THIẾT KẾ CSDL
PHỤ THUỘC HÀM VÀ CÁC
DẠNG CHUẨN
2
Nội dung chi tiết
 Chất lượng của một lược đồ csdl quan hệ
 Phụ thuộc hàm
 Các dạng chuẩn
3
Chất lượng của một lược đồ csdl quan hệ
 Ngữ nghĩa của các quan hệ
 Thể hiện sự dư thừa thông tin
 Những khó khăn(Anomalies) trong vấn đề:
 Thêm
 Xóa
 Cập nhật
 Thể hiện giá trị NULL trong các bộ
4
Chất lượng của một lược đồ csdl quan hệ
 Thiết kế 1 lượt đồ quan hệ tốt và xấu?
 Đánh giá(không theo chuẩn) một lược đồ quan
hệ dựa trên tiêu chí:
 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 các bộ dữ liệu sai(không xác định)
 Định nghĩa các dạng chuẩn được xem là cách
đánh giá(theo chuẩn)
 Được giới hạn trên chuẩn của lược đồ quan hệ
5
Ngữ nghĩa của thuộc tính
 Làm thế nào để hiểu được giá trị thuộc
tính được lưu trữ trong một bộ?
 Thiết kế một lược đồ để dễ dàng giải thích
nghĩa của nó
 Giữ cho các thuộc tính trên quan hệ hoặc
thực thể không được trùng lắp
6
Sự 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 thì ta nói có sự trùng lắp
dữ liệu.
7
Khó khăn trong việc thiết kế dữ liệu
quan hệ
 Thiết kế dữ liệu quan hệ đòi hỏi chúng ta hướng tới
việc thu thập một tập các lược đồ quan hệ tốt.
 Việc thế kế “tồi” có nguy cơ dẫn tới việc trùng
lắp thông tin.
Lending-schema là một sự thiết kế tốt hay tồi ?
Lending-schema
8
Khó khăn trong việc thiết kế dữ liệu
quan hệ
 Tại sao Lending-Schema là một sự thiết
kế tồi?
 Sự trùng lắp dữ liệu: branch-name, branch-
city,assets
 Tốn không gian
 Cập nhật dữ liệu phức tạp
 Làm thế nào để chuyển đổi lược đồ
Lending thành một một lược đồ tốt:
 Phân rã lược đồ
9
Sự phân rã lược đồ
 Sự phân rã là chia quan hệ gốc thành một vài
quan hệ nhỏ hơn. Mục đích của sự phân rã
này là 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ã.
10
Sự phân rã
 Phân rã Lending-schema thành 2 lược đồ:
 Branch-schema = (branch-name, branch-city,assets)
 Loan-info-schema = (customer-name, loan-number, branch-name, amount)
 Luật bảo toàn: tất cả các thuộc tính trong lược
đồ gốc phải được tìm thấy trong các lược đồ
phân rã.
11
Cập nhật khó khăn
 Thêm: phải thêm chính xác dữ liệu, nếu không
sẽ dẫn đến sự mâu thuẩn với các dữ liệu đã
nhập.
 Xóa: có khả năng sẽ làm mất thông tin.
 Sửa: phải sửa luôn các giá trị của các bộ liên
quan.
12
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
phimThêm chính xác
Giải pháp: các thao tác thêm, xóa, sửa phức tạp cần được
nghiêm cấm
13
Giá trị Null trong các bộ
 Có thể có các thuộc tính không áp dụng cho
các bộ của quan hệ. 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 chúng trong hàm Sum, Count
 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
► Giải pháp: Tránh đặt các thuộc tính mà có giá
trị NULL ở một quan hệ cơ sở
Phát sinh các bộ không có thực
PHONGBAN
MAPH TENPH TRPH
NC Nghiên cứu NV001
DH Điều hành NV002
Nam
Nữ
Nam
02/04/1969
01/08/1981
10/12/1970
NTNSHOTENMANV
Nguyễn Tấn ÐạtNV001
Lý Phước MẫnNV003
Trần Ðông AnhNV002
NHANVIEN
PHAI PHONG
DH
NC
NC
NHANVIEN X PHONGBAN
MANV HOTEN NTNS PHAI PHONG MAPH TENPH TRPH
NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NC NC Nghiên cứu NV001
NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NC DH Điều hành NV002
NV002 Trần Đông Anh 01/08/1981 Nữ DH NC Nghiên cứu NV001
NV002 Trần Đông Anh 01/08/1981 Nữ DH DH Điều hành NV002
NV003 Lý Phước Mẫn 02/04/1969 Nam NC NC Nghiên cứu NV001
NV003 Lý Phước Mẫn 02/04/1969 Nam NC DH Điều hành NV002
14
Phát sinh các bộ không có thực
 Xây dựng các lượt đồ quan hệ cho việc
thực thi các phép kết bằng giữa chúng
chỉ áp dụng trên các thuộc tính khóa
chính và khóa ngoại
15
16
Nội dung chi tiết
 Chất lượng của một lược đồ csdl quan hệ
 Phụ thuộc hàm
 Các dạng chuẩn
17
Phụ thuộc hàm (1)
 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 biểu diễn mối liên hệ giữa các
thuộc tính trong cùng một quan hệ.
Phụ thuộc hàm (2)
 Định nghĩa:
 Cho lượt đồ quan hệ có n thuộc tính
 R(U), U={A1, A2,..,A3};
 PTH giữa 2 thuộc tính X,Y ⊆ U
 ký hiệu X→Y
 Nếu mỗi giá trị tại X trong R xác định duy nhất một
giá trị của Y trong R.
r(R) X Y
1 4
1 5
3 7
R không thỏa X → Y
Nhưng thỏa
R thỏa Y → X
19
Ví dụ
20
Đặc trưng của PTH
 PTH có hiệu lực về ngữ nghĩa(về nghĩa) của
các thuộc tính trong một quan hệ.
 Biểu diễn bằng đồ thị:
 Yếu tố quyết định cho một PTH liên quan đến
một thuộc tính hoặc một tập các thuộc tính ở
bên trái mũi tên.
21
Ví dụ
A B C
1 1 2
1 1 3
2 1 3
2 1 2
PTH Yes/No
A→A yes
A→B yes
A→C No
A→AB yes
A→AC No
A→BC No
A→ABC No
AB → C No
... ...
 Tìm tổng số PTH có
thể là bao nhiêu?
22
Nhận diện PTH
 Việc nhận diện PTH dựa vào ý nghĩa của
thuộc tính và mối quan hệ của chúng trong
quan hệ.
 Dựa vào dữ liệu trên Staff:
 staffNo → sName
 sName → staffNo
 Tuy nhiên, chỉ có pth:
 staffNo → sName
23
Ví dụ
 Xét lược đồ quan hệ
 Và các thực thể
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
24
Ví dụ (tt)
 Tìm được nhiêu PTH
Tênphim Nămsx → Thờilượng
Tênphim Nămsx → Loại
Tênphim Nămsx → Xưởngsx
Tênphim Nămsx → Diễnviên
Không là phụ thuộc hàm
25
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
26
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ệ
27
Luật dẫn Armstrong
 Luật phản hồi
 Luật cộng
 Luật bắc cầu
(FD1) ∀Y⊆ X, X→ Y
(FD2)
Nếu X → Y và Z ⊆ W
Thì X, W → Y, Z
(FD3)
Nếu X → Y và Y → Z
Thì X → Z
28
Luật dẫn khác
 Luật bắc cầu giả
 Luật hội
 Luật phân rã
(FD4)
(FD5)
(FD6)
Nếu X → Y và Y, W → Z
Thì X, W → Z
Nếu X → Y và X → Z
Thì X → Y, Z
Nếu X → Y và Z ⊆ Y
Thì X → Z
29
Hệ quả từ tập PTH
 Cho F là tập các PTH định nghĩa trên R
 Nếu có một 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
30
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
31
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ừ tập F được gọi là bao
đóng của F
 Ký hiệu F+
: F ⊆ F+
32
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
33
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 là rất cần thiết để thiết kế các
lược đồ quan hệ đạt chất lượng tốt
34
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
35
Bao đó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+
36
Tì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
Tập F+
rất lớn
37
Thuật toán tính F+

Để tính F+
dựa trên F ta làm như sau:
Bước 1:
F+
= F
Bước 2:
Repeat
- Với mỗi pth f trong F+:
Áp dụng tính phản xạ và tính tăng trưởng
trên f và thêm các pth kết quả vào F+
- Với mỗi cặp pth f1ivà f2 trong F+
Nếu f1 và f2 có thể kết nối lại bằng cách sử
dụng luật bắt cầu thì
thêm pth kết quả vào F+
38
Ví dụ
 Xét lược đồ R(A, B, C, G, H, I)
 Và PTH F định nghĩa trên R
 Tìm được nhiều PTH trong F+
F = { f1: A → B
f2: A → C
f3: CG → H
f4: CG → I
f5: B → H
}
39
Ví dụ
 A → B, B → H : A → H
 CG → H, CG → I: CG → HI
 A → C, CG → I : AG → I
40
Nhận xét
 Bài toán thực tế
 Cho một PTH f: X → Y
 Xác định f có thuộc bao đóng F+
hay không
 Giải quyết
 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ả ???
41
Nhậ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
42
Bao đóng của tập thuộc tính X
 Ký hiệu X+
F
 Định nghĩa
 Ta thấy
X+
F = { Y | X → Y được suy dẫn từ F }
Là tập hợp những VP của các PTH có VT là X nằm trong F
X ⊆ X+
F
X ⊆ R+
X+
F dùng để xem f có được suy dẫn từ F hay không?
43
Tìm bao đóng của X
B1.
B2.
X+
F = X
Lặp {
Nếu (có f : U → V thuộc F) và (U ⊆ X+
F)
Thì X+
F = X+
F ∪ V
} cho đến khi (X+
F = R+
) hoặc
(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
44
Ví dụ
 R(A, B, C, D, E, F)
 F = { AB→C, BC→AD, D→E, CF→B }
 Tìm AB+
F
 AB+
F = AB
 AB→C: ABC
 BC→AD: ABCD
 D→E: ABCDE
 Ngừng
AB+
F = {A, B, C, D, E}
45
Ví dụ (tt)
 R(A, B, C, D, E, F)
 F = { AB→C, BC→AD, D→E, CF→B }
 Kiểm tra PTH AB→D có suy dẫn từ F
không?
 AB+
F = {A, B, C, D, E}
 Có D trong bao đóng
 Kết luận AB→D suy dẫn từ F
46
Ví dụ (tt)
 R(A, B, C, D, E, F)
 F = { AB→C, BC→AD, D→E, CF→B }
 Kiểm tra PTH D→A có suy dẫn từ F
không?
 D+
F = {D, E}
 Không có A trong bao đóng
 Kết luận D→A không suy dẫn từ F
47
Một số tính chất (tt)
 Tương đương
 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
≡
F1 ≡ F2 ⇔ F1+
= F2+
F1 ≡ F2 ⇔ F1 là hệ quả của F2 và
F2 là hệ quả của F1
48
Ví dụ
 R(A, B, C, D, E)
 F1 = { A→BC, A→D, CD→E }
 F2 = { A→BCE, A→ABD, CD→E }
 F1 ≡ F2 ?
 Chứng minh
 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
49
Ví dụ (tt)
 {A→BCE, A→ABD, CD→E } → {A→BC,
A→D, CD→E }
 Ta thấy F1 ⊆ F2, hiển nhiên F1 là hệ quả
của F2
 {A→BC, A→D, CD→E } → {A→BCE,
A→ABD, CD→E }
 Xét F2 có A→E, tìm xem F1 có A→E ?
50
Ví dụ
 R(A, B, C, D, E)
 F1 = { A→BC, A→D, CD→E }
 F2 = { A→BCDE }
 F1 ≡ F2 ?
 Chứng minh
 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
51
Ví 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
52
Phủ
 Cho F là tập các PTH định nghĩa trên R
 Xét một tập PTH G định nghĩa trên R
G là phủ nếu G ≡ F
tương đương
53
Một số khái niệm (tt)
 PTH đầy đủ
Xét X → Y
Thì Y phụ thuộc đầy đủ vào X
F ≡ F – {X→Y} ∪ {X’→Y}
Nếu ¬X’ ⊂ X sao cho
Y phụ thuộc hàm vào X và
không phụ thuộc hàm vào tập con nào của X
54
Ví dụ
 R(A, B, C, D, E, I)
 F = { A→BCD, BCD→E, CD→EI }
 BCD→E là phụ thuộc hàm đầy đủ không?
55
Một số khái niệm (tt)
 PTH thừa
 Phụ thuộc hàm hiển nhiên: B phụ thuộc
hàm hiển nhiên trên A nếu B ⊇ A.
Xét X → Y là thừa nếu F ≡ F – {X→Y}
Ví dụ: A → A, AB → B, ABC → BC
là các PTH hiển nhiên
56
Phủ tối thiểu
 Cho F là tập các PTH định nghĩa trên R
 Mà VP chỉ chứa 1 thuộc tính
 PTH G gọi là PTT
 Nếu G là một phủ
 G chỉ chứa những PTH đầy đủ
 G không chứa những PTH thừa
 Ký hiệu: G=PTT(F)
 Chú ý: Thứ tự loại bỏ các PHT dư thừa
khác nhau ta sẽ có các phủ tối thiểu khác
nhau
57
Ví dụ
 R(A, B, C, D)
 F = { A→B, B→A, B→C, A→C, C→A }
 PTT(F) ?
 Mọi vế phải đều có 1 thuộc tính
 Các PTH đều đầy đủ
 Có thể bỏ phụ thuộc hàm thừa nào?
58
Ví dụ (tt)
 Xét A→B
 A+
F – {A→B} = AC
 A→B không là phụ thuộc hàm thừa
 Xét B→A
 B+
F-{B→A} = BCA
 B→A là phụ hàm thừa
không chứa VP
có chứa VP
59
Ví dụ (tt)
 Nếu bỏ đi B→A và A→C thì
 F’ = { A→B, B→C, C→A }
 F’ ≡ F nên F’=PTT(F)
 Chỉ cần xét F được suy dẫn từ F’
 Nếu bỏ đi B→C
 F” = { A→B, B→A, A→C, C→A}
 F” ≡ F nên F”=PTT(F)
F’ ≡ F”
60
Thuật toán tìm tập PTH nhỏ nhất G dựa trên F
1. G ← F
2. Replace each FD X → { A1, A2, ......., An} in G by n
FDs X → A1, X → A2,…, X → An.
3. For each FD X → A in G
for each attribute B that is an element of X
If( (G – {X → A }) ∪ {(X – {B}) → A} ) is eqnt
to G,
then replace X → A with (X – {B}) → A in G.
4. For each remaining FD X → A in G
If (G – {X → A }) is equivalent to G,
then remove X → A from G.
61
Ví dụ
 R(A, B, C)
 F = { AB→C, A→B, B→C }
 PTT(F) ?
 Mọi VP đều có 1 thuộc tính
 Có AB→C không là PTH đầy đủ
 Thay thế bằng các PTH đầy đủ
 Có thể bỏ phụ thuộc hàm thừa nào?
62
Ví dụ (tt)
 F = { A→C, A→B, B→C }
 Có thể bỏ phụ thuộc hàm thừa nào?
63
Các khái niệm khóa
 Khóa
 Là một tập các thuộc tính dùng để xác định
tính duy nhất của mỗi bộ trong quan hệ
→ Các bộ trong quan hệ khác nhau từng đôi
một
 Gồm
 Siêu khóa
 Khóa
 Khóa chính
64
Siêu khóa
 Xét quan hệ R
 Gọi SK là một tập con khác rỗng các thuộc
tính của R
 SK là siêu khóa khi và chỉ khi
 Mọi lược đồ quan hệ có tối thiểu 1 siêu khóa
⇒∀ r, ∀ t1, t2∈ r, t1 t2≠ ≠t1[SK] t2[SK]
Hai bộ bất kỳ có các giá trị khác nhau tại tập thuộc tính siêu khóa
65
Khóa
 Xét quan hệ R
 Gọi K là một tập con khác rỗng các thuộc
tính của R
 K là khóa nếu thỏa đồng thời 2 điều kiện:

K là một SK

 Một lược đồ quan hệ có thể có nhiều khóa
 Khóa được chọn để cài đặt gọi là khóa
chính
không phải là siêu khóa của R-∀ ≠ K, K’K’⊂ K , K’
Khóa là siêu khóa bé nhất
66
Ví dụ
A B CR
x 1 10
D
a
x 2 20 a
1
1
1
40
40
50
b
c
d
y
y
z
 Tập hợp các thuộc tính
 ABCD
 ABC, ABD, ACD, BCD
 AB, AC, AD, BC, BD, CD
 A, B, C, D
 Siêu khóa
 ABCD, ABD, ACD, BCD,
BD, CD
 Khóa
 BD, CD
67
PTH và Khóa
 Phụ thuộc hàm cho phép ta diễn tả các RBTV
không thể diễn tả bằng siêu khóa.
 Vd: lược đồ Muon(tenkh, magdmuon, tencn,
sotien)
 Ta muốn có tập các pth sau:
magdmuon → sotien
magdmuon → tencn
nhưng không muốn có pth (vì một giao dịch mượn
có thể của nhiều khách hàng):
magdmuon → tenkh
68
Đồ thị phụ thuộc hàm
 Đồ thị phụ thuộc hàm là một đồ thị vô hướng,
với :
 Một tập nút tượng trưng cho tập PTH, ký hiệu O với
tên PTH bên cạnh.
 Một tập nút tượng trưng cho các thuộc tính, ký hiệu
● với tên thuộc tính bên cạnh.
 Một tập cung có hướng nối một nút PTH(thuộc tính)
đến một nút thuộc tính (PTH).
 Một 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.
69
Ví dụ
 Cho F = {f1:A→BC; f2: B →A; f3: AD →E; f4:BD
→E }
 Đồ thị của F:
A
C
E
B
D
f1
f2
f3
f4
70
Ứng dụng phụ thuộc hàm vào khóa
 Thuật toán xác định khóa của quan hệ:
1. Xây dựng các tổ hợp có thể có từ Q+
. Kết quả tìm được giả
sử là tập các thuộc tính X1,X2,..,Xn
2. Tìm tập S chứa tất cả các tổ hợp K ⊆ Q+
thỏa điều kiện (i),
mỗi tổ hợp K như vậy là một siêu khóa của Q.
3. ∀K∈ S
Nếu ∃K’ | K’ ⊂ K thì loại K ra khỏi S
- Thực tế, kết hợp bước 2 và bước 3: bắt đầu xét từ những tổ
hợp có ít phần tử nhất, nếu tìm được một tổ hợp Ki thỏa điều
kiện (i) thì loại bỏ ngay các tổ hợp có chứa Ki.
 Vấn đề: Số tổ hợp có thể có từ Q+
sẽ rất lớn nếu Q+
lớn  Cần giới hạn số tổ hợp cần khảo sát
Ví dụ tìm khóa
 Tìm tất cả các khóa của lượt đồ quan hệ
sau: R(C,S,Z), F={CS →Z, Z →C}
Xi X+
i Siêu khóa Khóa
C C
S S
CS CSZ CS CS
Z ZC
CZ CZ
SZ SZC SZ SZ
CSZ CSZ CSZ
Ví dụ tìm khóa (tt)
 Vậy lượt đồ quan hệ trên có 2 khóa
{C,S} và {S,Z}
 Nhận xét:
 Thuật toán trên dễ hiểu, dễ cài đặt. Tuy
nhiên nếu tập thuộc tính của quan hệ lớn thì
việc tìm ra các tập con của tập R+
là không
hiệu quả. Do vậy cần thu hẹp không gian
duyệt.
73
Ứng dụng phụ thuộc hàm 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
74
Ví dụ
 Cho Q(ABCDEG) với
F = {f1: AD→B;
f2:EG →A;
f3: BC →G
}
Xác định các khóa của Q?
Ví dụ (tt)
E
G
C
B
D
A
f2
f3
f1
Đồ thị của F:
Ví dụ
 Không có thuộc tính đích
 Có 3 thuộc tính nguồn: E,D,C
 Có 1 chu trình đi qua các nút: G,A,B. Nên các
tổ hợp có thể xây dựng:
G,A,B,GA,GB,AB,GAB.
 Xét:

K1=(EDCG): K1=Q+

K2=(EDCA): K2=Q+

K3=(EDCB): K3=Q+
 Cả 3 tổ hợp này là tổ hợp nhỏ nhất.
 K1,K2,K3: là 3 khóa quả quan hệ Q
77
Nội dung chi tiết
 Chất lượng của một lược đồ csdl quan hệ
 Phụ thuộc hàm
 Các dạng chuẩn
78
THIẾT KẾ CSDL
CÁC DẠNG CHUẨN
Ví dụ
79
 Xét quan hệ Hướngdẫn
Mã sinh viên Chủ đề Hướng dẫn viên
97001 Mạng truyền thông Mr.Minh
97001 Hệ thống TT Mr.Hà
97003 Cơ sở dữ liệu Mr.Hiếu
97004 Mạng truyền thông Mr.Nam
97005 Mạng truyền thông Mr.Minh
 Các qui tắc đặt trên quan hệ là:
Mỗi sinh viên có thể theo một số chủ đề
Mỗi chủ đề có thể có một số hướng dẫn viên
Một hướng dẫn viên chỉ tư vấn cho một chủ đề
Mỗi sinh viên cụ thể theo một chủ đề có một hướng dẫn viên cụ thể
Một hướng dẫn viên có thể tư vấn một số sinh viên
Ví dụ:
 Yêu cầu
 Xác định các phụ thuộc hàm liên quan?
 Xác định dạng chuẩn của Hướng dẫn?
 Chuẩn hóa thành dạng chuẩn cao nhất
80
Ví dụ
81
 Cho quan hệ
HÓA ĐƠN
Sohd,makh,tenkh,dckh,ngayhd,mahg,tenhg,mota_hg,dvt,soluong_hg
 Các phụ thuộc hàm
1. Sohd → makh,tenkh,dckh,ngayhd,mahg,tenhg,mota_hg,dvt
2. Makh → tenkh, dckh
3. Mahg → tenhg,mota_hg,dvt
4. Sohd,mahg → soluong_hg
Ví dụ
 Yêu cầu:
1. Xác định khóa?
2. Chuẩn hóa lược đồ trên sao cho đạt
chuẩn cao nhất?
82

More Related Content

What's hot

Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05Nhóc Nhóc
 
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngBáo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngHuyen Pham
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựleemindinh
 
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụngChuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụngThắng Nguyễn
 
Dai so quan he
Dai so quan heDai so quan he
Dai so quan hePhùng Duy
 
Bảng Student
Bảng StudentBảng Student
Bảng Studenthiendoanht
 
Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Hoa Le
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánNgo Trung
 
csdl - buoi13-14
csdl - buoi13-14csdl - buoi13-14
csdl - buoi13-14kikihoho
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
Bảng giá trị hàm Laplace
Bảng giá trị hàm LaplaceBảng giá trị hàm Laplace
Bảng giá trị hàm Laplacehiendoanht
 
C4 bai giang kinh te luong
C4 bai giang kinh te luongC4 bai giang kinh te luong
C4 bai giang kinh te luongrobodientu
 
Giai sach bai tap xstk dh ktqd chuong 1 full v1
Giai sach bai tap xstk dh ktqd chuong 1 full v1Giai sach bai tap xstk dh ktqd chuong 1 full v1
Giai sach bai tap xstk dh ktqd chuong 1 full v1Ngọc Ánh Nguyễn Thị
 
Ứng dụng tích phân tính giới hạn của dãy số
Ứng dụng tích phân tính giới hạn của dãy sốỨng dụng tích phân tính giới hạn của dãy số
Ứng dụng tích phân tính giới hạn của dãy sốSirô Tiny
 
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongBài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongHoàng Như Mộc Miên
 
Chuong 04 mach logic
Chuong 04 mach logicChuong 04 mach logic
Chuong 04 mach logicAnh Ngoc Phan
 

What's hot (20)

bai tap co loi giai xac suat thong ke
bai tap co loi giai xac suat thong kebai tap co loi giai xac suat thong ke
bai tap co loi giai xac suat thong ke
 
Chuong5
Chuong5Chuong5
Chuong5
 
Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05
 
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngBáo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụngChuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
 
Dai so quan he
Dai so quan heDai so quan he
Dai so quan he
 
Bảng Student
Bảng StudentBảng Student
Bảng Student
 
Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
 
csdl - buoi13-14
csdl - buoi13-14csdl - buoi13-14
csdl - buoi13-14
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Bảng giá trị hàm Laplace
Bảng giá trị hàm LaplaceBảng giá trị hàm Laplace
Bảng giá trị hàm Laplace
 
C4 bai giang kinh te luong
C4 bai giang kinh te luongC4 bai giang kinh te luong
C4 bai giang kinh te luong
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Giai sach bai tap xstk dh ktqd chuong 1 full v1
Giai sach bai tap xstk dh ktqd chuong 1 full v1Giai sach bai tap xstk dh ktqd chuong 1 full v1
Giai sach bai tap xstk dh ktqd chuong 1 full v1
 
Ứng dụng tích phân tính giới hạn của dãy số
Ứng dụng tích phân tính giới hạn của dãy sốỨng dụng tích phân tính giới hạn của dãy số
Ứng dụng tích phân tính giới hạn của dãy số
 
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongBài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
 
Bai tap kinh te vi mo co loi giai
Bai tap kinh te vi mo co loi giaiBai tap kinh te vi mo co loi giai
Bai tap kinh te vi mo co loi giai
 
Chuong 04 mach logic
Chuong 04 mach logicChuong 04 mach logic
Chuong 04 mach logic
 

Phụ thuộc hàm và dạng chuẩn 1

  • 1. 1 THIẾT KẾ CSDL PHỤ THUỘC HÀM VÀ CÁC DẠNG CHUẨN
  • 2. 2 Nội dung chi tiết  Chất lượng của một lược đồ csdl quan hệ  Phụ thuộc hàm  Các dạng chuẩn
  • 3. 3 Chất lượng của một lược đồ csdl quan hệ  Ngữ nghĩa của các quan hệ  Thể hiện sự dư thừa thông tin  Những khó khăn(Anomalies) trong vấn đề:  Thêm  Xóa  Cập nhật  Thể hiện giá trị NULL trong các bộ
  • 4. 4 Chất lượng của một lược đồ csdl quan hệ  Thiết kế 1 lượt đồ quan hệ tốt và xấu?  Đánh giá(không theo chuẩn) một lược đồ quan hệ dựa trên tiêu chí:  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 các bộ dữ liệu sai(không xác định)  Định nghĩa các dạng chuẩn được xem là cách đánh giá(theo chuẩn)  Được giới hạn trên chuẩn của lược đồ quan hệ
  • 5. 5 Ngữ nghĩa của thuộc tính  Làm thế nào để hiểu được giá trị thuộc tính được lưu trữ trong một bộ?  Thiết kế một lược đồ để dễ dàng giải thích nghĩa của nó  Giữ cho các thuộc tính trên quan hệ hoặc thực thể không được trùng lắp
  • 6. 6 Sự 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 thì ta nói có sự trùng lắp dữ liệu.
  • 7. 7 Khó khăn trong việc thiết kế dữ liệu quan hệ  Thiết kế dữ liệu quan hệ đòi hỏi chúng ta hướng tới việc thu thập một tập các lược đồ quan hệ tốt.  Việc thế kế “tồi” có nguy cơ dẫn tới việc trùng lắp thông tin. Lending-schema là một sự thiết kế tốt hay tồi ? Lending-schema
  • 8. 8 Khó khăn trong việc thiết kế dữ liệu quan hệ  Tại sao Lending-Schema là một sự thiết kế tồi?  Sự trùng lắp dữ liệu: branch-name, branch- city,assets  Tốn không gian  Cập nhật dữ liệu phức tạp  Làm thế nào để chuyển đổi lược đồ Lending thành một một lược đồ tốt:  Phân rã lược đồ
  • 9. 9 Sự phân rã lược đồ  Sự phân rã là chia quan hệ gốc thành một vài quan hệ nhỏ hơn. Mục đích của sự phân rã này là 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ã.
  • 10. 10 Sự phân rã  Phân rã Lending-schema thành 2 lược đồ:  Branch-schema = (branch-name, branch-city,assets)  Loan-info-schema = (customer-name, loan-number, branch-name, amount)  Luật bảo toàn: tất cả các thuộc tính trong lược đồ gốc phải được tìm thấy trong các lược đồ phân rã.
  • 11. 11 Cập nhật khó khăn  Thêm: phải thêm chính xác dữ liệu, nếu không sẽ dẫn đến sự mâu thuẩn với các dữ liệu đã nhập.  Xóa: có khả năng sẽ làm mất thông tin.  Sửa: phải sửa luôn các giá trị của các bộ liên quan.
  • 12. 12 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 phimThêm chính xác Giải pháp: các thao tác thêm, xóa, sửa phức tạp cần được nghiêm cấm
  • 13. 13 Giá trị Null trong các bộ  Có thể có các thuộc tính không áp dụng cho các bộ của quan hệ. 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 chúng trong hàm Sum, Count  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 ► Giải pháp: Tránh đặt các thuộc tính mà có giá trị NULL ở một quan hệ cơ sở
  • 14. Phát sinh các bộ không có thực PHONGBAN MAPH TENPH TRPH NC Nghiên cứu NV001 DH Điều hành NV002 Nam Nữ Nam 02/04/1969 01/08/1981 10/12/1970 NTNSHOTENMANV Nguyễn Tấn ÐạtNV001 Lý Phước MẫnNV003 Trần Ðông AnhNV002 NHANVIEN PHAI PHONG DH NC NC NHANVIEN X PHONGBAN MANV HOTEN NTNS PHAI PHONG MAPH TENPH TRPH NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NC NC Nghiên cứu NV001 NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NC DH Điều hành NV002 NV002 Trần Đông Anh 01/08/1981 Nữ DH NC Nghiên cứu NV001 NV002 Trần Đông Anh 01/08/1981 Nữ DH DH Điều hành NV002 NV003 Lý Phước Mẫn 02/04/1969 Nam NC NC Nghiên cứu NV001 NV003 Lý Phước Mẫn 02/04/1969 Nam NC DH Điều hành NV002 14
  • 15. Phát sinh các bộ không có thực  Xây dựng các lượt đồ quan hệ cho việc thực thi các phép kết bằng giữa chúng chỉ áp dụng trên các thuộc tính khóa chính và khóa ngoại 15
  • 16. 16 Nội dung chi tiết  Chất lượng của một lược đồ csdl quan hệ  Phụ thuộc hàm  Các dạng chuẩn
  • 17. 17 Phụ thuộc hàm (1)  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 biểu diễn mối liên hệ giữa các thuộc tính trong cùng một quan hệ.
  • 18. Phụ thuộc hàm (2)  Định nghĩa:  Cho lượt đồ quan hệ có n thuộc tính  R(U), U={A1, A2,..,A3};  PTH giữa 2 thuộc tính X,Y ⊆ U  ký hiệu X→Y  Nếu mỗi giá trị tại X trong R xác định duy nhất một giá trị của Y trong R. r(R) X Y 1 4 1 5 3 7 R không thỏa X → Y Nhưng thỏa R thỏa Y → X
  • 20. 20 Đặc trưng của PTH  PTH có hiệu lực về ngữ nghĩa(về nghĩa) của các thuộc tính trong một quan hệ.  Biểu diễn bằng đồ thị:  Yếu tố quyết định cho một PTH liên quan đến một thuộc tính hoặc một tập các thuộc tính ở bên trái mũi tên.
  • 21. 21 Ví dụ A B C 1 1 2 1 1 3 2 1 3 2 1 2 PTH Yes/No A→A yes A→B yes A→C No A→AB yes A→AC No A→BC No A→ABC No AB → C No ... ...  Tìm tổng số PTH có thể là bao nhiêu?
  • 22. 22 Nhận diện PTH  Việc nhận diện PTH dựa vào ý nghĩa của thuộc tính và mối quan hệ của chúng trong quan hệ.  Dựa vào dữ liệu trên Staff:  staffNo → sName  sName → staffNo  Tuy nhiên, chỉ có pth:  staffNo → sName
  • 23. 23 Ví dụ  Xét lược đồ quan hệ  Và các thực thể 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
  • 24. 24 Ví dụ (tt)  Tìm được nhiêu PTH Tênphim Nămsx → Thờilượng Tênphim Nămsx → Loại Tênphim Nămsx → Xưởngsx Tênphim Nămsx → Diễnviên Không là phụ thuộc hàm
  • 25. 25 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
  • 26. 26 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ệ
  • 27. 27 Luật dẫn Armstrong  Luật phản hồi  Luật cộng  Luật bắc cầu (FD1) ∀Y⊆ X, X→ Y (FD2) Nếu X → Y và Z ⊆ W Thì X, W → Y, Z (FD3) Nếu X → Y và Y → Z Thì X → Z
  • 28. 28 Luật dẫn khác  Luật bắc cầu giả  Luật hội  Luật phân rã (FD4) (FD5) (FD6) Nếu X → Y và Y, W → Z Thì X, W → Z Nếu X → Y và X → Z Thì X → Y, Z Nếu X → Y và Z ⊆ Y Thì X → Z
  • 29. 29 Hệ quả từ tập PTH  Cho F là tập các PTH định nghĩa trên R  Nếu có một 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
  • 30. 30 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
  • 31. 31 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ừ tập F được gọi là bao đóng của F  Ký hiệu F+ : F ⊆ F+
  • 32. 32 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
  • 33. 33 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 là rất cần thiết để thiết kế các lược đồ quan hệ đạt chất lượng tốt
  • 34. 34 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
  • 35. 35 Bao đó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+
  • 36. 36 Tì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 Tập F+ rất lớn
  • 37. 37 Thuật toán tính F+  Để tính F+ dựa trên F ta làm như sau: Bước 1: F+ = F Bước 2: Repeat - Với mỗi pth f trong F+: Áp dụng tính phản xạ và tính tăng trưởng trên f và thêm các pth kết quả vào F+ - Với mỗi cặp pth f1ivà f2 trong F+ Nếu f1 và f2 có thể kết nối lại bằng cách sử dụng luật bắt cầu thì thêm pth kết quả vào F+
  • 38. 38 Ví dụ  Xét lược đồ R(A, B, C, G, H, I)  Và PTH F định nghĩa trên R  Tìm được nhiều PTH trong F+ F = { f1: A → B f2: A → C f3: CG → H f4: CG → I f5: B → H }
  • 39. 39 Ví dụ  A → B, B → H : A → H  CG → H, CG → I: CG → HI  A → C, CG → I : AG → I
  • 40. 40 Nhận xét  Bài toán thực tế  Cho một PTH f: X → Y  Xác định f có thuộc bao đóng F+ hay không  Giải quyết  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ả ???
  • 41. 41 Nhậ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
  • 42. 42 Bao đóng của tập thuộc tính X  Ký hiệu X+ F  Định nghĩa  Ta thấy X+ F = { Y | X → Y được suy dẫn từ F } Là tập hợp những VP của các PTH có VT là X nằm trong F X ⊆ X+ F X ⊆ R+ X+ F dùng để xem f có được suy dẫn từ F hay không?
  • 43. 43 Tìm bao đóng của X B1. B2. X+ F = X Lặp { Nếu (có f : U → V thuộc F) và (U ⊆ X+ F) Thì X+ F = X+ F ∪ V } cho đến khi (X+ F = R+ ) hoặc (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
  • 44. 44 Ví dụ  R(A, B, C, D, E, F)  F = { AB→C, BC→AD, D→E, CF→B }  Tìm AB+ F  AB+ F = AB  AB→C: ABC  BC→AD: ABCD  D→E: ABCDE  Ngừng AB+ F = {A, B, C, D, E}
  • 45. 45 Ví dụ (tt)  R(A, B, C, D, E, F)  F = { AB→C, BC→AD, D→E, CF→B }  Kiểm tra PTH AB→D có suy dẫn từ F không?  AB+ F = {A, B, C, D, E}  Có D trong bao đóng  Kết luận AB→D suy dẫn từ F
  • 46. 46 Ví dụ (tt)  R(A, B, C, D, E, F)  F = { AB→C, BC→AD, D→E, CF→B }  Kiểm tra PTH D→A có suy dẫn từ F không?  D+ F = {D, E}  Không có A trong bao đóng  Kết luận D→A không suy dẫn từ F
  • 47. 47 Một số tính chất (tt)  Tương đương  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 ≡ F1 ≡ F2 ⇔ F1+ = F2+ F1 ≡ F2 ⇔ F1 là hệ quả của F2 và F2 là hệ quả của F1
  • 48. 48 Ví dụ  R(A, B, C, D, E)  F1 = { A→BC, A→D, CD→E }  F2 = { A→BCE, A→ABD, CD→E }  F1 ≡ F2 ?  Chứng minh  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
  • 49. 49 Ví dụ (tt)  {A→BCE, A→ABD, CD→E } → {A→BC, A→D, CD→E }  Ta thấy F1 ⊆ F2, hiển nhiên F1 là hệ quả của F2  {A→BC, A→D, CD→E } → {A→BCE, A→ABD, CD→E }  Xét F2 có A→E, tìm xem F1 có A→E ?
  • 50. 50 Ví dụ  R(A, B, C, D, E)  F1 = { A→BC, A→D, CD→E }  F2 = { A→BCDE }  F1 ≡ F2 ?  Chứng minh  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
  • 51. 51 Ví 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
  • 52. 52 Phủ  Cho F là tập các PTH định nghĩa trên R  Xét một tập PTH G định nghĩa trên R G là phủ nếu G ≡ F tương đương
  • 53. 53 Một số khái niệm (tt)  PTH đầy đủ Xét X → Y Thì Y phụ thuộc đầy đủ vào X F ≡ F – {X→Y} ∪ {X’→Y} Nếu ¬X’ ⊂ X sao cho Y phụ thuộc hàm vào X và không phụ thuộc hàm vào tập con nào của X
  • 54. 54 Ví dụ  R(A, B, C, D, E, I)  F = { A→BCD, BCD→E, CD→EI }  BCD→E là phụ thuộc hàm đầy đủ không?
  • 55. 55 Một số khái niệm (tt)  PTH thừa  Phụ thuộc hàm hiển nhiên: B phụ thuộc hàm hiển nhiên trên A nếu B ⊇ A. Xét X → Y là thừa nếu F ≡ F – {X→Y} Ví dụ: A → A, AB → B, ABC → BC là các PTH hiển nhiên
  • 56. 56 Phủ tối thiểu  Cho F là tập các PTH định nghĩa trên R  Mà VP chỉ chứa 1 thuộc tính  PTH G gọi là PTT  Nếu G là một phủ  G chỉ chứa những PTH đầy đủ  G không chứa những PTH thừa  Ký hiệu: G=PTT(F)  Chú ý: Thứ tự loại bỏ các PHT dư thừa khác nhau ta sẽ có các phủ tối thiểu khác nhau
  • 57. 57 Ví dụ  R(A, B, C, D)  F = { A→B, B→A, B→C, A→C, C→A }  PTT(F) ?  Mọi vế phải đều có 1 thuộc tính  Các PTH đều đầy đủ  Có thể bỏ phụ thuộc hàm thừa nào?
  • 58. 58 Ví dụ (tt)  Xét A→B  A+ F – {A→B} = AC  A→B không là phụ thuộc hàm thừa  Xét B→A  B+ F-{B→A} = BCA  B→A là phụ hàm thừa không chứa VP có chứa VP
  • 59. 59 Ví dụ (tt)  Nếu bỏ đi B→A và A→C thì  F’ = { A→B, B→C, C→A }  F’ ≡ F nên F’=PTT(F)  Chỉ cần xét F được suy dẫn từ F’  Nếu bỏ đi B→C  F” = { A→B, B→A, A→C, C→A}  F” ≡ F nên F”=PTT(F) F’ ≡ F”
  • 60. 60 Thuật toán tìm tập PTH nhỏ nhất G dựa trên F 1. G ← F 2. Replace each FD X → { A1, A2, ......., An} in G by n FDs X → A1, X → A2,…, X → An. 3. For each FD X → A in G for each attribute B that is an element of X If( (G – {X → A }) ∪ {(X – {B}) → A} ) is eqnt to G, then replace X → A with (X – {B}) → A in G. 4. For each remaining FD X → A in G If (G – {X → A }) is equivalent to G, then remove X → A from G.
  • 61. 61 Ví dụ  R(A, B, C)  F = { AB→C, A→B, B→C }  PTT(F) ?  Mọi VP đều có 1 thuộc tính  Có AB→C không là PTH đầy đủ  Thay thế bằng các PTH đầy đủ  Có thể bỏ phụ thuộc hàm thừa nào?
  • 62. 62 Ví dụ (tt)  F = { A→C, A→B, B→C }  Có thể bỏ phụ thuộc hàm thừa nào?
  • 63. 63 Các khái niệm khóa  Khóa  Là một tập các thuộc tính dùng để xác định tính duy nhất của mỗi bộ trong quan hệ → Các bộ trong quan hệ khác nhau từng đôi một  Gồm  Siêu khóa  Khóa  Khóa chính
  • 64. 64 Siêu khóa  Xét quan hệ R  Gọi SK là một tập con khác rỗng các thuộc tính của R  SK là siêu khóa khi và chỉ khi  Mọi lược đồ quan hệ có tối thiểu 1 siêu khóa ⇒∀ r, ∀ t1, t2∈ r, t1 t2≠ ≠t1[SK] t2[SK] Hai bộ bất kỳ có các giá trị khác nhau tại tập thuộc tính siêu khóa
  • 65. 65 Khóa  Xét quan hệ R  Gọi K là một tập con khác rỗng các thuộc tính của R  K là khóa nếu thỏa đồng thời 2 điều kiện:  K là một SK   Một lược đồ quan hệ có thể có nhiều khóa  Khóa được chọn để cài đặt gọi là khóa chính không phải là siêu khóa của R-∀ ≠ K, K’K’⊂ K , K’ Khóa là siêu khóa bé nhất
  • 66. 66 Ví dụ A B CR x 1 10 D a x 2 20 a 1 1 1 40 40 50 b c d y y z  Tập hợp các thuộc tính  ABCD  ABC, ABD, ACD, BCD  AB, AC, AD, BC, BD, CD  A, B, C, D  Siêu khóa  ABCD, ABD, ACD, BCD, BD, CD  Khóa  BD, CD
  • 67. 67 PTH và Khóa  Phụ thuộc hàm cho phép ta diễn tả các RBTV không thể diễn tả bằng siêu khóa.  Vd: lược đồ Muon(tenkh, magdmuon, tencn, sotien)  Ta muốn có tập các pth sau: magdmuon → sotien magdmuon → tencn nhưng không muốn có pth (vì một giao dịch mượn có thể của nhiều khách hàng): magdmuon → tenkh
  • 68. 68 Đồ thị phụ thuộc hàm  Đồ thị phụ thuộc hàm là một đồ thị vô hướng, với :  Một tập nút tượng trưng cho tập PTH, ký hiệu O với tên PTH bên cạnh.  Một tập nút tượng trưng cho các thuộc tính, ký hiệu ● với tên thuộc tính bên cạnh.  Một tập cung có hướng nối một nút PTH(thuộc tính) đến một nút thuộc tính (PTH).  Một 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.
  • 69. 69 Ví dụ  Cho F = {f1:A→BC; f2: B →A; f3: AD →E; f4:BD →E }  Đồ thị của F: A C E B D f1 f2 f3 f4
  • 70. 70 Ứng dụng phụ thuộc hàm vào khóa  Thuật toán xác định khóa của quan hệ: 1. Xây dựng các tổ hợp có thể có từ Q+ . Kết quả tìm được giả sử là tập các thuộc tính X1,X2,..,Xn 2. Tìm tập S chứa tất cả các tổ hợp K ⊆ Q+ thỏa điều kiện (i), mỗi tổ hợp K như vậy là một siêu khóa của Q. 3. ∀K∈ S Nếu ∃K’ | K’ ⊂ K thì loại K ra khỏi S - Thực tế, kết hợp bước 2 và bước 3: bắt đầu xét từ những tổ hợp có ít phần tử nhất, nếu tìm được một tổ hợp Ki thỏa điều kiện (i) thì loại bỏ ngay các tổ hợp có chứa Ki.  Vấn đề: Số tổ hợp có thể có từ Q+ sẽ rất lớn nếu Q+ lớn  Cần giới hạn số tổ hợp cần khảo sát
  • 71. Ví dụ tìm khóa  Tìm tất cả các khóa của lượt đồ quan hệ sau: R(C,S,Z), F={CS →Z, Z →C} Xi X+ i Siêu khóa Khóa C C S S CS CSZ CS CS Z ZC CZ CZ SZ SZC SZ SZ CSZ CSZ CSZ
  • 72. Ví dụ tìm khóa (tt)  Vậy lượt đồ quan hệ trên có 2 khóa {C,S} và {S,Z}  Nhận xét:  Thuật toán trên dễ hiểu, dễ cài đặt. Tuy nhiên nếu tập thuộc tính của quan hệ lớn thì việc tìm ra các tập con của tập R+ là không hiệu quả. Do vậy cần thu hẹp không gian duyệt.
  • 73. 73 Ứng dụng phụ thuộc hàm 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
  • 74. 74 Ví dụ  Cho Q(ABCDEG) với F = {f1: AD→B; f2:EG →A; f3: BC →G } Xác định các khóa của Q?
  • 76. Ví dụ  Không có thuộc tính đích  Có 3 thuộc tính nguồn: E,D,C  Có 1 chu trình đi qua các nút: G,A,B. Nên các tổ hợp có thể xây dựng: G,A,B,GA,GB,AB,GAB.  Xét:  K1=(EDCG): K1=Q+  K2=(EDCA): K2=Q+  K3=(EDCB): K3=Q+  Cả 3 tổ hợp này là tổ hợp nhỏ nhất.  K1,K2,K3: là 3 khóa quả quan hệ Q
  • 77. 77 Nội dung chi tiết  Chất lượng của một lược đồ csdl quan hệ  Phụ thuộc hàm  Các dạng chuẩn
  • 78. 78 THIẾT KẾ CSDL CÁC DẠNG CHUẨN
  • 79. Ví dụ 79  Xét quan hệ Hướngdẫn Mã sinh viên Chủ đề Hướng dẫn viên 97001 Mạng truyền thông Mr.Minh 97001 Hệ thống TT Mr.Hà 97003 Cơ sở dữ liệu Mr.Hiếu 97004 Mạng truyền thông Mr.Nam 97005 Mạng truyền thông Mr.Minh  Các qui tắc đặt trên quan hệ là: Mỗi sinh viên có thể theo một số chủ đề Mỗi chủ đề có thể có một số hướng dẫn viên Một hướng dẫn viên chỉ tư vấn cho một chủ đề Mỗi sinh viên cụ thể theo một chủ đề có một hướng dẫn viên cụ thể Một hướng dẫn viên có thể tư vấn một số sinh viên
  • 80. Ví dụ:  Yêu cầu  Xác định các phụ thuộc hàm liên quan?  Xác định dạng chuẩn của Hướng dẫn?  Chuẩn hóa thành dạng chuẩn cao nhất 80
  • 81. Ví dụ 81  Cho quan hệ HÓA ĐƠN Sohd,makh,tenkh,dckh,ngayhd,mahg,tenhg,mota_hg,dvt,soluong_hg  Các phụ thuộc hàm 1. Sohd → makh,tenkh,dckh,ngayhd,mahg,tenhg,mota_hg,dvt 2. Makh → tenkh, dckh 3. Mahg → tenhg,mota_hg,dvt 4. Sohd,mahg → soluong_hg
  • 82. Ví dụ  Yêu cầu: 1. Xác định khóa? 2. Chuẩn hóa lược đồ trên sao cho đạt chuẩn cao nhất? 82

Editor's Notes

  1. Nếu có 2 bộ có giá trị giống nhau tại tên phim và năm sản xuất thì hai bộ này phải có cùng giá trị tại thời lượng, có cùng giá trị tại loại phim, và có cùng giá trị tại xưởng sản xuất. Thuộc tính tên phim và năm sản xuất hình thành khóa của quan hệ phim. Chúng ta mong đợi: nếu cho trước tên phim và năm sản xuất thì có duy nhất 1 bộ phim, do đó cũng có duy nhất một thời lượng, duy nhất một loại phim và duy nhất một xưởng sản xuất.