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 (1 MB, 7 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>PHÂN TÍCH THIẾT KẾ THỐNG THƠNG TIN</b>
<i><b>Chương 7</b></i>
<b>Phụ thuộc hàm.</b>
<b>Bao đóng.</b>
<b>Khóa của lược đồ quan hệ.</b>
<b>Phủ tối thiểu.</b>
<b>Dạng chuẩn.</b>
<b>Chuẩn hóa cơ sở dữ liệu.</b>
<b>Phép tách lược đồ quan hệ.</b>
<b>Bàitập</b>
<b>Số HD</b> <b>NgàyHD</b> <b>TênKH</b> <b>TênNV</b> <b>TênHH</b> <b>SL</b> <b>DG</b> <b>TT</b>
001 01/02/19 Nuyễn Ngọc Nga Trần Thị Lan Coca 2 8.000 <b>16.000</b>
001 01/02/19 Nuyễn Ngọc Nga Trần Thị Lan Pepsi 1 7.000 <b>7.000</b>
001 01/02/19 Nuyễn Ngọc Nga Trần Thị Lan Ken 3 15.000 <b>45.000</b>
002 01/02/19 Nguyễn Thị An Linh Gạo 1 20.000 <b>20.000</b>
002 01/02/19 Nguyễn Thị An Linh Đường 2 21.000 <b>42.000</b>
003 01/02/19 Nguyễn Thị An Linh Sữa 1 25.000 <b>25.000</b>
<b>Ví dụ</b>
<b>Nếu thêm một hóa đơn mới ???</b> <b>Nếu thêm một kết quả thi của sinh viên mới ???</b>
<b>7.1 Phụ thuộc hàm (functional dependence-FD)</b>
<b>Định nghĩa: </b>
Phụ thuộc hàm là ràng buộc giữa 2 tập thuộc tính của 01 lược
đồ quan hệ
R(A1, A2,…, An) là lược đồ quan hệ.
X, Y là hai tập con của tập thuộc tính ={A1, A2,…, An}.
Ta nói Y phụ thuộc hàm vào X: <b>X →</b> <b>Y</b>
<i><b>Với mỗi giá trị tại X trong R xác định duy nhất một giá trị của Y trong R</b></i>
<b>7.1 Phụ thuộc hàm (functional dependence-FD)</b>
Một thể hiện của R thỏa phụ thuộc hàm <b>X </b><b>Y</b>nếu
t1, t2 R
<b>t1.X = t2.X</b> <b>t1.Y = t2.Y</b>
MONHOC → DIEMTHI ???
HOTEN → DIEMTHI ???
MASV → DIEMTHI ???
<b>Vídụ</b> A B C D E
1 2 3 4 5
1 4 3 4 5
1 2 4 4 1
<b>Kí hiệu nào là phụ thuộc hàm</b>
<b>I. AB→ C</b>
<b>II. B→</b> <b>D</b>
<b>III. DE→ A</b>
<b>Phụ thuộc hàm hiển nhiên</b>
<b>Nếu X </b><b>Y thì X→ Y .</b>
<b>Với r là quan hệ bất kỳ, F là tập phụ thuộc hàm </b>
<b>thỏa trên r, ta ln có</b>
<b>F </b><b>{các phụ thuộc hàm hiển nhiên}</b>
<b>7.2 Hệ luật dẫn Armstrong</b>
Phụ thuộc hàm được suy diễn logic từ F
Phụ thuộc hàm XYđược suy diễn logic từ F nếu một quan hệ r
bất kỳthỏa mãn tất cả các phụ thuộc hàm của Fthìcũng thỏa phụ
thuộc hàm XY.
Kýhiệu F|= XY.
Bao đóng của F
Bao đóng của F là tập tất cả các phụ thuộc hàm
được suy diễn logic từ F.
<b>Thuật tốn tìm bao đóng F+</b>
<b>“Áp dụng hệ tiên đề Armstrong cho đến khi </b>
<b>khơng tìm ra thêm phụ thuộc hàm mới”</b>
<b>Các tính chất của tập F+</b>
<b>Tính phản xạ: F </b><b>F+</b>
<b>Tính đơn điệu: Nếu F </b><b>G thì F+ </b><b><sub>G</sub>+</b>
<b>Tính lũy đẳng: (F+<sub>)</sub>+ <sub>= F</sub>+<sub>.</sub></b>
<b>Phần phụ của F: F-<sub>= G - F</sub>+</b>
<b>(G -tập tất cả các PTH có thể có của r)</b>
<b>7.2 Hệ luật dẫn Armstrong</b>
<b>7.2 Hệ luật dẫn Armstrong</b>
<b>Hệ luật dẫn Amstrong: Gọi R(</b><b>) làlược đồ quan hệ</b>
<b>với</b><b>={A1, A2,…, An} làtập thuộc tính và X,Y,Z,W là</b>
<b>tập con của</b><b>. (Kíhiệu: XY=X</b><b>Y)</b>
<b>Baluật của tiên đề Amstrong:</b>
<b>1.</b> <b>Luật phản xạ (reflexive rule):</b>
<b>NếuY</b><b>XthìX</b><b>Y</b>
<b>2.</b> <b>Luật tăng trưởng (augmentation rule):</b>
<b>Nếu X </b><b>Y, Z</b> <b>thì XZ </b><b>YZ</b>
<b>3.</b> <b>Luật bắc cầu (Transivity Rule) </b>
<b>Nếu X </b><b>Y và Y </b><b>Z thì X </b><b>Z</b>
Giả sử quan hệ r thoả mãn X Y.
Tồn tại hai bộ t, u r sao cho t[XZ] = u[XZ] mà t[YZ] u[YZ]
Vì t[Z] = u[Z] nên để có t[YZ]u[YZ] thì t[Y] u[Y] (1)
Mà ta có t[XZ] = u[XZ] nên t[X] = u[X] (2)
Từ (1) và (2) ta có t[X] = u[X] và t[Y]u[Y] điều này là trái với
giả thiết quan hệ r thoả mãn X Y.
Vậy t[YZ] = u[YZ] hay XZ YZ là đúng trên quan hệ r.
<b>7.2 Hệ luật dẫn Armstrong</b>
<b>Ba hệ quả của tiên đề Amstrong:</b>
<b>Nếu X </b><b>Y và X </b><b>Z thì X </b><b>YZ</b>
<b>2.</b> <b>Luật bắc cầu giả (Pseudotransivity Rule)</b>
<b>Nếu X </b><b>Y và WY </b><b>Z thì XW </b><b>Z</b>
<b>3.</b> <b>Luật phân rã (Decomposition Rule)</b>
<b>Nếu X </b><b>Y và Z </b><b>Y thì X </b><b>Z</b>
Định nghĩa
Gọi F là tập các phụ thuộc hàm trên tập thuộc tính
Bao đóng của F là tất cả các phụ thuộc hàm có thể
suy ra từ F dựa trên các tiên đề Armstrong
<b>7.3 Bao đóng của tập thuộc tính X </b>
<b>(closures of attribute sets)</b>
Thuật tốn tìm bao đóng:
Tính liên tiếp tập các tập thuộc tính X0<sub>,X</sub>1<sub>,X</sub>2<sub>,... theo phương </sub>
pháp sau:
<i>Bước 1</i>: X0 <sub>= X</sub>
<i>Bước 2</i>: lần lượt xét các phụ thuộc hàm của F
Nếu YZ có Y Xi thì Xi+1 = XiZ
Loại phụ thuộc hàm Y Z khỏi F
<i>Bước 3</i>: Nếu ở bước 2 khơng tính được Xi+1 <sub>thì X</sub>i <sub>chính là </sub>
bao đóng của X
<b>7.3 Bao đóng của tập thuộc tính X </b>
<b>(closures of attribute sets)</b>
Ví dụ 1: Cho lược đồ quan hệ R(A,B,C,D,E,G,H) và
tập phụ thuộc hàm
F={BA; DACE; DH; GHC; ACD}.
Tìm baođóng của X = {A,C} trên F?baođóng
Giải: X(0) <sub>= {A,C} ,</sub><sub>{</sub><sub>A,C</sub><sub>}</sub><sub>{D}</sub>
X(1) <sub>= {A,C,D}, </sub><sub>{A, D}</sub><sub>{C,E}</sub>
X(2) <sub>= {A,C,D,E},</sub><sub>{D}</sub><sub>{H}</sub>
X(3) <sub>= {</sub><sub>A,C,D,E,H</sub><sub>}</sub>
Ví dụ 2: cho lược đồ quan hệ: Q(A,B,C,D,E,G)
F = { f1: A → C;
f2: A → EG;
f3: B →D;
f<sub>4</sub>: G →E}
Tìm baođóng:
- X+ <sub>với X = {A,B};</sub>
- Y+ với Y = {C,G,D}
<b>7.3 Bao đóng của tập thuộc tính X </b>
<b>(closures of attribute sets)</b>
Một phủ tối thiểu của tập phụ thuộc hàm F là một tập phụ
thuộc hàm G
Trong đó:
- G tương đương với F (tức G+<sub>= F</sub>+<sub>)</sub>
- Tất cả các phụ thuộc hàm trong G đều có dạng X A
- Không thể làm G nhỏ hơn được nữa (nghĩa là khơng thể
xóa đi bất kỳ PTH nào trong G, hay xóa đi bất kỳ thuộc tính
nào bên phải, bên trái của mỗi phụ thuộc hàm mà G vẫn
tương đương với F)
<b>7.4 Phủ tối thiểu</b>
<b>F là một tập phụ thuộc hàm tối thiểu nếu thỏa mãn 3 </b>
<b>điều kiện sau:</b>
<b>F là tập phụ thuộc hàm có vế trái khơng dư thừa</b>
<b>F là tập phụ thuộc hàm có vế phải một thuộc tính.</b>
<i>Thuật tốn tìm phủ tối thiểu</i>
<i>Bước 1:</i>
- Tách vế phải mỗi PTH trong F sao cho các vế phải mỗi
PTH chỉ chứa 1 thuộc tính
<i>Bước 2:</i>
- Tìm các PTH đầy đủ bằng cách loại bỏ các PTH dư thừa
ở vế trái của từng PTH
<i>Bước 3:</i>
-Loại bỏ các PTH dư thừa trong F
<b>7.4 Phủ tối thiểu</b>
<b>R(A, B, C, D, E, F, G, H)</b>
<b>T = {ABH → CK, A → D, C → E, BGH → F, F → AD, E → F, BH → E}</b>
<b>Tìm phủ tối thiểu</b>
<i>Bước 1:</i>
Tách vế phải của các thuộc tính hàm thành các thuộc tính đơn lẻ:
<b>ABH → C</b>
<b>ABH → K</b>
<b>Loại bỏ các thuộc tính dư thừa phía bên trái của mỗi </b>
<b>thuộc tính hàm:</b>
<b>2.1. Xét ABH → C</b>
-Loại A trong ABH → C:
Ta có (BH)+ = (BHEFADK) chứa A, nên A dư thừa.
-Loại B trong ABH → C:
Ta có (AH)+ = (AHD) không chứa B, nên B không dư thừa.
-Loại H trong ABH → C:
Ta có (AB)+ = (ABD) khơng chứa H, nên H không dư thừa.
<b>T = {ABH → C, ABH → K, A → D, C → E, BGH → F, F → A, F → D, </b>
<b>E → F, BH → E}</b>
<b>Bước 2</b> <b>T = {ABH → C, ABH → K, A → D, C → E, BGH → F, F → A, </b>
<b>F → D, E → F, BH → E}</b>
<b>2.2. Xét ABH → K</b>
-Loại A trong ABH → K:
Ta có (BH)+ = (BHEFADK) chứa A, nên A dư thừa.
-Loại B trong ABH → K:
Ta có (AH)+ = (AHD) khơng chứa B, nên B khơng dư thừa.
-Loại H trong ABH → K:
Ta có (AB)+ = (ABD) không chứa H, nên H không dư thừa.
<b>Kết quả: T = {BH → C, BH → K, A → D, BGH → F, F → A, F → </b>
<b>D, E → F, BH → E}</b>