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  
Bmôn Các hthng thông tin, Khoa Công nghthông tin  
Đại hc Bách Khoa Hà Ni  
Các cách tiếp cn  
{
{
Trên xung (Top-down), nhc li  
Dưới lên (bottom-up)  
1. Biu din dliu người dùng (biu mu, báo cáo)  
dưới dng các quan hệ  
2. Chun hoá các quan hnày  
3. Ghép các quan hcó cùng khoá chính  
2
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Đặt vn đề  
{ Mc đích ca chun hoá là gi?  
{ Thế nào là chun? Có bao nhiêu chun?  
3
Ví dụ  
{ 1 CSDL vcá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 vn đề đặt ra  
¾ Đề xut các gii pháp  
4
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Mc đích ca chun hoá  
{ Xác định được 1 tp các lược đồ quan hcho  
phép tìm kiếm thông tin mt cách ddàng,  
đồng thi tránh được dư tha dliu  
{ Hướng tiếp cn:  
Tách các lược đồ quan h“có vn đề” thành nhng  
lược đồ quan h“chun hơn”  
5
Ni dung  
{ Phthuc hàm  
{ Phép tách các sơ đồ quan hệ  
{ Các dng chun  
{ Phthuc đa trị  
{ Kết lun  
6
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Phthuc hàm  
(Functional dependencies - FD)  
{ Đ/N Phthuc hàm trong 1 quan hệ  
Cho  
z R(U) là 1 sơ đồ quan h, U là tp các thuc tính.  
z X, Y U  
X xác định hàm Y hay Y phthuc hàm vào X nếu  
z vi quan hr xác định trên R(U) và vi 2 bt1 và t2  
bt kmà t1[X] = t2[X] thì t1[Y] = t2[Y].  
{ Ký hiu: XY  
7
Ví dụ  
Supp(sid, sname, city, NOE)  
{ sidsname  
{ sidcity  
{ sidNOE  
Supply(sid, product,quantity)  
{ sidproduct  
{ sidquantity  
8
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Htiên đề Amstrong  
Cho  
z R(U) là 1 sơ đồ quan h, U là tp các thuc tính.  
z X,Y,Z,W U  
(Ký hiu: XY = X Y)  
{ Phn x(reflexivity)  
Nếu Y X thì XY.  
{ Tăng trưởng (augmentation)  
Nếu XY thì XZYZ.  
{ Bc cu (transitivity)  
Nếu XY, YZ thì XZ.  
9
Hquả  
{ Lut hp (union)  
Nếu XY, XZ thì XYZ.  
{ Lut ta bc cu (pseudotransitivity)  
Nếu XY, WYZ thì XWZ.  
{ Lut tách (decomposition)  
Nếu XY, Z Y thì XZ.  
10  
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Bao đóng ca 1 tp phthuc hàm  
{ Đ/N : Bao đóng ca tp phthuc hàm F là tp  
ln nht các phthuc hàm có thể được suy  
din logic tF  
z Ký hiu là F+  
{ Suy din logic  
X Y được suy din logic tF nếu vi mi quan hệ  
r xác định trên R(U) thocác phthuc hàm trong F  
thì cũng thoX Y  
{ F là họ đầy đủ (full family) nếu  
F = F+  
11  
Khoá  
{ Đ/N: Cho lược đồ quan hR(U), tp các phụ  
thuc hàm F. K U, K được gi là khóa ti thiu  
ca R nếu như  
z KÆU F+  
z vi K’ K thì KÆU F+  
{ Nhn xét: Nếu K là mt khóa ti thiu thì  
z K+ = U  
z K là tp thuc tính nhnht có tính cht như vy.  
12  
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Bao đóng ca 1 tp các thuc tính  
{ Đ/N Bao đóng ca tp thuc tính X là tp tt cả  
các thuc tính được xác định hàm bi X thông  
qua tp F  
z ký hiu là X+  
X+ = {A U| X A F+}  
13  
Nhn xét  
{ Htiên đề Amstrong là đúng đắn và đầy đủ  
{ XY được suy din thtiên đề Amstrong  
Y X+  
{ Thiết kế CSDL ? Các khái nim  
z Phthuc hàm  
z Bao đóng ca tp phthuc hàm  
z Khoá  
z Bao đóng ca 1 tp các thuc tính  
14  
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Tính bao đóng ca 1 tp thuc tính  
{ Vào: Tp hu hn các thuc tính U  
tp các phthuc hàm F trên U  
X U  
{ Ra: X+  
{ Thut toán  
B0 X0 = X.  
Bi Tính Xi tXi-1  
Nếu  
YZ F ^ Y Xi-1 ^ A Z ^ A Xi-1  
Xi = Xi-1 A  
thì  
ngược li,  
Nếu  
Xi = Xi-1  
.
Xi Xi-1  
thì  
thc hin Bi  
thc hin Bn  
ngược lai,  
Bn X+ = Xi  
15  
Tìm khoá ti thiu  
{ Vào: U = {A1, A2, …, An} , F  
{ Ra: khóa ti thiu K xác định được trên U và F  
{ Thut toán  
B0 K0= U  
Bi Nếu  
(Ki-1\{Ai})ÆU  
Ki= Ki-1\ {Ai}  
Ki= Ki-1  
thì  
ngược li,  
Nếu  
thì  
KiKi-1  
thc hin Bi  
thc hin 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 mt khóa ti thiu ca R  
K0 = ABCDEFG  
K1 = K0 do nếu loi A thì BCDEFG Æ U không thuc F+  
K2 = K1 \{B} = ACDEFG do ACDEFG Æ U thuc F+  
K3 = K2 do nếu loi C thì ADEFG Æ U không thuc F+  
K4 = K3 do nếu loi D thì ACEFG Æ U không thuc F+  
K5 = K4 \{E} = ACDFG do ACDFG Æ U thuc F+  
K6 = K5 do nếu loi F thì ACDG Æ U không thuc F+  
K7 = K6 \{G} = ACDF do ACDF Æ U thuc F+  
Vy khóa ti thiu cn tìm là ACDF  
17  
Nhn xét vphthuc hàm  
{ tmt tp các phthuc hàm có thsuy din  
ra các phthuc hàm khác  
{ trong mt tp phthuc hàm cho sn có thcó  
các phthuc hàm bcoi là dư tha.  
¾ Làm thế nào để được mt tp phthuc  
hàm tt?  
18  
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Tp phthuc hàm tương đương  
{ Đ/N: Tp phthuc hàm F là phca tp phthuc  
hàm G hay G là phca F hay F và G tương đương  
nếu F+ = G+.  
z
Ký hiu là F G  
{ Kim tra tính tương đương ca 2 tp phthuc hàm  
B.1. Vi mi YZ F, Z Y+ (trên G) thì YZ G+  
Nếu vi 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  
Tp phthuc hàm không dư tha  
{ Đ/N: Tp phthuc hàm F là không dư tha nếu !∃  
XÆYF sao cho F \ {XÆY} F.  
{ Tìm phkhông dư tha ca 1 tp phthuc hàm  
z Vào: Tp thuc tính U, F = {Li ÆRi: i = 1..n}  
z Ra : Phkhông dư tha F’ ca F  
z Thut toán  
B0 F0= F  
Bi Nếu  
Fi-1\ {LiÆRi} Fi-1  
Fi = Fi-1 \ {LiÆRi}  
thì  
ngược li, Fi = Fi-1  
Nếu  
thì  
FiFi-1  
thc hin Bi  
ngược li, thc hin Bn  
20  
Bn F’ = Fi  
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Phti thiu ca 1 tp phthuc hàm  
{ Đ/N: Fc được gi là phti thiu ca 1 tp phụ  
thuc hàm F nếu tha mãn 3 điu kin sau:  
Đk1: Vi f Fc, f có dng X Æ A,  
trong đó A là 1 thuc tính  
Đk2: Vi f = XÆY Fc, !A X (A là 1 thuc tính):  
(Fc \ f) U {(X \ A)ÆY} Fc  
Đk3: !XÆA Fc : Fc \ {XÆA} Fc  
21  
Tính phti thiu  
{
{
{
Vào: Tp thuc tính U, F = {LiÆRi: i = 1..n}  
Ra: phti thiu Fc ca tp phthuc hàm F  
Thut toán  
B.1. Biến đổi F vdng F1={Li Æ Aj}  
trong đó Aj là 1 thuc tính bt kthuc U (thomãn đk1)  
B.2. Loi bthuc tính tha trong vế trái ca các phthuc hàm  
Ln lượt gin ước tng thuc tính trong vế trái ca tng  
phthuc hàm trong F1 thu được F1’. Nếu F1F1 thì  
loi bthuc tính đang xét  
Khi không có sgin ước nào xy ra na ta thu được  
F2 tha mãn đk2  
B.3. Loi bphthuc hàm dư tha  
Ln lượt loi kim tra tng phthuc hàm f. Nếu F2 \ f F2  
thì loi bf  
Khi không cò phthuc hàm nào có thloi bthi thu đươc  
F3 thomãn đk3  
B.4. Fc = F3  
22  
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Mc đích ca thiết kế CSDL –  
nhc li  
{ Xác định được 1 tp các lược đồ quan hcho  
phép tìm kiếm thông tin mt cách ddàng,  
đồng thi tránh được dư tha dliu (cf. slide  
7)  
¾ Phát biu li mc đích này sdng các khái  
nim va hc ?  
23  
Phép tách các lược đồ quan hệ  
{ Mc đích  
z Thay thế mt sơ đồ quan hR(A1, A2, …, An) bng  
mt tp các sơ đồ con {R1, R2, …, Rk} trong đó Ri R  
và R = R1 U R2 U … U Rk  
{ Yêu cu ca phép tách  
z Bo toàn thuc tính, ràng buc  
z Bo toàn dliu  
24  
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Phép tách không mt mát thông tin  
(Lossless join)  
{ Đ/N: Cho lược đồ quan hR(U) phép tách R  
thành các sơ đồ con {R1, R2, …, Rk} được gi là  
phép tách không mt mát thông tin đ/v mt tp  
phthuc hàm F nếu vi mi quan hr xác định  
trên R tha 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  
Kim tra tính không mt 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à mt mát thông tin hay không  
{ Thut toán  
B.1. Thiết lp mt bng k hàng, n ct  
Nếu Aj là thuc tính ca Ri thì đin aj vào ô (i,j).  
Nếu không thì đin bij.  
B.i. Xét f = XÆY F.  
Nếu  
2 hàng t1, t2 thuc bng : t1[X] = t2[X]  
t1[Y] = t2[Y], ưu tiên đồng nht vgiá tra  
thì  
Lp cho ti khi không ththay đổi được giá trnào trong bng  
B.n. Nếu  
bng có 1 hàng gm các kí hiu a1, a2, … , an  
phép tách là không mt mát thông tin.  
phép tách không bo toàn thông tin.  
thì  
ngược li,  
26  
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Phép tách bo toàn tp phthuc hàm  
{ Hình chiếu ca tp phthuc hàm  
Cho sơ đồ quan hR, tp phthuc hàm F, phép tách  
{R1, R2, … , Rk} ca R trên F.  
Hình chiếu Fi ca F trên Ri là tp tt cXÆY F+ :  
XY Ri .  
{ Phép tách sơ đồ quan hR thành {R1, R2, … , Rk} là  
mt phép tách bo toàn tp phthuc hàm F nếu  
(F1 F2 Fk)+ = F+  
hay hp ca tt ccác phthuc hàm trong các hình  
chiếu ca F lên các sơ đồ con ssuy din ra các phụ  
thuc hàm trong F.  
27  
Bài tp  
{ Kim tra xem 1 phép tách có bo toàn tp phụ  
thuc hàm không  
{ Kim tra xem 1 phép tách có mt mát thông tin  
không  
28  
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Các dng chun  
{ Vn đề đặt ra  
z Có cn phi tinh chnh thiết kế na hay không?  
z Thiết kế đã là tt hay chưa?  
¾ Định nghĩa vcác dng chun.  
{ Mc đích:  
Mi dng chun đảm bo ngăn nga (gim thiu) mt  
scác dng dư tha hay dthường dliu  
{ Các dng chun hay sdng  
z Dng chun 1 (1NF)  
z Dng chun 2 (2NF)  
z Dng chun 3 (3NF)  
z Dng chun Boye-Code (BCNF)  
z Dng chun 4 (4NF)  
29  
Dng chun 1 (1NF)  
{ Đ/N: Mt sơ đồ quan hR được gi là dng  
chun 1 nếu tt ccác min giá trca các  
thuc tính trong R đều chcha giá trnguyên  
t.  
z Giá trnguyên tlà giá trmà không thchia nhra  
được na  
{ Ví d: Quan hkhông 1NF và quan hsau  
khi chun hóa v1NF  
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,  
Dng chun 2 (2NF)  
{ Đ/N: Mt sơ đồ quan hR được coi là dng  
chun 2 nếu  
z Sơ đồ quan hnày 1NF  
z Tt ccác thuc tính không khóa đều phthuc hàm  
đầy đủ vào khóa chính  
(Lưu ý, A là mt thuc tính khóa nếu A thuc mt  
khóa ti thiu nào đó ca R. Ngược li A là thuc tính  
không khóa)  
31  
Phthuc hàm đầy đủ  
{ Đ/N: Cho lược đồ quan hR(U), F là tp phụ  
thuc hàm trên R. X, Y U. Y được gi là phụ  
thuc đầy đủ vào X nếu:  
- XÆY thuc F+  
- !X’ X : X’ÆY F+  
{ Các phthuc hàm không đầy đủ còn gi là  
phthuc bphn  
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 phthuc hàm đầy đủ vào khóa chính  
Ö Sales không thuc 2NF  
Ö Chun hoá  
S(sid, sname, city)  
Sales (sid, item, price)  
33  
Dng chun 3 (3NF)  
{ Đ/N: Mt sơ đồ quan hR được coi là dng  
chun 3 nếu  
z Sơ đồ quan hnày 2NF  
z Mi thuc tính không khóa đều không phthuc bc  
cu 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 thuc dng chun 3  
ItemInfo(item, price, discount).  
F = {itemÆprice, priceÆdiscount}  
{ thuc tính không khóa discount phthuc bc cu vào  
khóa chính item.  
¾ Vy quan hnày không 3NF.  
¾ Chun hoá  
ItemInfo(item, price)  
Discount(price, discount)  
35  
Dng chun Boye-Codd  
{ Đ/N: Mt sơ đồ quan hR(U) vi mt tp phụ  
thuc hàm F được gi là dng chun Boye-Codd  
(BCNF) nếu vi XÆA F+ thì  
z A là thuc tính xut hin trong X hoc  
z X cha mt khóa ca quan hR.  
{ Ví dụ  
z R = {A,B,C} ; F = {ABÆC , CÆB}.  
z R không phi BCNF vì CÆB, C không phi là khóa  
{ Chú ý:  
z Mt quan hthuc 3NF thì chưa chc đã thuc BCNF.  
Nhưng mt quan hthuc BCNF thì thuc 3NF  
36  
ũ
Tuy
ế
t Trinh, b/m Các h
th
ng thông tin,  
Tách bo toàn tp phthuc hàm về  
3NF  
{
Vào: R(U), F (githiết F là phti thiu)  
Ra: Phép tách bo toàn tp phthuc hàm v3NF  
Thut toán  
{
{
B1. Vi các Ai U, Ai F thì loi Ai khi R và lp 1 quan hệ  
mi cho các Ai  
B2. Nếu f F, f cha tt ccác thuc tính ca R thì kết  
qulà R  
B3. Ngược li, vi mi XÆ A F, xác định mt quan hệ  
Ri(XA).  
Nếu XÆAi, XÆAj thì to mt quan hchung 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 bo toàn tp phthuc hàm  
v3NF  
B1. không lp được quan hnào mi.  
B2. !f F: f cha tt ccác thuc tính ca 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 mt mát thông tin và bo  
toàn tp phthuc hàm v3NF  
{
Yêu cu:  
z
Bo toàn tp phthuc hàm (như thut toán trên)  
z
Đảm bo là có mt lược đồ con cha khóa ca  
lược đồ được tách  
{
Các bước tiến hành  
B1. Tìm mt khóa ti thiu ca lược đồ quan hR đã  
cho  
B2. Tách lược đồ quan hR theo phép tách bo toàn  
tp phthuc  
B3. Nếu 1 trong các sơ đồ con có cha khóa ti thiu  
thì kết quca B2 là kết qucui cùng.  
Ngược li, thêm vào kết quả đó mt sơ đồ quan hệ  
được to bi khóa ti thiu 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 ti thiu cn tìm là ACDF (xem slide 19)  
B2. Phép tách bo toàn tp phthuc hàm R cho 3 sơ đồ con  
R1(AB), R2(ACDE), R3(EFG) (xem slide 40)  
B3. Do khóa ACDF không nm trong bt kmt sơ đồ con  
nào trong 3 sơ đồ con trên, ta lp mt sơ đồ con mi  
R4(ACDF)  
Kết qucui cùng ta có phép tách R thành 4 sơ đồ con  
{R1, R2, R3, R4} là mt phép tách không mt mát thông tin  
và bo toàn tp phthuc 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 26/04/2022 7960
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