Tải bản đầy đủ (.ppt) (38 trang)

Chương 9 Phụ thuộc hàm (Functional Dependency)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (240.14 KB, 38 trang )

Chương 9: Phụ thuộc hàm
Chương 9: Phụ thuộc hàm
(Functional Dependency)
(Functional Dependency)
1
Nội dung
Nội dung

Dư thừa dữ liệu

Phụ thuộc hàm

Hệ tiên đề Amstrong

Bao đóng của tập phụ thuộc hàm

Bao đóng của tập thuộc tính

Tìm khóa
2
Dư thừa dữ liệu
Dư thừa dữ liệu
(Data redundancy)
(Data redundancy)

Mục đích của thiết kế CSDL là gom các
thuộc tính thành các quan hệ sao cho
giảm thiểu dư thừa dữ liệu

Hậu quả của dư thừa dữ liệu:


Lãng phí không gian đĩa

Các bất thường khi cập nhật

Ba loại bất thường:

Bất thường khi thêm vào

Bất thường khi xóa bỏ

Bất thường khi sửa đổi
3
Ví dụ
Ví dụ
SSN
SSN
Name
Name
Address
Address
Hobby
Hobby
111111111
111111111
111111111
111111111
555666777
555666777
555666777
555666777

987654321
987654321
John Doe
John Doe
John Doe
John Doe
Mary Doe
Mary Doe
Mary Doe
Mary Doe
Bart Simpson
Bart Simpson
123 Main St.
123 Main St.
123 Main St.
123 Main St.
7 Lake Dr.
7 Lake Dr.
7 Lake Dr
7 Lake Dr
.
.
Fox 5 TV
Fox 5 TV
Stamps
Stamps
Coins
Coins
Hiking
Hiking

Skating
Skating
Acting
Acting

Khóa chính của bảng PERSON?
 SSN + Hobby

Thông tin cá nhân bị trùng lặp

Các bất thường:
◦ Nếu John thay đổi chỗ ở  update anomaly
◦ Nếu bổ sung thêm người mới tên là Homer Simpson nhưng
chưa biết sở thích của anh ta  không thể tạo bản ghi mới
được  insertion anomaly
◦ Nếu Bart Simpson không có bất kỳ sở thích nào  xóa sở
thích Acting như thế nào  Delete anomaly
4
Phụ thuộc hàm
Phụ thuộc hàm
(Functional Dependency)
(Functional Dependency)

Phụ thuộc hàm mô tả mối liên hệ giữa các
thuộc tính

Dựa vào phụ thuộc hàm để thiết kế lại
CSDL, loại bỏ các dư thừa dữ liệu
5
Phụ thuộc hàm

Phụ thuộc hàm
(Functional Dependency)
(Functional Dependency)

Cho lược đồ quan hệ R(U), r là 1 quan hệ
bất kỳ trên R, X và Y là 2 tập thuộc tính
con.

Định nghĩa: Phụ thuộc hàm (FD) f: X  Y
trên lược đồ quan hệ R nếu và chỉ nếu mỗi
giá trị X trong r có quan hệ chính xác với 1
giá trị Y trong r. Nghĩa là bất kể khi nào 2
bộ của r có cùng giá trị X thì cũng có cùng
giá trị Y.
∀t1, t2 ∈ r(R): t1[X] = t2[X] ⇒ t1[Y]=
t2[Y]
6
Phụ thuộc hàm
Phụ thuộc hàm
(Functional Dependency)
(Functional Dependency)
X là vế trái, ký hiệu left(f) hay còn gọi là
determinant
Y là vế phải, ký hiệu right(f) hay còn gọi là
dependent
7
Phụ thuộc hàm
Phụ thuộc hàm
(Functional Dependency -FD)
(Functional Dependency -FD)


Phụ thuộc hàm là 1 đặc điểm ngữ nghĩa
của các thuộc tính, được xem là 1 ràng
buộc giữa các thuộc tính.

Ví dụ: Một nhân viên chỉ có 1 mức lương
nhưng nhiều nhân viên có thể có cùng 1
mức lương
Emp_ID  Salary
Salary -/-> Emp_ID

Phụ thuộc hàm được xác định dựa vào quy
tắc nghiệp vụ được xác định trên lược đồ
quan hệ
8
Phụ thuộc hàm
Phụ thuộc hàm
(Functional Dependency -FD)
(Functional Dependency -FD)

Từ quy tắc bảo toàn thực thể  nếu X là 1
candidate key thì tất cả các thuộc tính Y
của lược đồ R sẽ phải phụ thuộc hàm vào
X

Ví dụ: trong lược đồ PROFESSOR có ProfId
là primary key nên:
ProfId  Name, Qualification

Có 1 số FD trong lược đồ sẽ gây ra dư

thừa dữ liệu.
9
Ví dụ FD và dư thừa dữ liệu
Ví dụ FD và dư thừa dữ liệu

Xét lược đồ PERSON(SSN, Name,
Address,Hobby) với quy tắc là 1 người có thể
có nhiều sở thích (hobby)
◦ SSN,Hobby  SSN, Name, Address,Hobby

Bất thường xảy ra khi một người có nhiều sở
thích thay đổi địa chỉ
10
Giải thuật kiểm tra phụ thuộc
Giải thuật kiểm tra phụ thuộc
hàm
hàm

Bài toán: cho quan hệ r và 1 phụ thuộc
hàm f:X Y. Kiểm tra xem r thỏa mãn f
hay không?

Function Satisfies(r,f:X Y)

Sắp thứ tự các bộ trong r theo các thuộc tính
của X

If mỗi tập các bộ có cùng giá trị X thì có cùng
giá trị Y then


Satisfies = true

Else

Satisfies = false
11
Functional Dependencies
Functional Dependencies

Các phụ thuộc hàm của quan hệ R là:

A → B

A → D

B,C → E,F

Các bộ của quan hệ r(R) có vi phạm các FD
này không?
12
R A B C D E F
a1 b1 c1 d1 e1 f1
a1 b1 c2 d1 e2 f3
a2 b1 c2 d3 e2 f3
a3 b2 c3 d4 e3 f2
a2 b1 c3 d3 e4 f4
a4 b1 c1 d5 e1 f1


Tập phụ thuộc hàm

Tập phụ thuộc hàm

Gọi F là 1 tập phụ thuộc hàm trên R
nếu mọi phụ thuộc hàm trong F đều là
phụ thuộc hàm trên R

Phụ thuộc hàm tầm thường ( trivial
FD) hay phụ thuộc hàm hiển nhiên X
Y nếu Y ⊆ X

Ví dụ: Name, Address

Name
13
Tập phụ thuộc hàm
Tập phụ thuộc hàm

Số tập con có thể có của R =
{A1,A2, ,An} là 2
n
.

Ứng với 2 tập con sẽ tạo thành 1 FD 
Số FD có thể có được là 1 chỉnh hợp lặp
chập 2 của 2
n
phần tử. Số FD tối đa có
thể có (2
n)2
=2

2n
.
14
Tập phụ thuộc hàm
Tập phụ thuộc hàm

FD được dùng để thể hiện các ràng buộc
bảo toàn (integrity constraint), vì vậy
DBMS cần phải quản lý các FD.

Với 1 tập S chứa toàn bộ các FD của 1
lược đồ, có cách nào tìm ra 1 tập T ⊆ S
sao cho mọi FD của S đều ngầm suy từ
các FD của T. Khi đó, DBMS chỉ quản lý
các FD của T, các FD trong S sẽ được quản
lý một cách tự động.
15
Hệ tiên đề Amstrong
Hệ tiên đề Amstrong

Phụ thuộc hàm XY được suy diễn luận lý
từ F nếu mọi quan hệ thỏa mãn mọi phụ
thuộc hàm trong F thì cũng thỏa mãn XY

Ký hiệu F⊨XY

F bao hàm (implies) XY

XY được suy diễn theo quan hệ từ F
16

Hệ tiên đề Amstrong
Hệ tiên đề Amstrong

Quy tắc suy diễn (inference rule): nếu 1
quan hệ thỏa mãn 1 số phụ thuộc hàm
nào đó thì quan hệ này cũng thỏa mãn 1
số phụ thuộc hàm khác
17
Hệ tiên đề Amstrong
Hệ tiên đề Amstrong

Các tiên đề suy diễn:

F1. Phản xạ (reflexivity): Y⊆X ⇒
X→Y

F2. Gia tăng (augmentation): X→Y
⇒ XZ →YZ

F3. Bắc cầu (transitivity): X→Y và
Y→Z ⇒ X →Z
18
Hệ tiên đề Amstrong
Hệ tiên đề Amstrong

F4. Hợp (additivity): X→Y và X→Z ⇒ X
→YZ

F5. Chiếu (projectivity): X→YZ ⇒ X →Y


F6. Bắc cầu giả (pseudotransitivity): X→Y
và YZ→W ⇒ XZ →W
19
Ví dụ
Ví dụ

Dùng hệ tiên đề Amstrong để chứng minh
Nếu X → YZ và Z → W, thì X → YZW

Chứng minh:

Từ Z → W  YZZ → YZW (luật gia tăng) hay
YZ → YZW

Từ X YZ và YZ  YZW  X → YZW (luật bắc
cầu)
20
Bao đóng của tập phụ thuộc
Bao đóng của tập phụ thuộc
hàm
hàm

Bao đóng (closure) của tập phụ thuộc
hàm F là 1 tập phụ thuộc hàm nhỏ nhất
chứa F sao cho không thể áp dụng hệ tiên
đề Amstrong trên tập này để tạo ra 1 phụ
thuộc hàm khác không có trong tập hợp
này

Ký hiệu F+


F+ là 1 tập hợp các FD được suy diễn từ F
21
Các tính chất của bao đóng của
Các tính chất của bao đóng của
tập phụ thuộc hàm
tập phụ thuộc hàm
1. Tính phản xạ: với mọi tập phụ thuộc
hàm F+ ta luôn có F ⊆ F+
2. Tính đơn điệu: nếu F ⊆ G thì F+ ⊆ G+
3. Tính lũy đẳng: với mọi tập phụ thuộc
hàm F ta luôn có (F+)+ = F+.
22
Hệ tiên đề Amstrong
Hệ tiên đề Amstrong

Hệ tiên đề Amstrong là đúng đắn (sound)
 các phụ thuộc hàm suy diễn từ F (tập
phụ thuộc hàm trên r) theo hệ tiên đề
Amstrong cũng là một phụ thuộc hàm trên
r

Hệ tiên đề Amstrong là toàn vẹn
(completeness)  bảo đảm rằng f ∈ F+
nếu và chỉ nếu f là 1 FD được suy diễn
23
Phụ thuộc hàm tương đương
Phụ thuộc hàm tương đương

Nếu F và G là 2 tập FD. F suy diễn G ( F

entails G) nếu F suy diễn được tất cả các
FD có trong G.

F và G là tương đương nhau nếu F suy
diễn G và G suy diễn F
24
Kiểm tra các tập FD tương
Kiểm tra các tập FD tương
đương
đương

Input: F,G – các tập FD

Output: true nếu F tương đương G,
false nếu ngược lại
For each f ∈F do
if G does not entail f then return false
For each g ∈ G do
if G does not entail f then return false
Return true
25

×