1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỒ ÁN MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

29 2,2K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 542 KB

Nội dung

Đồ á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

Trang 1

ĐẠ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

Trang 2

MỤC LỤC

1 Giới thiệu: 3

1.1 Thuật toán tối ưu hóa truy vấn: 3

1.2 Nhóm: 3

2 Nội dung: 5

2.1 Trình bày các thuật toán: 5

2.1.1 Thuật toán nối 2 quan hệ bằng phương pháp chọn trên tích 5

2.1.2 Thuật toán nối 2 quan hệ bằng phương pháp sắp nối 8

2.2 Phân tích thiết kế cấu trúc dữ liệu và giải thuật 12

2.2.1 Thuật toán nối 2 quan hệ bằng phương pháp chọn trên tích 12

2.2.2 Thuật toán nối 2 quan hệ bằng phương pháp sắp nối 18

3 Cài đặt và kết quả chạy thử nghiệm: 27

3.1 Chương trình nối 2 quan hệ bằng phương pháp chọn trên tích 27

3.2 Chương trình nối 2 quan hệ bằng phương pháp sắp nối 28

4 Kết luận 28

5 Tài liệu tham khảo 28

Trang 3

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 đahà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ệmthự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 (seachspace), một mô hình chi phí (cost model ) và một chiến lược tìm kiếm (searchstrategy ) như hình sau

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ựcthi

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, BaLan, Cộng hòa Séc, Slovakia, Hungary, Đức, Syria, Algérie, Triều Tiên, ViệtNam, Afghanistan, Yemen, Ai Cập, Libya, Iran, Angola, Ethiopia và Peru

TẠO RA KHÔNG GIAN

Trang 4

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ễmHường, Khổng Thang Dũng, Nguyễn Quang Trung và Lê Văn Trung luôn vớitinh 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ầntrá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ệuquả.

Làm việc theo nhóm là một trong những kỹ năng thiết yếu cho sinh viêntrong 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ànhcông

SUKHOI:

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ủaviệc nối 2 quan hệ bằngphương pháp chọn trêntích

-Đánh giá chi phí truy xuấtkhố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

Trang 5

2 Nội dung:

2.1 Trì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

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

Trang 6

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à BR = 4, Bs = 3 Ta dành M-1 = 2 khối, kí hiệu Ms, để đọc S, 1 khối, kýhiệu Mr và Ms như sau :

B

C

Thực hiện nối như sau:

Vòng 1: Đọc hai khối của S vào Ms, ta được:

Trang 7

Sau đó đọc lần lượt từng khối của R vào Mr, nối các bản ghi của Ms

với các bản ghi của Mr, ghi tiếp vào R ntn S kết thúc vòng này, R ntn S

Trang 8

2.1.2 Thuật toán nối 2 quan hệ bằng phương pháp sắp nối

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 Bbằ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:

Trang 9

Giả thiết : R và S được xếp chặt.

Trang 10

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 :

BC

Ban đầu R ntn S rỗng, chưa có bản ghi nào cả Ta thực hiên thuậttoán 4.2 để nối R và S như sau:

Trang 11

-Đọc tiếp R vào u:

Ta có u(B) = v(B) = 2 > M’.B = 1 Ta nối các bản ghi trong M’, ghi

ra R ntn S, sau đó làm rỗng M’, đưa u, v vào M’

Vì u(B) = 3 > M’.B = 2, ta nối các bản ghi trong M’, ghi ra R ntn S

Trang 12

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, RS1.DAT

- Cài đặt quan hệ R dưới dạng file có tên là R.dat :

Quan hệ R (A,B )

+R.A có kiểu int : có các số nguyên từ 0 -> 999

+R.B có kiểu int : có các số nguyên từ 0 -> 99

- Khai báo: struct R {

int A;

int B ; };

- Cài đặt quan hệ S dưới dạng file có tên là S.dat :

Quan hệ S ( B,C )

+S.B có kiểu int : có các số nguyên từ 0 -> 999

+S.C có kiểu int : có các số nguyên từ 0 -> 99

- Khai báo :Struct S{

int C;

int B;

};

- Quan hệ RS1: là nối tự nhiên của 2 quan hệ R và S :

RS1.A có kiểu int

RS1.B có kiểu int

RS1.C có kiểu int

- Kết quả nối là file RS1.dat chứa các bản ghi kiểu RS

Vậy : đầu vào: 2 file: R.dat và S.dat

đầu ra: file RS1.dat

Trang 13

Giả sử Tr > Ts : Tr = 1000, Ts = 500

bfR là số bản ghi của 1 khối R

bfS là số bản ghi của 1 khối S

Cho bfR = bfS = 15

Khối bộ nhớ để đọc R có cấu trúc:

struct Rbanghi Rkhoi[bfR];

Khối bộ nhớ để đọc S có cấu trúc:

struct Sbanghi Skhoi[Mmax-1][bfS]; (Mmax là hằng chỉ số khối bộ

nhớ trong tối đa)

Khối bộ nhớ để ghi RS có cấu trúc :

char *Rname = "R.DAT";

char *Sname = "S.DAT";

char *RSname = "RS.DAT";

char *RSname1 = "RS1.TXT";

int sizeR, sizeS, sizeRS;

int pR, pS;//con tro file

int m; //bo nho

int Ts, mTs; //so ban ghi con lai cua S

int Tr, mTr; //so ban ghi con lai cua R

int Trs;

Trang 14

int ks; //khoi cuoi chua S

int js; //ban ghi cuoi trong khoi k cua s

int jr; //ban ghi cuoi trong khoi cua R

int jrs; //ban ghi cuoi trong khoi cua RS

struct Rbanghi R,Rkhoi[bfR];

struct Sbanghi S,Skhoi[mMax-1][bfS];

Trang 15

//khoi cuoi cua S

Trang 17

fprintf(fRS, "\n\t\t\t %3d\t %2d\t %3d\t\n", RS.A, RS.B, RS.C); fprintf(fRS, "\t\t\t");

Trang 18

2.2.2 Thuật toán nối 2 quan hệ bằng phương pháp sắp nối.

a Cấu trúc file R2.DAT, S2.DAT, RS2.DAT

- Quan hệ R2 (A,B )

+ R2.A có kiểu int : có các số trong file R.DAT đã được sắp xếp

+ R2.B có kiểu int : có các số trong file R.DAT đã được sắp xếp

- Khai báo : struct R2 {

- Quan hệ S2 ( B,C )

+S2.B có kiểu int : có các số trong file S.DAT đã được sắp xếp

+S2.C có kiểu int : có các số trong file S.DAT đã được sắp xếp

- Khai báo : Struct S2{

Trang 19

- Quan hệ RS2: là nối tự nhiên của 2 quan hệ R2 và S2

+RS2.A có kiểu int

struct Rbanghi MRkhoi[bfR];

Khối bộ nhớ để đọc S trong phương pháp sắp nối có cấu trúc:

struct Sbanghi MSkhoi[bfS];

c Thiết kế giải thuật:

char *Rname = "R.DAT";

char *Sname = "S.DAT";

char *RSname = "RS2.DAT";

char *RSname1 = "RS2.TXT";

int sizeR, sizeS, sizeRS;

int pR, pS;//con tro file

int Ts, mTs;//so ban ghi con lai cua S

int Tr, mTr;//so ban ghi con lai cua R

int Trs;

int js;//ban ghi cuoi trong khoi cua S

int jr;//ban ghi cuoi trong khoi cua R

Trang 20

int jrs;//ban ghi cuoi trong khoi cua RS

int k, i, j, d = 0;

struct Rbanghi { int A, B; };

struct Sbanghi { int B, C; };

struct RSbanghi { int A, B, C; };

struct Rbanghi R, MRkhoi[bfR];

struct Sbanghi S, MSkhoi[bfS];

struct RSbanghi RS;

int mB; //thuoc tinh B chung

int RA[max], SC[max];//mang chua thuoc tinh A va C noi voi mBint jra, jsc; //phan tu cuoi trong RA va SC

Trang 27

3 Cài đặt và kết quả chạy thử nghiệm:

3.1 Chương trình nối 2 quan hệ bằng phương pháp chọn trên tích

a Giải thích chương trình :

Chức năng : nối 2 quan hệ R(A, B) và S(B, C) khi biết số khối bộ nhớ trong.Sử dụng : khi có 2 quan hệ R(A, B) và S(B, C) và nhập vào số khối của bộ nhớ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) :

Trang 28

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 hệ R(A, B) và S(B, C) 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 :

4 Kết luận.

Sau quá trình tình hiểu, nghiên cứu và làm việc nhóm với nhau, SUKHOI

đã hoàn thành đề tài của mình Trong quá trình thực hiện đề tài không thể tránhkhỏi những sai sót chúng em mong nhận được những ý kiến đóng góp từ phíaThầ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 Trang

Giáo trình Phân tích & Thiết kế Giải thuật – Nguyễn Văn Linh

Ngày đăng: 26/06/2014, 00:31

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w