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..[r]
Trang 1THIẾ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 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: XY
Đ/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
ký hiệu là X +
X+= {A , X A suy diễn ra từ F}
Thuật toá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 toán
B0 X0= X.
Bi Tính Xitừ Xi-1
Nếu YZ suy diễn ra từ F, và Y Xi-1, A Z , AXi-1
thì Xi= Xi-1A
ngược lại, Xi= Xi-1
Nếu XiXi-1
thì thực hiện Bi
ngược lai, thực hiện Bn
Bn: X+= Xi
Thuật toán tìm khoá
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 U
thì Ki= Ki-1\{Ai}
ngược lại, Ki= Ki-1
Nếu i<n
thì i=i+1, thực hiện Bi
ngược lại, thực hiện Bn
Bn K = Ki
Trang 2II 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ệ
quan hệ r xác định trên R(U) và với 2 bộ t1,t2 =(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 toán kiểmtra tính không mất mát thông tin:
Bài toá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 toá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 = XY 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 toàn thông tin
Vd: Chứng minh (U1,U2,U3,U4,U5) là phép tách không thất thoát thông tin Tìm các phụ thuộc hàm:
F=MaSVHoten, MaSV Malop, MaLop TenLop, MaNganh,
MaNganhTenNganh, Hocky NgayQD, MaSV,Hocky Ngaythu
Trang 33 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 quan hệ r xác định trên R(U) và với 2 bộ t1,t2 U F+ và AX (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
ký hiệu là X CB, C không phải là khóa U
2 Thuật toá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 XA 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 quan hệ r xác định trên R(U) và với 2 bộ t1,t2 KQ đều ở BCNF
KQ gồm các sơ đồ con của phép tách yêu cầu
F=MaSVHoten, MaSV Malop, MaLop TenLop, MaNganh,
MaNganhTenNganh, Hocky NgayQD, MaSV,Hocky Ngaythu
Khóa là: MaSV,Hocky
Vậy: Lược đồ trên không ở dạng BCNF
Trang 45 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 ={CU T , HR U C, CH U R, CSU G, HSU R}
Nhận xét
- Lược đồ này có duy nhất một khoá 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 CSU 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 CU 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 CHU 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)U, F))
U1 =CSG
F)1={CSU G}
K=CS
U2 =CTHRS F)2={CU T, HRU C, CHU R, HSU R}
K=HS
U3 =CT F)3={CU T}
K=C
U4 =CHSR F)4={ HRU C, CHU R, HSU R}
K=HS
U5 =CHR F)5={ HRU C, HRU C}
K=HR, K=HC
U6 =CHS F)6={ HSU C}
K=HS
Trang 5Như 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 U A2 A3 , A2 A4U A5 , A2U 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 toá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
- 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 U A2 A3 ta biến đổi bảng
Trang 6U3 a1 a2 b13 a4 a5
+ Sử dụng phụ thuộc hàm A2 A4U A5
+ Sử dụng phụ thuộc hàm A2U A3
Trong bảng này có hàng cuối cùng gồm toà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={AB, ACD}, ={AB, ACD}
b) =(U, F) với U=ABCDE, F={AC, BC, CD, DEC, CEA}, ={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={AC, DB, CABD}
Bài tập 2:
Cho lược đồ quan hệ =(U, F) với
U=ABCDEGH
F={CDH, EB, DG, BHE, CHDG, CA }
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:
Cho lược đồ quan hệ =(U, F) với
Trang 7U=ABCD, F={DB, CA, BACD }
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={CDB, AC, BACD }
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={AC, BC, AD, DEC, CEA}
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={ABC, CB, ABDE, FA}
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={DG, CA, CDE, AB}
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={AC, BC, CD, DEC, CEA}
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
F={YW, WY, XYZ}
Trang 8Dạ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={ ABC, ACE, EGD, ABG }
={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={ ABCE, EAB, CD }
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={ AB, CDG , ACE, DG }
- Hãy tìm khoá 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={ ABD, ACBD, BC }
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={ABC, CB, ABDE, FA}
Lược đồ có ở dạng BCNF không