Bài giảng Nhập môn cơ sở dữ liệu - Bài 3: Thiết kế cơ sở dữ liệu quan hệ - Vũ Tuyết Trinh

Thiết kế 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  
Các cách tiếp cận  
{
{
Trên xuống (Top-down), nhắc lại  
Dưới lên (bottom-up)  
1. Biểu diễn dữ liệu người dùng (biểu mẫu, báo cáo)  
dưới dạ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  
2
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Đặt vấn đề  
{ Mục đích của chuẩn hoá là gi?  
{ Thế nào là chuẩn? Có bao nhiêu chuẩn?  
3
Ví dụ  
{ 1 CSDL về các hãng cung ứng.  
Suppliers(sid, sname, city, NOE, product,quantity)  
Sids  
S1  
Sname  
Smith  
Smith  
J&J  
City  
London  
London  
Paris  
NOE  
100  
100  
124  
75  
Product quantity  
Screw  
Nut  
50  
100  
78  
S1  
S2  
Screw  
Bolt  
S3  
Blake  
Tokyo  
100  
¾ Các vấn đề đặt ra  
¾ Đề xuất các giải pháp  
4
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Mục đích của chuẩn hoá  
{ Xác định được 1 tập các lược đồ quan hệ cho  
phép tìm kiếm thông tin một cách dễ dàng,  
đồng thời tránh được dư thừa dữ liệu  
{ Hướng tiếp cận:  
Tách các lược đồ quan hệ “có vấn đề” thành những  
lược đồ quan hệ “chuẩn hơn”  
5
Nội dung  
{ 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ết luận  
6
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Phụ thuộc hà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ập các thuộc tính.  
z X, Y ⊆ U  
X xác định hàm Y hay Y phụ thuộc hàm vào X nếu  
z với ∀quan hệ r xác định trên R(U) và với 2 bộ t1 và t2  
bất kỳ mà t1[X] = t2[X] thì t1[Y] = t2[Y].  
{ Ký hiệu: X→Y  
7
Ví dụ  
Supp(sid, sname, city, NOE)  
{ sid→sname  
{ sid→city  
{ sid→NOE  
Supply(sid, product,quantity)  
{ sid→product  
{ sid→quantity  
8
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Hệ tiên đề Amstrong  
Cho  
z R(U) là 1 sơ đồ quan hệ, U là tập các thuộc tính.  
z X,Y,Z,W ⊆ U  
(Ký hiệu: XY = X ∪ Y)  
{ Phản xạ (reflexivity)  
Nếu Y ⊆ X thì X→Y.  
{ Tăng trưởng (augmentation)  
Nếu X→Y thì XZ→YZ.  
{ Bắc cầu (transitivity)  
Nếu X→Y, Y→Z thì X→Z.  
9
Hệ quả  
{ Luật hợp (union)  
Nếu X→Y, X→Z thì X→YZ.  
{ Luật tựa bắc cầu (pseudotransitivity)  
Nếu X→Y, WY→Z thì XW→Z.  
{ Luật tách (decomposition)  
Nếu X→Y, Z ⊆ Y thì X→Z.  
10  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Bao đóng của 1 tập phụ thuộc hàm  
{ Đ/N : Bao đóng của tập phụ thuộc hàm F là tập  
lớn nhất các phụ thuộc hàm có thể được suy  
diễn logic từ F  
z Ký hiệu là F+  
{ Suy diễn logic  
X → Y được suy diễn logic từ F nếu với mỗ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+  
11  
Khoá  
{ Đ/N: Cho lược đồ quan hệ R(U), tập các phụ  
thuộc hàm F. K ⊆ U, K được gọi là khóa tối thiểu  
của R nếu như  
z KÆU ∈ F+  
z với ∀ K’ ⊂ K thì K’ÆU ∉ F+  
{ Nhận xét: Nếu K là một khóa tổi thiểu thì  
z K+ = U  
z K là tập thuộc tính nhỏ nhất có tính chất như vậy.  
12  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Bao đóng của 1 tập các thuộc tính  
{ Đ/N Bao đóng của tập thuộc tính X là tập tất cả  
các thuộc tính được xác định hàm bởi X thông  
qua tập F  
z ký hiệu là X+  
X+ = {A ∈ U| X → A ∈F+}  
13  
Nhận xét  
{ Hệ tiên đề Amstrong là đúng đắn và đầy đủ  
{ X→Y được suy diễn từ hệ tiên đề Amstrong  
⇔ Y ⊆ X+  
{ Thiết kế CSDL ? Các khái niệm  
z Phụ thuộc hàm  
z Bao đóng của tập phụ thuộc hàm  
z Khoá  
z Bao đóng của 1 tập các thuộc tính  
14  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Tính bao đóng của 1 tập thuộc tính  
{ Vào: Tập hữu hạn các thuộc tính U  
tập các phụ thuộc hàm F trên U  
X ⊆ U  
{ Ra: X+  
{ Thuật toán  
B0 X0 = X.  
Bi Tính Xi từ Xi-1  
Nếu  
∃ Y→Z ∈ F ^ Y ⊆ Xi-1 ^ A ∈ Z ^ A ∉ Xi-1  
Xi = Xi-1 ∪ A  
thì  
ngược lại,  
Nếu  
Xi = Xi-1  
.
Xi ≠ Xi-1  
thì  
thực hiện Bi  
thực hiện Bn  
ngược lai,  
Bn X+ = Xi  
15  
Tìm khoá tối thiểu  
{ Vào: U = {A1, A2, …, An} , F  
{ Ra: khóa tối thiểu K xác định được trên U và F  
{ Thuật toán  
B0 K0= U  
Bi Nếu  
(Ki-1\{Ai})ÆU  
Ki= Ki-1\ {Ai}  
Ki= Ki-1  
thì  
ngược lại,  
Nếu  
thì  
Ki≠ Ki-1  
thực hiện Bi  
thực hiện Bn  
ngược lai,  
Bn K = Ki  
16  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
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ột khóa tối thiểu của R  
K0 = ABCDEFG  
K1 = K0 do nếu loại A thì BCDEFG Æ U không thuộc F+  
K2 = K1 \{B} = ACDEFG do ACDEFG Æ U thuộc F+  
K3 = K2 do nếu loại C thì ADEFG Æ U không thuộc F+  
K4 = K3 do nếu loại D thì ACEFG Æ U không thuộc F+  
K5 = K4 \{E} = ACDFG do ACDFG Æ U thuộc F+  
K6 = K5 do nếu loại F thì ACDG Æ U không thuộc F+  
K7 = K6 \{G} = ACDF do ACDF Æ U thuộc F+  
Vậy khóa tối thiểu cần tìm là ACDF  
17  
Nhận xét về phụ thuộc hàm  
{ từ một tậ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ột tập phụ thuộc hàm cho sẵn có thể có  
các phụ thuộc hàm bị coi là dư thừa.  
¾ Làm thế nào để có được một tập phụ thuộc  
hàm tốt?  
18  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Tập phụ thuộc hàm tương đương  
{ Đ/N: Tập phụ thuộc hàm F là phủ của tập phụ thuộc  
hàm G hay G là phủ của F hay F và G tương đương  
nếu F+ = G+.  
z
Ký hiệu là F ≈ G  
{ Kiểm tra tính tương đương của 2 tập phụ thuộc hàm  
B.1. Với mỗi Y→Z ∈ F, Z ⊆ Y+ (trên G) thì Y→Z ∈ G+  
Nếu vớ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ếu F+ ⊆ G+ và G+ ⊆ F+ thì F ≈ G  
19  
Tập phụ thuộc hàm không dư thừa  
{ Đ/N: Tập phụ thuộc hàm F là không dư thừa nếu !∃  
XÆY∈ F sao cho F \ {XÆY} ≈ F.  
{ Tìm phủ không dư thừa của 1 tập phụ thuộc hàm  
z Vào: Tập thuộc tính U, F = {Li ÆRi: i = 1..n}  
z Ra : Phủ không dư thừa F’ của F  
z Thuật toán  
B0 F0= F  
Bi Nếu  
Fi-1\ {LiÆRi} ≈ Fi-1  
Fi = Fi-1 \ {LiÆRi}  
thì  
ngược lại, Fi = Fi-1  
Nếu  
thì  
Fi≠ Fi-1  
thực hiện Bi  
ngược lại, thực hiện Bn  
20  
Bn F’ = Fi  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Phủ tối thiểu của 1 tập phụ thuộc hàm  
{ Đ/N: Fc được gọi là phủ tối thiểu của 1 tập phụ  
thuộc hàm F nếu thỏa mãn 3 điều kiện sau:  
Đk1: Với ∀ f ∈ Fc, f có dạng X Æ A,  
trong đó A là 1 thuộc tính  
Đk2: Với ∀ f = XÆY ∈ Fc, !∃ A ∈X (A là 1 thuộc tính):  
(Fc \ f) U {(X \ A)ÆY} ≈Fc  
Đk3: !∃ XÆA ∈ Fc : Fc \ {XÆA} ≈ Fc  
21  
Tính phủ tối thiểu  
{
{
{
Vào: Tập thuộc tính U, F = {LiÆRi: i = 1..n}  
Ra: phủ tối thiểu Fc của tập phụ thuộc hàm F  
Thuật toán  
B.1. Biến đổi F về dạng F1={Li Æ Aj}  
trong đó Aj là 1 thuộc tính bất kỳ thuộc U (thoả mãn đk1)  
B.2. Loại bỏ thuộc tính thừa trong vế trái của các phụ thuộc hàm  
Lần lượt giản ước từng thuộc tính trong vế trái của từng  
phụ thuộc hàm trong F1 thu được F1’. Nếu F1’ ≈ F1 thì  
loại bỏ thuộc tính đang xét  
Khi không có sự giản ước nào xảy ra nữa ta thu được  
F2 thỏa mãn đk2  
B.3. Loại bỏ phụ thuộc hàm dư thừa  
Lần lượt loại kiểm tra từng phụ thuộc hàm f. Nếu F2 \ f ≈ F2  
thì loại bỏ f  
Khi không cò phụ thuộc hàm nào có thể loại bỏ thi thu đươc  
F3 thoả mãn đk3  
B.4. Fc = F3  
22  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Mục đích của thiết kế CSDL –  
nhắc lại  
{ Xác định được 1 tập các lược đồ quan hệ cho  
phép tìm kiếm thông tin một cách dễ dàng,  
đồng thời tránh được dư thừa dữ liệu (cf. slide  
7)  
¾ Phát biểu lại mục đích này sử dụng các khái  
niệm vừa học ?  
23  
Phép tách các lược đồ quan hệ  
{ Mục đích  
z Thay thế một sơ đồ quan hệ R(A1, A2, …, An) bằng  
một tập các sơ đồ con {R1, R2, …, Rk} trong đó Ri ⊆R  
và R = R1 U R2 U … U Rk  
{ Yêu cầu của phép tách  
z Bảo toàn thuộc tính, ràng buộc  
z Bảo toàn dữ liệu  
24  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
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 {R1, R2, …, Rk} được gọi là  
phép tách không mất mát thông tin đ/v một tập  
phụ thuộc hàm F nếu với mọi quan hệ r xác định  
trên R thỏa mãn F thì:  
r = ΠR1(r)  
{ Ví dụ:  
Supplier(sid, sname,city,NOE,  
pname,colour,quantity)  
ÖS1(sid, sname, city, NOE)  
SP1(sid,pname,colour,quantity)  
ΠR2(r)  
…
Π Rk (r)  
25  
Kiểm tra tính không mất mát thông tin  
{ Vào: R(A1, A2, …, An), F, phép tách {R1, R2, …, Rk}  
{ Ra: phép tách là mất mát thông tin hay không  
{ Thuật toán  
B.1. Thiết lập một bảng k hàng, n cột  
Nếu Aj là thuộc tính của Ri thì điền aj vào ô (i,j).  
Nếu không thì điền bij.  
B.i. Xét f = XÆY ∈F.  
Nếu  
∃ 2 hàng t1, t2 thuộc bảng : t1[X] = t2[X]  
t1[Y] = t2[Y], ưu tiên đồng nhất về giá trị a  
thì  
Lặp cho tới khi không thể thay đổi được giá trị nào trong bảng  
B.n. Nếu  
bảng có 1 hàng gồm các kí hiệu a1, a2, … , an  
phép tách là không mất mát thông tin.  
phép tách không bảo toàn thông tin.  
thì  
ngược lại,  
26  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Phép tách bảo toàn tập phụ thuộc hàm  
{ Hình chiếu của tập phụ thuộc hàm  
Cho sơ đồ quan hệ R, tập phụ thuộc hàm F, phép tách  
{R1, R2, … , Rk} của R trên F.  
Hình chiếu Fi của F trên Ri là tập tất cả XÆY ∈ F+ :  
XY ⊆ Ri .  
{ Phép tách sơ đồ quan hệ R thành {R1, R2, … , Rk} là  
một phép tách bảo toàn tập phụ thuộc hàm F nếu  
(F1 ∪ F2 … ∪ Fk)+ = F+  
hay hợp của tất cả các phụ thuộc hàm trong các hình  
chiếu của F lên các sơ đồ con sẽ suy diễn ra các phụ  
thuộc hàm trong F.  
27  
Bài tập  
{ Kiểm tra xem 1 phép tách có bảo toàn tập phụ  
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  
28  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Các dạng chuẩn  
{ Vấn đề đặt ra  
z Có cần phải tinh chỉnh thiết kế nữa hay không?  
z Thiết kế đã là tốt hay chưa?  
¾ Định nghĩa về các dạng chuẩn.  
{ Mục đích:  
Mỗi dạng chuẩn đảm bảo ngăn ngừa (giảm thiể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ẩn 1 (1NF)  
z Dạng chuẩn 2 (2NF)  
z Dạng chuẩn 3 (3NF)  
z Dạng chuẩn Boye-Code (BCNF)  
z Dạng chuẩn 4 (4NF)  
29  
Dạng chuẩn 1 (1NF)  
{ Đ/N: Một sơ đồ quan hệ R được gọi là ở dạng  
chuẩn 1 nếu tất cả các miền giá trị của các  
thuộc tính trong R đều chỉ chứa giá trị nguyên  
tố.  
z Giá trị nguyên tố là giá trị mà không thể chia nhỏ ra  
được nữa  
{ Ví dụ: Quan hệ không ở 1NF và quan hệ sau  
khi chuẩn hóa về 1NF  
sname  
city  
product  
sname  
city  
item  
price  
name  
price  
100  
120  
75  
Blake London  
Blake London  
Nut  
100  
Blake London  
Nut  
Bolt  
Bolt  
120  
75  
Smith  
Paris  
Screw  
Smith  
Paris  
Screw  
30  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Dạng chuẩn 2 (2NF)  
{ Đ/N: Một sơ đồ quan hệ R được coi là ở dạng  
chuẩn 2 nếu  
z Sơ đồ quan hệ này ở 1NF  
z Tất cả các thuộc tính không khóa đều phụ thuộc hàm  
đầy đủ vào khóa chính  
(Lưu ý, A là một thuộc tính khóa nếu A thuộc một  
khóa tối thiểu nào đó của R. Ngược lại A là thuộc tính  
không khóa)  
31  
Phụ thuộc hàm đầy đủ  
{ Đ/N: Cho lược đồ quan hệ R(U), F là tập phụ  
thuộc hàm trên R. X, Y ⊆ U. Y được gọi là phụ  
thuộc đầy đủ vào X nếu:  
- XÆY thuộc F+  
- !∃ X’ ⊂ X : X’ÆY ∈ F+  
{ Các phụ thuộc hàm không đầy đủ còn gọi là  
phụ thuộc bộ phận  
32  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
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ộc 2NF  
Ö Chuẩn hoá  
S(sid, sname, city)  
Sales (sid, item, price)  
33  
Dạng chuẩn 3 (3NF)  
{ Đ/N: Một sơ đồ quan hệ R được coi là ở dạng  
chuẩn 3 nếu  
z Sơ đồ quan hệ này ở 2NF  
z Mọi thuộc tính không khóa đều không phụ thuộc bắc  
cầu vào khóa chính  
34  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Ví dụ  
S (sid, sname, city)  
Sales(sid, item, price)  
F = {sid Æ sname, city}  
¾ S, Sales thuộc dạng chuẩn 3  
ItemInfo(item, price, discount).  
F = {itemÆprice, priceÆdiscount}  
{ thuộc tính không khóa discount phụ thuộc bắc cầu vào  
khóa chính item.  
¾ Vậy quan hệ này không ở 3NF.  
¾ Chuẩn hoá  
ItemInfo(item, price)  
Discount(price, discount)  
35  
Dạng chuẩn Boye-Codd  
{ Đ/N: Một sơ đồ quan hệ R(U) với một tập phụ  
thuộc hàm F được gọi là ở dạng chuẩn Boye-Codd  
(BCNF) nếu với ∀ XÆA ∈ F+ thì  
z A là thuộc tính xuất hiện trong X hoặc  
z X chứa một khóa của quan hệ 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ộc 3NF thì chưa chắc đã thuộc BCNF.  
Nhưng một quan hệ thuộc BCNF thì thuộc 3NF  
36  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Tách bảo toàn tập phụ thuộc hàm về  
3NF  
{
Vào: R(U), F (giả thiết F là phủ tối thiểu)  
Ra: Phép tách bảo toàn tập phụ thuộc hàm về 3NF  
Thuật toán  
{
{
B1. Với các Ai ∈ U, Ai ∉ F thì loại Ai khỏi R và lập 1 quan hệ  
mới cho các Ai  
B2. Nếu ∃ f ∈ F, f chứa tất cả các thuộc tính của R thì kết  
quả là R  
B3. Ngược lại, với mỗi XÆ A ∈F, xác định một quan hệ  
Ri(XA).  
Nếu ∃ XÆAi, XÆAj thì tạo một quan hệ chung R’(XAiAj)  
37  
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ập phụ thuộc hàm  
về 3NF  
B1. không lập được quan hệ nào mới.  
B2. !∃ f ∈ F: f chứa tất cả các thuộc tính của R  
B3. AÆB  
ACDÆE  
EFÆG  
Ö R1(AB)  
Ö R2(ACDE)  
Ö R3(EFG)  
38  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Tách không mất mát thông tin và bảo  
toàn tập phụ thuộc hàm về 3NF  
{
Yêu cầu:  
z
Bảo toàn tập phụ thuộc hàm (như thuật toán trên)  
z
Đảm bảo là có một lược đồ con chứa khóa của  
lược đồ được tách  
{
Các bước tiến hành  
B1. Tìm một khóa tối thiểu của lược đồ quan hệ R đã  
cho  
B2. Tách lược đồ quan hệ R theo phép tách bảo toàn  
tập phụ thuộc  
B3. Nếu 1 trong các sơ đồ con có chứa khóa tối thiểu  
thì kết quả của B2 là kết quả cuối cùng.  
Ngược lại, thêm vào kết quả đó một sơ đồ quan hệ  
được tạo bởi khóa tối thiểu tìm được ở 1.  
39  
Ví dụ  
Cho R(A,B,C,D,E,F,G).  
F = {AÆB, ACDÆE, EFÆG}  
B1. Khóa tối thiểu cần tìm là ACDF (xem slide 19)  
B2. Phép tách bảo toàn tập phụ thuộc hàm R cho 3 sơ đồ con  
R1(AB), R2(ACDE), R3(EFG) (xem slide 40)  
B3. Do khóa ACDF không nằm trong bất kỳ một sơ đồ con  
nào trong 3 sơ đồ con trên, ta lập một sơ đồ con mới  
R4(ACDF)  
Kết quả cuối cùng ta có phép tách R thành 4 sơ đồ con  
{R1, R2, R3, R4} là một phép tách không mất mát thông tin  
và bảo toàn tập phụ thuộc hàm  
40  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Tải về để xem bản đầy đủ
pdf 25 trang baolam 29000 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn cơ sở dữ liệu - Bài 3: Thiết kế cơ sở dữ liệu quan hệ - Vũ Tuyết Trinh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_nhap_mon_co_so_du_lieu_bai_3_thiet_ke_co_so_du_lie.pdf