82
1 THIẾT KẾ CSDL PHỤ THUỘC HÀM VÀ CÁC DẠNG CHUẨN

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

Embed Size (px)

Citation preview

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

1

THIẾT KẾ CSDL

PHỤ THUỘC HÀM VÀ CÁC DẠNG CHUẨN

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

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

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

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ộ

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

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ệ

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

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

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

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.

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

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

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

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 đồ

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

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ã.

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

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ã.

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

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.

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

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

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

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ở

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

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

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

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

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

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

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

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

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

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

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

19

Ví dụ

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

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.

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

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?

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

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

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

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

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

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

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

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

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

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ê

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

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

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

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

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

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

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

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

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

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+

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

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

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

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

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

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

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

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+

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

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

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

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

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

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

}

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

39

Ví dụ A → B, B → H : A → H CG → H, CG → I: CG → HI A → C, CG → I : AG → I

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

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

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

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

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

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?

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

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

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

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}

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

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

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

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

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

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

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

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

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

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 ?

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

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

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

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

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

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

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

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

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

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?

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

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

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

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

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

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?

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

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

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

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”

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

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.

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

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?

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

62

Vi du (tt)

F = { A→C, A→B, B→C }

Có thể bỏ phụ thuộc hàm thừa nào?

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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.

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

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

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

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?

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

Ví dụ (tt)

E

G

C

B

D

Af2

f3

f1

Đồ thị của F:

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

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

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

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

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

78

THIẾT KẾ CSDL

CÁC DẠNG CHUẨN

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

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

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

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

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

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

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

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