Tải bản đầy đủ (.pdf) (42 trang)

Bài tập thực hành môn Hệ quản trị cơ sơ dữ liệu

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 (428.6 KB, 42 trang )

HeCSDL
1
NN
NN
CHƯƠNG
CHƯƠNG
Ph
Ph


thu
thu


c h
c h
à
à
m
m
(Functional Dependency)
(Functional Dependency)
HeCSDL 2
NN
NN
N
N


i dung
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
HeCSDL 3
NN
NN
C
C
á
á
c v
c v


n đ
n đ


trong t
trong t


ch
ch



c d
c d


li
li


u
u
 Dư thừa (redundancy): Họ tên của các sinh viên
được lặp lại mỗi lần cho mỗi môn thi.
 Mâu thuẫn tiềm ẩn (potentia inconsistancy)
hay bất thường khi cập nhật. Do hậu quả của dư
thừa, chúng ta có thể cập nhật họ tên của một sinh
viên trong một bộ nào đó nhưng vẫn để lại họ tên
cũ trong những bộ khác
HeCSDL 4
NN
NN
C
C
á
á
c v
c v


n đ
n đ



trong t
trong t


ch
ch


c d
c d


li
li


u
u


 Bất thường khi chèn (insertion anomaly). Chúng ta
không thể biết họ tên của một sinh viên nếu hiện
tại sinh viên đókhông dự thi môn nào
 Bất thường khi xoá (deletion anomaly). chúng ta có
thể xoá tất cả các môn thi của một sinh viên, vô ý
làm mất dấu vết để tìm ra họ tên của sinh viên
này.
HeCSDL 5

NN
NN
Dư th
Dư th


a d
a d


li
li


u
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
5
HeCSDL 6

NN
NN
V
V
í
í
d
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
6
HeCSDL 7
NN
NN
Ph
Ph


thu
thu


c h
c h
à
à
m
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. X → Y

 Phụ thuộc hàm (functional dependancy) là
một công cụ dùng để biểu diễn một cách
hình thức các ràng buộc toàn vẹn.
 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
7
HeCSDL 8
NN
NN
Ph
Ph


thu
thu


c h
c h
à
à
m
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
của U.
 Đị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]
8
HeCSDL 9
NN
NN
Ph
Ph


thu
thu


c h
c h
à
à
m
m
(Functional Dependency)
(Functional Dependency)
 Cho lược đồ quan hệ Q {A1,A2,…,An}. X, Y là hai
tập con khác rỗng của Q+(tập thuộc tính).
 Ta nói X xác định Y (hay Y phụ thuộc hàm vào X)
nếu với r là một quan hệ nào đó trên Q, ∀ t1, t2 ∈
r mà t1.X = t2.X ⇒ t1.Y = t2.Y (nghĩa là không thể

tồn tại hai bộ trong r có các thuộc tính trong tập X
giống nhau mà lại có một hay nhiều thuộc tính
trong tập Y khác nhau).
 Khi đó ta ký hiệu là X → Y.
9
HeCSDL 10
NN
NN
Gi
Gi


i thu
i thu


t ki
t ki


m tra ph
m tra ph


thu
thu


c h
c h

à
à
m
m
 Bài toán: cho quan hệ r và 1 phụ thuộc
hàm f: XÆ Y. Kiểm tra xem quan hệ r có
thỏa mãn phụ thuộc hàm 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
10
HeCSDL 11
NN
NN
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?
11
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


HeCSDL 12
NN
NN
T
T


p ph
p ph


thu
thu


c h
c h
à
à
m
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
 Quy ước: chỉ cần mô tả các phụ thuộc hàm
không hiển nhiên trong tập F, các phụ thuộc hàm
hiển nhiên được ngầm hiểu là đã có trong F.
12
HeCSDL 13
NN
NN
Cách Xác Định Phụ Thuộc Hàm Cho
Lược Đồ Quan Hệ
 Cách duy nhất để xác định đúng các phụ thuộc
thích hợp cho một lược đồ quan hệ là xem xét nội
dung tân từ của lược đồ quan hệ đó
 Chẳng hạn tân từ của lược đồ quan hệ Sinhvien là:
”Mỗi sinh viên có mỗi MASV duy nhất. Mỗi MASV
xác định các thuộc tính còn lại của sinh viên đó như
HOTENSV,NU, NGAYSINH, NOISINH,TINH,MALOP”
 Khi phát biểu tân từ cho một lược đồ quan hệ,
người thiết kế cần phải mô tả đầy đủ ý nghĩa để
người khác tránh hiểu nhầm
HeCSDL 14
NN
NN
H
H



tiên đ
tiên đ


Amstrong
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
14
HeCSDL 15
NN
NN
H
H


tiên đ
tiên đ


Amstrong
Amstrong
 Để có thể xác định được các phụ thuộc
hàm khác từ tập phụ thuộc hàm đã có, ta
dùng hệ tiên đề Armstrong (1974), gồm

các luật sau
15
HeCSDL 16
NN
NN
H
H


tiên đ
tiên đ


Amstrong
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
16
HeCSDL 17
NN
NN
H
H


tiên đ

tiên đ


Amstrong
Amstrong
Từ 3 tiên đề trên có thể suy ra:
 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
17
HeCSDL 18
NN
NN
V
V
í
í
d
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)

18
HeCSDL 19
NN
NN
Ph
Ph


thu
thu


c h
c h
à
à
m tương đương
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
19
HeCSDL 20
NN
NN
Ki
Ki



m tra c
m tra c
á
á
c t
c t


p FD tương đương
p FD tươ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
20
HeCSDL 21
NN
NN
V
V
í
í
d
d



 Hãy khảo sát 2 tập FD sau:
 F={ACÆB, AÆC, DÆA}
 G={AÆB, AÆC, DÆA, DÆB}
F và G có tương đương nhau không???
Từ AÆC + Tiên đề F2 Î AÆAC (1)
Từ (1)+ ACÆB + tiên đề F3 Î AÆB
Từ DÆA + AÆB + tiên đề F3 Î DÆ B
ÎF suy diễn G
Tương tự khi xét G suy diễn F
21
HeCSDL 22
NN
NN
Bao đ
Bao đ
ó
ó
ng c
ng c


a t
a t


p ph
p ph



thu
thu


c h
c h
à
à
m
m
 Bao đóng (closure) của tập phụ thuộc hàm
F (ký hiệu là F+) là tập hợp tất cả các phụ
thuộc hàm có thể suy ra từ F dựa vào các tiên
đề Armstrong. Rõ ràng F ⊆ F+
 Ký hiệu F+
 F+ là 1 tập hợp các FD được suy diễn từ F
22
HeCSDL 23
NN
NN
C
C
á
á
c t
c t
í
í
nh ch
nh ch



t c
t c


a bao đ
a bao đ
ó
ó
ng c
ng c


a t
a t


p ph
p ph


thu
thu


c h
c h
à
à

m
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+.
23
HeCSDL 24
NN
NN
Bao đ
Bao đ
ó
ó
ng c
ng c


a t
a t


p ph
p ph


thu
thu



c h
c h
à
à
m
m
 Ví dụ cho F={ABÆ C, CÆB} trên r(ABC)
ÎF+={AÆA, ABÆA, ACÆA, ABCÆA,
BÆB, ABÆB, BCÆB, ABCÆB,
CÆC, ACÆC, BCÆC, ABCÆC,
ABÆAB, ABCÆAB,
ACÆAC, ABCÆAC,
BCÆBC, ABCÆBC,
ABCÆABC,
ABÆC, ABÆAC, ABÆBC, ABÆABC,
CÆB,CÆBC, ACÆB, ACÆAB }
24
HeCSDL 25
NN
NN
Ph
Ph


t
t



i thi
i thi


u
u
 F được gọi là một tập phụ thuộc hàm tối
thiểu nếu F thoả đồng thời ba điều kiện sau:

×