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

89 820 1
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. Lý do chọn đề tài PHẦN MỞ ĐẦU Cùng với sự phát triển như của công nghệ thông tin, các ứng dụng của cơ sở dữ liệu đã xâm nhập vào các hoạt động quản lý, các lĩnh vực kinh tế… đem lại những hiệu quả to lớn và cần thiết. Bên cạnh đó, nhu cầu về xử lí thông tin như: thu thập, lưu trữ, xử lý và trao đổi thông tin ngày càng tăng, nhanh hơn nhiều lần tốc độ 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ệp, đơn vị kinh doanh liên quan đến nhau hay kể cả các cơ quan hành chính nhà nước được phân bổ ở nhiều khu vực khác nhau do đó dữ liệu không được tập trung tại một địa điểm nhất định mà rải khắp các địa điểm mà cơ quan đơn vị đó hoạt động. Khi dữ liệu không còn tập trung thì vấn đề đưa ra là làm thế nào để quản lý, truy xuất CSDL phục vụ cho công tác chuyên môn không bị ảnh hưởng, không được gián đoạ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 thông thường không đáp ứng được, không phù hợp với nhu cầu hiện đại hóa. Xây dựng một hệ thống phân tán có khả năng xử lí đồng thời một bài toán trên nhiều máy tính là một hướng giải quyết khả thi và đã đượ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 nơi. Vì vậy, CSDL phân tán được ra đời để giải quyết vấn đề đó. Nếu khối lượng thông tin phải xử lý lớn phong ph và đa dạng th vấn đề được đ t ra là làm thế nào để giảm chi phí một các tối thiểu mà vẫn xử lý thông tin một cách có hiệu quả và thông suốt. Tối ưu hóa các câu lệnh khi truy vấn cơ sở dữ liệu phân tán là một trong những cách giải quyết cho vấn đề 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 1 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ận xét đánh giá trên cũng chính là lý do tôi chọn đề tài nghiên cứu là: “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ả đã công bố về truy vấn tối ưu, thực hiện tối ưu hóa 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ấn đề cơ bản của CSDL phân tán, các nguyên lý chung của tối ưu hóa truy vấn phân tán, các kỹ thuật, thuật toán tối ưu hóa truy vấn, thực hiện truy vấn cơ sở dữ liệu phân tán, đánh giá kết quả thực hiện. 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 tin liên quan đến đề tài như: lý thuyết CSDL, CSDL phân tán, các kỹ thuật truy vấn của các tác giả trong và ngoài nước, trên sách báo và internet… có chọn lọc và sắp xếp lại theo ý tưởng của mình. Tổng hợp các kết quả đã nghiên cứu về truy vấn tối ưu và tiến hành thực hiện tối ưu hóa truy vấn phân tán qua một trường hợp nghiên cứu. 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ơ sở 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ống, nhưng về m t vật lý dữ liệu đó được phân tán trên các vị trí khác nhau của một mạng máy tính. Cơ sở dữ liệu phân tán làm tăng khả năng truy cập tới hệ thống CSDL lớn trên mạng. Trong hệ thống đó mỗ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ột cơ sở dữ liệu phân tán là một tập hợp nhiều CSDL có liên đới logic và được phân bố trên một mạng máy tính. Có 2 điểm quan trọng được nêu ra và cần ch ý trong định nghĩa: - Tính chất phân tán: Tất cả dữ liệu của CSDL phân tán không cư tr trên cùng một vị trí mà đượ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. Đây là điể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ới nhau. Điề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ệu được lưu trữ tại nhiều vị trí khác nhau, điều này thường thấy trong các ứng dụng mà hệ thống sẽ phân quyền truy nhập dữ liệu trong môi trườ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ần server nào th server đó xử lý. Các server của google phân bố rông khắp trên toàn thế giới. 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ệ phân tán được thực hiện qua mạng truyền thông. Mỗi tài nguyên cần được quản lý bởi một chương tr nh có giao diệ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 ở đây bao gồm lập kế hoạch dự phòng, đ t tên cho các lớp tài nguyên, cho phép tài nguyên được truy cập từ nơi này đến nơi khác, ánh xạ tên tài nguyên vào đị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ống được gọi là có tính mở thì phải có các điề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 hay nhân đôi các dịch vụ đang tồn tại. - Tính mở được hoàn thiện bằng cách xác định hay phân định rõ các giao diện chính của một hệ và làm cho nó tương thích vớ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ấp cơ chế truyền thông giữa các tiến trình và công khai các giao diện dùng để truy nhập các tài nguyên chung. 3. Khả năng song song Hệ phân tán hoạt độ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. Có thể thực hiện nhiều tiến trình trong cùng một thời điểm. Việc thực hiện tiến trình đồng thời theo cơ chế phân chia thời gian (một CPU) hay song song (nhiều CPU). Khả năng làm việc song song trong hệ phân tán được thể hiện qua hai tình huống: - Nhiều người sử dụng đồng thời đưa ra các lệnh hay các tương tác với các chương tr nh ứng dụng (đồng thời xuất hiện nhiều Clients). - Nhiều tiến trình Server chạy đồng thời, mỗi tiến trình phải đáp ứng yêu cầu từ các Clients. Từ điều kiện đa xử lý, khả năng song song củ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ả năng hoạt động tốt và hiệu quả ở nhiều mức khác nhau. Khả năng mở rộng của một hệ phân tán được đ c trưng bở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. Điều này chỉ đạt ở mức độ nào đó đối với hệ phân tán hiện tại (không thể hoàn toàn như định nghĩa trên). Yêu cầ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ải được phân tích, đánh giá trên tấ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ạng đột ngột tăng cao. Để tránh tình trạng tắc nghẽn xảy ra khi chỉ có một Server và phải đáp ứng các yêu cầu truy nhập file đó. Người ta nhân bản file trên một Server khác và hệ thống được thiết kế sao cho việc bổ sung Server được dễ dàng. Có thể tính đến giải pháp khác là sử dụng Cache và các bản sao dữ liệu. 5. Khả năng thứ lỗi Khả năng thứ lỗi thể hiện việc hệ thống không bị sụp đổ 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ận nào đó. Việc thiết kế khả năng thứ lỗi các hệ thống máy tính dựa trên hai giải pháp sau: - Dùng khả năng thay thế để đảm bảo sự hoạt động liên tục và hiệu quả. - Dùng các chương tr nh đảm bảo cơ chế 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ầu độ tin cậy như: - Bí mật của dữ liệu. - Các chức năng khôi phục hư hỏng phải đảm bảo. - Ngoài ra các yêu cầu của hệ thống về tính nhất quán cũng thể 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ợi ích cơ bả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ệt được tích hợp logic với nhau làm cho nhiều người sử dụng trên mạng có thể truy nhập đượ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ải được trong suốt phân tán theo nghĩa làm cho ngườ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ốt phân đoạn - Tăng độ tin cậy và khả năng sẵn sàng: Độ tin cậy là khả năng hệ thống đang làm việc (không bị ngừng) tại một thời điểm nào đó, tính sẵn sàng là khả năng hệ thống tiếp tục làm việc trong một khoảng thời gian nào đó. Khi dữ 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ạt độ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ập được. Để nâng cao độ tin cậy và tính sẵn sàng, có thể áp dụng cơ chế tạo bản sao trên nhiều trạm. - Cải thiện hiệu năng: Một hệ quản trị CSDL phân tán, phân đoạn CSDL có thể làm cho dữ liệu sẽ được lưu giữ tại gần nơi sử dụng nhất. Dữ liệu được lưu giữ cục bộ làm giảm cạnh tranh CPU, giảm các I/O Server và giảm tương tranh truy nhập trên mạng. Dữ liệu được phân tán tại các trạm nên dung lượng dữ liệu cục bộ sẽ nhỏ hơn, các xử lý giao tác và truy vấn cục bộ sẽ được thực hiện tốt hơn. Hơn nữa trên mỗi trạm có ít các giao tác hơn số các giao tác trên CSDL tập trung vì vậy cũng tăng hiệu suất hệ thống. - Dễ dàng mở rộng: Việc thêm CSDL mới, tăng kích cỡ CSDL ho c thêm bộ xử lý trong môi trường phân tán là dễ hơn v cũng chỉ như là thêm các 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ế và cài đ t hệ thống tăng: Hệ quản trị CSDL phân tán phải bổ sung thêm các chức năng như: + 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ản lý thư mục - catalog phân tán - Hệ thống phần cứng cũng phức tạp hơn v cần có nhiều trạm và các trạm phải được kết nối trên mạng. - Các phần mềm hệ thống đảm bảo quản trị, duy trì kết nối, trao đổi dữ liệu trên mạng. - Bảo mật khó khăn. 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ệu đã được phân đoạn thì việc truy cập vào CSDL được thực hiện b nh thường như là chưa bị phân tán và không ảnh hưởng tới người sử dụng. Ví dụ 1.3: Xét quan hệ tổng thể NCC (Id, Tên, Tuổi) và các phân đoạn ngang đượ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ề phân đoạn, khi đó ta có thể thấy tính trong suốt này được thể hiện như sau: Khi muốn tìm một ngườ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 1.2.2. Trong suốt về vị trí (location transparency) - Ngườ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ập đến CSDL tại bất cứ vị trí nào. - Các thao tác để lấy ho c cập nhật một dữ liệu từ xa được tự động thực hiện bởi hệ thống tại điểm đưa ra yêu cầu. - Tính trong suốt về vị trí rất hữu ích, nó cho phép người sử dụng bỏ qua các bản sao dữ liệu đã tồn tại ở mỗi vị trí. Do đó có thể di chuyển một bản sao dữ liệu từ một vị trí này đến một vị trí khác và cho phép tạo các bản sao mới mà không ảnh hưởng đến các ứng dụng. Ví dụ 1.4: Với quan hệ tổng thể R và các phân đoạn như đã nói ở trên nhưng giả sử rằng DDBMS cung cấp trong suốt về vị trí nhưng không cung cấp trong suốt về phân đoạn. Xét câu truy vấn t m ngườ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 ở phân đoạn NCC1 và nếu DBMS trả về biến điều khiển #FOUND thì một câu lệnh truy vấn tương tự được thực hiện trên phân đoạn NCC2 , + Ở đây quan hệ 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. 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ột đ c tính quan trọng trong một hệ thống DBMS không đồng nhất. - Ứng dụng tham chiếu đến các đối tượng có các tên độc lập từ các hệ thống cục bộ địa phương. - Ứng dụng được cài đ t trên một hệ thống không đồng nhất nhưng được sử dụng như một hệ thống đồ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) - Xác định tất cả các dữ liệu sẽ được lưu trữ trong CSDL phân tán cũng như các dữ liệu không đượ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 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 • 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. .. thực 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: - 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 nhập... 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 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... 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 output ← φ if n=1 then output ← run(MVQ) {Thực hiện truy. .. 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 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: "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. .. cho phép chúng ta khảo sát các vấn đề về quản lý CSDL phân tán mà không cần phải hiểu rõ mô hình dữ liệu của DBMS địa phương đang sử dụng 1.4 Kết luận CSDL phân tán rất quan trọng vì nhiều lý do khác nhau, nó có thể được cài đ t trên các mạng máy tính diện rộng và các mạng cục bộ nhỏ Có hai lý do về tổ chức và kỹ thuật đối với sự phát triển CSDL phân tán đó là: CSDL phân tán được xây dựng để khắc phục . cứu về truy vấn tối ưu và tiến hành thực hiện tối ưu hóa truy vấn phân tán qua một trường hợp nghiên cứu. 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 nghiên cứu về vấn đề cơ bản của CSDL phân tán, các nguyên lý chung của tối ưu hóa truy vấn phân tán, các kỹ thuật, thuật toán tối ưu hóa truy vấn, thực hiện truy vấn cơ sở dữ liệu phân tán, đánh. 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ả đã công bố về truy vấn tối ưu, thực hiện tối ưu hóa truy vấn trong CSDL phân tán. 3. Đối tƣợng và phạm

Ngày đăng: 20/01/2015, 11:57

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan