Dữ liệu cực lớn lên tới hàng triệu bản ghi.lại phải cập nhật chỉnh lý thường xuyên nên với mô hình CSDL tập trung sẽ gặp rất nhiều khó khăn về vấn đề máy chủ, băng thông đường truyền, tí
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
ĐÀO NGỌC SƠN
NGHIÊN CỨU TỐI ƯU HÓA TRUY VẤN
HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN
Chuyên ngành: Truyền dữ liệu và mạng máy tính
Mã số: 60.48.15 Người hướng dẫn khoa học: PGS.TS ĐOÀN VĂN BAN
TÓM TĂT LUẬN VĂN THẠC SĨ KỸ THUẬT
HÀ NỘI- 2012
Trang 2MỞ ĐẦU
1 Lý do chọn đề tài
Thực trạng hiện nay Viễn thông thanh hóa đang sử dụng phần mềm phục vụ công tác quản lý và điều hành sản xuất của mình, các ứng dụng chính gồm: Hệ thống quản lý nhân sự, hệ thống quản lý mạng cáp, hệ thống tính cước, hệ thống thông tin phục vụ tổ 108,hệ thống báo hỏng, hệ thống quản lý thông tin khách hàng, website public viễn thông thanh hóa…
Dữ liệu cực lớn lên tới hàng triệu bản ghi.lại phải cập nhật chỉnh lý thường xuyên nên với mô hình CSDL tập trung sẽ gặp rất nhiều khó khăn về vấn đề máy chủ, băng thông đường truyền, tính sẵn sàng của hệ thống.Tôi xin đề xuất giải pháp ứng dụng để xây dựng mô hình CSDL phân tán cho hệ thống thông tin khách hàng trên hệ quản trị CSDL Oracle
2 Mục đích của đề tài
Nghiên cứu phương pháp xây dựng cơ sở dữ liệu phân tán, tối ưu hóa truy vấn
cơ sở dữ liệu phân tán
3 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu là cơ sở dữ liệu phân tán
- Phạm vi nghiên cứu là kỹ thuật đồng bộ và tối ưu truy vấn trong cơ sở dữ liệu
4 Phương pháp nghiên cứu
- Nghiên cứu lý thuyết : tìm hiểu các nghiên cứu các tài liệu trong sách , tạp chí các bài viết trên mạng internet… tổng hợp so sánh để viết thành luận văn
- Nghiên cứu thực nghiệm : Cài đặt thử nghiệm
5 Các kết quả dự kiến đạt được
- Giới thiệu tổng quan về CSDL phân tán
- Trình bày phương pháp tối ưu hóa truy vấn
- Cài đặt thử nghiệm thuật toán tối ưu hóa truy vấn
Trang 3CHƯƠNG 1 CƠ SỞ DỮ LIỆU PHÂN TÁN
1.1 Khái niệm về hệ cơ sở dữ liệu phân tán
Định nghĩa này nhấn mạnh hai khía cạnh quan trọng của cơ sở dữ liệu phân tán
- Tính phân tán: Thực tế dữ liệu không cư trú ở cùng một trạm, vì vậy chúng
ta có thể phân biệt một cơ sở dữ liệu phân tán với cơ sở dữ liệu tập trung
- Sự tương quan logic: Các dữ liệu có một số tính chất ràng buộc lẫn nhau và như vậy có thể phân biệt cơ sở dữ liệu phân tán với tập các cơ sở dữ liệu địa phương hoặc với các tệp ở các trạm khác nhau trên mạng
1.1.2 Hệ quản trị cơ sở dữ liệu phân tán(DDBMS)
Khác DDBMS có chức năng hỗ trợ việc tạo và bảo trì cơ sở dữ liệu phân tán, chúng
có các thành phần tương tự như một hệ quản trị cơ sở dữ liệu tập trung thành các thành phần hỗ trợ trong việc chuyển tải dữ liệu đến các trạm và ngược lại
Hệ quản trị cơ sở dữ liệu phân tán được phân làm 2 loại
- Cơ sở dữ liệu phân tán thuần nhất
- Cơ sở dữ liệu phân tán hỗn tạp
1.1.3 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 cơ sở dữ liệu phân tán là dữ liệu của các cơ sở dữ liệu 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 [7]
1 Cho phép quản lý dữ liệu với nhiều mức trong suốt
2 Tăng độ tin cậy và khả năng sẵn sàng
3 Cải thiện hiệu năng
Trang 44 Dễ dàng mở rộng
1.1.4 Những nhược điểm của cơ sở dữ liệu phân tán [3]
- Độ phức tạp thiết kế và cài đặt hệ thống tăng: Hệ quản trị cơ sở dữ liệu phân tán phải bổ sung thêm các chức năng như:
- Khó điều khiển tính nhất quán về dữ liệu
- 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
Ở mức phần cứng vật lý, những nhân tố chính sau là để phân biệt một hệ cơ
sở dữ liệu phân tán với hệ cơ sở dữ liệu tập trung :
- Có nhiều máy tính được gọi là các trạm hay các nút
- Các trạm này phải được kết nối bởi một kiểu mạng truyền thông để truyền
dữ liệu
1.2 Các đặc trưng trong suốt của cơ sở dữ liệu phân tán
- Trong suốt phân tán
- Trong suốt giao dịch
- Trong suốt thất bại
- Trong suốt thao tác
- Trong suốt về tính không thuần nhất
1.3 Kiến trúc tham chiếu của cơ sở dữ liệu phân tán
Kiến trúc tham chiếu không được cài đặt rõ ràng trên tất cả cơ sở dữ liệu phân tán, tuy nhiên các mức của nó được khái quát chính xác, thích hợp để mô tả tổ chức chung cho mọi hệ cơ sở dữ liệu phân tán [3]
- Lược đồ tổng thể: Mô tả tổng thể và thống nhất chung nhất của tất cả dữ liệu của cơ sở dữ liệu phân tán độc lập với môi trường phân tán
- Phân đoạn: Mối quan hệ tổng thể có thể được chia thành vài phần không giao nhau được gọi là các đoạn Lược đồ phân đoạn định nghĩa ánh xạ giữa các quan hệ tổng thể và các phân đoạn Ánh xạ này là một nhiều: Một số đoạn tương ứng với một quan hệ tổng thể, nhưng chỉ một quan hệ tổng thể
Trang 5tương ứng với một đoạn Ký hiệu Ri là đoạn thứ i của quan hệ tổng thể R
- Lược đồ định vị: Định nghĩa ánh xạ từ các phân đoạn vào những trạm chứa những phân đoạn đó Tất cả các đoạn tương ứng với cùng quan hệ tổng thể
R và được đặt tại cùng trạm j tạo thành hình ảnh vật lý của quan hệ tổng thể
R tại trạm j
- Lược đồ ánh xạ địa phương: Ánh xạ các hình ảnh vật lý tới các đối tượng được thao tác bởi các hệ quản trị cơ sở dữ liệu địa phương Trong hệ không thuần nhất ta có các kiểu ánh xạ địa phương khác nhau tại các trạm khác nhau
Hình 1.1: Kiến trúc tham chiếu của cơ sở dữ liệu phân tán
định vị
Trang 61.4 Các kỹ thuật xây dựng cơ sở dữ liệu phân tán
- Kỹ thuật phân tách dữ liệu từ một cơ sở dữ liệu để lưu trữ trên các trạm khác nhau được gọi là phân mảnh
- Sử dụng bản sao cho phép cùng một dữ liệu có thể được lưu trữ trên nhiều hơn một trạm
- Quá trình định vị các phân mảnh dữ liệu hoặc định vị các bản sao phân mảnh lưu trữ dữ liệu trên các trạm khác nhau
1.4.1 Phân mảnh
Sự phân mảnh là chia dữ liệu trong các bảng dữ liệu thành các bộ hoặc các bảng dữ liệu con Có ba kiểu phân mảnh một quan hệ tổng thể: Phân mảnh ngang, phân mảnh dọc và phân mảnh hỗn hợp[9]
Một sự phân mảnh là đúng đắn nếu thoả mãn ba điều kiện sau:
- Điều kiện không mất thông tin: Tất cả dữ liệu của quan hệ tổng thể phải đựơc ánh xạ tới các mảnh, có nghĩa mỗi phần tử dữ liệu thuộc quan hệ tổng thể phải thuộc một hay nhiều mảnh của nó
- Điều kiện xây dựng lại: Luôn có thể xây dựng lại được quan hệ tổng thể từ các mảnh đã có
- Điều kiện rời nhau (chỉ áp dụng cho phân mảnh ngang): Để tối thiểu hoá sự lặp lại của dữ liệu
1.4.1.2 Phân mảnh ngang dẫn tiếp
Phân mảnh ngang dẫn tiếp là sự phân chia một quan hệ ban đầu thành các quan hệ thứ hai khác mà các quan hệ đó liên hệ với quan hệ ban đầu bằng một khoá ngoài Điều này như là liên hệ dữ liệu giữa quan hệ ban đầu và quan hệ thứ hai được phân đoạn trong cùng một cách
Trang 71.4.1.3 Phân mảnh dọc
Phân mảnh dọc là sự chia một quan hệ thành tập con các bộ, mỗi tập được xác định bởi một phép chiếu được áp dụng cho quan hệ: Ri = ПATTRi R, trong đó ATTRi là tập con các thuộc tính của R
Tiêu chuẩn cho sự phân mảnh dọc là đúng đắn:
- Điều kiện đầy đủ: Nếu một thuộc tính xuất hiện trong một quan hệ tổng thể thì nó cũng phải xuất hiện trong một mảnh dọc nào đó
- Điều kiện xây dựng lại: Cần phải thêm vào mỗi mảnh khoá chính, do đó việc xây dựng lại được nhờ vào phép kết nối các mảnh dọc theo các thuộc tính chung
- Điều kiện rời nhau: ít nhất khoá phải được lặp lại trên tất cả các mảnh
để cho phép xây dựng lại, nên ở đây không thể xem là rời nhau hoàn toàn được
1.4.1.4 Phân mảnh hỗn hợp
Là sự kết hợp cả phân mảnh dọc và phân mảnh ngang
1.4.2 Nhân bản dữ liệu
Các chiến lược nhân bản dữ liệu:
1 Nhân bản dữ liệu đầy đủ: Toàn bộ cơ sở dữ liệu sẽ được tạo trên tất cả mỗi trạm
Ưu điểm: Điều này sẽ cải thiện tính sẵn sàng cao nhất vì nếu sự cố trên
trạm này thì vẫn có dữ liệu trên trạm khác và cải thiện hiệu năng lấy dữ liệu trên mạng cho các truy vấn toàn bộ vì dữ liệu sẽ được lấy từ các trạm cục bộ
Nhược điểm: Các thao tác cập nhập dữ liệu rất chậm vì phải copy, đồng
bộ dữ liệu cho mọi trạm Kỹ thuật điểu khiển tương tranh và phục hồi sẽ phức tạp hơn
2 Không có nhân bản dữ liệu: Mỗi phân mảnh chỉ được lưu trữ trên một trạm, phương án này còn được gọi là định vị không dư thừa dữ liệu Trong trường hợp này các phân đoạn phải tách rời nhau để tránh lặp bản ghi giống nhau cho các phân đoạn ngang và phân đoạn hỗn hợp
Trang 83 Nhân bản dữ liệu từng phần: Một vài phân mảnh có thể được tạo bản sao
và có thể một số phân mảnh sẽ không có bản sao Việc tạo bản sao này rất có tác dụng cho các nhân viên làm việc di động, tại các nơi xa trung tâm dữ liệu, có thể tạo ra bản sao dữ liệu trên laptop của mình và theo chu kỳ đồng bộ dữ liệu với cơ sở
dữ liệu server
1.4.3 Định vị dữ liệu
Là quá trình gán từng phân đoạn, từng bản sao của phân đoạn cho một trạm
cụ thể trong hệ thống phân tán Việc chọn trạm nào và số bản sao phụ thuộc vào yêu cầu hiệu năng và mục tiêu sẵn sàng của hệ thống với các loại giao tác trên các trạm Đối với hệ yêu cầu tính sẵn sàng cao, mọi giao dịch thao tác lấy dữ liệu, giao dịch cập nhật chỉ làm tại một trạm thì nên tổ chức tạo bản sao đầy đủ Nếu các giao dịch thường cập nhật một phần dữ liệu tại một trạm thì các phân đoạn cho phần dữ liệu đó nên được định vị trên trạm đó
1.5 Kết luận
Cơ sở dữ liệu 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 cơ sở dữ liệu phân tán đó là: Cơ sở
dữ liệu phân tán được xây dựng để khắc phục các thiếu sót của cơ sở dữ liệu tậ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 cơ
sở dữ liệu phân tán được mở rộng và phát triển từ kỹ thuật của cơ sở dữ liệu 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 cơ sở dữ liệu Các mứ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ị cơ sở dữ liệu 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
Trang 9CHƯƠNG 2 TỐI ƯU HÓA CÂU TRUY VẤN TRONG CƠ SỞ
DỮ LIỆU 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ó thể giảm đáng kể nếu bộ xử lý ngôn ngữ hỏi viết lại (bằng cách khác) 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ể
2.1 Giới thiệu về xử lý truy vấn
Mục đích của xử lý truy vấn :
- Giảm thiểu thời gian xử lý
- Giảm vùng nhớ trung gian
- Giảm chi phí truyền thông của các trạm
2.1.1 Các yêu cầu của phép biến đổi tối ưu hoá câu truy vấn
- Các phép biến đổi phải thực sự hữu hiệu đối với phần lớn các dạng câu truy vấn hay một lớp các câu truy vấn thường dùng mà không phải chi phí quá nhiều để thực hiện quá trình biến đổi đó
- Các phép biến đổi phải bảo toàn kết quả của câu truy vấn trước và sau khi biến đổi, có nghĩa là hai biểu thức trước và sau khi biến đổi phải cho cùng một kết quả khi thay các lược đồ trong biểu thức bởi các thể hiện cụ thể
- Các phép biến đổi phải làm giảm chi phí để thực hiện câu truy vấn Chi phí cho xử lý câu truy vấn có rất nhiều yếu tố, tuy nhiên ta chỉ quan tâm đến một số thông báo cơ bản nhất sau đây: số lần truy xuất khối nhớ giữa bộ nhớ trong và bộ nhớ ngoài; số bản ghi cần phải xử lý ở thiết bị trung tâm; phần bộ nhớ để lưu trữ các kết quả trung gian trong quá trình thực hiện câu truy vấn
2.1.2 Các phương pháp xử lý truy vấn cơ bản
Phương pháp biến đổi đại số :
Trang 10Đơn giản hóa câu truy vấn nhờ các phép biến đổi đại số tương đương nhằm giảm thiểu thời gian thực hiện các phép toán, phương pháp này không quan tâm đến cấu trúc và kích thước dữ liệu
Phương pháp ước lượng chi phí :
Xác định kích thước dữ liệu, thời gian thực hiện mỗi phép toán trong câu truy vấn Phương pháp này phải xác định kích thước dữ liệu và chi phí thời gian thực hiện mỗi phép toán trong câu truy vấn
2.2 Các kỹ thuật tối ưu hóa tập trung
Phần này sẽ trình bày hai 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 hoá tập trung thường 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.2.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 vấn con trước đó Sau đó, mỗi truy vấn con được xử lý bởi "bộ xử lý truy vấn một biến" (OVQP: one-variable query processor) OVQP tối ưu truy nhập tới một quan hệ đơn, bằng cách lựa chọn phương pháp truy nhập tốt nhất (chỉ số, quét tuần tự) Ví dụ: với tân từ dạng <A = value> thì nên dùng một chỉ số trên A; với tân từ dạng <Avalue> thì nên dùng quét tuần tự
Câu truy vấn q được phân tích thành hai câu truy vấn con qi-1 và qi, ký hiệu q
i-1 qi, nghĩa là qi -1 được thực hiện trước và kết quả của nó được sử dụng bởi qi
Trang 11Bộxử lý câu truy vấn INGRES phân tích q thành n câu truy vấn q1 q2 q3
qn Sự phân tích này sử dụng hai kỹ thuật cơ bản phân tách và thay thế
2.2.2 Thuật toán SYSTEM R
System R 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 quan hệ - đơn tốt nhất của
nó
Có hai phương pháp có thể để xét các phép kết nối Khi kết nối hai quan hệ, quan hệ có các bộ đọc trước gọi là quan hệ ngoài, quan hệ có các bộ được tìm thấy tùy theo các giá trị có được từ quan hệ ngoài gọi là quan hệ trong Quyết định quan trọng với mỗi phương pháp kết nối là xác định hướng truy nhập tới quan hệ trong rẻ nhất
Phương pháp 1, gọi là các vòng lặp lồng nhau, thực hiện tích hai quan hệ Với mỗi bộ của quan hệ ngoài, các bộ của quan hệ trong thoả mãn giả thiết kết nối được gọi ra để tạo quan hệ kết quả Nếu không đánh chỉ số, với các quan hệ được lưu trữ theo thứ tự trên n1, n2 bộ bản ghi, thuật toán này có chi phí là n1* n2
Phương pháp 2, gọi là kết nối trộn, kết nối hai quan hệ đã sắp xếp trên thuộc tính kết nối Nếu là kết nối bằng, chi phí của việc kết nối hai quan hệ được lưu trữ trên n1 và n2 bộ bản ghi là n1+ n2 Vì vậy, phương pháp này luôn được chọn khi có kết nối bằng, và khi các quan hệ được sắp xếp trước Nếu chỉ một hoặc không có quan hệ nào được sắp xếp, chi phí của vòng lặp lồng nhau được so sánh với chi phí của phương pháp trộn + chi phí sắp xếp Chi phí sắp xếp n bộ bản ghi là nlog2n
Trang 122.3 Tối ưu hóa truy vấn phân tán
2.3.1 Mục tiêu của bài toán truy vấn
Mục tiêu của bài toán truy vấn trong môi trường phân tán là biến đổi câu vấn tin cáp cao trên CSDL phân tán (mà người sử dụng vẫn tưởng là CSDL tập trung) thành một chiến lược thực thể hiệu quả được diễn tả bằng một ngôn ngữ cấp thấp trên các CSDL cục
bộ Giả sử ngôn ngữ cấp cao là phép tính quan hệ, ngôn ngữ cấp thấp là một dạng mở rộng của đại số quan hệ đi kèm với các thao tác truyền dữ liệu
Xét các quan hệ EMP (ENO, ENAME, TITLE)
ASG (ENO, PNO, RESP, DUR)
Và câu vấn tin: “Cho biết các nhân viên hiện đang quản lý một dự án”
Câu SQL là: SELECT ENAME
FROM EMP, ASG WHERE EMP.ENO = ASG.ENO AND ASG.RESP = “Manager”
Hai biểu thức tương đương đại số quan hệ do biến đổi từ câu vấn tin trên là:
ENAME ( RESP = “Manager” EMP.ENO = ASG.ENO (EMP x ASG)) (*)
Và ENAME(EMP ENO(RESP = “Manager” (ASG))) (**) Với mục tiêu giảm thiểu việc sử dụng tài nguyên nên câu vấn tin (**) sẽ được dùng
Nhiệm vụ chính của thể xử lý vấn tin tập trung là đối với một câu vấn tin đã cho nó phải chọn ra được một câu vấn tin đại số quan hệ tốt nhất trong số các câu vấn tin đại số tương đương Bởi vì đây là một bài toán phức tạp về mặt tính toán khi số lượng các quan
hệ lớn, nên nói chung nó thường được đưa về yều cầu chọn một lời giải tối ưu
Trong quan hệ phân tán, đại số quan hệ không đủ để diễn tả các chiến lược thực thi
Nó phải được bổ sung thêm các phép tính toán trao đổi dữ liệu giữa các vị trí Bên cạnh chọn thứ tự cho các phép toán đại số quan hệ, thể XLVT phân tán cũng phải chọn các vị trí tốt nhất để xử lý dữ liệu và có thể cả cách biến đổi dữ liệu Do những yêu cầu trên mà không gian lời giản tăng lên làm cho việc XLVT plhân tán khó hơn rất nhiều
Ví dụ 2.4: Ví dụ minh hoạ tầm quan trong của việc chọn lựa vị trí và cách truyền
dữ liệu của câu vấn tin đại số
ENAME (EMP ENO ( RESP = “Manager” (ASG))) (**) Giả sử EMP và ASG được phân mảnh ngang như sau: