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 )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ</b>


<b>I. Phụ thuộc hàm:</b>


Đ/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  <i>bất kỳ </i>


<i> mà t1[X] = t2[X] thì t1[Y] = t2[Y]</i>
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+<sub>= {A , X </sub>


A suy diễn ra từ F}


<b>Thuật tốn tính bao đóng của1 tập thuộctính</b>


<b>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</b>
<b>Ra: X</b>+


<b>Thuật tốn</b>
<b>B0 X0= X.</b>


<b>Bi Tính Xitừ Xi-1</b>



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
<b>Bn: </b>X+= Xi


<b>Thuật tốn tìm khố</b>


<b>Vào: U = {A1, A2, …, An} , F</b>


<b>Ra: khóa tối thiểu K xác định được trên U và F</b>
<b>Thuật toán</b>


<b>B0 K0= U, n = |U|</b>
<b>Bi Nếu (Ki-1\{Ai})U </b><sub></sub>
thì Ki= Ki-1\{Ai}
ngược lại, Ki= Ki-1
Nếu i<n


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>II. Phép tách khơng mất mát thơng tin:</b>
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).


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


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


<b>B1. Thiết lập một bảng k hàng, n cột</b>


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>Bi. Xét f = XY F</b>



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
<b>Bn. Nếu bảng có 1 hàng gồm các kí hiệu a1, a2, … , an</b>


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,


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>3. Chuẩn hóa lược đồ:</b>


Đ/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



  


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


<b>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 ở </b>
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:
<b>B1. KQ =(U,F)</b>


<b>B2.Với mỗi S KQ, S không ở BCNF, xét XA F</b>S, 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.
<b>B3. Lặp (B2)cho đến khi S </b>  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


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

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


<b>MỤC TIÊU CỦA BÀI NÀY GIÚP NGƯỜI HỌC</b>
 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.
<i>Ví dụ: </i>


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


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


F ={C<sub></sub>T , HR <sub></sub> C, CH <sub></sub> R, CS<sub></sub> G, HS<sub></sub> R}
<b>Nhận xét</b>


- 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={CS<sub></sub>G}


K=CS


U2 =CTHRS


F2={C<sub></sub>T, HR<sub></sub>C, CH<sub></sub>R, HS<sub></sub>R}


K=HS


U3 =CT


F3={C<sub></sub>T}


K=C


U4 =CHSR


F4={ HR<sub></sub>C, CH<sub></sub>R, HS<sub></sub>R}


K=HS


U5 =CHR



F5={ HR<sub></sub>C, HR<sub></sub>C}


K=HR, K=HC


U6 =CHS


F6={ HS<sub></sub>C}


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

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


 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/ BÀI TẬP MẪU</b>


<i><b>Bài số 1: </b></i>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?
<i>Hướng dẫn:</i>


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


<i>Giải:</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


<b>A1</b> <b>A2</b> <b>A3</b> <b>A4</b> <b>A5</b>


<b>U1</b> a<b>1</b> <b>a2</b> <b>b13</b> <b>a4</b> <b>b15</b>


<b>U2</b> <b>b12</b> <b>a2</b> <b>a3</b> <b>b24</b> <b>b25</b>


<b>U3</b> <b>a1</b> <b>b32</b> <b>b33</b> <b>a4</b> <b>a5</b>


- 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


<b>A1</b> <b>A2</b> <b>A3</b> <b>A4</b> <b>A5</b>


<b>U1</b> <b>a1</b> <b>a2</b> <b>b13</b> <b>a4</b> <b>b15</b>


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<b>U3</b> <b>a1</b> <b>a2</b> <b>b13</b> <b>a4</b> <b>a5</b>


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



<b>A1</b> <b>A2</b> <b>A3</b> <b>A4</b> <b>A5</b>


<b>U1</b> <b>a1</b> <b>a2</b> <b>b13</b> <b>a4</b> <b>a5</b>


<b>U2</b> <b>b12</b> <b>a2</b> <b>a3</b> <b>b24</b> <b>b25</b>


<b>U3</b> <b>a1</b> <b>a2</b> <b>b13</b> <b>b4</b> <b>a5</b>


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


<b>A1</b> <b>A2</b> <b>A3</b> <b>A4</b> <b>A5</b>


<b>U1</b> <b>a1</b> <b>a2</b> <b>a3</b> <b>a4</b> <b>a5</b>


<b>U2</b> <b>B12</b> <b>a2</b> <b>a3</b> <b>b24</b> <b>b25</b>


<b>U3</b> <b>a1</b> <b>a2</b> <b>a3</b> <b>a4</b> <b>a5</b>


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.


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


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}
<i><b>Bài tập 2:</b></i>


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.
<i><b>Bài tập 3:</b></i>


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=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
<i><b>Bài tập 4:</b></i>


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
<i><b>Bài tập 5:</b></i>



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 }


<i><b>Bài tập 6:</b></i>


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 }
<i><b>Bài tập 7:</b></i>


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 }
<i><b>Bài tập 8:</b></i>


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}
<i><b>Bài tập 9:</b></i>


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


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

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


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?


<i><b>Bài tập 11:</b></i>


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 đồ?
<i><b>Bài tập 12:</b></i>


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 đồ


<i><b>Bài tập 13:</b></i>


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>Bài tập 14:</b>


Cho =(u, F) với


U=ABCDEF


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


</div>


<!--links-->

×