BÀI TẬP PHÂN MẢNH DỌC Bài 1: Cho kí hiệu: Q = {q1, q2, q3, q4, q5} tập ứng dụng A = {A1, A2, A3, A4, A5} tập thuộc tính S = {S1 ,S2, S3} tập vị trí Cho ma trận sử dụng thuộc tính tần suất truy nhập: q1 q2 q3 q4 q5 A1 1 1 A2 1 0 A3 1 1 A4 0 0 A5 1 0 q1 q2 q3 q4 q5 S1 10 0 S2 20 40 10 15 S3 10 0 Giả sử refl(qk)=1 cho k Sl, A1 thuộc tính khóa Hãy sử dụng thuật toán buộc lượng phân hoạch dọc để thực phân mảnh dọc cho tập thuộc tính A Giải: a Tính ma trận lực AA Sử dụng công thức: Tính toán tương tự, ta thu ma trận lực thuộc tính AA sau: b Tính ma trận hấp dẫn tụ CA từ ma trận AA Bước 1: Khởi tạo, lấy cột đầu (A1, A2) AA làm cột đầu CA Bước 2: Thực tính toán từ ma trận AA: Ma Katz 2.1 Xét cột A3 Có vị trí để đặt cột A3 + Trước A1: thứ tự 0-3-1 + Giữa A1 A2: thứ tự 1-3-2 + Sau A2: thứ tự 2-3-n (lúc A4 rỗng Qui định biên A0 An) Nhận thấy giá trị cont(A0, A3, A1) lớn nhất, nên ta đặt cột A3 trước A1: 2.2 Xét cột A4, có vị trí để đặt cột A4: + Trước A3: thứ tự 0-4-3 + Giữa A3 A1: thứ tự 3-4-1 + Giữa A1 A2: thứ tự 1-4-2 + Sau A2: thứ tự 2-4-5 (lúc A5 rỗng) Nhận thấy giá trị cont(A0, A4, A3) cont(A2, A4, A5) 9450, lớn nhất, nên giả sử ta chọn đặt cột A4 sau A2: Ma Katz 2.3 Xét cột A5, có vị trí để đặt cột A5: + Trước A3: thứ tự 0-5-3 + Giữa A3 A1: thứ tự 3-5-1 + Giữa A1 A2: thứ tự 1-5-2 + Giữa A2 A4: thứ tự 2-5-4 + Sau A4: thứ tự 4-5-6 (A6 không tồn tại) Nhận thấy giá trị cont(A1, A5, A2) lớn nhất, nên ta chọn đặt cột A5 A1 A2: Bước 3: Hoán vị hàng theo thứ tự cột, ta có ma trận hấp dẫn tụ CA: c Dùng thuật toán phân mảnh dọc để tìm phân mảnh dọc từ ma trận CA Một số kí hiệu công thức: – Tập thuộc tính mà sử dụng – Tập ứng dụng truy cập đến TA mà không truy cập đến BA – Tập ứng dụng truy cập đến BA mà không truy cập đến TA – Tập ứng dụng vừa truy cập đến BA TA Từ ma trận CA thu phần b., ta có trường hợp phân mảnh: Trường hợp 1: TA = {A3}, BA = {A1, A5, A2, A4} Ta có: TQ = {q4}, BQ = {q3}, OQ = {q1, q2, q5} Ma Katz Suy ra: CTQ = 10, CBQ = 45, COQ = 60 Tính: Trường hợp 2: TA = {A3, A1}, BA = {A5, A2, A4} Ta có: TQ = {q4}, BQ = rỗng, OQ = {q1, q2, q3, q5} Suy ra: CTQ = 10, CBQ = 0, COQ = 105 Tính: Trường hợp 3: TA = {A3, A1, A5}, BA = {A2, A4} Ta có: TQ = {q4}, BQ = rỗng, OQ = {q1, q2, q3, q5} Suy ra: CTQ = 10, CBQ = 0, COQ = 105 Tính: Trường hợp 4: TA = {A3, A1, A5, A2}, BA = {A4} Ta có: TQ = {q1, q2, q4, q5}, BQ = rỗng, OQ = {q3} Suy ra: CTQ = 70, CBQ = 0, COQ = 45 Tính: Nhận thấy giá trị trường hợp LỚN NHẤT, ta có phân mảnh dọc: {A1, A2, A3, A5}, {A1, A4} (do A1 thuộc tính khóa nên cho vào mảnh thứ 2) -Bài 2: Cho kí hiệu: Q = {q1, q2, q3, q4} tập ứng dụng A = {A1, A2, A3, A4} tập thuộc tính S = {S1 ,S2, S3} tập vị trí Cho ma trận sử dụng thuộc tính tần suất truy nhập: q1 q2 q3 q4 A1 1 A2 1 0 A3 1 A4 0 q1 q2 q3 q4 S1 10 0 S2 20 35 10 S3 10 Giả sử refl(qk)=1 cho k Sl, A1 thuộc tính khóa Hãy sử dụng thuật toán buộc lượng phân hoạch dọc để thực phân mảnh dọc cho tập thuộc tính A Giải: Ma Katz a Tính ma trận lực AA Sử dụng công thức: Tính toán tương tự, ta thu ma trận lực thuộc tính AA sau: b Tính ma trận hấp dẫn tụ CA từ ma trận AA Bước 1: Khởi tạo, lấy cột đầu (A1, A2) AA làm cột đầu CA Bước 2: Thực tính toán: 2.1 Xét cột A3 Có vị trí để đặt cột A3 + Trước A1: thứ tự 0-3-1 + Giữa A1 A2: thứ tự 1-3-2 + Sau A2: thứ tự 2-3-4 (lúc A4 rỗng) Nhận thấy giá trị cont(A1, A3, A2) lớn nhất, nên ta đặt cột A3 A1 A2: Ma Katz 2.2 Xét cột A4, có vị trí để đặt cột A4: + Trước A1: thứ tự 0-4-1 + Giữa A1 A3: thứ tự 1-4-3 + Giữa A3 A2: thứ tự 3-4-2 + Sau A2: thứ tự 2-4-5 Nhận thấy giá trị cont(A0, A4, A1) lớn nhất, nên ta đặt cột A4 trước A1: Bước 3: Hoán vị hàng theo thứ tự cột, ta có ma trận hấp dẫn tụ CA: c Dùng thuật toán phân mảnh dọc để tìm phân mảnh dọc từ ma trận CA Một số kí hiệu công thức: – Tập thuộc tính mà sử dụng – Tập ứng dụng truy cập đến TA mà không truy cập đến BA – Tập ứng dụng truy cập đến BA mà không truy cập đến TA – Tập ứng dụng vừa truy cập đến BA TA Từ ma trận CA thu phần b., ta có trường hợp phân mảnh: Trường hợp 1: TA = {A4}, BA = {A1, A3, A2} Ta có: TQ = rỗng, BQ = {q2, q1, q4}, OQ = {q3} Suy ra: CTQ = 0, CBQ = 55, COQ = 40 Tính: Trường hợp 2: TA = {A4, A1}, BA = {A3, A2} Ta có: TQ = {q3}, BQ = {q1, q4}, OQ = {q2} Ma Katz Suy ra: CTQ = 40, CBQ = 40, COQ = 15 Tính: Trường hợp 3: TA = {A4, A1, A3}, BA = {A2} Ta có: TQ = {q3, q4}, BQ = rỗng, OQ = {q1, q2} Suy ra: CTQ = 50, CBQ = 0, COQ = 45 Tính: Nhận thấy giá trị trường hợp LỚN NHẤT, ta có kết phân mảnh dọc: {A1, A4}, {A1, A2, A3} (do A1 thuộc tính khóa nên cho vào mảnh thứ 2) Ma Katz ... Dùng thuật toán phân mảnh dọc để tìm phân mảnh dọc từ ma trận CA Một số kí hiệu công thức: – Tập thuộc tính mà sử dụng – Tập ứng dụng truy cập đến TA mà không truy cập đến BA – Tập ứng dụng truy... Dùng thuật toán phân mảnh dọc để tìm phân mảnh dọc từ ma trận CA Một số kí hiệu công thức: – Tập thuộc tính mà sử dụng – Tập ứng dụng truy cập đến TA mà không truy cập đến BA – Tập ứng dụng truy... ta có phân mảnh dọc: {A1, A2, A3, A5}, {A1, A4} (do A1 thuộc tính khóa nên cho vào mảnh thứ 2) -Bài 2: Cho kí hiệu: Q = {q1, q2, q3, q4} tập ứng dụng A = {A1, A2, A3, A4} tập thuộc