Tải bản đầy đủ (.docx) (8 trang)

Các bài tập chương 3: 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 (153.27 KB, 8 trang )

(1)

THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ


I. Phụ thuộc hàm:


Đ/N 1: Cho R(U) là 1 sơ đồ quan hệ, U là tập các thuộc tính. X, Y  U.
X xác định hàm Y hay Y phụ thuộc hàm vào X nếu


với mỗi quan hệ r xác định trên R(U) và với 2 bộ t1,t2  bất kỳ


mà t1[X] = t2[X] thì t1[Y] = t2[Y]
Ký hiệu: XY


Đ/N 2:Bao đóng của tập thuộc tínhX 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


ký hiệu là X


 +


X+= {A , X


A suy diễn ra từ F}


Thuật tốn tính bao đóng của1 tập thuộctí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 tốn
B0 X0= X.


Bi Tính Xitừ Xi-1



Nếu YZ suy diễn ra từ F, và Y Xi-1, A Z , AXi-1


thì Xi= Xi-1A
ngược lại, Xi= Xi-1.
Nếu XiXi-1


thì thực hiện Bi


ngược lai, thực hiện Bn
Bn: X+= Xi


Thuật tốn tìm khố


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, n = |U|
Bi Nếu (Ki-1\{Ai})U
thì Ki= Ki-1\{Ai}
ngược lại, Ki= Ki-1
Nếu i<n



(2)

II. Phép tách khơng mất mát thơng tin:
Ví dụ:


Quản lý thu tiền học phí, U={ MaSV, Hoten, Malop, TenLop, MaNganh,
TenNganh, Hocphi, NgayQĐ, Hocky, Ngaythu}



Tách U thành:


U1= {MaNganh, TenNganh, Hocphi}
U2={MaLop, TenLop, Manganh}
U3={MaSV, Hoten, Malop}
U4={Hocky,NgayQD}
U5={MaSV, Ngaythu}
Đ/N: Cho lược đồ quan hệ


 =(U,F), phép tách  thành các lược đồ con {U1,


U2, …, Uk} đượ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 U thỏa mãn F thì:


r = r1*r2* … rk, trong đó r1=U1(r).


2. Thuật tốn kiểmtra tính khơng mất mát thơng tin:
Bài tốn


Vào: U=A1A2...An, F, phép tách (U1, U2, ..., Uk)
Ra: Phép tách  là mất mát thông tin hay khơng
Thuật tốn


B1. 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


Bi. Xét f = XY F



Nếu 2 hàng t1, t2 thuộc bảng : t1[X] = t2[X] 


thì t1[Y] = t2[Y], ưu tiên đồng nhất về giá trị a


Lặp cho tới khi không thể thay đổi được giá trị nào trong bảng
Bn. Nếu bảng có 1 hàng gồm các kí hiệu a1, a2, … , an


thì phép tách là khơng mất mát thơng tin
ngược lại, phép tách khơng bảo tồn thơng tin


Vd: Chứng minh (U1,U2,U3,U4,U5) là phép tách khơng thất thốt thơng tin.


Tìm các phụ thuộc hàm:


F=MaSVHoten, MaSV  Malop, MaLop  TenLop, MaNganh,



(3)

3. Chuẩn hóa lược đồ:


Đ/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 BCNF (Boye-Codd) nếu với XA   F+ và AX (F+ là tập các phụ thuộc


hàm suy diễn ra từ F) thì X là Khóa.
Ví dụ


R = {A,B,C} ; F = {ABC , CB}. Khóa là AB


  


R khơng phải ở BCNF vì CB, C khơng phải là khóa



  


2. Thuật tốn tách khơng mất mát thơng tin về BCNF
Vào: Sơ đồ quan hệ R, tập phụ thuộc hàm F


Ra: phép tách không mất mát thông tin bao gồm một tập các sơ đồ con ở
BCNF với các phụ thuộc hàm là hình chiếu của F lên sơ đồ đó.


Giải thuật:
B1. KQ =(U,F)


B2.Với mỗi S KQ, S không ở BCNF, xét XA FS, với điều kiện X khơng


chứa khóa của S và A X. Thay thế S bởi S1, S2 với S1=A X, S2 = S\A.
B3. Lặp (B2)cho đến khi S   KQ đều ở BCNF


KQ gồm các sơ đồ con của phép tách yêu cầu.


F=MaSVHoten, MaSV  Malop, MaLop  TenLop, MaNganh,


MaNganhTenNganh, Hocky NgayQD, MaSV,Hocky  Ngaythu
Khóa là: MaSV,Hocky



(4)

5. BÀI TẬP VỀ CHUẨN HÓA


MỤC TIÊU CỦA BÀI NÀY GIÚP NGƯỜI HỌC
 Phân biệt các dạng chuẩn của quan hệ.
 Xác định một lược đồ ở dạng chuẩn nào.



 Vận dụng giải các bài tập về chuẩn hóa quan hệ (Đưa các lược đồ


quan hệ (quan hệ) từ dạng chuẩn thấp lên dạng chuẩn cao hơn).


 Kiểm tra được một phép tách lược đồ aqua nhệ c ó mất thơng tin


khơng.
Ví dụ:


Cho lược đồ  = (U, F) với


U=CRHTSG ( C : Course, T : Teacher, H Hour, R : Room, S : Student, G :
Group)


F ={CT , HR C, CH R, CS G, HS R}
Nhận xét


- Lược đồ này có duy nhất một khố là HS
- Lược đồ này chưa ở dạng BCNF


- Ta thấy trong lược đồ  = (U, F) có phụ thuộc hàm CS G vi phạm điều kiện


BCNF nên ta tách lược đồ thành các lược U1 =CGS, U2 =CTHRS


- Ta thấy trong lược đồ 2 = (U2, F2) có phụ thuộc hàm C T vi phạm điều


kiện BCNF nên ta tách lược đồ thành các lược U3 =CT, U4 =CHRS


- Ta thấy trong lược đồ 4 = (U4, F4) có phụ thuộc hàm CH R vi phạm điều



kiện BCNF nên ta tách lược đồ thành các lược U5 =CHR, U6 =CHS


 = (U, F)


U1 =CSG


F1={CSG}


K=CS


U2 =CTHRS


F2={CT, HRC, CHR, HSR}


K=HS


U3 =CT


F3={CT}


K=C


U4 =CHSR


F4={ HRC, CHR, HSR}


K=HS


U5 =CHR



F5={ HRC, HRC}


K=HR, K=HC


U6 =CHS


F6={ HSC}



(5)

Như vậy phép tách cuối cùng là ={ CSG, CT , CHR , CHS }
III.MỘT SỐ LƯU Ý


 Tầm quan trọng của việc chuẩn hóa dữ liệu.


 Phân biệt các dạng chuẩn, phương pháp tách quan hệ ở dạng chuẩn thấp lên


dạng chuẩn cao hơn.


 Thuật toán kiểm tra phép tách có mất thơng tin khơng?
B/ BÀI TẬP MẪU


Bài số 1: Kiểm tra phép tách có mất thơng tin hay không?


Cho lược đồ quan hệ = (U, F) với


U={A1, A2, A3, A4, A5}


F={ A1 A2 A3 , A2 A4 A5 , A2 A3}


={ A1 A2 A4, A2 A3, A1 A4 A5}



Hỏi rằng phép tách  trên có kết nối khơng mất thơng tin khơng?
Hướng dẫn:


Áp dụng thuật tốn kiểm tra phép tách có mất thơng tin khơng, ta tiến hành
từng bước.


Giải:


Xây dựng bảng gồm 3 dòng 5 cột


- Điền các tín hiệu vào bảng


A1 A2 A3 A4 A5


U1 a1 a2 b13 a4 b15


U2 b12 a2 a3 b24 b25


U3 a1 b32 b33 a4 a5


- Biến đổi bảng trên dựa vào tập phụ thuộc hàm F
+ Sử dụng phụ thuộc hàm A1 A2 A3 ta biến đổi bảng


A1 A2 A3 A4 A5


U1 a1 a2 b13 a4 b15



(6)

U3 a1 a2 b13 a4 a5


+ Sử dụng phụ thuộc hàm A2 A4 A5



A1 A2 A3 A4 A5


U1 a1 a2 b13 a4 a5


U2 b12 a2 a3 b24 b25


U3 a1 a2 b13 b4 a5


+ Sử dụng phụ thuộc hàm A2 A3


A1 A2 A3 A4 A5


U1 a1 a2 a3 a4 a5


U2 B12 a2 a3 b24 b25


U3 a1 a2 a3 a4 a5


Trong bảng này có hàng cuối cùng gồm tồn các tín hiệu chính, do vậy phép
tách  là phép tách kết nối không mất thông tin.


C/ BÀI TẬP TỰ GIẢI
Bài tập 1:


Dùng kỹ thuật bảng kiểm tra phép tách sau có mất thông tin không
a) =(U, F) với U=ABCD, F={AB, ACD}, ={AB, ACD}


b) =(U, F) với U=ABCDE, F={AC, BC, CD, DEC, CEA}, ={AD,



AB, BE, CDE}


c) Xác định và giải thích dạng chuẩn cao nhất của lược đồ quan hệ =(U, F)


với U=ABCD, F={AC, DB, CABD}
Bài tập 2:


Cho lược đồ quan hệ =(U, F) với


U=ABCDEGH


F={CDH, EB, DG, BHE, CHDG, CA }


Hỏi rằng phép tách =(ABCDE, BCH, CDEGH) có kết nối mất thông tin


không.
Bài tập 3:



(7)

U=ABCD, F={DB, CA, BACD }


Xác định dạng chuẩn cao nhất của lược đồ quan hệ trên
Bài tập 4:


Cho lược đồ quan hệ  =(U, F) với


U=ABCD, F={CDB, AC, BACD }


Xác định dạng chuẩn cao nhất của lược đồ quan hệ trên
Bài tập 5:



Cho =(u, F) với


U=ABCDE và


F={AC, BC, AD, DEC, CEA}


kiểm tra tính kết nối khơng mất thơng tin đối với phép tách


={AD, AB, BE, CDE, AE }


Bài tập 6:


Cho =(u, F) với


U=ABCDEF và


F={ABC, CB, ABDE, FA}


kiểm tra tính kết nối không mất thông tin đối với phép tách


={BC, AC, ABDE, ABDF }
Bài tập 7:


Cho =(u, F) với


U=ABCDEG


F={DG, CA, CDE, AB}


kiểm tra tính kết nối khơng mất thơng tin đối với phép tách



={DG, AC, SCE, AB }
Bài tập 8:


Cho =(u, F) với


U=ABCDE và


F={AC, BC, CD, DEC, CEA}


kiểm tra tính kết nối không mất thông tin đối với phép tách


={AC, CD, BE, BC, AE}
Bài tập 9:


Cho (=(U, F) với
U=XYZW và tập



(8)

Dạng chuẩn cao nhất của lược đồ là gì?
Bài tập 10:


Cho (=(U, F) với


U=ABCDEG và tập phụ thuộc hàm
F={ ABC, ACE, EGD, ABG }
={DEG, ABDEG }


Phép tách trên có mất thơng tin khơng?


Hãy chứng minh mọi quan hệ chỉ có 2 thuộc tính đề ở dạng chuẩn BCNF?


Bài tập 11:


Xét quan hệ R(ABCDE) và tập phụ thuộc hàm
F={ ABCE, EAB, CD }


Hãy tìm dạng chuẩn cao nhất của lược đồ?
Bài tập 12:


Xét quan hệ R(ABCDEG) và tập phụ thuộc hàm
F={ AB, CDG , ACE, DG }


- Hãy tìm khố của lược đồ


- Hãy tìm dạng chuẩn cao nhất của lược đồ


Bài tập 13:


Xét quan hệ R(ABCD) và tập phụ thuộc hàm
F={ ABD, ACBD, BC }


Hãy tìm dạng chuẩn cao nhất của lược đồ
Bài tập 14:


Cho =(u, F) với


U=ABCDEF


F={ABC, CB, ABDE, FA}






×