chap07 thiet ke csdl

Post on 26-May-2015

903 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CHƯƠNG 7

LÝ THUYẾT THIẾT KẾ 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

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

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

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

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

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

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 ?

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

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

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+

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+

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+

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}

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

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}}

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)

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.

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.

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

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

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

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

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

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}

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

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

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

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

Lop(MALOP, TENLOP)Đạt DC3

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

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.

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

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

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

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

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 đó.

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+}>

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.

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

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={}

top related