37
CHƯƠNG 7 LÝ THUYẾT THIẾT KẾ CSDL

Chap07 thiet ke csdl

Embed Size (px)

Citation preview

Page 1: Chap07 thiet ke csdl

CHƯƠNG 7

LÝ THUYẾT THIẾT KẾ CSDL

Page 2: Chap07 thiet ke csdl

Phụ thuộc hàm Định nghĩa:

Cho một LĐQH Q(X,Y,Z) vớI X,Y,Z là các thuộc tính con của Q+ và X, Y khác rỗng.Phụ thuộc hàm: X Y được xác định trên Q nếu:q1, q2 TQ: q1.X = q2.X q1.Y = q2.YTa nói: X xác định Y hay Y phụ thuộc hàm vào X

Page 3: Chap07 thiet ke csdl

Phụ thuộc hàm Ví dụ: xét LĐQH

TD(MSTD, MSPH, GIO_TD, NGAY_TD)Mỗi trận đấu diễn ra trong một phòng, vào một ngày và một giờ bắt đầu quy định.

Ta có: MSTD MSPH, GIO_TD, NGAY_TD

Page 4: Chap07 thiet ke csdl

Các phụ thuộc hàm đặc biệt

Phụ thuộc hàm hiển nhiên:X X

Phụ thuộc hàm nguyên tố:X Y là PTH nguyên tố nếu:

∄ X' X và X' <> X mà X' Y Vd: ChiTietHD(MAHD, MAHH, SL,

GIA)Ta có: MAHD,MAHH SL

Nhưng: MAHD,MAHH ↛ SL

Page 5: Chap07 thiet ke csdl

Tập phụ thuộc hàm của 1 quan hệ Tập các PTH của Q được ký hiệu là FQ

FQ ={fi: X Y xác định trên Q}

Qui ước: FQ chỉ gồm các PTH không hiển nhiên trong tập F

Biểu diễn tập PTH bằng đồ thị: xem tài liệu trang 46

Page 6: Chap07 thiet ke csdl

Hệ tiên đề Amstrong và các luật dẫn Hệ tiên đề Amstrrong:Cho LĐQH Q và X, Y, Z Q+

• Tính phản xạ:Y X X Y

• Luật thêm vào:Nếu X Y và Z W thì XW YZ

• Luật bắc cầu: Nếu X Y và Y Z thì X Z

Page 7: Chap07 thiet ke csdl

Hệ tiên đề Amstrong và các luật dẫn Các luật dẫn từ hệ tiên đề

Amstrrong: Cho LĐQH Q và X, Y, Z Q+

• Tính phân rã:Nếu X Y, Z thì X Y và X Z

• Tính hội:Nếu X Y và X Z thì X YZ

• Luật bắc cầu giả: Nếu X Y và YZ W thì XZ W

Page 8: Chap07 thiet ke csdl

Bao đóng của tập thuộc tính Cho LĐQH Q có tập PTH F={f1,f2,

…,fn} và X Q+ Bao đóng của tập thuộc tính X dựa

trên F là tập các thuộc tính phụ thuộc hàm vào X dựa trên F

XF+ = {Y Q+ : X Y F+ }

Ta có thể trả lời câu hỏi một PTH X Y có suy diễn được từ F ?

Page 9: Chap07 thiet ke csdl

Thuật tóan xác định XF+

Begin XF

+ = X; do

X’ = XF+

for I = 1 to card(F) if VT(fi) XF

+ :

XF+ = XF

+ VP(fi)

while (XF+ = X’)

end

Page 10: Chap07 thiet ke csdl

Ví dụ:Cho Q(ABCDEFGH) và tập pthF = {f1: B A; f2: DA CE; f3:DH; f4:GH C; f5:AC D}

Tìm bao đóng của tập thuộc tính X={BD}: XF

+ = BD

Vì VT(f1) XF+ nên XF

+ = BDA

Vì VT(f2) XF+ nên XF

+ = BDACE

Vì VT(f3) XF+ nên XF

+ = BDACEH

Vì VT(f5) XF+ nên XF

+ = BDACEH : dừng

Vậy XF+ = BDACEH

Page 11: Chap07 thiet ke csdl

Ví dụ:Cho Q(ABCDEGH) và tập pthF = {f1: B A; f2: DA CE; f3:DH; f4:GH C; f5:AC D}

Tìm bao đóng của tập thuộc tính X={BCG} XF

+ = BCG

Vì VT(f1) XF+ nên XF

+ = BCGA

Vì VT(f5) XF+ nên XF

+ = BCGAD

Vì VT(f2) XF+ nên XF

+ = BCGADE

Vì VT(f3) XF+ nên XF

+ = BCGADEH = Q+ dừng

Vậy XF+ = Q+

Page 12: Chap07 thiet ke csdl

Nhận xét X XF

+

Y XF+ f: X Y F

Ví dụ: Cho Q(ABCDEFGH) và tập pthF = {f1: B A; f2: DA CE; f3:DH; f4:GH C; f5:AC D}Kiểm tra f: BD CE có thuộc F+ không?

Ta có (BD)F+ = BDACEH

Vì CE (BD)F+ nên f: BD CE thuộc F+

Page 13: Chap07 thiet ke csdl

Phụ thuộc hàm và khóa Định nghĩa: cho LĐQH Q(A1, A2, …, An),

F là tập PTH trên Q.

K Q+ được gọi là khóa của Q nếu:1. K Q+ F+ 2. ∄ K’ K mà K’ Q+ F+

Page 14: Chap07 thiet ke csdl

Thuật tóan xác định tất cả các khóa của 1 LĐQH Qui ước:

N: tập thuộc tính nguồn, chỉ chứa các nút thuộc tính không có cung đi tới

M: tập thuộc tính trung gian, chứa các nút thuộc tính vừa có cung đi tới, vừa có cung đi ra.

Input: <Q,F> Output: K{tập các khóa của quan hệ

Q}

Page 15: Chap07 thiet ke csdl

Thuật tóan xác định tất cả các khóa của 1 LĐQH

Beginb1: xây dựng tập N và Mb2: xây dựng 2m tập con của tập M với m=Card(M)b3: xây dựng tập K chứa các khóa

K = for i=1 to 2m

Ki = N Mi

nếu Ki không chứa các khóa đã xác định trước đó và (Ki)F

+ = Q+ thì

Ki là 1 khóa của Q: K = K Ki

end

Page 16: Chap07 thiet ke csdl

Ví dụ:Cho Q(ABCDEG) và tập pthF = {f1: AD B; f2: EG A; f3:BC G}

Tìm tất cả các khóa của LĐQH Q:1. N={CDE}2. M={ABG}3. Các tập con của M: {}, {A}, {B}, {G}, {AB},

{AG}, {BG}, {ABG}4. Tính bao đóng cho các tập thuộc tính sau:

(CDE)+F = {CDE} ≠ Q+

(CDEA)+F = {CDEABG} = Q+

(CDEB)+F = {CDEBAG} = Q+

(CDEG)+F = {CDEGAB} = Q+

5. Tập các khóa tìm được:K={K1={CDEA}, K2={CDEB},K3={CDEG}}

Page 17: Chap07 thiet ke csdl

Các dạng chuẩn Sự trùng lắp thông tin là nguyên nhân

làm 1 lược đồ CSDL có chất lượng kém. Để đánh giá chất lượng của 1 lược đồ

CSDL, người ta đưa ra các dạng chuẩn(normal form) sau: Dạng chuẩn 1 (1NF) Dạng chuẩn 2 (2NF) Dạng chuẩn 3 (3NF) Dạng chuẩn BCK (BCNF)

Page 18: Chap07 thiet ke csdl

Dạng chuẩn 1 Định nghĩa DC1: một lược đồ Q đạt dạng

chuẩn 1 nếu mọi thuộc tính của Q đều là thuộc tính đơn.

Một thuộc tính được gọi là thuộc tính đơn nếu giá trị của nó không phải là sự kết hợp bởi nhiều thông tin có ý nghĩa khác nhau và hệ thống thường truy xuất trên tòan bộ giá trị của nó.

Chú ý: thuộc tính kiểu datetime được xem là thuộc tính đơn.

Page 19: Chap07 thiet ke csdl

Dạng chuẩn 1 Ví dụ: Mỗi giáo viên có thể dạy nhiều môn

ChuyenMon1(MAGV, MAMH)Mỗi bộ trong ChuyenMon1 cho biết 1 môn mà giáo viên có thể dạy đạt DC1.ChuyenMon2(MAGV, MAMH)Mỗi bộ trong ChuyenMon2 cho biết nhiều môn mà giáo viên có thể dạy không đạt DC1.

Page 20: Chap07 thiet ke csdl

Dạng chuẩn 1 Ví dụ: Mỗi giáo viên có thể dạy nhiều

mônChuyenMon3(MAGV, MAMH, TENGV, HOCVI)Mỗi bộ trong ChuyenMon3 cho biết 1 môn mà giáo viên có thể dạy đạt DC1.

Nhận xét: Chuyenmon3 đạt dạng chuẩn 1 nhưng vẫn còn trùng lắp thông tin

Page 21: Chap07 thiet ke csdl

Dạng chuẩn 2 Phụ thuộc đầy đủ: cho pth X A. Tập thuộc tính A

được gọi là phụ thuộc đầy đủ vào tập thuộc tính X nếu:

∄ X' X mà X' A Ví dụ 1: ChuyenMon3(MAGV, MAMH, TENGV, HOCVI)Phụ thuộc hàm: MAGV, MAMH TENGV, HOCVIlà pth không đầy đủ vì chỉ cần MAGV TENGV,

HOCVI Ví dụ 2:GiaoVien(MAGV, TENGV, HOCVI) Phụ thuộc hàm: MAGV TENGV, HOCVI là pth đầy đủ

Page 22: Chap07 thiet ke csdl

Dạng chuẩn 2 Định nghĩa DC2:

Một lược đồ quan hệ Q đạt DC2 nếu:1. Q ở dạng chuẩn 12. Mọi thuộc tính không khóa đều phụ thuộc đầy đủ

vào các khóa của Q Ví dụ 1: ChuyenMon3(MAGV, MAMH, TENGV, HOCVI)

Không đạt DC2 vì:MAGV, MAMH TENGV, HOCVIlà pth không đầy đủ vì chỉ cần

MAGVTENGV,HOCVI

Page 23: Chap07 thiet ke csdl

Dạng chuẩn 2 Ví dụ 2: GiaoVien(MAGV, TENGV, HOCVI)đạt DC2 vì : MAGV TENGV, HOCVINên mọi thuộc tính không khóa đều phụ

thuộc đầy đủ vào các khóa

Page 24: Chap07 thiet ke csdl

Dạng chuẩn 2 Ví dụ 3: SinhVien(MASV, HOTEN, NGSINH, MALOP,

TENLOP)

Đạt DC2 vì mọi thuộc tính không khóa: HOTEN,NGSINH, MALOP, TENLOP đều phụ thuộc đầy đủ vào các khóa : MASV

Nhận xét: SinhVien đạt dạng chuẩn 2 nhưng vẫn còn trùng lắp thông tin

Page 25: Chap07 thiet ke csdl

Dạng chuẩn 3 Phụ thuộc bắc cầu:

Cho LĐQH Q. Tập thuộc tính A Q+ được gọi là phụ thuộc bắc cầu vào tập thuộc tính X nếu tồn tại tập thuộc tính Y Q+ thỏa 4 điều kiện sau:

1. X Y F+

2. Y A F+

3. Y ↛ X

4. A {X Y}

Page 26: Chap07 thiet ke csdl

Dạng chuẩn 3 Ví dụ:SinhVien(MASV, HOTEN, NGSINH, MALOP,

TENLOP)MASV HOTEN, NGSINH, MALOPMALOP TENLOPVậy TENLOP phụ thuộc bắc cầu vào MASV

Page 27: Chap07 thiet ke csdl

Dạng chuẩn 3 Định nghĩa DC3:Một LĐQH Q đạt DC3 nếu:1. Q đạt DC22. Mọi thuộc tính không khóa của Q đều

không phụ thuộc bắc cầu vào khóa của Q.

Ví dụ:SinhVien(MASV, HOTEN, NGSINH, MALOP, TENLOP)Không đạt DC3 vì: TENLOP phụ thuộc bắc cầu vào MASV do có các pthMASV HOTEN, NGSINH, MALOPMALOP TENLOP

Page 28: Chap07 thiet ke csdl

Dạng chuẩn 3 Ví dụ:

SinhVien(MASV, HOTEN, NGSINH, MALOP)đạt DC3

Lop(MALOP, TENLOP)Đạt DC3

Page 29: Chap07 thiet ke csdl

Dạng chuẩn 3 Ví dụ:

KETQUA(MASV, CMND, MAMH, DIEM)Ta có:

MASV, MAMH DIEMCMND, MAMH DIEM

nên KETQUA đạt DC3 Nhận xét:

1 LĐQH đạt DC3 vẫn còn trùng lắp thông tin

Page 30: Chap07 thiet ke csdl

Dạng chuẩn BCK(Boyce-Codd-Kent)

Định nghĩa: Một LĐQH Q đạt dạng chuẩn BCK nếu mọi phụ thuộc hàm không hiển nhiên đều có vế trái chứa khóa.

Nhận xét: Nếu Q đạt dạng chuẩn BCK thì mọi vế trái của các pth đều là siêu khóa.

Page 31: Chap07 thiet ke csdl

Dạng chuẩn BCK(Boyce-Codd-Kent) Ví dụ:

KETQUA(MASV, CMND, MAMH, DIEM)Ta có:

MASV, MAMH DIEMCMND, MAMH DIEM

nên KETQUA đạt DC3 Nhưng : MASV CMND nên KETQUA không đạt DC BCK

Page 32: Chap07 thiet ke csdl

Dạng chuẩn BCK(Boyce-Codd-Kent)

Ví dụ:KETQUA(MASV, MAMH, DIEM)Ta có:

MASV, MAMH DIEMnên KETQUA đạt DC BCK

Page 33: Chap07 thiet ke csdl

Dạng chuẩn của một LĐCSDL Là dạng chuẩn thấp nhất của

những lược đồ quan hệ có trong lược đồ CSDL đó.

Page 34: Chap07 thiet ke csdl

Chuẩn hóa một LĐCSDL Định lý DELOBEL(1973):

Cho LĐQH Q và tập pth F.Nếu f: X A F+ sao cho XA Q+ thì phép phân rã Q thành 2 lược đồ quan hệ có sau là bảo toàn thông tin:<Q1(X,A),F1={f F+:VT(f) VP(f) Q1+}><Q2(Q+\A),F2={f F+:VT(f) VP(f) Q2+}>

Page 35: Chap07 thiet ke csdl

Thuật toán phân rãCho LĐQH Q, F+ là tập pth trên Q. Nếu Q không đạt dạng chuẩn BCK thì chọn X A F+ mà X không là siêu khoá, khi đó Q được phân rã thành:

<Q1(X,A),F1={f F+:VT(f) VP(f) Q1+}><Q2(Q+\A),F2={f F+:VT(f) VP(f) Q2+}>

Lặp lại qui trình trên cho Q2 và chỉ xét pth thuộc F2 cho đến khi các quan hệ con đều đạt DC BCK thì dừng.

Page 36: Chap07 thiet ke csdl

Thuật toán phân rã

ví dụ 1: Cho Q(ABC) và F={A B, B C} xác định trên Qta có: Khoá K={A}

Q(ABC)chọn BC

Q1(BC) Q2(AB)F1={BC} F2={AB}đạt BCK đạt BCK

Page 37: Chap07 thiet ke csdl

Thuật toán phân rãví dụ 2: Cho Q(ABCD) và F={A B, B C} xác định trên Q

ta có: Khoá K={AD}Q(ABCD)chọn BC

Q1(BC) Q2(ABD)F1={BC} F2={AB}đạt BCK

Q3(AB) Q4(AD)F3={AB} F4={}