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

Slide: Bài giảng: Thiết kế CSDL quan hệ

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 (302.93 KB, 25 trang )

Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 1
Thiếtkế CSDL quan hệ
Vũ Tuyết Trinh

Bộ môn Các hệ thống thông tin, Khoa Công nghệ thông tin
Đại học Bách Khoa Hà Nội
2
Các cách tiếpcận
{ Trên xuống (Top-down), nhắc lại
{ Dướilên(bottom-up)
1. Biểudiễndữ liệungười dùng (biểumẫu, báo cáo)
dướidạng các quan hệ
2. Chuẩn hoá các quan hệ này
3. Ghép các quan hệ có cùng khoá chính
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 2
3
Đặtvấn đề
{ Mục đích củachuẩn hoá là gi?
{ Thế nào là chuẩn? Có bao nhiêu chuẩn?
4
Ví dụ
{ 1 CSDL về các hãng cung ứng.
Suppliers(sid, sname, city, NOE, product,quantity)
100Bolt75TokyoBlakeS3
78Screw124ParisJ&JS2
100Nut100LondonSmithS1
50Screw100LondonSmithS1


quantityProductNOECitySnameSids
¾ Các vấn đề đặt ra
¾ Đề xuất các giải pháp
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 3
5
Mục đích củachuẩn hoá
{ Xác định được1 tậpcáclược đồ quan hệ cho
phép tìm kiếm thông tin mộtcáchdễ dàng,
đồng thời
tránh đượcdư thừadữ liệu
{ Hướng tiếpcận:
Tách các lược đồ quan hệ “có vấn đề” thành những
lược đồ quan hệ “chuẩnhơn”
6
Nộidung
{ Phụ thuộc hàm
{ Phép tách các sơđồquan hệ
{ Các dạng chuẩn
{ Phụ thuộc đa trị
{ Kếtluận
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 4
7
Phụ thuộchàm
(Functional dependencies - FD)
{ Đ/N Phụ thuộc hàm trong 1 quan hệ
Cho

z R(U) là 1 sơđồquan hệ, U là tậpcácthuộc tính.
z X, Y ⊆ U
X xác định hàm Y hay Y phụ thuộchàmvàoXnếu
z với ∀quan hệ r xác định trên R(U) và với2 bộ t1 và t2
bấtkỳ mà t1[X] = t2[X] thì t1[Y] = t2[Y].
{ Ký hiệu: X→Y
8
Ví dụ
Supp(sid, sname, city, NOE)
{ sid→sname
{ sid→city
{ sid→NOE
Supply(sid, product,quantity)
{ sid→product
{ sid→quantity
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 5
9
Hệ tiên đề Amstrong
Cho
z R(U) là 1 sơđồquan hệ, U là tậpcácthuộc tính.
z X,Y,Z,W ⊆ U
(K
ý hiệu: XY = X ∪ Y)
{ Phảnxạ (reflexivity)
NếuY ⊆ X thì X→Y.
{ Tăng trưởng (augmentation)
NếuX→Y thì XZ→YZ.
{ Bắccầu (transitivity)

NếuX→Y, Y→Z thì X→Z.
10
Hệ quả
{ Luậthợp (union)
NếuX→Y, X→Z thì X→YZ.
{ Luậttựabắccầu (pseudotransitivity)
NếuX→Y, WY→Z thì XW→Z.
{ Luậttách(decomposition)
NếuX→Y, Z ⊆ Y thì X→Z.
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 6
11
Bao đóng của1 tậpphụ thuộc hàm
{ Đ/N : Bao đóng củatậpphụ thuộc hàm F là tập
lớnnhất các phụ thuộc hàm có thểđược suy
diễn logic từ F
z Ký hiệulàF
+
{ Suy diễn logic
X → Y được suy diễn logic từ Fnếuvớimỗi quan hệ
r xác định trên R(U) thoả các phụ thuộc hàm trong F
thì cũng thoả X → Y
{ F là họđầy đủ (full family) nếu
F = F
+
12
Khoá
{ Đ/N: Cho lược đồ quan hệ R(U), tập các phụ
thuộc hàm F. K ⊆ U, K đượcgọilàkhóa tốithiểu

củaR nếunhư
z KÆU ∈ F
+
z với ∀ K’ ⊂ K thì K’ÆU ∉ F
+
{ Nhậnxét: NếuK làmột khóa tổithiểuthì
z K
+
= U
z K là tậpthuộc tính nhỏ nhất có tính chấtnhư vậy.
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 7
13
Bao đóng của1 tậpcácthuộc tính
{ Đ/N Bao đóng củatậpthuộc tính X là tập tấtcả
các thuộc tính đượcxácđịnh hàm bởi X thông
qua tậpF
z ký hiệulàX
+
X
+
= {A ∈ U| X → A ∈F
+
}
14
Nhậnxét
{ Hệ tiên đề Amstrong là đúng đắn và đầy đủ
{ X→Y được suy diễntừ hệ tiên đề Amstrong
⇔ Y ⊆ X

+
{ Thiết kế CSDL ? Các khái niệm
z Phụ thuộchàm
z Bao đóng củatậpphụ thuộc hàm
z Khoá
z Bao đóng của1 tậpcácthuộc tính
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 8
15
Tính bao đóng của1 tậpthuộc tính
{ Vào: Tậphữuhạncácthuộc tính U
tậpcácphụ thuộc hàm F trên U
X ⊆ U
{ Ra: X
+
{ Thuậttoán
B
0
X
0
= X.
B
i
Tính X
i
từ X
i-1
Nếu ∃ Y→Z ∈ F ^ Y ⊆ X
i-1

^ A ∈ Z ^ A ∉ X
i-1
thì X
i
= X
i-1
∪ A
ngượclại, X
i
= X
i-1
.
NếuX
i
≠ X
i-1
thì thựchiệnB
i
ngược lai, thựchiệnB
n
B
n
X
+
= X
i
16
Tìm khoá tốithiểu
{ Vào: U = {A
1

, A
2
, …, A
n
} , F
{ Ra: khóa tốithiểuK xácđịnh đượctrênU vàF
{ Thuậttoán
B
0
K
0
= U
B
i
Nếu(K
i-1
\{A
i
})ÆU
thì K
i
= K
i-1
\{A
i
}
ngượclại, K
i
= K
i-1

NếuK
i
≠ K
i-1
thì thựchiệnB
i
ngược lai, thựchiệnB
n
B
n
K = K
i
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 9
17
Ví dụ
{ Cho R(U) trong đó U = {A,B,C,D,E,F,G}. F = {AÆB,
ACDÆE, EFÆG}
1. Tìm mộtkhóatốithiểucủaR
K
0
= ABCDEFG
K
1
= K
0
do nếuloại A thì BCDEFG Æ U không thuộcF+
K
2

= K
1
\{B} = ACDEFG do ACDEFG Æ U thuộcF+
K
3
= K
2
do nếuloại C thì ADEFG Æ U không thuộcF+
K
4
= K
3
do nếuloại D thì ACEFG Æ U không thuộcF+
K
5
= K
4
\{E} = ACDFG do ACDFG Æ U thuộcF+
K
6
= K
5
do nếuloại F thì ACDG Æ U không thuộcF+
K
7
= K
6
\{G} = ACDF do ACDF Æ U thuộcF+
Vậy khóa tốithiểucần tìm là ACDF
18

Nhậnxétvề phụ thuộc hàm
{ từ mộttập các phụ thuộc hàm có thể suy diễn
ra các phụ thuộc hàm khác
{ trong mộttậpphụ thuộc hàm cho sẵncóthể có
các phụ thuộc hàm bị coi là dư thừa.
¾ Làm thế nào để có đượcmộttậpphụ thuộc
hàm tốt?
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 10
19
Tậpphụ thuộc hàm tương đương
{ Đ/N: Tậpphụ thuộchàmF làphủ củatậpphụ thuộc
hàm G hay G là phủ của F hay F và G tương đương
nếuF
+
= G
+
.
z Ký hiệulàF ≈ G
{ Kiểmtratínhtương đương của2 tậpphụ thuộc hàm
B.1. VớimỗiY→Z ∈ F, Z ⊆ Y
+
(trên G) thì Y→Z ∈ G+
Nếuvới ∀f ∈ F, f ∈ G+ thì F+ ⊆ G+
B.2. Tương tự, nếu ∀ f ∈ G, f ∈ F+ thì G+ ⊆ F+
B.3. NếuF+ ⊆ G+ và G+ ⊆ F+ thì
F ≈ G
20
Tậpphụ thuộc hàm không dư thừa

{ Đ/N: Tậpphụ thuộchàmF làkhông dư thừa nếu!∃
XÆY∈ F sao cho F \ {XÆY} ≈ F.
{ Tìm phủ không dư thừacủa1 tậpphụ thuộc hàm
z Vào: Tậpthuộc tính U, F = {L
i
ÆR
i
: i = 1 n}
z Ra : Phủ không dư thừaF’củaF
z Thuật toán
B
0
F
0
= F
B
i
NếuF
i-1
\{L
i
ÆR
i
} ≈ F
i-1
thì F
i
= F
i-1
\{L

i
ÆR
i
}
ngượclại, F
i
= F
i-1
NếuF
i
≠ F
i-1
thì thựchiệnB
i
ngượclại, thựchiệnB
n
B
n
F’ = F
i
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 11
21
Phủ tốithiểucủa1 tậpphụ thuộchàm
{ Đ/N: F
c
đượcgọilàphủ tốithiểucủa1 tậpphụ
thuộc hàm
F nếuthỏa mãn 3 điềukiện sau:

Đk1: Với ∀ f ∈ F
c,
f có dạng X Æ A,
trong đó A là 1 thuộc tính
Đk2: Với ∀ f = XÆY ∈ F
c
,!∃ A ∈X (A là 1 thuộc tính):
(F
c
\f) U {(X \A)ÆY} ≈F
c
Đk3: !∃ XÆA ∈ F
c
: F
c
\{XÆA} ≈ F
c
22
Tính phủ tốithiểu
{ Vào: Tậpthuộc tính U, F = {L
i
ÆR
i
: i = 1 n}
{ Ra: phủ tốithiểuF
c
củatậpphụ thuộc hàm F
{ Thuậttoán
B.1. Biến đổiF về dạng F
1

={L
i
Æ A
j
}
trong đóA
j
là 1 thuộc tính bấtkỳ thuộcU (thoả mãn đk1)
B.2. Loạibỏ thuộctínhthừatrongvế trái củacácphụ thuộchàm
Lầnlượtgiản ướctừng thuộctínhtrongvế trái củatừng
phụ thuộchàmtrongF
1
thu đượcF
1
’. NếuF
1
’ ≈ F
1
thì
loạibỏ thuộctínhđang xét
Khi không có sự giản ướcnàoxảyranữatathuđược
F
2
thỏamãn đk2
B.3. Loạibỏ phụ thuộc hàm dư thừa
Lầnlượtloạikiểmtratừng phụ thuộc hàm f. NếuF
2
\f ≈ F
2
thì loạibỏ f

Khi không cò phụ thuộchàmnàocóthể loạibỏ thi thu đươc
F
3
thoả mãn đk3
B.4. F
c
= F
3
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 12
23
Mục đích củathiếtkế CSDL –
nhắclại
{ Xác định được1 tậpcáclược đồ quan hệ cho
phép tìm kiếm thông tin mộtcáchdễ dàng,
đồng thời
tránh đượcdư thừadữ liệu (cf. slide
7)
¾ Phát biểulạimục đích này sử dụng các khái
niệmvừahọc?
24
Phép tách các lược đồ quan hệ
{ Mục đích
z Thay thế mộtsơđồquan hệ R(A
1
, A
2
, …, A
n

) bằng
mộttậpcácsơđồcon {R
1
, R
2
, …, R
k
} trong đóR
i
⊆R
và R = R
1
U R
2
U … U R
k
{ Yêu cầucủaphéptách
z Bảo toàn thuộc tính, ràng buộc
z Bảo toàn dữ liệu
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 13
25
Phép tách không mất mát thông tin
(Lossless join)
{ Đ/N: Cho lược đồ quan hệ R(U) phép tách R
thành các sơđồcon {R
1
, R
2

, …, R
k
} đượcgọilà
phép tách không mất mát thông tin đ/v mộttập
phụ thuộc hàm F nếuvớimọiquanhệ r xác định
trên R thỏamãnF thì:
r = Π
R1
(r) Π
R2
(r) … Π
Rk
(r)
{ Ví dụ:
Supplier(sid, sname,city,NOE,
pname,colour,quantity)
ÖS1(sid, sname, city, NOE)
SP1(sid,pname,colour,quantity)
26
Kiểm tra tính không mất mát thông tin
{ Vào: R(A
1
, A
2
, …, A
n
), F, phép tách {R
1
, R
2

, …, R
k
}
{ Ra: phép tách là mất mát thông tin hay không
{ Thuậttoán
B.1. Thiếtlậpmộtbảng k hàng, n cột
NếuA
j
là thuộc tính củaR
i
thì điềna
j
vào ô (i,j).
Nếu không thì điềnb
ij.
B.i. Xét f = XÆY ∈F.
Nếu ∃ 2 hàng t1, t2 thuộcbảng : t1[X] = t2[X]
thì t1[Y] = t2[Y], ưutiênđồng nhấtvề giá trị a
Lặpchotớikhikhôngthể thay đổi đượcgiátrị nào trong bảng
B.n. Nếubảng có 1 hàng gồmcáckíhiệua
1
, a
2
, … , a
n
thì phép tách là không mất mát thông tin.
ngượclại, phép tách không bảo toàn thông tin.
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 14

27
Phép tách bảo toàn tậpphụ thuộchàm
{ Hình chiếucủatậpphụ thuộchàm
Cho sơđồquan hệ R, tậpphụ thuộc hàm F, phép tách
{R
1
, R
2
, … , R
k
} của R trên F.
Hình chiếu F
i
của F trên R
i
là tậptấtcả XÆY ∈ F+ :
XY ⊆ R
i
.
{ Phép tách sơđồquan hệ R thành {R
1
, R
2
, … , R
k
} là
một phép tách bảo toàn tậpphụ thuộc hàm F nếu
(F
1
∪ F

2
… ∪ F
k
)+ = F+
hay hợpcủatấtcả các phụ thuộchàmtrongcáchình
chiếucủaF lêncácsơđồcon sẽ suy diễnracácphụ
thuộc hàm trong F.
28
Bài tập
{ Kiểmtraxem1 phéptáchcóbảo toàn tậpphụ
thuộc hàm không
{ Kiểm tra xem 1 phép tách có mất mát thông tin
không
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 15
29
Các dạng chuẩn
{ Vấn đề đặtra
z Có cầnphảitinhchỉnh thiếtkế nữa hay không?
z Thiếtkếđãlàtốt hay chưa?
¾ Định nghĩavề các dạng chuẩn.
{ Mục đích:
Mỗidạng chuẩn đảmbảongănngừa(giảmthiểu) một
số các dạng dư thừa hay dị thường dữ liệu
{ Các dạng chuẩn hay sử dụng
z Dạng chuẩn1 (1NF)
z Dạng chuẩn2 (2NF)
z Dạng chuẩn3 (3NF)
z Dạng chuẩn Boye-Code (BCNF)

z Dạng chuẩn4 (4NF)
30
Dạng chuẩn1 (1NF)
{ Đ/N: Mộtsơđồquan hệ R đượcgọilàở dạng
chuẩn1 nếu tấtcả các miềngiátrị củacác
thuộc tính trong R đềuchỉ chứagiátrị nguyên
tố.
z Giá trị nguyên tố là giá trị mà không thể chia nhỏ ra
đượcnữa
{ Ví dụ: Quan hệ không ở 1NF và quan hệ sau
khi chuẩn hóa về 1NF
75ScrewParisSmith
120Bolt
100NutLondonBlake
pricename
productcitysname
priceitemcitysname
75ScrewParisSmith
120BoltLondonBlake
100NutLondonBlake
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 16
31
Dạng chuẩn2 (2NF)
{ Đ/N: Mộtsơđồquan hệ R đượccoilàở dạng
chuẩn2 nếu
z Sơđồquan hệ này ở 1NF
z Tấtcả các thuộc tính không khóa đều phụ thuộchàm
đầy đủ vào khóa chính

(Lưuý, A làmộtthuộc tính khóa nếu A thuộcmột
khóa tốithiểu nào đócủaR. Ngượclại A là thuộctính
không khóa)
32
Phụ thuộchàmđầy đủ
{ Đ/N: Cho lược đồ quan hệ R(U), F là tậpphụ
thuộc hàm trên R. X, Y ⊆ U. Y đượcgọilàphụ
thuộc đầy đủ vào X nếu:
-XÆY thuộcF+
-!∃ X’ ⊂ X : X’ÆY ∈ F+
{ Các phụ thuộc hàm không đầy đủ còn gọilà
phụ thuộcbộ phận
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 17
33
Ví dụ
Sales(sid, sname, city, item, price)
F = {sid Æ (sname,city), (sid, item) Æ price}
{ Khóa chính (sid,item)
{ sname, city không phụ thuộc hàm đầy đủ vào khóa chính
Ö Sales không thuộc2NF
Ö Chuẩn hoá
S(sid, sname, city)
Sales (sid, item
, price)
34
Dạng chuẩn3 (3NF)
{ Đ/N: Mộtsơđồquan hệ R đượccoilàở dạng
chuẩn3 nếu

z Sơđồquan hệ này ở 2NF
z Mọithuộc tính không khóa đều không phụ thuộcbắc
cầu vào khóa chính
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 18
35
Ví dụ
S (sid, sname, city)
Sales(sid, item
, price)
F = {sid Æ sname, city}
¾ S, Sales thuộcdạng chuẩn3
ItemInfo(item, price, discount).
F = {itemÆprice, priceÆdiscount}
{ thuộc tính không khóa discount phụ thuộcbắccầuvào
khóa chính item.
¾ Vậy quan hệ này không ở 3NF.
¾ Chuẩn hoá
ItemInfo(item, price)
Discount(price, discount)
36
Dạng chuẩn Boye-Codd
{ Đ/N: Mộtsơđồquan hệ R(U) vớimộttậpphụ
thuộc hàm F đượcgọilàở dạng chuẩn Boye-Codd
(BCNF) nếuvới ∀ XÆA ∈ F+ thì
z A là thuộc tính xuấthiện trong X hoặc
z X chứamột khóa củaquanhệ R.
{ Ví dụ
z R = {A,B,C} ; F = {ABÆC , CÆB}.

z R không phải ở BCNF vì ∃ CÆB, C không phải là khóa
{ Chú ý:
z Một quan hệ thuộc3NF thìchưachắc đãthuộcBCNF.
Nhưng một quan hệ thuộc BCNF thì thuộc3NF
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 19
37
Tách bảo toàn tậpphụ thuộc hàm về
3NF
{ Vào: R(U), F (giả thiếtF làphủ tốithiểu)
{ Ra: Phép tách bảo toàn tậpphụ thuộc hàm về 3NF
{ Thuậttoán
B1.VớicácA
i
∈ U, A
i
∉ FthìloạiA
i
khỏiR vàlập1 quanhệ
mớichocácA
i
B2.Nếu ∃ f ∈ F, f chứatấtcả các thuộc tính của R thì kết
quả là R
B3. Ngượclại, vớimỗiXÆ A ∈F, xác định một quan hệ
R
i
(XA).
Nếu ∃ XÆA
i

, XÆA
j
thì tạomột quan hệ chung R’(XA
i
A
j
)
38
Ví dụ
Cho R = {A,B,C,D,E,F,G}
F = {AÆB, ACDÆE, EFÆG}
{ Xác định phép tách bảo toàn tậpphụ thuộc hàm
về 3NF
B1. không lập được quan hệ nào mới.
B2.!∃ f ∈ F: f chứatấtcả các thuộc tính củaR
B3.
AÆB Ö R1(AB)
ACDÆE Ö R2(ACDE)
EFÆG Ö R3(EFG)
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 20
39
Tách không mất mát thông tin và bảo
toàn tậpphụ thuộc hàm về 3NF
{ Yêu cầu:
z Bảo toàn tậpphụ thuộchàm(như thuật toán trên)
z Đảmbảolàcómộtlược đồ con chứa khóa của
lược đồ đượctách
{ Các bướctiến hành

B1. Tìm một khóa tốithiểucủalược đồ quan hệ R đã
cho
B2. Tách lược đồ quan hệ R theo phép tách bảo toàn
tậpphụ thuộc
B3. Nếu 1 trong các sơđồcon có chứakhóatốithiểu
thì kếtquả củaB2 làkếtquả cuối cùng.
Ngượclại, thêm vào kếtquảđómộtsơđồquan hệ
đượctạobởi khóa tốithiểu tìm được ở 1.
40
Ví dụ
Cho R(A,B,C,D,E,F,G).
F = {AÆB, ACDÆE, EFÆG}
B1. Khóa tốithiểucần tìm là ACDF (xem slide 19)
B2. Phép tách bảo toàn tậpphụ thuộc hàm R cho 3 sơđồcon
R
1
(AB), R
2
(ACDE), R
3
(EFG) (xem slide 40)
B3. Do khóa
ACDF không nằm trong bấtkỳ mộtsơđồcon
nào trong 3 sơđồcon trên, ta lậpmộtsơđồcon mới
R
4
(ACDF)
Kếtquả cuối cùng ta có phép tách R thành 4 sơđồcon
{R
1

, R
2
, R
3
, R
4
} là một phép tách không mất mát thông tin
và bảo toàn tậpphụ thuộc hàm
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 21
41
Tách không mất mát thông tin về BCNF
{ Vào: Sơđồquan hệ R, tậpphụ thuộc hàm F.
{ Ra: phép tách không mất mát thông tin bao gồmmộttập
các sơđồcon ở BCNF với các phụ thuộc hàm là hình
chiếucủaF lênsơđồđó.
{ Cách tiếnhành
B1. KQ = {R},
B2.VớimỗiS ∈ KQ, S không ở BCNF, xét X→A ∈ S,
với điềukiện X không chứa khóa củaS vàA ∉ X.
Thay thế S bởiS1, S2 vớiS1=A ∪{X}, S2 = {S} \A.
B3. Lặp(B2) chođếnkhi∀S ∈KQ đều ở BCNF
KQ gồmcácsơđồcon của phép tách yêu cầu
42
Phụ thuộc đa trị
{ Đ/N: Cho R(U), X, Y ∈U. X xác định đatrị Y
hay Y phụ thuộc đatrị vào X nếuvới ∀ r xác
định trên R và vớihaibộ t1 và t2 bấtkỳ mà
t1[X] = t2[X] thì ∃ bộ t3 :

t3[X] = t1[X], t3[Y] = t1[Y] và t3[Z] = t2[Z]
với Z = U \XY.
z Ký hiệuX→→Y
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 22
43
Hệ tiên đề đốivớicácphụ thuộc hàm
và phụ thuộc đatrị
Cho R(U), X, Y, Z, W ⊆ U (XY = X ∪ Y)
{ A1: PhảnxạđốivớiFD(reflexivity):
NếuY ⊆ X thì X→Y.
{ A2: Tăng trưởng đốivớiFD(augmentation):
NếuX→Y thì XZ→YZ.
{ A3: Bắccầu đốivớiFD(transitivity):
NếuX→Y, Y→Z thì X→Z.
{ A4: LuậtbùđốivớiMVD(complementation):
NếuX→→Y thì X→→U \ XY.
44
Hệ tiên đề đốivớicácphụ thuộc hàm
và phụ thuộc đatrị (2)
Cho R(U), X, Y, Z, W ⊆ U (XY = X ∪ Y)
{ A5: Tăng trưởng đốivớiMVD(augmentation):
NếuX→→Y và V⊆W thì WX→→VY.
{ A6: Bắccầu đốivớiMVD(transitivity):
NếuX→→Y, Y→→Z thì X→→Z \Y.
{ A7:
NếuX→Y thì X→→Y.
{ A8:
NếuX→→Y, W→Z vớiZ ⊆ Y và W∩Y=∅

thì X→Z.
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 23
45
Các luật suy diễnbổ sung đốivớicác
phụ thuộc đatrị
{ Luậthợp (union):
NếuX→→Y, X→→Z thì X→→YZ.
{ Luậttựabắccầu (pseudotransitivity):
NếuX→→Y, WY→→Z thì WX→→Z \ WY.
{ Luậttựabắccầuhỗnhợp (mixed pseudotransitivity)
NếuX→→Y, XY→Z thì X→Z \ Y.
{ Luậttách(decomposition):
NếuX→→Y, X→→Z thì
X→→Y∩Z, X→→Y \ Z, X→→Z \ Y.
46
Bao đóng củatậpphụ thuộc hàm và
phụ thuộc đatrị
{ Đ/N: bao đóng củatập các phụ thuộc hàm và
phụ thuộc đa trị D là tậptất cả các phụ thuộc
hàm và các phụ thuộc đa trị được suy diễn logic
từ D
z Ký hiệu: D
+
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 24
47
Tính cơ sở phụ thuộc

{ Vào: Tậpcácphụ thuộc đatrị M trên tậpthuộctínhU vàtập
thuộc tính X ⊆ U.
{ Ra: Cơ sở phụ thuộccủaX đốivớiM.
{ Cách tiến hành:
B1. ĐặtT làtậpcáctập con Z củaU: vớiW→→Y ∈ M mà
W⊆X thì Z là Y \ X hoặc U \ XY.
B2.T đượcthiếtlậpchotớikhilàmộttậpcáctậprời nhau,
nếucómộtcặp Z1, Z2 không tách rời nhau thì thay chúng
bởi Z1\ Z2, Z2 \ Z1, Z1∩ Z2 với điềukiện không ghi nhận
tậprỗng. GọiS làtậpthuđượcsaubước này.
B3.Tìm cácphụ thuộccódạng V→→W trong M và mộttậpY
trong S : Y ∩ W ≠∅, Y ∩ V = ∅
Thay Y bằng Y∩W và Y \ W cho đếnkhikhôngthayđổiS
đượcnữa.
B4.Tập S thu đượcsaubước này là cơ sở phụ thuộccủaX.
48
Phép tách không mất thông tin
{ Vào: R(A
1
, A
2
, …, A
n
), F, M, phép tách {R
1
, R
2
, …, R
k
}

{ Ra: phép tách là mất mát thông tin hay không
{ Thuậttoán(tổng quát hoá thuật toán trình bày ở slide 28)
B.1. Thiếtlậpmộtbảng k hàng, n cột (xem B1. slide 28)
B.i. Xét f = XÆY ∈F:
thựchiện đồng nhấtbảng (xem B2. slide 28)
Xét X
→→
Y:
nếu

2 hàng t1, t2 thuộcbảng : t1[X] = t2[X]
thì thêm vào bảng đómột hàng mớiu
u[X]=t1[X], u[Y]=t1[Y],
u[R \ XY] = t2[R \ XY]
Lặpchotớikhikhôngthể thay đổi đượcgiátrị nào
trong bảng
B.n. Nếubảng có 1 hàng gồmcáckíhiệua
1
, a
2
, … , a
n
thì phép tách là không mất mát thông tin.
ngượclại, phép tách không bảo toàn thông tin.
Nhập môn cơ sở dữ liệu
Vũ Tuyết Trinh, b/m Các hệ thống thông tin,
khoa CNTT, ĐHBKHN 25
49
Dạng chuẩn4 (4NF)
{ Đ/N: Một quan hệ R ở dạng chuẩnbốn

nếucómộtphụ thuộc đatrị X→→Y vớiY≠∅,
Y ⊄ X và XY ⊂ R thì X chứamột khóa củaR
{ Chú ý: nếuR chỉ có các phụ thuộc hàm thì
dạng chuẩnbốnchínhlàdạng chuẩnBoye-
Codd và X→→Y phải có nghĩalàX→Y.
50
Kếtluận
{ Tầm quan trọng củathiếtkế CSDL
z ảnh hưởng đến chất lượng dữ liệu lưu trữ
z Hiểuquả củaviệc khai thác dữ liệu
{ Mục đích củathiết kế CSDL: tránh
z Dư thừadữ liệu
z Dị thường dữ liệu khi thêm/xoá/sửa đổi
z Hiểuquả trong tìm kiếm
¾ Đưavề các dạng chuẩn
z 2NF: giản ướcsự dữ thừa để tránh các dị thuờng khi
cậpnhật
z 3NF: tránh các dị thường khi thêm/xoá

×