Đồ án gồm những nội dung sau:1. Giới thiệu:31.1 Thuật toán tối ưu hóa truy vấn:31.2 Nhóm:32. Nội dung:52.1 Trình bày các thuật toán:52.1.1 Thuật toán nối 2 quan hệ bằng phương pháp chọn trên tích52.1.2 Thuật toán nối 2 quan hệ bằng phương pháp sắp nối82.2 Phân tích thiết kế cấu trúc dữ liệu và giải thuật122.2.1 Thuật toán nối 2 quan hệ bằng phương pháp chọn trên tích122.2.2 Thuật toán nối 2 quan hệ bằng phương pháp sắp nối.183. Cài đặt và kết quả chạy thử nghiệm:273.1 Chương trình nối 2 quan hệ bằng phương pháp chọn trên tích273.2 Chương trình nối 2 quan hệ bằng phương pháp sắp nối284. Kết luận.285. Tài liệu tham khảo.28
Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC BÁO CÁO ĐỀ TÀI CƠ SỞ DỮ LIỆU NÂNG CAO ĐỀ TÀI : TỐI ƯU HÓA TRUY VẤN GVHD : TRẦN QUỐC CHIẾN Sinh Viên : SUKHOI Lớp Học Phần : 11 03-A Đà Nẵng, ngày 8 tháng 5 năm 2013 1 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao MỤC LỤC 2 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao 1. Giới thiệu: 1.1 Thuật toán tối ưu hóa truy vấn: Tối ưu hóa vấn tin là quá trình sinh ra một hoạch định thực thi vấn tin (query execution plan – QEP ) biểu thị chiến lược thực thi vấn tin, hạ thấp tối đa hàm chi phí. Thể tối ưu hóa vấn tin, là một đơn thể phần mềm chịu trách nhiệm thực hiện tối ưu hóa,cấu tạo bởi ba thành phần: không gian tìm kiếm (seach space), một mô hình chi phí (cost model ) và một chiến lược tìm kiếm (search strategy ) như hình sau CÂU VẤN TIN QEP TƯƠNG ĐƯƠNG QEP TỐT NHẤT Không gian tìm kiếm là tập các hoạch định thực thi biểu diễn cho câu vấn tin. Những hoạch định này là tương đương, theo nghĩa chúng sinh ra cũng kết quả nhưng khác nhau ở thứ tự thực hiện các thao tác và cách thức cài đặt những thao tác này,vì thế khác nhau ở hiệu năng. Không gian tìm kiếm thu được bằng cách áp dụng các qui tắc biến đổi , chẳng hạn những qui tắc cho đại số quan hệ Mô hình chi phí tiên đoán chi phí của một hoạch định thực thi đã cho. Để cho chính xác, mô hình chi phí phải có đủ thông tin cần thiết về môi trường thực thi. Chiến lược tìm kiếm sẽ khám phá không gian tìm kiếm và chọn ra hoạch định tốt nhất dựa theo mô hình chi phí. 1.2 Nhóm: Sukhoi (tiếng Nga: Сухой) là một công ty sản xuất máy bay quân sự lớn của Nga. Được thành lập bởi Pavel Osipovich Sukhoi năm 1939. Hiện nay Su- 24, Su-25, Su-24M, Su-27, Su-30, Su-33 hiện đang phục vụ trong Không quân và Hải quân Nga. Máy bay chiến đấu Sukhoi đã được cung cấp cho Ấn Độ, Trung Quốc, Ba Lan, Cộng hòa Séc, Slovakia, Hungary, Đức, Syria, Algérie, Triều Tiên, Việt Nam, Afghanistan, Yemen, Ai Cập, Libya, Iran, Angola, Ethiopia và Peru. 3 TẠO RA KHÔNG GIAN TÌM KIẾM Qui tắc biến đổi CHIẾN LƯỢC TÌM KIẾM Mô hình chi phí Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao Với đặc điểm chiến đấu cơ động, tốc độ siêu thanh, thích ứng trong mọi điều kiên thời tiết và quyết định lấy tên nhóm là Sukhoi cũng xuất phát từ đó. Nhóm gồm 5 thành viên:Nguyễn Thị Kim Hoàng, Nguyễn Thị Diễm Hường, Khổng Thang Dũng, Nguyễn Quang Trung và Lê Văn Trung luôn với tinh thần không ngừng học hỏi, tự giác và chủ động học tập, nêu cao tinh thần trách nhiệm trong làm việc nhóm, làm việc có tổ chức có phân công và đạt hiệu quả. Làm việc theo nhóm là một trong những kỹ năng thiết yếu cho sinh viên trong học tập, nghiên cứu và cho công việc sau này.Cùng với sự giúp đỡ của quý thầy cô hướng dẫn cộng với sự nỗ lực thì nhóm Sukhoi sẽ đi đến đích của thành công. SUKHOI: STT Họ và tên Công việc Chữ kí Nhận xét của giáo viên 1 Nguyễn Thị Diễm Hường Viết báo cáo, thuật toán,chương trình, ví dụ của việc nối 2 quan hệ bằng phương pháp sắp nối 2 Nguyễn Thị Kim Hoàng -Viết báo cáo, thuật toán, chương trình, ví dụ của việc nối 2 quan hệ bằng phương pháp chọn trên tích. -Đánh giá chi phí truy xuất khối phương pháp sắp nối. -Cấu trúc các file R, S, RS1, RS2. 3 Khổng Thanh Dũng -Giới thiệu thuật toán tối ưu hóa truy vấn. -Viết chương trình sắp xếp 2 quan hệ R và S 4 Nguyễn Quang Trung -Giới thiệu nhóm SUKHOI 5 Lê Văn Trung -Đánh giá chi phí truy xuất khối phương pháp chọn trên tích 4 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao 2. Nội dung: 2.1Trình bày các thuật toán: 2.1.1 Thuật toán nối 2 quan hệ bằng phương pháp chọn trên tích a. Thuật toán: Dành (M-1) khối bộ nhớ chính để chứa các khối của S và 1 khối bộ nhớ chính để chứa các khối của R. Chia S thành những đoạn dài M-1 khối. Với mỗi đoạn D của S được đọc vào bộ nhớ chính, ta nộp lần lượt từng khối K của R vào 1 khối trong bộ nhớ chính và thực hiện: for mỗi bộ v trong D do for mỗi bộ u trong K do Nếu R(B) = S(B) thì RS(A) = R(A), RS(B) = R(B), RS(C) = S(C) In các bản ghi RS vào file RS1.DAT b. Đánh giá chi phí truy xuất khối và độ phức tạp: Giả thiết : R và S được xếp chặt. R T và S T là số bản ghi của R và S. R B và S B là số khối chưá R và S. M là số khối bộ nhớ trong. Thuật toán trên sẽ cần B lần truy suất khối để đọc quan hệ S và mỗi khối của R sẽ được truy xuất d lần (d là số đoạn M - 1 khối cúa S). Vì d xấp xỉ bằng 1 S B M − nên chi phí đọc dữ liệu là : . 1 R S S B B B M + − Gọi I là tích kích thước miền các thuộc tính chung của R và S(ở đây là chỉ thuộc tính B chung). Vì số lượng bộ trung bình của nối R><S bằng số bộ của tích R × S ( . R S T T ) chia cho I nên số khối trung bình của nối R><S cũng bằng số khối của tích R × S chia cho I. Chi phí ghi dữ liệu ở đây là : . . R S S R B B T B T I + Vậy tổng chi phí đọc ghi là : . . . 1 R S R S S R S B B B B T B T B M I + + + − 5 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao c. Ví dụ: Cho R(A, B) và S(B, C) R A A B c d e F g h B 4 5 2 3 1 2 1 3 S B 1 2 1 2 4 3 C U V t x y Z Giả sử khối S chứa được 2 bản ghi, bộ nhớ trong M=3. Khi đó số khối của R và S là B R = 4, B s = 3. Ta dành M-1 = 2 khối, kí hiệu M s , để đọc S, 1 khối, ký hiệu M r và M s như sau : M r A B M s B C Thực hiện nối như sau: Vòng 1: Đọc hai khối của S vào M s , ta được: M s B 1 2 1 2 C U V t x Sau đó đọc từng khối của R và M r , so sánh các bản ghi của M s với các bản ghi của M r và nối những cặp khớp nhau(có thuộc tính B trùng nhau) -Đọc khối thứ nhất của R vào M r ta có: M r A A b B 4 5 Các bản ghi của M s và M r không nối được với nhau. R nối tự nhiên với S rỗng. -Đọc khối thứ hai của R và M r ta có: M r A C D B 2 3 So sánh các bản ghi của M s với các bản ghi của M r , ta thấy bản ghi (2,v) và (2,x) của M s nối được với bản ghi (c,2) của M r . ta nhân được: M r A C c B 2 2 6 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao C V x -Đọc khối thứ ba của R vào M r ta có: M r A E f B 1 2 So sánh các bản ghi của M s với các bản ghi của M r ta thấy bản ghi (1, u) và (1,t) của M s nối được với bản ghi (e, 1) của M r và bản ghi (2, v)và (2, x) của M s nối được với bản ghi (f, 2) của M r . Ghi tiếp các nối vào R nối tự nhiên S, ta được: R ntn S A C c e E F f B 2 2 1 1 2 2 C V X u T V x -Đọc khối thứ tư của R vào M r ta có: M r A G h B 1 3 So sánh các bản ghi của M s với các bản ghi của M r , ta thấy bản ghi (1, u) và (1, t) của M s nối được với bản ghi (g, 1) của M r .Ghi tiếp các nối vào R nối tự nhiên S, ta nhân được R nối tự nhiên S có 8 bản ghi: R ntn S A C C e e f F G g B 2 2 1 1 2 2 1 1 C V X u t v X U t Vòng 2: Đọc một khối của S vào M s ta được: M s B 4 3 C Y Z Sau đó đọc lần lượt từng khối của R vào M r , nối các bản ghi của M s với các bản ghi của M r , ghi tiếp vào R ntn S. kết thúc vòng này, R ntn S có thêm 3 bản ghi: A A D h B 4 3 3 C Y Z Z Cuối cùng ta có R ntn S như sau: R S A C C E e f f g G A d h B 2 2 1 1 2 2 1 1 4 3 3 C V X U t v x u T Y z z 7 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao 2.1.2 Thuật toán nối 2 quan hệ bằng phương pháp sắp nối a. Thuật toán: Dành vùng nhớ M’ (mảng hoặc con trỏ) lưu các bảng ghi của R và S nối được với nhau (có giá trị cùng thuộc tính B). Trỏ con trỏ đọc vào bảng ghi đầu của R Đọc bảng ghi u của R Đọc bảng ghi v của S Do 1.Nếu u(B) = v(B) -Nếu u(B) = v(B) bằng giá trị thuộc tính B của các bảng ghi trong vùng nhớ M’: (Ghi u vào M’) -Ngược lại, tức u(B) = v(B) khác giá trị thuộc tính B của các bảng ghi trong vùng nhớ M’: (Nếu M’ không rỗng, thì kết xuất các nối trong M’ ra đĩa; -Đọc tiếp bản ghi u € R và v € S; 2.Nếu u(B) < v(B) -Nếu u(B) bằng giá trị thuộc tính B của các bản ghi trong vùng nhớ M’: (Ghi u vào M’) -Ngược lại, tức u(B) lớn hơn giá trị thuộc tính B của các bản ghi trong vùng nhớ M’: (Nếu M’ không rỗng, thì kết xuất các nối trong M’ ra đĩa; xóa các bản ghi trong M’) -Đọc tiếp bản ghi u € R; 3.Nếu u(B) > v(B) -Nếu v(B) bằng giá trị thuộc tính B của các bản ghi trong vùng nhớ M’: (ghi v vào M’) -Ngược lại, tức v(B) lớn hơn giá trị thuộc tính B của các bản ghi trong vùng nhớ M’: (Nếu M’ không rỗng, thì kết xuất các nối trong M’ ra đĩa; Xóa các bản ghi trong M’) -Đọc tiếp bản ghi v € S; While đọc hết hoặc R hoặc S -Nếu S hoặc R còn bản ghi, thì đọc và ghi các bản ghi có giá trị thuộc tính B bằng giá trị thuộc tính B trong M’ vào M’ -Nếu M’ không rỗng, thì kết xuất các nối trong M’ ra đĩa; b. Đánh giá chi phí truy xuất khối và độ phức tạp: 8 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao Giả thiết : R và S được xếp chặt. R T và S T là số bản ghi của R và S. R B và S B là số khối chưá R và S. M là số khối bộ nhớ trong. Với phương pháp trên thì mỗi khối của R và S chỉ cần đọc một lần nên chi phí đọc của thuật toán là : R S B B + Gọi I là tích kích thước miền các thuộc tính chung của R và S (ở đây là chỉ thuộc tính B chung). Vì số lượng bộ trung bình của nối R><S bằng số bộ của tích R × S ( . R S T T ) chia cho I nên số khối trung bình của nối R><S cũng bằng số khối của tích R × S chia cho I. Chi phí ghi dữ liệu ở đây là : . . R S S R B B T B T I + Vậy tổng chi phí đọc ghi là : . . R S S R R S B B T B T B B I + + + c. Ví dụ: Cho R(A, B) và S(B, C) như sau : R A A B c d B 1 1 2 3 S B 1 2 2 C X Y z Bộ nhớ M’ có cấu trúc như sau : M’ A B Null C 9 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao Ban đầu M’ rỗng và giá trị thuộc tính B trong M’ chưa xác định, M’.B = null. Nối R ntn S có cấu trúc như sau : R ntn S A B C Ban đầu R ntn S rỗng, chưa có bản ghi nào cả. Ta thực hiên thuật toán 4.2 để nối R và S như sau: -Đọc R vào u, và S vào v: Ta có u(B) = v(B) = 1. Vì M rống nên ta đưa v và u vào M’: M’ A A B 1 C X Đọc tiếp R vào u và S vào v: R A A b c d B 1 1 2 3 S B 1 2 2 C X y z Ta có u(B) = 1 < v(B) = 2. Vì u(B) = 1 = M’.B, nên ta đưa u vào M’. M’ A a b 10 R A A B c d B 1 1 2 3 S B 1 2 2 C X Y Z [...]... đã hoàn thành đề tài của mình Trong quá trình thực hiện đề tài không thể tránh khỏi những sai sót chúng em mong nhận được những ý kiến đóng góp từ phía Thầy và các bạn SUKHOI xin chân thành cảm ơn thầy và các bạn đã quan tâm đề tài Chúc Thầy và các bạn sức khỏe ! 5 Tài liệu tham khảo Giáo trình Cơ Sở Dữ Liệu Nâng Cao – PGS-TSKH TRẦN QUỐC CHIẾN Giáo trình Lập trình chuyên căn bản – Trần Uyên... Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao jsc = 0; SC[jsc] = MSkhoi[j].C; } else { jra++; RA[jra] = MRkhoi[i].A; jsc++; SC[jsc] = MSkhoi[j].C; } } void Case2() { if (MSkhoi[j].B > mB) { GhiRS(); } else { jsc++; SC[jsc] = MSkhoi[j].C; } } void Case3() { if (MRkhoi[j].B > mB) { GhiRS(); } else { jra++; RA[jra] = MRkhoi[i].A; } } void GhiRS() 21 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao { int p,... trong thì chương trình sẽ nối 2 quan hệ tạo nên RS(A, B, C) b Trình bày kết quả thử nghiệm(bao gồm thời gian chạy chương trình) : 27 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao 28 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao 3.2 Chương trình nối 2 quan hệ bằng phương pháp sắp nối a Giải thích chương trình : Chức năng : nối 2 quan hệ có cùng thuộc tính B Sử dụng : khi có 2 quan... M’.B, nên ta đưa v vào M’: M’ A B C C 2 Y Z 11 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao Lúc này S đã hết, R vẫn còn bản ghi Vì u(B) = 3 > M’.B = 2, ta nối các bản ghi trong M’, ghi ra R ntn S RntnS A B C A 1 X b 1 x c 2 y C 2 Z Kết thúc 2.2 Phân tích thiết kế cấu trúc dữ liệu và giải thuật 2.2.1 Thuật toán nối 2 quan hệ bằng phương pháp chọn trên tích a Cấu trúc file R.DAT, S.DAT,... R,Rkhoi[bfR]; struct Sbanghi S,Skhoi[mMax-1][bfS]; struct RSbanghi RS; void NoiRS() { for(k = 0; k < ks; k++) for(j = 0; j . Liệu Nâng Cao MỤC LỤC 2 Nhóm Su Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao 1. Giới thiệu: 1.1 Thuật toán tối ưu hóa truy vấn: Tối ưu hóa vấn tin là quá trình sinh ra một hoạch định thực thi vấn. QEP ) biểu thị chiến lược thực thi vấn tin, hạ thấp tối đa hàm chi phí. Thể tối ưu hóa vấn tin, là một đơn thể phần mềm chịu trách nhiệm thực hiện tối ưu hóa, cấu tạo bởi ba thành phần: không. Khoi – Đề tài Cơ Sở Dữ Liệu Nâng Cao ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC BÁO CÁO ĐỀ TÀI CƠ SỞ DỮ LIỆU NÂNG CAO ĐỀ TÀI : TỐI ƯU HÓA TRUY VẤN GVHD : TRẦN QUỐC CHIẾN Sinh