1. Trang chủ
  2. » Công Nghệ Thông Tin

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

87 2,4K 5
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phụ Thuộc Hàm Và Các Dạng Chuẩn
Trường học Khoa Công Nghệ Thông Tin, Đại Học Khoa Học Tự Nhiên TPHCM
Chuyên ngành Cơ sở dữ liệu
Thể loại Chương
Năm xuất bản 2023
Thành phố TPHCM
Định dạng
Số trang 87
Dung lượng 1,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài liệu CƠ SỞ DỮ LIỆU

Trang 1

Chương 8 PHỤ THUỘC HÀM VÀ CÁC DẠNG CHUẨN

Trang 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

Trang 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

Trang 4

Chất lượng của một lược đồ csdl quan hệ

 Thiết kế một lược đồ 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ệ

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

Trang 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

Trang 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

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

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

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

Trang 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

Trang 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 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 phim Thê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

Trang 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ở

Trang 15

Ví dụ

Trang 18

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

Trang 19

Ví dụ

 Xét lược đồ quan hệ

 Và thể hiện

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

Trang 20

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

Trang 21

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

Trang 22

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

Trang 23

Luật dẫn Armstrong

Trang 24

Nếu X  Y và X  Z Thì X  Y, Z

Nếu X  Y và Z  Y Thì X  Z

Trang 25

Hệ quả từ tập PTH

 Cho F là tập các PTH định nghĩa trên R

- Nếu có 1 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

Trang 26

f6: A  H

Trang 27

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ừ F được gọi là bao đóng của F

- Ký hiệu F+

F  F+

Trang 28

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

Trang 29

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

Trang 30

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

Trang 31

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+

Trang 32

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

Trang 33

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

Trang 35

Ví dụ

 CG  H, CG  I: CG  HI

 A  C, CG  I : AG  I

Trang 36

- Kiểm tra f có nằm trong F + không

 Tìm bao đóng F+ có hiệu quả ???

Trang 37

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

Trang 38

Bao đóng của tập thuộc tính 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

Trang 39

Tìm bao đóng của X

Trang 41

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?

Trang 42

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

Trang 43

Một số tính chất (tt)

- 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

Trang 44

Ví dụ

 R(A, B, C, D, E)

 F1 = { ABC, AD, 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

Trang 45

Ví dụ (tt)

- Ta thấy F1  F2, hiển nhiên F1 là hệ quả của F2

- Xét F2 có AE, tìm xem F1 có AE ?

Trang 46

- 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

Trang 47

Ví dụ

- 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

- Xét F2 có AE

Trang 49

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

Trang 50

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?

Trang 51

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

Trang 56

Thuật toán tìm tập pth nhỏ nhất G dựa trên F

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.

Trang 57

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?

Trang 58

Ví dụ (tt)

 F = { AC, AB, BC }

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

Trang 59

Các khái niệm 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

- Siêu khóa

- Khóa

- Khóa chính

Trang 60

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

Trang 61

 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

Trang 62

40 40 50

b c d

- ABC, ABD, ACD, BCD

- AB, AC, AD, BC, BD, CD

Trang 63

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

Trang 64

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

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

Trang 66

Ứ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 +

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 K i thỏa điều kiện (i) thì loại bỏ ngay các tổ hợp có chứa K i.

 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

Trang 67

Ứ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

Trang 68

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?

Trang 69

Dạng chuẩn

 Mục đích: làm cho sự trùng lắp dữ liệu ít nhất

Trang 70

Dạng chuẩn 1(First Normal

Form – 1NF)

 Một lược đồ R đạt chuẩn 1NF nếu như miền giá trị của các thuộc tính trên R là nguyên tố(atomic)

ato mic

Trang 71

UNF to 1NF

1 Điền vào các chỗ trống bằng dữ liệu trùng lắp →

dẫn đến nhiều dữ liệu bị trùng lắp trên quan hệ

2 Thay thế các giá trị không nguyên tố bằng cách

xác định tập thuộc tính làm khóa chính và sau đó tách thành một quan hệ mới → tạo ra hai hay nhiều quan hệ mới, và sẽ làm giảm bớt sự trùng lắp thông tin

Trang 72

UNF to 1NF (method 1)

Trang 73

UNF to 1NF (method 2)

Trang 74

Dạng chuẩn 2 (2NF)

 Một lược đồ đạt dạng chuẩn 2 nếu như lược đồ đó

đã đạt dạng chuẩn một và các thuộc tính không

khóa phụ thuộc đầy đủ vào thuộc tính khóa

1NF

propertyNo → pAdress

PK = {clientNo, propertyNo)

Trang 75

1NF to 2NF

 Xác định khóa chính trên quan hệ bị 1NF

 PropertyRentalOwner: clientNo, propertyNo

 Xác định các pth chỉ liên quan đến khóa chính

clientNo, propertyNo  pAddress, rentStart, rentFinish, rent, ownerNo, oName

propertyNo  pAddress, rent, ownerNo, oName

 Nếu có tồn tại pth riêng phần trên khóa chính thì xóa chúng bằng cách thay thế bằng quan hệ mới

- Xóa (pAddress, rent, ownerNo, oName) từ

PropertyRentalOwner bằng cách thay chúng thành quan hệ mới PreoprtyOwner.

- PropertyRentalOwner được đổi tên thành Rental.

Trang 76

1NF to 2NF(tt)

1NF

2NF

Trang 77

Dạng chuẩn 3(3NF)

 Một lược đồ R ở dạng chuẩn 3 khi nó đạt dạng chuẩn 2 và tất cả các thuộc tính không khóa không phụ thuộc bắt cầu vào khóa

Vì thế, PropertyOwner không đạt 3NF

Trang 78

2NF to 3NF

 Xác định thuộc tính khóa trong quan hệ đạt dạng chuẩn 2

PropertyOwner: propertyNo

 Xác định phụ thuộc hàm trong quan hệ

propertyNo  pAddress, rent, ownerNo, oName

ownerNo  oName

 Nếu pth bắt cầu tồn tại trên khóa chính thì xóa bỏ chúng bằng cách thay thế chúng bằng một quan hệ mới

- Xóa oName từ PropertyOwner bằng cách thay thế quan

hệ Owner.

- PropertyOwner được thay đổi thành PropertyForRent.

Trang 79

2NF to 3NF

Trang 80

Client, PropertyForRent &

Owner đạt chuẩn BCNF vì

mỗi xác định có thể đều là

khóa.

Rental cũng đạt chuẩn BCNF

vì mỗi xác định (vd clientNo,

propertyNo hoặc clientNo,

rentStart hoặc propertyNo,

rentStart) đều cũng là khóa

Trang 82

3NF to BCNF

3NF

Primary key

Primary key

Trang 83

Ví dụ

 Xét quan hệ Hướngdẫn

 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

Trang 84

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ướngdẫn?

- Chuẩn hóa thành dạng chuẩn cao nhất

Ngày đăng: 28/03/2014, 21:22

HÌNH ẢNH LIÊN QUAN

Đồ thị của  F : - PHỤ THUỘC HÀM VÀ CÁC DẠNG CHUẪN
th ị của F : (Trang 65)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w