Upload
trung-tran
View
86
Download
3
Embed Size (px)
Citation preview
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? Đanh 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 Loaiphim 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ựcPHONGBAN
MAPH TENPH TRPH
NC Nghiên cứu NV001
DH Điều hành NV002Nam
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 PHONGBANMANV 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 Y1 41 53 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
Vi dụ Xet lược đồ quan hệ
Va các thực thể
Phim(Tênphim, Nămsx, Thơilương, Loaiphim, Xươngsx, Diênviên)
Tênphim Nămsx Thơilương Loaiphim 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
Vi dụ (tt) Tim được nhiêu PTH
Tênphim Nămsx → Thơilương
Tênphim Nămsx → Loai
Tênphim Nămsx → Xươngsx
Tênphim Nămsx → Diênviên
Không la phu thuôc ham
25
Chu y Xét thể hiện r1
Tênphim Nămsx Thơilương Loaiphim 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 → Loai
26
Chu y (tt) Xét thể hiện r2
Tênphim Nămsx Thơilương Loaiphim 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 → Loai
PTH phai đươc đinh nghia trên lươc đô quan hê
Thoa vơi moi thê hiên cua 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 va Z ⊆ W
Thi X, W → Y, Z
(FD3) Nêu X → Y va Y → Z
Thi X → Z
28
Luật dẫn khác Luật bắc cầu giả
Luật hội
Luật phân ra
(FD4)
(FD5)
(FD6)
Nêu X → Y va Y, W → Z
Thi X, W → Z
Nêu X → Y va X → Z
Thi X → Y, Z
Nêu X → Y va Z ⊆ Y
Thi X → Z
29
Hệ quả từ tập PTH
Cho F la tập cac PTH định nghĩa trên R Nếu co một PTH f khac 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 đong của PTH(Closure of a Set of Functional Dependencies)
Cho F la tập cac 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 Ky hiệu F+: F ⊆ F+
32
Tim bao đong cua F Tư tâp F ban đâu ta sư dung định nghĩa
hình thức của PTH đê tim bao đong 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ê Co thê suy luân “quan hê phai thoa môt
tâp PTH khac nao đo”
Kha năng suy dân nhăm kham pha thêm tâp PTH la rât cân thiêt đê thiêt kê cac lươc đô quan hê đat chât lương tôt
34
Vi du Xet lươc đồ R(A,B,C) thoa tâp PTH
Ta co thể suy diên R con thoa PTH
F = { f1: A → B
f2: B → C }
f3: A → C
35
Bao đong cua F (tt) Cho F la tâp cac PTH đinh nghia trên R
Goi f la môt PTH đươc suy dân tư F Ap dung luât dân cho cac PTH trong F đê co
đươc f
Tâp hơp cac PTH suy dân tư F ký hiệu F’ Ta muốn F’ = F+
36
Tim bao đong cua F (tt) Tư tâp F ban đâu ta sư dung cac luât
dân đê tim bao đong F+
Ap dung luât dân vao F cho đên khi không không thê ap dung đươ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+ = FBướ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+
Unti l F+ không thể thay đổi được nữa
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 xet Bai toan thưc tế
Cho môt PTH f: X → Y Xac đinh f co thuôc bao đong F+ hay không
Giai quyêt Tim bao đong F+ Kiêm tra f co năm trong F+ không
Tim bao đong F+ co hiêu qua ???
41
Nhân xet (tt)
Chuyên sang bai toan thanh viên Ta chi cân tim bao đong cua tâp thuôc tinh X
dưa trên F
Kiêm tra Y co thuôc bao đong cua X hay
không
42
Bao đong cua tâp thuôc tinh X
Ky hiêu X+F
Đinh nghia
Ta thây
X+F = { Y | X → Y đươc suy dân tư F }
La tâp hơp nhưng VP cua cac PTH co VT la 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
Tim bao đong cua X
B1.
B2.
X+F = X
Lăp {
Nêu (co f : U → V thuôc F) va (U ⊆ X+F)
Thi X+F = X+
F ∪ V
} cho đên khi (X+F = R+) hoăc
(không con thay đôi đươc nưa)
Tim cac PTH trong F co VT la cac thuôc tinh năm trong X+
F co VP không năm trong X+
F
44
Vi du R(A, B, C, D, E, F) F = { AB→C, BC→AD, D→E, CF→B } Tim AB+
F
AB+F = AB
AB→C: ABC BC→AD: ABCD D→E: ABCDE Ngưng
AB+F = {A, B, C, D, E}
45
Vi du (tt) R(A, B, C, D, E, F) F = { AB→C, BC→AD, D→E, CF→B } Kiêm tra PTH AB→D co suy dân tư F
không?
AB+F = {A, B, C, D, E}
Co D trong bao đong Kêt luân AB→D suy dân tư F
46
Vi du (tt) R(A, B, C, D, E, F) F = { AB→C, BC→AD, D→E, CF→B } Kiêm tra PTH D→A co suy dân tư F
không?
D+F = {D, E}
Không co A trong bao đong Kêt luân D→A không suy dân tư F
47
Môt số tinh chât (tt) Tương đương
Hai tâp PTH F1 va F2 goi la tương đương
Bổ đề
Moi thê hiên cua quan hê thoa F1
Moi thê hiên cua quan hê thoa F2
≡
F1 ≡ F2 ⇔ F1+ = F2+
F1 ≡ F2 ⇔ F1 là hệ quả của F2 vàF2 là hệ quả của F1
48
Vi du 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
Vi du (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
Vi du 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
Vi du {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 la tâp cac PTH đinh nghia 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ố khai 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
Vi du 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ố khai 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 la tâp cac PTH đinh nghia 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
Vi du 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
Vi du (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
Vi du (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 ← F2. 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
Vi du 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
Vi du (tt)
F = { A→C, A→B, B→C }
Có thể bỏ phụ thuộc hàm thừa nào?
63
Cac khai niêm khoa Khoa
La môt tâp cac thuôc tinh dung đê xac đinh tinh duy nhât cua môi bô trong quan hê
→ Cac bô trong quan hê khac nhau tưng đôi môt
Gôm Siêu khoa Khoa Khoa chinh
64
Siêu khoa Xet quan hê R
Goi SK la môt tâp con khac rông cac thuôc tinh cua R
SK la siêu khoa khi va chi khi
Moi lươc đô quan hê co tôi thiêu 1 siêu khoa
⇒∀ r, ∀ t1, t2∈ r, t1 t2≠ ≠t1[SK] t2[SK]Hai bô bât ky co cac gia tri khac nhau tai tâp thuôc tinh siêu khoa
65
Khoa Xet 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 la môt SK
Môt lươc đô quan hê co thê co nhiêu khoa Khoa đươc chon đê cai đăt goi la khoa
chinh
không phải là siêu khóa của R-∀ ≠ K, K’K’⊂ K , K’
Khoa la siêu khoa be nhât
66
Vi duA 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 cac thuôc tinh ABCD ABC, ABD, ACD, BCD AB, AC, AD, BC, BD, CD A, B, C, D
Siêu khoa ABCD, ABD, ACD, BCD,
BD, CD Khoa
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 → sotienmagdmuon → 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∈ SNế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 CS 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
Af2
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ẫnMã sinh viên Chủ đề Hướng dẫn viên97001 Mạng truyền thông Mr.Minh
97001 Hệ thống TT Mr.Hà
97003 Cơ sở dữ l iệ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ênMộ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àm1. Sohd → makh,tenkh,dckh,ngayhd,mahg,tenhg,mota_hg,dvt2. Makh → tenkh, dckh3. Mahg → tenhg,mota_hg,dvt4. 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