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

Preview:

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

Recommended