tìm hiểu về tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán

89 493 0
tìm hiểu về tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán

Đ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

1 PHẦN MỞ ĐẦU 1. Lý do chọn đề tài Cùng vi s phát tria công ngh thông tin, các ng dng c s d lip vào các hong quc kinh t li nhng hiu qu to ln và cn thit. Bên cu v x lí thông tin  thu th, x  nhiu ln t phát trin ca tài nguyên phn cng và phn mm. Trong thc t các doanh nghi n nhau hay k c các c c phân b  nhiu khu v d lic tp trung ti mm nhnh mà ri kha  ng. Khi d liu không còn tp trung thì v   qun lý, truy xut CSDL phc v cho công tác chuyên môn không b n, tiêu tn ít thi gian công sc tin bc. Mt s h thng tp trung ng c, không phù hp vi nhu cu hii hóa. Xây dng mt h thng phân tán có kh   l ng thi mt bài toán trên nhiu máy tính là mt ng gii quyt kh  c chng minh tính hu dng. H thng phân tán còn to nhiu thun li trong vic chia s thông tin trên khp mi . Vì vy, CSDL  gii quyt vn   N   t cách có hiu qu và thông sunh khi truy vt trong nhng cách gii quyt cho v này. Vn  ti u hóa truy vn trên CSDL phân tán là rt quan trng và phc tp do tính phân mnh, nhân bn, tn kém chi phí trong vic truyn d liu 2 ca nó. Nu không gii quyt tt vn  ti u truy vn thì hiu nng ca các thao tác trên h CSDL phân tán s t rt thp. Nhng nh tài nghiên cTìm hiểu về tối ƣu hóa truy vấn trong cơ sở dữ liệu phân tán 2. Mục tiêu nghiên cứu. Nghiên cu lý thuyt CSDL phân tán, các k thut truy vn trong CSDL. Tng hp các kt qu  v truy vn tc hin t truy vn trong CSDL phân tán. 3. Đối tƣợng và phạm vi nghiên cứu.  tài tp trung nghiên cu v v bn ca CSDL   n phân tán, các k thut, thut toán ti  . 4. Phƣơng pháp nghiên cứu. Thu thp, tìm kim, tham kho, phân tích, nghiên cu các tài liu và thông  tài t CSDL, CSDL phân tán, các k thut truy vn ca các tác gi  chn lc và sp xp lng ca mình. Tng hp các kt qu ên cu v truy vn tn hành thc hin tn phân tán qua mt trng hp nghiên cu. 3 CHƢƠNG 1: GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1. Khái niệm về cơ sở dữ liệu phân tán 1.1.1. Khái niệm C d liu phân tán [3] là mt tp hp d liu, mà v mt logic tp hp này thuc cùng mt h th mt vt lý d lic phân tán trên các v trí khác nhau ca mt mng máy tính.  d li p ti h thng CSDL ln trên mng. Trong h thng i máy tính qun lý mt CSDL thành phn c gi là 1 node hot site. M d liu phân tán là mt tp hp nhiu CSDL i logic và c phân b trên mt mng máy tính. m quan trc nêu ra và c: - Tính chất phân tán: Tt c d liu ca CSDL phân tán  cùng mt v c phân b trên nhiu máy trm t ti các v trí khác nhau thuc mng máy tính. m phân bit gia CSDL phân tán và CSDL tp trung. - Tương quan logic: D liu ca CSDL phân tán có mt s thuc tính ràng buc vu này giúp chúng ta có th phân bit mt CSDL phân tán vi mt tp hp CSDL tp trung. Các file d li ti nhiu v trí khác nhau, ng thy trong các ng dng mà h thng s phân quyn truy nhp d ling mng. Ví dụ 1.1: Website ca google phân tán tìm kim theo cách t nhn bit, yêu cu nào g lý. Các server ca google phân b rông khp trên toàn th gii. 4 1.1.2. Các đặc điểm chính của CSDL phân tán 1. Chia sẻ tài nguyên Vic chia s tài nguyên ca h c thc hin qua mng truyn thông. Mi tài nguyên cc qun lý bi mn truyn thông  chia s mt cách có hiu qu. Các tài nguyên có th c truy cp, cp nht mt cách tin cy và nht quán. Qun lý tài nguyên  bao gm lp k hoch d  t tên cho các lp tài nguyên, cho phép tài c truy cp t  ta ch truyn thông, 2. Tính mở Tính m ca h thng phân tán là tính d dàng m rng phn cng ca nó. Mt h thc gi là có tính m thì phu kin sau: - H thng có th to nên bi nhiu loi phn cng và phn mm ca nhiu nhà cung cp khác nhau. - Có th b sung vào các dch v dùng chung tài nguyên mà không phá hng ch v n ti. - Tính m c hoàn thin bnh rõ các giao din chính ca mt h  i các nhà phát trin phn mm. - Tính m ca h phân tán da trên vic cung c truyn thông gia các tin trình và công khai các giao di truy nhp các tài nguyên chung. 3. Khả năng song song H phân tán hong trên mt mng truyn thông có nhiu máy tính, mi máy có th có mt hay nhiu CPU. 5 Có th thc hin nhiu tin trình trong cùng mt thm. Vic thc hin tin trình ng thi  phân chia thi gian (mt CPU) hay song song (nhiu CPU). Kh c song song trong h c th hin qua hai tình hung: - Nhii s dng thi các ng dng thi xut hin nhiu Clients). - Nhiu tin trình Server chng thi, mi tin trình phng yêu cu t các Clients. T u ki lý, kh a h thng phân tán tr thành mt thuc tính ca nó. 4. Khả năng mở rộng H phân tán có kh   ng tt và hiu qu  nhiu mc khác nhau. Kh  rng ca mt h  i tính không thay i phn mm h thng và phn mm ng dng khi h thng c m rng. u này ch t  m i vi h phân tán hin ti (không th u m rng không ch là m rng v phn cng hay v mng mà còn cn phc t c các khía cnh khi thit k h phân tán. Ví dụ 1.2: Tn sut s dng file trên mt ngt  tránh tình trng tc nghn xy ra khi ch có mt Server và phng các yêu cu truy nhp  i ta nhân bn file trên mt Server khác và h thc thit k sao cho vic b sung c d dàng. Có th n gii pháp khác là s dng Cache và các bn sao d liu. 6 5. Khả năng thứ lỗi Kh  li th hin vic h thng không b s bi các s c do các li thành phn (c phn cng ln phn mm) trong mt b ph Vic thit k kh  li các h thng máy tính da trên hai gii pháp sau: - Dùng kh   m bo s hong liên tc và hiu qu. -  m b phc hi d liu khi xy ra s c. 6. Đảm bảo tin cậy và nhất quán H thng yêu c tin c - Bí mt ca d liu. - Các chng phm bo. - Ngoài ra các yêu cu ca h thng v tính nh hin  ch: không có mâu thun trong ni dung CSDL. 1.1.3. Những ưu nhược điểm của cơ sở dữ liệu phân tán  Những ưu điểm của cơ sở dữ liệu phân tán Ln nht ca CSDL phân tán là d liu ca các CSDL vt lý riêng bic tích hp logic vi nhau làm cho nhiu ni s dng trên mng có th truy nhc [6]. - Cho phép qun lý d liu vi nhiu mc trong sut: + Trong sut mng - phân tán: H qun tr CSDL phc trong sut i s dng không cn bit v trí ca d liu và không cn bit s phc tp truy cp qua mng. + Trong sut bn sao + Trong sun -  tin cy và kh n sàng:  tin cy là kh  thng c (không b ngng) ti mt thi n sàng là kh  thng tip tc làm vic trong mt khong th 7 liu và CSDL phân tán trên mt vài trm, mt trm có th có s c trong khi các trm khác vn có th hong hoc s dng các thành phn khác ca CSDL. Ch trên trm b s c, d liu và ng dng không th truy cc.   tin cy và tính sn sàng, có th áp dng  to bn sao trên nhiu trm. - Ci thin hi: Mt h qun tr CSDL n CSDL có th làm cho d liu s  ti g dng nht. D liu c  cc b làm gim cnh tranh CPU, gim các I/O Server và gi tranh truy nhp trên mng. D lic phân tán ti các trng d liu cc b s nh  lý giao tác và truy vn cc b s c thc hin ta trên mi tr các giao tác trên CSDL tp trung vì vu sut h thng. - D dàng m rng: Vic thêm CSDL m CSDL hoc thêm b x lý ng phân tán là d   CSDL thành phn.  Những nhược điểm của cơ sở dữ liệu phân tán -  phc tp thit k t h th qun tr CSDL phân tán phi b sung thêm các ch + Theo dõi du vt d liu + X lý các truy vn phân tán + Qun lý giao dch phân tán + Phc hi CSDL phân tán + Qun lý các bn sao + Quc - catalog phân tán - H thng phn cc tn có nhiu trm và các trm phc kt ni trên mng. 8 - Các phn mm h thm bo qun tr, duy trì kt ni d liu trên mng. - Bo m 1.2. Các đặc trƣng trong suốt của cơ sở dữ liệu phân tán 1.2.1. Trong suốt phân đoạn (fragmentation transparency) Khi d lin thì vic truy cc thc hin  phân tán và không ng ti s dng. Ví dụ 1.3: Xét quan h tng th NCC (Id, Tên, Tui) n c tách ra t nó: NCC1 (Id, Tên, Tui) NCC2 (Id, Tên, Tui) NCC3 (Id, Tên, Tui) Gi s DDBMS cung cp tính trong sut v  thy tính trong suc th hi Khi mun tìm mi có Id= “Id1” thì ch cn tìm trên quan h tng th NCC mà không cn bit quan h NCC có phân tán hay không. SELECT * FROM NCC WHERE Id=“Id1” Hình 1.1:Trong suốt phân đoạn 9 1.2.2. Trong suốt về vị trí (location transparency) - i s dng không cn bit v v trí vt lý ca d liu mà có quyn truy cn CSDL ti bt c v trí nào. -  ly hoc cp nht mt d liu t c t ng thc hin bi h thng tu cu. - Tính trong sut v v trí rt hi s dng b qua các bn sao d lin ti  mi v  di chuyn mt bn sao d liu t mt v n mt v trí khác và cho phép to các bn sao mi mà không nn các ng dng. Ví dụ 1.4: Vi quan h tng th  trên  gi s rng DDBMS cung cp trong sut v v    p trong sut v n. Xét câu truy vi có Id=“Id1”. SELECT * FROM NCC1 WHERE Id=“Id1” IF NOT #FOUND THEN SELECT * FROM NCC2 WHERE Id=“Id1” + u tiên h thng s thc hin tìm kim   n NCC1 và nu DBMS tr v biu khin #FOUND thì mt câu lnh truy v c thc hin NCC2 , +   NCC2 c sao làm hai bn trên hai v trí 2 và v trí 3, ta ch cn tìm thông tin trên quan h NCC2 mà không cn quan tâm nó  v trí nào. 10 Hình 1.2: Sự trong suốt về vị trí 1.2.3. Trong suốt ánh xạ địa phương (local mapping transparency) - Là mc tính quan trng trong mt h thng nht. - ng dng tham chi   c lp t các h thng cc b . - ng dt trên mt h thng nhc s dt h thng nht. Hình 1.3: Sự trong suốt ánh xạ địa phương 1.3. Kiến trúc cơ bản của một cơ sở dữ liệu phân tán 1.3.1. Sơ đồ tổng thể (Global Schema) - nh tt c các d liu s  trong CSDL   lic phân tán  các trm trong h thng. [...]... thuật tối ƣu hóa tập trung Phần này sẽ tr nh bày 2 kỹ thuật tối ưu hoá câu truy vấn đối với hệ tập trung Sự biểu diễn này là điều kiện để tối ưu hóa câu truy vấn phân tán với ba lý do: - Một câu truy vấn phân tán được biến đổi thành các câu truy vấn địa phương được xử lý theo cách tập trung - Các kỹ thuật tối ưu hoá câu truy vấn phân tán thường là sự mở rộng các kỹ thuật đối với hệ tập trung - Tối ưu. .. là vấn đề đơn giản, sự tối thiểu hoá chi phí truy n thông dẫn đến tối ưu hoá câu truy vấn phân tán phức tạp hơn 2.4.1 Thuật toán INGRES INGRES sử dụng thuật toán tối ưu hoá câu truy vấn động, chia một truy vấn phép tính quan hệ thành các truy vấn nhỏ hơn Một truy vấn đa biến đầu tiên được phân tích thành một dãy các truy vấn con có một biến duy nhất chung, mỗi truy vấn con được dựa vào kết quả của truy. .. thành các câu truy vấn con làm đơn giản việc tính kết quả câu truy vấn và làm giảm kích thước của các kết quả trung gian trong quá tr nh tính toán Hơn nữa, trong các hệ phân tán, việc tách câu truy vấn thành các câu truy vấn con sẽ làm tăng khả năng xử lý câu truy 27 vấn v các câu truy vấn con có thể được xử lý tại các máy trạm và sử dụng dữ liệu cục bộ Ví dụ 2.4: Để thực hiện câu truy vấn ở ví dụ 2.3,... niệm phân đoạn dữ liệu với khái niệm định vị dữ liệu - Biết được dữ liệu dư thừa - Độc lập với các DBMS địa phương Ba yếu tố này tương ứng với ba mức trong suốt tương ứng a Tách rời khái niệm phân đoạn dữ liệu với khái niệm định vị dữ liệu 12 • Phân đoạn dữ liệu, bao gồm những công việc mà người lập trình ứng dụng làm việc với quan hệ tổng thể, phân chia quan hệ tổng thể thành các đoạn Thông qua tính trong. .. hiện tối ưu hóa truy vấn tĩnh, đầu vào là một cây đại số quan hệ do phân tích một truy vấn SQL, đầu ra là sơ đồ thực hiện cây đại số quan hệ "tối ưu" Thuật toán tối ưu bao gồm hai bước chính: 34 - Dự đoán phương pháp truy nhập tới mỗi quan hệ đơn tốt nhất dựa trên một giả thiết chọn - Với mỗi quan hệ R, đánh giá thứ tự kết nối tốt nhất, trong đó R được truy nhập trước tiên sử dụng phương pháp truy. .. trung và nó phù hợp hơn trong cấu trúc phân quyền của nhiều tổ chức Kỹ thuật CSDL phân tán được mở rộng và phát triển từ kỹ thuật của CSDL truy n thống Trong 13 môi trường mới này, một số vấn đề kỹ thuật đòi hỏi các giải pháp khác, và một số giải pháp hoàn toàn mới Tính trong suốt phân tán cung cấp sự độc lập của các chương tr nh khỏi sự phân tán của CSDL Các mức trong suốt phân tán khác nhau có thể được... trong suốt phân tán khác nhau có thể được cung cấp bởi một hệ quản trị CSDL phân tán; Tại mỗi mức, tính trong suốt làm cho người lập trình ứng dụng không biết được sự phân tán dữ liệu 14 CHƢƠNG 2: CÁC NGUYÊN LÝ CHUNG CỦA TỐI ƢU HÓA TRUY VẤN PHÂN TÁN Các ngôn ngữ hỏi bậc cao như SQUARE, SEQUEL, SQL, cho phép viết nhiều câu truy vấn với sự quan tâm nhiều đến thời gian thực hiện, và thời gian thực hiện... câu truy vấn trước khi thực hiện Sự cải tiến như vậy thường gọi là "Sự tối ưu hoá", m c dù câu truy vấn được viết lại không cần tối ưu trên tất cả các cách cài đ t câu truy vấn có thể Chương này sẽ trình bày một số phương pháp tối ưu hóa các biểu thức quan hệ, đ c biệt là xử lý biểu thức liên quan đến phép kết nối và tích Decartes, xem xét các kỹ thuật điển hình INGRES và System R 2.1 Các chiến lƣợc tối. .. câu truy vấn: "T m tên những cuốn sách và tên độc giả đã mượn sách trước ngày 13/10/2013" Đồ thị nối các quan hệ như sau: Hình 2.4: Đồ thị nối các quan hệ 2.3.2 Tách những câu truy vấn thành những câu truy vấn con Phương pháp này thực hiện việc tách một câu truy vấn phức tạp Q thành các câu truy vấn con Q1, Q2, , Qm mà giữa các câu truy vấn này có quan hệ ràng buộc với nhau Việc tách các câu truy vấn. .. thay thế của GTG sinh ra hai câu truy vấn con một biến: q131: SELECT KYSU.TENKS FROM KYSU WHERE KYSU.SHKS=“E1” q132: SELECT KYSU.TENKS FROM KYSU WHERE KYSU.SHKS=“E2” Truy vấn có thể xử lý bởi VOQP Sau đây là thuật toán tối ƣu hóa câu truy vấn của INGRES, gọi là INGRES-QOA Thuật toán: INGRES-QOA Input: MVQ: Truy vấn đa biến với n biến Output: output: Câu truy vấn tối ưu Begin 33 output if n=1 . nh tài nghiên c Tìm hiểu về tối ƣu hóa truy vấn trong cơ sở dữ liệu phân tán  2. Mục tiêu nghiên cứu. Nghiên cu lý thuyt CSDL phân tán, các k thut truy vn trong CSDL. Tng hp. tn phân tán qua mt trng hp nghiên cu. 3 CHƢƠNG 1: GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1. Khái niệm về cơ sở dữ liệu phân tán 1.1.1. Khái niệm C d liu phân tán [3]. không có mâu thun trong ni dung CSDL. 1.1.3. Những ưu nhược điểm của cơ sở dữ liệu phân tán  Những ưu điểm của cơ sở dữ liệu phân tán Ln nht ca CSDL phân tán là d liu ca

Ngày đăng: 20/12/2014, 08:37

Từ khóa liên quan

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

Tài liệu liên quan