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ệ
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
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
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?
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
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
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.