1. Trang chủ
  2. » Giáo Dục - Đào Tạo

bài giảng cơ sở dữ liệu chương 6: phụ thuộc hàm và chuấn hóa csdl - ths. nguyễn thị khiêm hòa

74 767 0

Đ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

Định dạng
Số trang 74
Dung lượng 1,53 MB

Nội dung

BAO ĐÓNG CÁC THUỘC TÍNH• Phân tách các phụ thuộc hàm trong , sao cho mỗiphụ thuộc hàm trong  chỉ có một thuộc tính ở vếphải • Gọi X là tập hợp bao đóng các thuộc tính... SIÊU KHÓA• Siê

Trang 1

Phụ thuộc hàm và Chuẩn hóa CSDL

Functional Dependency and Normal Forms

Trang 3

PHỤ THUỘC HÀM

Ví dụ

Bạn có nhận xét gì về mối liên hệ giữa các thuộc tính?

Trang 4

PHỤ THUỘC HÀM

Ví dụ

Trang 5

PHỤ THUỘC HÀM

• Tồn tại hai mối liên hệ giữa các thuộc tính

Trang 6

Nếu hai bộ của quan hệ R có giá trị giống nhau tại các thuộc tính A1,

A2, , An, thì chúng cũng phải có giá trị giống nhau tại các thuộc tính

B1, B2, , Bm.

A1, A2, , An B1, B2, , Bm

Trang 7

PHỤ THUỘC HÀM

Minh họa bằng hình ảnh

Hình 8.1 Ảnh hưởng của phụ thuộc hàm A->B đối với hai bộ t, u bất kỳ.

Trang 9

PHỤ THUỘC HÀM

Ví dụ

TenDA  Diadiem_DA, TenPB TenDA, TenNV  Thoigian

Trang 11

HỆ TIÊN ĐỀ AMSTRONG

• Giả sử quan hệ R thỏa mãn tập các phụ thuộc hàm

• Chứng minh ràng R cũng phải thỏa mãn phụ thuộc hàm

f

Mục tiêu

• Giả sử R thỏa mãn hai phụ thuộc hàm A  B, và B  C

• Chứng minh rằng R cũng thỏa mãn phụ thuộc hàm A  C

• Chứng minh rằng R không thỏa mãn phụ thuộc hàm

C  A

Ví dụ

Trang 12

• Ví dụ: nếu C  D thì ABC  ABD

Luật 2: Luật tăng trưởng

• Nếu X  Y và Y  Z thì X  Z

Luật 3: Luật bắc cầu

Trang 13

HỆ QUẢ CỦA TIÊN ĐỀ AMSTRONG

Trang 15

HỆ TIÊN ĐỀ AMSTRONG

Ví dụ

TenDA  Thoigian ? TenDA, Ten NV  Thoigian

Trang 17

BAO ĐÓNG CÁC THUỘC TÍNH

• Phân tách các phụ thuộc hàm trong , sao cho mỗiphụ thuộc hàm trong  chỉ có một thuộc tính ở vếphải

• Gọi X là tập hợp bao đóng các thuộc tính Tại thời điểm khởi tạo X = {A 1 , A 2 , , A n}

• Tìm một phụ thuộc hàm B 1 B 2 B m →C, sao cho tất

cả B 1 , B 2 , , B m đều nằm trong X, nhƣng C thì

Thuật toán tìm bao đóng

Trang 19

Nếu B  {A}+, thì kết luận tồn tại A  B

Ngược lại, kết luận không tồn tại A  B

Tính bao đóng của X

Nếu {X}+ chứa tất cả thuộc tính của R, thì X là siêu khóa.

Ngược lại, kết luận X không phải là siêu khóa

Trang 20

BAO ĐÓNG CÁC THUỘC TÍNH

• Quan hệ R với các phụ thuộc hàm AB → C(1), BC

→ AD(2), D → E(3), và CF → B(4)

• Kiểm tra sự tồn tại của phụ thuộc hàm AB → D

• Kiểm tra sự tồn tại của phụ thuộc hàm D → A

Trang 21

KHÓA CỦA QUAN HỆ

Định nghĩa

Tập hợp của một (hoặc nhiều) thuộc tính { A1, A2, , An} là khóa của quan hệ R nếu thỏa mãn đồng thời hai điều kiện sau đây:

1 Các thuộc tính đó xác định tất cả các thuộc tính khác của quan hệ.

2 {A1, A2, , An} không có bất kỳ tập con khác rỗng nào có thể xác

định tất cả các thuộc tính khác của quan hệ Khóa phải là nhỏ nhất.

Trang 22

KHÓA CỦA QUAN HỆ

Ví dụ

Trang 23

KHÓA CỦA QUAN HỆ

Ví dụ (tt)

Khóa của quan hệ là { TenDA , TenNV } vì:

1 { TenDA , TenNV } xác định hàm Thoigian

2 { TenDA } xác định hàm Diadiem_DA , TenPB ,

3 { TenDA }, { TenNV } không xác định hàm các thuộc tính còn lại của quan hệ

Trang 24

KHÓA CỦA QUAN HỆ

Bài tập

Trang 25

SIÊU KHÓA

• Siêu khóa là tập hợp các thuộc tính chứa khóa

• Mọi khóa đều là siêu khóa, siêu khóa không phải là khóa

Định nghĩa

• Khóa là {TenDA, TenNV}

• Siêu khóa là {TenDA, TenNV}, {TenDA, TenNV, TenPB}

Ví dụ

Trang 26

THUẬT TOÁN TÌM KHÓA

• Input : Lƣợc đồ quan hệ R với các thuộc tính {A 1 , A 2 , ., A n} và tập phụ thuộc hàm định nghĩa trên R

• Output: Khóa của R

• Thuật toán:

• Khóa: = R

• Với i:= 1 to n (số thuộc tính)

Nếu Khóa – {A i } là một siêu khóa của R

Khóa: = Khóa - {A i }

Trang 27

THUẬT TOÁN TÌM KHÓA

• Ví dụ: cho R(ABCDE); F = {AB  C, C  DE}

Trang 28

THUẬT TOÁN TÌM NHIỀU KHÓA

• Cho lƣợc đồ quan hệ R(A 1 , A 2 , , A n) và F là tập phụ thuộc hàm định nghĩa trên R

• Thuộc tính chia làm 3 loại:

• Tập gốc: chỉ xuất hiện trong vế trái của phụ thuộc hàm hoặc không xuất hiện trong bất kỳ phụ thuộc hàm

• Tập ngọn: chỉ xuất hiện trong vế phải của phụ thuộc hàm

• Tập trung gian: các thuộc tính còn lại

Trang 29

THUẬT TOÁN TÌM NHIỀU KHÓA

Nhận xét:

• Các thuộc tính ở nút ngọn không có trong khóa

• Các thuộc tính ở nút gốc chắc chắn phải xuất hiện

trong khóa

Thuật toán:

• Xác định các tập thuộc tính: gốc, ngọn, trung gian

• Xây dựng tổ hợp giữa tập gốc và trung gian, xét bao đóng để xác định khóa

Trang 30

THUẬT TOÁN TÌM KHÓA

• Ví dụ: cho R(ABCDE); F = {AB  C, C  BD}

Trang 31

BÀI TẬP 1

• Cho quan hệ R với các thuộc tính A,B,C,D,E,F

• Các phụ thuộc hàm AC, A D, D E, E F

• Tìm bao đóng của {A}+

• Tìm bao đóng của {A,B}+

Tìm bao đóng

Trang 33

BÀI TẬP 3

• Cho quan hệ R với các thuộc tính A,B,C,D

• Các phụ thuộc hàm BC  D, D  A, A  B

• Tìm tất cả các khóa của quan hệ R

• Tìm tất cả các siêu khóa không phải là khóa củaquan hệ R

Xác định khóa, siêu khóa

Trang 34

BÀI TẬP 4

• Cho quan hệ R với các thuộc tính A,B,C,D

• Các phụ thuộc hàm A→B, A→C, C→D

• Tìm tất cả các khóa của quan hệ R

• Tìm tất cả các siêu khóa không phải là khóa của

quan hệ R

Xác định khóa, siêu khóa

Trang 35

TƯƠNG ĐƯƠNG GIỮA CÁC PHỤ THUỘC HÀM

• Mọi phụ thuộc hàm của F đều có thể suy được từ

G và mọi phụ thuộc hàm của G đều có thể suyđược từ F

• Do vậy F và G là tương đương nếu F+ = G+

Hai tập phụ thuộc hàm F và G là tương đương nếu:

• F và G là tương đương nếu F phủ G và G phủ F

F phủ G nếu mọi phụ thuộc hàm của G đều suy được

từ F ( G + F + )

Trang 36

PHỤ THUỘC HÀM ĐẦY ĐỦ

• Cho phụ thuộc hàm F định nghĩa trên lƣợc đồ quan

hệ R Phụ thuộc hàm X  Y là phụ thuộc hàm trên R

• X  Y là phụ thuộc hàm đầy đủ nếu vế phải Y khôngphụ thuộc hàm vào bất kỳ tập con nào khác rỗng Zcủa X

•  Z  X, Z ≠ , Z Y

• Y là phụ thuộc hàm đầy đủ vào X

• Ví dụ: cho F = {AB→C, A→C} Ta nói AB→C khôngphải là phụ thuộc hàm đầy đủ vì A→C

Định nghĩa:

Trang 37

PHỦ TỐI THIỂU

• F và G tương đương

• G chỉ có những phụ thuộc hàm có vế phải có mộtthuộc tính

• Các phụ thuộc hàm trong G là phụ thuộc hàm đầy đủ

Cho phụ thuộc hàm F định nghĩa trên lược đồ quan hệ R Phủ tối thiểu của F là tập phụ thuộc hàm G nếu:

• Mọi tập phụ thuộc hàm đều tương đương với một phủ tối thiểu hoặc nhiều phủ tối thiểu

Nhận xét:

Trang 38

THUẬT TOÁN TÌM PHỦ TỐI THIỂU

• G: = F

• Phân rã vế phải của các phụ thuộc hàm trong G để

có tập phụ thuộc hàm chỉ có vế phải là một thuộc

tính

• Kiểm tra các phụ thuộc hàm đầy đủ với các phụ

thuộc hàm có vế trái từ hai thuộc tính trở lên?

• Loại bỏ các phụ thuộc hàm thừa

Input: tập phụ thuộc hàm F

Output: tập phủ tối thiểu G

Trang 40

PHÉP CHIẾU PHỤ THUỘC HÀM

• Input: Quan hệ R, tập phụ thuộc hàm S, quan hệ R1

• Output: Tập phụ thuộc hàm trên R1

Trang 41

PHÉP CHIẾU PHỤ THUỘC HÀM

• Bao đóng của tập rỗng và tập tất cả các thuộctính không thể phát sinh phụ thuộc hàm khônghiển nhiên

• Nếu bao đóng của một tập X nào đó là tập tất cả

các thuộc tính, thì bao đóng của mọi tập chứa X

đều không thể phát sinh phụ thuộc hàm mới

Chú ý

Trang 42

Ví dụ: Cho trước quan hệ R(A,B,C,D) và tập phụ

thuộc hàm ={A →B, B→C, C→D} R1=A,C,D(R) Xác định các phụ thuộc tồn tại trong R 1

Không xét các tập hợp chứa thuộc tính A

Trang 43

PHÉP CHIẾU PHỤ THUỘC HÀM

• Tìm phủ tối thiểu của T = {A→C, A→D, C→D}

• Vì A→D là kết quả của phép bắc cầu của A→C

và C→D, nên loại bỏ A→D không làm thay đổi

tính phủ của T

• T = {A→C, C→D} là phủ tối thiểu

Ví dụ (tiếp)

Trang 44

Mất mát dữ liệu

Trang 45

MỘT SỐ VẤN ĐỀ KHI THIẾT KẾ

CƠ SỞ DỮ LIỆU

Sự dƣ thừa dữ liệu

Trang 46

MỘT SỐ VẤN ĐỀ KHI THIẾT KẾ

CƠ SỞ DỮ LIỆU

Sự xung đột dữ liệu

Trang 47

MỘT SỐ VẤN ĐỀ KHI THIẾT KẾ

CƠ SỞ DỮ LIỆU

Sự mất mát dữ liệu

Trang 48

MỘT SỐ VẤN ĐỀ KHI THIẾT KẾ

CƠ SỞ DỮ LIỆU

Phân tách quan hệ

Trang 49

PHÂN TÁCH QUAN HỆ

• Sự phân hoạch  = [S 1 , S 2, …, S k] là một phép

phân tách của quan hệ R(A 1 , A 2, …, A n) nếu thỏa

mãn hai điều kiện

• S i{A 1 , A 2 , …, A n}

• {A 1 , A 2 , …, A n } = S 1S 2  …  S k

Định nghĩa

Trang 51

PHÂN TÁCH QUAN HỆ

• Sự phân tách  = [S 1 , S 2, …, S k] của quan hệ

R(A 1 , A 2, …, A n) gọi là kết nối tự nhiên nếu:

Phép phân tách – kết nối tự nhiên

S1 (R)⋈S2 (R)⋈ ⋈Sk (R) R

Trang 52

PHÂN TÁCH QUAN HỆ

• Sự phân tách  = [S 1 , S 2 , …, S k] của quan hệ

R(A 1 , A 2 , …, A n) gọi là không mất thông tin nếu:

Phép phân tách không mất thông tin

S1 (R)⋈S2 (R)⋈ ⋈Sk (R) = R

Trang 53

Phép phân tách – kết nối tự nhiên?

Phép phân tách không mất thông tin?

Trang 54

PHÂN TÁCH QUAN HỆ

• Phép kết tự nhiên có tính giao hoán và kết hợp

• Nếu tR, thì t[S i] Si(R)

• Nếu tR, thì tS1 (R)⋈S2 (R)⋈ ⋈Sk (R)

• S1 (R)⋈S2 (R)⋈ ⋈Sk (R) = R khi và chỉ khi mọi

bộ trong phép kết tự nhiên đều nằm trong R

Phân tách không mất thông tin

Trang 55

PHÂN TÁCH QUAN HỆ

• Bước 1: Xây dựng ma trận S: n dòng và m cột (Dòng i

tương ứng với R i ; Cột j tương ứng A i )

• Bước 2: Gán giá trị a tại thuộc tính có trong Ri

• Bước 3: Với mỗi phụ thuộc hàm X  Y thuộc F:

• Thay đổi giá trị tại Y bằng a nếu thỏa phụ thuộc

Trang 56

PHÂN TÁCH QUAN HỆ

• R(A,B,C,D), R 1= A,D (R),R 2= A,C (R),R 3= B,C,D (R)

• Kiểm tra phép phân tách không mất thông tin

Trang 57

CÁC DẠNG CHUẨN CỦA MÔ HÌNH DỮ

Trang 58

DẠNG CHUẨN THỨ NHẤT

• Một quan hệ R đƣợc gọi là ở dạng chuẩn thứ nhất

(1NF) khi và chỉ khi các thuộc tính chỉ chứa các giá trị

Trang 59

DẠNG CHUẨN THỨ HAI

• Một quan hệ R đƣợc gọi là ở dạng chuẩn thứ hai (2NF) khi và chỉ khi nó ở dạng chuẩn thứ nhất

và mọi thuộc tính không khóa của R phụ thuộc

Định nghĩa

Trang 60

DẠNG CHUẨN THỨ HAI

• Quan hệ Phan_cong(MaNV, MaDA, Thoigian,

TenNV, TenDA, Diadiem_DA) với các phụ thuộc hàm:

• MaNV, MaDA Thoigian

• MaNV TenNV

• MaDA TenDA, Diadiem_DA

• Phụ thuộc hàm nào trên đây vi phạm điều kiện chuẩn thứ hai?

Ví dụ

Trang 61

DẠNG CHUẨN THỨ BA

• Quan hệ R đƣợc gọi là ở dạng chuẩn thứ ba

(3NF) khi và chỉ khi nó ở dạng chuẩn thứ hai và

mọi thuộc tính không khóa của nó đều không phụ

thuộc bắc cầu vào khóa chính

Định nghĩa 1

Trang 62

DẠNG CHUẨN THỨ BA

• Quan hệ R đƣợc gọi là ở dạng chuẩn thứ ba

(3NF) khi và chỉ khi mọi phụ thuộc hàm không

hiển nhiên X →Y trong quan hệ R phải thỏa mãn

một trong hai điều kiện sau đây:

• X là siêu khóa,hoặc

• Các thuộc tính Y không nằm trong X đều là

thành viên của một khóa nào đó (không nhất

thiết phải cùng một khóa).

Định nghĩa 2

Trang 63

DẠNG CHUẨN THỨ BA

• Quan hệ Phan_cong(MaNV, MaDA, Thoigian,

TenNV, TenDA, Diadiem_DA) với các phụ thuộc

Trang 64

DẠNG CHUẨN THỨ BA

Ví dụ

Trang 65

DẠNG CHUẨN BCNF

• Quan hệ R đƣợc gọi là ở dạng chuẩn Boyce –

Codd (BCNF) khi và chỉ khi với mọi phụ thuộc

hàm không hiển nhiên X → Y trên R, X là siêu

khóa của R

Định nghĩa

Trang 66

DẠNG CHUẨN BCNF

Ví dụ

Trang 67

DẠNG CHUẨN BCNF

Ví dụ

TenDA Diadiem_DA TenPB

Project A TP.Hà Nội Phòng giải pháp mạng truyền thôngProject B TP.Hà Nội Phòng phần mềm nước ngoài

Trang 69

CÁC PHƯƠNG PHÁP CHUẨN HÓA CƠ SỞ

DỮ LIỆU QUAN HỆ

• Hạn chế dư thừa dữ liệu

• Không tổn thất thông tin

• Không bảo toàn phụ thuộc hàm

Phân tách quan hệ về dạng chuẩn BCNF

• Có thể dư thừa dữ liệu

• Không tổn thất thông tin

• Bảo toàn phụ thuộc hàm

Phân tách quan hệ về dạng chuẩn 3NF

Trang 70

PHÂN TÁCH QUAN HỆ VỀ DẠNG CHUẨN BCNF

• Gọi đệ quy thuật toán này với (S1,R1) và (S2,R2)

Input: Quan hệ R 0 với tập phụ thuộc hàm S 0

Output: Tập quan hệ R i là kết quả của phép phân

tách từ R 0 , tất cả R i đều BCNF

Trang 71

PHÂN TÁCH QUAN HỆ VỀ DẠNG CHUẨN BCNF

Ví dụ:

Trang 72

PHÂN TÁCH QUAN HỆ VỀ DẠNG CHUẨN 3NF

• Input: Quan hệ R 0 với tập phụ thuộc hàm S 0

• Output: Tập quan hệ R i là kết quả của phép phân

Trang 73

PHÂN TÁCH QUAN HỆ VỀ DẠNG CHUẨN 3NF

• Cho R(A,B,C, D, E)

• F = {AB  C, C  B, A  D}

• Phân rã R thành các quan hệ đạt chuẩn 3NF

Ví dụ

Ngày đăng: 02/07/2014, 17:43

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w