Tiểu luận môn cơ sở dữ liệu nâng cao Lý thuyết Phân mảnh dọc

14 599 0
Tiểu luận môn cơ sở dữ liệu nâng cao Lý thuyết Phân mảnh dọc

Đ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

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CAO HỌC KHÓA VI - KHÓA HỌC 2012 - 2014 ****  **** Giáo viên hướng dẫn: PGS. TS. Đỗ Phúc Người thực hiện: Trần Thị Kiều Diễm (MS: CH1101074) Trang 1/1410/04/2015 LỜI NÓI ĐẦU 1. Giới thiệu đề tài Trong cuộc sống hiện đại ngày nay của chúng ta, sự bùng nổ của ngành công nghệ thông tin và sự tiện ích của Internet, nhu cầu sử dụng các dịch vụ như thương mại điện tử, giao dịch điện tử, quản lí công ty xuyên quốc gia,…đã rất được quan tâm và theo đó mô hình cơ sở dữ liệu phân tán được ra đời nhằm đáp ứng nhu cầu từ thực tiễn. Trước hết, ta nên hiểu cơ sở dữ liệu phân tán không phải là một tập hợp những tập tin được lưu riêng lẻ tại mỗi nút của một mạng máy tính mà đó là những tập tin có tính liên đới logic, có cấu trúc chung và được truy xuất qua một giao diện chung. Nhiệm vụ của các nhà quản trị cơ sở dữ liệu là đưa ra mô hình cơ sở dữ liệu phân tán tối ưu nhất và một trong các chiến lược đó là phương pháp phân mảnh, thật sự trong một cơ sở dữ liệu thì dữ liệu đã được cấu trúc bằng các quan hệ, tuy nhiên mỗi bộ trên một quan hệ không phải lúc nào cũng có tần số được truy xuất như nhau, do đó chúng ta cần phân mảnh các quan hệ thành các mảnh con sao cho những bộ có tần số truy xuất gần giống nhau sẽ được tổ chức trong cùng một mảnh. Có 2 thuật toán phân mảnh là phân mảnh ngang và phân mảnh dọc. Phạm vị bài thu hoạch này xin trình bày cơ sở lý thuyết của thuật toán phân mảnh dọc, từ một quan hệ cho trước với ma trận sử dụng và ma trận tần số truy xuất ta có được 2 mảnh con. Để hoàn thành được bài thu hoạch này, em xin gửi lời cảm ơn đến thầy Đỗ Phúc đã nhiệt tình trong chỉ dẫn, với vốn kiến thức còn hạn hẹp nên chắc chắn nội dung còn nhiều điểm cần bổ sung chỉnh sửa, mong nhận được nhận xét, đóng góp của thầy, em xin cảm ơn. 2. Mục tiêu đề tài: − Trình bày thuật toán phân mảnh dọc; − Xây dựng chương trình tự động phân mảnh cho một quan hệ khi biết ma trận sử dụng (use matrix) và ma trận tần số truy xuất (acc matrix). Trang 2/1410/04/2015 MỤC LỤC Trang 3/1410/04/2015 Bài thu hoạch môn Cơ sở dữ liệu nâng cao PHẦN 1. LÍ THUYẾT VỀ PHÂN MẢNH DỌC 1. Một số khái niệm cần cho phân mảnh dọc: a. Ma trận sử dụng use(q i , A j ): − Định nghĩa: Cho quan hệ R(A 1 , , A n ), Q={q 1 , , q k } là tập các vấn tin trên quan hệ R, với mỗi câu vấn tin q i và mỗi thuộc tính A j ta định nghĩa giá trị sử dụng (attribute usage value) như sau:    = ji ji ji Achieuthamkhongq Achieuthamq Aquse 0 1 ),( − Ví dụ: Xét quan hệ PROJ gồm 4 thuộc tính {PNO; PNAME; BUDGET; LOC} q 1 : Tìm ngân sách của dự án, cho biết mã số dự án. SELECT BUDGET FROM PROJ WHERE PNO = Value q 2 : Tìm tên và ngân sách của tất cả dự án. SELECT PNAME, BUDGET FROM PROJ q 3 : Tìm tên của các dự án được thực hiện ở thành phố đã cho SELECT PNAME FROM PROJ WHERE LOC = Value q 4 : Tìm tổng ngân sách các dự án được thực hiện ở thành phố đã cho SELECT SUM(BUDGET) FROM PROJ WHERE LOC = Value Bài thu hoạch môn Cơ sở dữ liệu nâng cao Đặt A1, A2, A3, A4 lần lượt là các thuộc tính của quan hệ PROJ, khi đó ta có ma trận Use như sau: 1100 1010 0110 0101 4 3 2 1 4321 q q q q AAAA b. Ma trận tần số truy xuất Acc(qi, Aj): − Định nghĩa: Cho S={s1,…,sL} là tập các site, với mỗi câu vấn tin qi và mỗi vị trí sj ta định nghĩa ma trận tần số truy xuất (access frequency matrix) Acc(qi, sj), như sau: Acc(q i , s j ) = k, với mọi k>=0. − Ví dụ: 003 252525 005 102015 4 3 2 1 321 q q q q sss 2. Giới thiệu các thuật toán dùng trong phân mảnh dọc a. Thuật toán tính độ đo ái lực Aff(A i ,A j ): − Định nghĩa: Độ đo ái lực thuộc tính giữa 2 thuộc tính Aivà Aj của quan hệ R[A1,A2,…,An] ứng với tập quan hệ Q = (q1, q2, …, qq) được định nghĩa như sau: − Ví dụ: từ ma trận Acc đã có ở trên ta tính được ma trận Aff như sau: Bài thu hoạch môn Cơ sở dữ liệu nâng cao 783750 353545 755800 045045 4 3 2 1 4321 A A A A AAAA b. Thuật toán gom cụm: − Từ ma trận Aff ta tìm ma trận hoán vị của Aff sao cho tổng độ đo ái lực toàn cục là lớn nhất. − Thuật toán năng lượng liên kết - Bond Energy Algorithm (BEA) được dùng để gom cụm sao cho độ đo ái lực toàn cục sau là lớn nhất: neighbors)r with theiAj and Ai ofaffinity ( ∑∑ = ji AM c. Thuật toán năng lượng liên kết - Bond Energy Algorithm (BEA): − Input: Ma trận AA − Output: Ma trận ái lực gom cụm CA là một sắp xếp của các hoán vị AA − Thuật toán: 1. Kh i t o: C đ nh m t trong các c t c a AA và đặt vào CA. 2. Lặp: Đặt n-i cột còn lại vào i+1 vị trí còn lại trong ma trận CA. Đối với từng cột, chọn vị trí đóng góp (contri bution) lớn nhất vào độ đo ái lực toàn cục. 3. Sắp thứ tự hàng: Sắp xếp các dòng theo thứ tự cột. Tính các giá trị để tìm được vị trí đặt A k vào vị trí thích hợp trong CA đã được tạo ra tại bước 2 cont(A i , A k , A j ) = 2bond(A i , A k )+2bond(A k , A l ) –2bond(A i , A j ) Với: ∑ = = n z yzxzyx AAaffAAaffAAbond 1 ),(),(),( Bài thu hoạch môn Cơ sở dữ liệu nâng cao Trường hợp thuộc tính A k đặt vào vị trí bên trái đầu tiên hoặc vị trí bên phải cuối củng ta có bond(A 0 ,A k ) = bond(A k ,A k+1 ) = 0 − Ví dụ: Xét ma trận AA và ma trận tương ứng CA với A 1 và A 2 đã được chọn đặt cố định. Tìm vị trí đặt A 3 : AA = 783750 353545 755800 045045 4 3 2 1 4321 A A A A AAAA CA = 750 545 800 045 21 AA • Thứ tự trước (0-3-1) : cont(A 0 ,A 3 ,A 1 ) = 2bond(A 0 , A 3 )+2bond(A 3 , A 1 )–2bond(A 0 , A 1 ) = 2* 0 + 2* 4410 – 2*0 = 8820 • Thứ tự giữa (1-3-2) : cont(A 1 ,A 3 ,A 2 ) =2bond(A 1 , A 3 )+2bond(A 3 , A 2 )–2bond(A 1 ,A 2 ) =2* 4410 + 2* 890 – 2*225 = 10150 • Thứ tự cuối (2-3-4) : cont (A 2 ,A 3 ,A 0 )= 2bond(A 2 , A 3 )+2bond(A 3 , A 0 )–2bond(A 2 ,A 0 ) =1780 Do vậy ma trận CA có dạng: CA= 7530 55345 8050 04545 231 AAA Tương tự đặt A 4 bên phải A 2 , sắp xếp lại ma trận cuối cùng của CA: Bài thu hoạch môn Cơ sở dữ liệu nâng cao CA = 787530 758050 355345 004545 4 2 3 1 4231 A A A A AAAA d. Thuật toán tìm điểm chia (Split Point): − Ý nghĩa của thuật toán là tìm một điểm trên đường chéo để chia {A1, A2, …,An} thành hai cụm {A1, A2, …, Ai} và {Ai+1, …, An} sao cho số ứng dụng truy cập cả hai là ít nhất và số ứng dụng truy cập mỗi cụm là lớn nhất. − Xét ma trận ái lực gom cụm CA sau: A 1 A i A i+1 A n A 1 : TA A i A i+1 : BA A n Tập {A 1 , , A i } ở góc trên trái và tập {A 1+1 , , A n } ở góc dưới phải. Tập thứ nhất gọi là đỉnh (Top) và ký hiệu TA , tập thứ hai gọi là đáy (Bottom) và ký hiệu BA. − Một số định nghĩa các phương trình chi phí AQ(qi) = {Aj  use(qi,Aj)=1} TQ = tập các ứng dụng chỉ truy cập TA = {qi AQ(qi) ⊆ TA} BQ = tập các ứng dụng chỉ truy cập BA = {qi AQ(qi) ⊆ BA} OQ = tập các ứng dụng chỉ truy cập vừa TA và BA = Q – (TQ ∪ BQ ) Bài thu hoạch môn Cơ sở dữ liệu nâng cao CTQ = tổng số các truy cập đến các thuộc tính bởi các ứng dụng chỉ truy cập TA = ∑ ∑ ∈ ∈ TQq Ss ijij i j qaccqref )()( CBQ = tổng số các truy cập đến thuộc tính bởi ứng dụng chỉ truy cập BA= ∑ ∑ ∈ ∈ BQq Ss ijij i j qaccqref )()( COQ = tổng số truy cập đến thuộc tính bởi ứng dụng truy cập cả TA và BA = ∑ ∑ ∈ ∈ OQq Ss ijij i j qaccqref )()( − Cuối cùng tính: CTQ*CBQ - COQ 2 − Với ví dụ trên: AQ(q1) = {A1, A3} AQ(q2) = {A2, A3} AQ(q3) = {A2, A4} AQ(q4) = {A3, A4} Chọn điểm chia lần lượt là A1, A2, A3, cuối cùng ta chong được điểm chia là A3 vì khi đó TA={A1, A3} BA={A2, A4} TQ={q1} BQ={q3} OQ={q2, q4} CTQ= 45 CBQ=75 Bài thu hoạch môn Cơ sở dữ liệu nâng cao COQ=8 CTQ*CBQ - COQ 2 = 3311 (là max) Vậy ta có hai phân mảnh: R1 = {A 1 , A 3 } và R2 = {A 2 , A 4 } [...]... không gian và thời gian thực thi TÀI LIỆU THAM KHẢO o Giáo trình cao học về cơ sở dữ liệu nâng cao của Thầy PGS TS Đỗ Phúc o Giáo trình: nguyên lý các hệ cơ sở dữ liệu Phân tán _ Tập 1 của tác giả M TaMer Ozsu biên dịch Trần Đức Quang o Website: www.uit.edu.vn/forum trong phần cơ sở dữ liệu nâng cao o Bài thu hoạch cơ sở dữ liệu nâng cao trên Group của các học viên cao học khóa 5 ... SolveAff(n); ShowAff(n); ShowCA(n); BEA(); showFragment(); VFA(); getch(); } Bài thu hoạch môn Cơ sở dữ liệu nâng cao 3 Cài đặt và thử nghiệm chương trình: (đính kèm file exe để thực thi chương trình) 4 Kết quả test: Đã thử nghiệm và kết luận chương trình cho ra kết quả chính xác Bài thu hoạch môn Cơ sở dữ liệu nâng cao PHẦN III NHẬN XÉT, ĐÁNH GIÁ, HƯỚNG PHÁT TRIỂN − Nhận xét, đánh giá: với vốn kiến thức...Bài thu hoạch môn Cơ sở dữ liệu nâng cao PHẦN 2 CHƯƠNG TRÌNH PHÂN MẢNH DỌC 1 Cấu trúc dữ liệu của chương trình: Khai báo các biến: int q,n,s,key,m; // số query, số thuộc tính, số site, khóa chính, số thuộc tính chọn mặc định int use[q][n], // ma trận sử... bằng thuật toán BEA - Chọn điểm chia trên đường chéo chính để xác định hai mảnh được chia bằng thuật toán VFA - Các hàm cụ thể như sau: void readfile(char path[20],int q, int n, int s, int key); void ShowUse(int q, int n); void ShowAcc(int q, int s); void SolveAff(int n); void ShowAff(int n); Bài thu hoạch môn Cơ sở dữ liệu nâng cao int bond(int i,int j); int cont(int i, int k, int j); void seclectMaxCont();... tính từ 2 ma trận trên CA[n][n], // ma trận hoán vị của ma trận aff acc_sum[q], // ma trận trung gian lưu giá trị tổng của mỗi hàng trong ma trận acc f[10], // ma trận chứa giá trị các thuộc tính của mảnh con TA1,TAn,BA1,BAn; // lần lượt là thuộc tính đầu tiên của TA, thuộc tính cuối cùng của TA, thuộc tính đầu tiên của BA, thuộc tính cuối cùng của BA 2 Tổ chức chương trình: - Dùng hàm đọc các giá . các nhà quản trị cơ sở dữ liệu là đưa ra mô hình cơ sở dữ liệu phân tán tối ưu nhất và một trong các chiến lược đó là phương pháp phân mảnh, thật sự trong một cơ sở dữ liệu thì dữ liệu đã được cấu. 45 CBQ=75 Bài thu hoạch môn Cơ sở dữ liệu nâng cao COQ=8 CTQ*CBQ - COQ 2 = 3311 (là max) Vậy ta có hai phân mảnh: R1 = {A 1 , A 3 } và R2 = {A 2 , A 4 } Bài thu hoạch môn Cơ sở dữ liệu nâng cao PHẦN 2 2/1410/04/2015 MỤC LỤC Trang 3/1410/04/2015 Bài thu hoạch môn Cơ sở dữ liệu nâng cao PHẦN 1. LÍ THUYẾT VỀ PHÂN MẢNH DỌC 1. Một số khái niệm cần cho phân mảnh dọc: a. Ma trận sử dụng use(q i , A j ): − Định

Ngày đăng: 10/04/2015, 13:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan