1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tối ưu hóa cơ sở dữ liệu phân tán 04

88 94 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 88
Dung lượng 1,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu tổng quan về cơ sở dữliệu phân tán, phân biệt cơ sở dữ liệu tập trung với cơ sở dữ liệu phân tán để thấy được sự khác biệt của hai cơ sở dữ liệu này và lợi ích của cơ sở dữ li

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN THỊ THƠ MÂY

TỐI ƯU HÓA CƠ SỞ DỮ LIỆU PHÂN TÁN

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

HÀ NỘI – 2015

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN THỊ THƠ MÂY

TỐI ƯU HÓA CƠ SỞ DỮ LIỆU PHÂN TÁN

Ngành: Công nghệ thông tin

Chuyên ngành: Hệ thống thông tin

Mã số: 60480104

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS ĐOÀN VĂN BAN

HÀ NỘI – 2015

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan, kết quả của luận văn hoàn toàn là kết quả của tự bản thân tôi tìm hiểu, nghiên cứu Các tài liệu tham khảo được trích dẫn và chú thích đầy đủ

Tác giả

Nguyễn Thị Thơ Mây

Trang 4

Lời đầu tiên, em xin chân thành cảm ơn PGS.TS Đoàn Văn Ban, người đã trựctiếp hướng dẫn, giúp đỡ và tạo mọi điều kiện thuận lợi cho em từ lúc tìm hiểu, địnhhướng cũng như tìm kiếm tài liệu trong lĩnh vực cơ sở dữ liệu phân tán cho đến lúc hoànthành luận văn.

Em xin gửi lời cám ơn sâu sắc đến tất cả các thầy cô giáo đã dạy dỗ và truyền đạtnhững kiến thức, kinh nghiệm quý báu cho chúng em trong suốt hai năm cao học ởtrường Đại học Công nghệ - Đại học Quốc gia Hà nội

Cuối cùng, em xin cảm ơn tất cả bạn bè, người thân và đồng nghiệp đã khích lệ,động viên, đóng góp ý kiến và giúp đỡ để em hoàn thành luận văn này

Hà nội, ngày … , tháng … , năm 2015

Trang 5

MỤC LỤC

MỤC LỤC

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

DANH MỤC CÁC HÌNH VẼ

LỜI MỞ ĐẦU

Chương 1: KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN

1.1 Cơ sở dữ liệu phân tán

1.1.1 Định nghĩa

1.1.2 Ưu điểm

1.1.3 Nhược điểm

1.2 Đặc điểm của cơ sở dữ liệu phân tán

1.2.1 Chia sẻ tài nguyên

1.2.2 Tính mở

1.2.3 Khả năng song song

1.2.4 Khả năng mở rộng

1.2.5 Khả năng thứ lỗi

1.2.6 Tính trong suốt

1.2.7 Đảm bảo tin cậy và nhất quán

1.3 Kiến trúc cơ bản của CSDL phân tán

1.4 Hệ quản trị cơ sở dữ liệu phân tán

1.4.1 Khái niệm

1.4.2 Kiến trúc hệ quản trị CSDL phân tán

1.5 Thiết kế cơ sở dữ liệu phân tán

1.5.1 Các chiến lược phân tán dữ liệu

1.5.2 Phân mảnh dữ liệu

1.5.2.1 Phương pháp phân mảnh ngang

1.5.2.2 Phương pháp phân mảnh dọc

1.5.2.3 Phương pháp phân mảnh hỗn hợp

1.6 Kết luận

Chương 2: TỐI ƯU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU PHÂN TÁN

2.1 Vấn đề tối ưu hóa xử lý truy vấn

2.2 Quá trình xử lý truy vấn

2.2.1 Phân rã truy vấn

2.2.2 Cục bộ hóa dữ liệu phân tán

Trang 6

2.2.2.1 Rút gọn cho phân mảnh ngang nguyên thủy

2.2.2.2 Rút gọn cho phân mảnh dọc

2.2.2.3 Rút gọn cho phân mảnh ngang dẫn xuất

2.2.2.4 Rút gọn cho phân mảnh hỗn hợp

2.2.3 Tối ưu hóa toàn cục

2.2.3.1 Không gian tìm kiếm

2.2.3.2 Chiến lược tìm kiếm

2.2.3.3 Mô hình chi phí

2.2.4 Tối ưu hóa cục bộ

2.3 Các thuật toán tối ưu hóa truy vấn phân tán

2.3.1 Thứ tự kết nối

2.3.2 Thuật toán INGRES phân tán

2.3.3 Thuật toán R*

2.3.4 Thuật toán DP-ACO

2.4 Kết luận

Chương 3: CHƯƠNG TRÌNH CÀI ĐẶT THUẬT TOÁN TỐI ƯU HÓA TRUY VẤN

3.1 Bài toán quản lý bệnh nhân

3.2 Mô hình phân tán CSDL, công cụ, ngôn ngữ lập trình

3.3 Thuật toán áp dụng

3.4 Kết quả thực nghiệm

3.5 Kết luận

KẾT LUẬN

TÀI LIỆU THAM KHẢO

Trang 7

3DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

Trang 8

DANH MỤC CÁC HÌNH VẼ

Hình 1.1 Môi trường hệ CSDL phân tán

Hình 1.2 Kiến trúc cơ bản của CSDL phân tán

Hình 1.3: Mối quan hệ giữa các quan hệ bởi các đường nối

Hình 1.4: Ma trận tụ tương quan CA

Hình 1.5: Phân đoạn hỗn hợp

Hình 1.6 Tái xây dựng phân đoạn hỗn hợp

Hình 2.1: Giải pháp A

Hình 2.2: Giải pháp B

Hình 2.3: Sơ đồ truy trình xử lý truy vấn

Hình 2.4: Đồ thị truy vấn và Đồ thị nối

Hình 2.5: Đồ thị truy vấn và Đồ thị nối với câu truy vấn sai ngữ nghĩa

Hình 2.6: Cây đại số quan hệ

Hình 2.7: Cây đại số quan hệ sau khi tái cấu trúc

Hình 2.8: Câu truy vấn gốc

Hình 2.9: Câu truy vấn đã rút gọn

Hình 2.10: Rút gọn phân mảnh ngang

Hình 2.11 Rút gọn phân mảnh dọc

Hình 2.12: Rút gọn cho phân mảnh ngang dẫn xuất

Hình 2.13: Rút gọn phân mảnh hỗn hợp

Hình 2.14: Bộ tối ưu truy vấn

Hình 2.15: Các cây nối

Hình 2.16: Hình dáng của một số cây nối

Hình 2.17: Đồ thị minh họa tổng chi phí và thời gian trả lời

Hình 2.18:Truyền các toán hạng trong phép toán hai ngôi

Hình 2.19: Đồ thị nối của truy vấn phân tán

Hình 2.20: Đồ thị nối của truy vấn q1

Hình 2.21: Các thứ tự kết nối

Hình 2.22: Quá trình quyết định đường đi của đàn kiến

Hình 3.1: Mối quan hệ giữa các bảng dữ liệu

Hình 3.2: Kết quả thực hiện câu truy vấn tại trạm 1

Hình 3.3: Kết quả thực hiện câu truy vấn tại trạm 2

Hình 3.4: Kết quả thực hiện câu truy vấn tại trạm 3

Hình 3.5: Kết quả thực hiện câu truy vấn tại trạm 1

Hình 3.6: Kết quả thực hiện câu truy vấn tại trạm 2

Trang 9

5LỜI MỞ ĐẦUNgày nay, cùng với sự phát triển nhanh chóng của công nghệ thông tin, các ứngdụng cơ sở dữ liệu đã thâm nhập vào mọi hoạt động kinh tế xã hội, quản lý nhà nước vàđem lại hiệu quả vô cùng to lớn, góp phần tăng năng suất lao động, đơn giản trong quản

lý và cải cách nền hành chính Xã hội ngày càng phát triển, yêu cầu khối lượng thông tincần lưu trữ, xử lý ngày càng tăng Trên thực tế, các doanh nghiệp, các đơn vị, cơ quan,

tổ chức phân bố trên một vùng rộng lớn về mặt địa lý, có thể là trên phạm vi nhiều thànhphố hoặc toàn bộ quốc gia hay một vài quốc gia, thậm chí trên toàn cầu Do đó, dữ liệukhông thể lưu trữ tập trung ở một địa điểm nhất định mà rải khắp các địa điểm mà cơquan, tổ chức hay doanh nghiệp đó hoạt động Khi dữ liệu không còn lưu trữ tập trungthì vấn đề làm thế nào để quản lý, tốc độ truy xuất dữ liệu phục vụ cho xử lý công việckhông bị ảnh hưởng, không bị gián đoạn được đặt ra Cơ sở dữ liệu phân tán ra đời đãgiải quyết được những yêu cầu đó

Cơ sở dữ liệu là một trong những lĩnh vực được quan tâm nhiều trong công nghệthông tin Việc nghiên cứu CSDL đã và đang phát triển ngày càng phong phú, đa dạng.Cho đến nay, đã có hàng loạt các vấn đề về CSDL được nghiên cứu, giải quyết CSDLphân tán nói riêng và các hệ phân tán nói chung là một lĩnh vực nghiên cứu không mới,nhưng gần đây cùng với sự phát triển nhanh chóng và mạnh mẽ của công nghệ truyềnthông, mạng Internet và đặc biệt là xu thế phát triển của thương mại điện tử, thì CSDLphân tán đã trở thành một lĩnh vực thu hút nhiều sự quan tâm của các nhà nghiên cứucũng như các nhà sản xuất phần mềm

Khi khối lượng thông tin phải xử lý ngày càng lớn, phong phú và đa dạng thì vấn

đề đặt ra là xử lý thông tin như thế nào để giảm chi phí đến mức tối thiểu Một trong cácgiải pháp có tính khả thi là phải tối ưu hóa các câu lệnh khi truy vấn dữ liệu Nghiên cứu

về tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán là cần thiết để khai thác có hiệu quả

dữ liệu phân tán Do đó, tôi chọn nghiên cứu đề tài “Tối ưu hóa cơ sở dữ liệu phân tán”

làm luận văn tốt nghiệp

Mục tiêu của luận văn là nghiên cứu các phương pháp thiết kế cơ sở dữ liệu phântán, các kỹ thuật tối ưu hóa câu truy vấn trong cơ sở dữ liệu phân tán, cài đặt thử nghiệmmột số thuật toán tối ưu hóa câu truy vấn trong cơ sở dữ liệu phân tán, từ đó đưa ra nhậnxét, đánh giá ưu điểm, nhược điểm của từng thuật toán tối ưu để có lựa chọn phù hợpvới từng bài toán thực tế

Với mục tiêu của luận văn như vậy, bố cục của luận văn gồm: phần mở đầu, bachương nội dung và phần kết luận

Chương 1: Khái quát về cơ sở dữ liệu phân tán Giới thiệu tổng quan về cơ sở dữliệu phân tán, phân biệt cơ sở dữ liệu tập trung với cơ sở dữ liệu phân tán để thấy được

sự khác biệt của hai cơ sở dữ liệu này và lợi ích của cơ sở dữ liệu phân tán; Tìm hiểucác phương pháp thiết kế cơ sở dữ liệu phân tán, tập trung nghiên cứu các kỹ thuật phânmảnh: phân mảnh ngang, phân mảnh dọc và phân mảnh hỗn hợp

Trang 10

Chương 2: Tối ưu hóa truy vấn cơ sở dữ liệu phân tán Trong chương này sẽ trìnhbày chi tiết các bước trong quy trình xử lý câu truy vấn; trình bày các thuật toán tối ưuhóa câu truy vấn cơ sở dữ liệu phân tán như: INGRES phân tán, R*, DP-ACO.

Chương 3: Cài đặt thử nghiệm thuật toán: Trình bày mô hình cài đặt hệ thống Càiđặt thuật toán INGRES phân tán, R* và so sánh, đánh giá kết quả thực nghiệm cho bàitoán tối ưu hóa truy vấn Cuối cùng là kết luận và hướng phát triển của đề tài

Nội dung cơ bản của luận văn đã được trình bày, thảo luận tại seminar khoa học

ởBộ môn Hệ thống thông tin, khoa Công nghệ Thông tin, trường Đại học Công nghệ - Đại học Quốc gia Hà Nội

Trang 11

7Chương 1KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1 Cơ sở dữ liệu phân tán

1.1.1 Định nghĩa

Một cơ sở dữ liệu (CSDL) phân tán là một tập dữ liệu có quan hệ logic với nhau, được phân bố trên các máy tính của một mạng máy tính [11]

- Tính chất phân tán: Toàn bộ dữ liệu của CSDL phân tán không nằm ở một nơi

mà nằm trên nhiều trạm thuộc mạng máy tính

- Quan hệ logic: Trong CSDL phân tán, dữ liệu có một số đặc tính liên kết với

nhau như tính kết nối, mối quan hệ logic, điều này giúp chúng ta có thể phân biệt mộtCSDL phân tán với một tập hợp CSDL cục bộ hoặc các tệp nằm tại các vị trí khác nhautrong một mạng máy tính

Trong hệ thống cơ sở dữ liệu phân tán gồm nhiều trạm, mỗi trạm có thể khai thác các giao tác truy nhập dữ liệu trên nhiều trạm khác

Ví dụ: Với một ngân hàng có 3 chi nhánh đặt ở các vị trí khác nhau Tại mỗi chi

nhánh có một máy tính điều khiển một số máy kế toán cuối cùng (Teller terminal) Mỗimáy tính với cơ sở dữ liệu thống kê cục bộ của nó tại mỗi chi nhánh được đặt ở một vịtrí của cơ sở dữ liệu phân tán Các máy tính được nối với nhau bởi một mạng truyềnthông

Ở 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

và những câu lệnh giữa các trạm với nhau, như Hình 1.1

Trong mô hình dữ liệu tập trung, tài nguyên tập trung tại một máy tính Trong hệthống cơ sở dữ liệu phân tán, cơ sở dữ liệu được chứa trong nhiều máy tính, các máytính này được nối với nhau qua các hệ thống truyền thông, chúng không chia sẻ bộ nhớchung cũng như không dùng chung đồng hồ Các bộ xử lý trong hệ thống phân tán cókích cỡ và chức năng khác nhau (chẳng hạn có thể bao gồm các bộ vi xử lý, trạm làmviệc, máy tính mini, hay các máy lớn vạn năng) Trong hệ thống cơ sở dữ liệu phân tángồm nhiều trạm thì mỗi trạm có thể truy nhập dữ liệu ở các trạm khác

DB

DB

Trang 12

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

Cho phép quản lý dữ liệu theo nhiều mức trong suốt: Hệ quản trị cơ sở dữ liệuphả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

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àmviệ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ếptục làm việc trong một khoảng thời gian nào đó Khi cơ sở dữ liệu phân tán trên một vàitrạ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 cơ sở dữ liệu, chỉ trên trạm bị sự cố, dữ liệu và ứng dụngkhô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 [2]

Cải thiện hiệu năng: Một hệ quản trị cơ sở dữ liệu phân tán, phân mảnh cơ sở dữliệu có thể làm cho dữ liệu được lưu trữ tại gần nơi sử dụng nhất Dữ liệu được lưu trữcục bộ làm giảm cạnh tranh CPU, giảm các phục vụ I/O và giảm tương tranh truy nhậptrê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ỗitrạm có ít các giao tác hơn số giao tác trên cơ sở dữ liệu tập trung, vì vậy cũng tăng hiệusuất hệ thống Tính song song trong các hệ CSDL phân tán có thể nâng cao được hiệuquả truy nhập Tính chất này có thể lợi dụng để xử lý song song các câu truy vấn Có haidạng:

- Câu truy vấn đồng thời phát sinh tại các trạm khác nhau

- Câu truy vấn có thể được phân rã thành những câu truy vấn con được thực hiện song song trên các trạm khác nhau

Tổ chức dữ liệu phân tán kinh tế hơn so với tổ chức dữ liệu tập trung Chi phí chomột hệ máy tính nhỏ rẻ hơn nhiều so với chi phí của một máy tính lớn khi triển

Trang 13

9khai cùng một mục đích ứng dụng Chi phí truyền thông cũng ít hơn do việc cục bộ hóa

dữ liệu

Dễ dàng mở rộng: Việc thêm cơ sở dữ liệu mới, tăng kích cỡ cơ sở dữ liệu hoặcthê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 cơ sở dữliệu thành phần

+ Quản lý giao dịch phân tán

+ Phục hồi cơ sở dữ liệu phân tán

+ Quản lý các bản sao

+ Quản lý thư mục - catalog phân tán

- Tăng chi phí: Độ phức tạp tăng đồng nghĩa với chi phí cho việc mua sắm và bảotrì cho hệ quản trị CSDL phân tán tăng so với CSDL tập trung Hơn nữa, hệ quản trịCSDL phân tán còn yêu cầu thêm phần cứng để thiết lập mạng liên kết giữa các trạmlàm cho chi phí truyền thông liên tục phát sinh Ngoài ra, còn có thêm chi phí lao động

để quản lý và duy trì các CSDL cục bộ và hệ thống mạng

- Bảo mật khó khăn: Trong hệ thống tập trung, việc truy cập dữ liệu có thể đượckiểm soát dễ dàng Tuy nhiên, trong hệ quản trị CSDL phân tán không chỉ việc truy cập

dữ liệu lặp ở nhiều vị trí được kiểm soát mà bản thân mạng cũng phải đảm bảo an toàn

- Kiểm soát tính toàn vẹn khó khăn hơn: CSDL toàn vẹn đề cập đến độ tin cậy vàtính nhất quán của dữ liệu được lưu trữ Tính toàn vẹn thường được thể hiện trong cácđiều kiện ràng buộc Thực hiện các ràng buộc này thường yêu cầu truy cập lượng lớn

dữ liệu định nghĩa các ràng buộc Trong hệ quản trị CSDL phân tán, chi phí truyềnthông và chi phí xử lý để thực thi các ràng buộc toàn vẹn cao hơn trong hệ thống tậptrung

1.2 Đặc điểm của cơ sở dữ liệu phân tán

1.2.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 thông qua mạng truyềnthông Để chia sẻ tài nguyên một cách có hiệu quả thì 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, 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 là 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 đếnnơi khác, ánh xạ lên tài nguyên vào địa chỉ truyền thông,

Trang 14

1.2.2 Tính mở

Tính mở của hệ thống máy tính là dễ dàng mở rộng phần cứng (thêm các thiết bịngoại vi, bộ nhớ, các giao diện truyền thông, ) và các phần mềm (các mô hình hệ điềuhành, các giao thức truyền tin, các dịch vụ chung tài nguyên, )

Một hệ phân tán có tính mở là hệ có thể được tạo ra từ nhiều loại phần cứng vàphần mềm của nhiều nhà cung cấp khác nhau theo một tiêu chuẩn chung

Tính mở của hệ phân tán được xem xét theo mức độ bổ sung các dịch vụ dùngchung 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ếntrình và công khai các giao diện dùng để truy cập các tài nguyên chung

1.2.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 Trong cùng một thời điểm nếu có N tiến trình cùng tồn tại, tanói chúng thực hiện đồng thời Việc thực hiện tiến trình 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ực hiện do:

- Nhiều người sử dụng đồng thời đưa ra các lệnh hay tương tác với các chương trình ứng dụng

- Nhiều tiến trình Server chạy đồng thời, mỗi tiến trình đáp ứng các yêu cầu từ cáctiến trình Client khác

1.2.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 Một hệphân tán nhỏ nhất có thể hoạt động chỉ cần hai trạm làm việc và một File Server Các hệlớn hơn có thể có hàng nghìn máy tính

Khả năng mở rộng đượ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ệ được mở rộng Điều này chỉ đạt được mức độ nào đó với hệphân tán hiện tại Yêu cầu việc mở rộng không chỉ là sự mở rộng về phần cứng, vềmạng mà trải trên các khía cạnh khi thiết kế hệ phân tán

1.2.5 Khả năng thứ lỗi

Việc thiết kế khả năng thứ lỗi của các hệ thống máy tính dựa trên hai giải pháp:

- 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 hồi phục khi xảy ra sự cố

Xây dựng một hệ thống có thể khắc phục sự cố theo cách thứ nhất thì nối hai máytính với nhau để thực hiện cùng một chương trình, một trong hai máy chạy ở chế độStandby Giải pháp này tốn kém vì phải nhân đôi phần cứng của hệ thống Một giải pháp

để giảm chi phí là các Server riêng lẻ được cung cấp các ứng dụng quan trọng để có thểthay thế nhau khi có sự cố xuất hiện Khi không có sự cố các Server hoạt động

Trang 15

11bình thường, khi có sự cố trên một Server nào đó, các ứng dụng Clien tự chuyển hướngsang các Server còn lại.

Cách hai thì các phần mềm hồi phục được thiết kế sao cho trạng thái dữ liệu hiệnthời (trạng thái trước khi xảy ra sự cố) có thể được khôi phục khi lỗi được phát hiện.Các hệ phân tán cung cấp khả năng sẵn sàng cao để đối phó với các trường hợphỏng phần cứng

1.2.6 Tính trong suốt

Tính trong suốt của một hệ phân tán được hiểu là việc che khuất đi các thành phầnriêng biệt của hệ thống đối với người sử dụng và những người lập trình ứng dụng

Tính trong suốt về vị trí: Người sử dụng không cần biết vị trí vật lý của dữ liệu.

Người sử dụng có quyền truy cập đến cơ sở dữ liệu nằm tại bất kỳ vị trí nào Các thaotác truy xuất, cập nhật dữ liệu tại một điểm dữ liệu ở xa được tự động thực hiện bởi hệthống tại điểm đưa ra yêu cầu, người sử dụng không cần biết đến sự phân tán của cơ sở

dữ liệu trên mạng

Tính trong suốt trong việc sử dụng: Việc chuyển đổi một phần hay toàn bộ cơ sở

dữ liệu do thay đổi về tổ chức hay quản lý không ảnh hưởng tới thao tác người sử dụng

Tính trong suốt của việc phân chia: Nếu dữ liệu được phân chia do tăng tải thì

không ảnh hưởng tới người sử dụng

Tính trong suốt của sự trùng lặp dữ liệu: Nếu dữ liệu trùng lặp để giảm chi phí

truyền thông với cơ sở dữ liệu hoặc nâng cao độ tin cậy, người sử dụng không cần biếtđiều đó

1.2.7 Đảm bảo tin cậy và nhất quán

Hệ thống yêu cầu độ tin cậy cao: Sự bí mật của dữ liệu phải được bảo vệ, các chứcnăng khôi phục hư hỏng phải được đảm bảo Ngoài ra, yêu cầu của hệ thống về tính nhấtquán cũng rất quan trọng, thể hiện trong việc không được có mâu thuẫn trong nội dung

dữ liệu

1.3 Kiến trúc cơ bản của CSDL phân tán

Mô hình kiến trúc CSDL phân tán gồm: Lược đồ tổng thể, lược đồ phân mảnh,lược đồ định vị và lược đồ ánh xạ cục bộ (xem Hình 1.2)

- Lược đồ tổng thể: Định nghĩa tất cả các dữ liệu sẽ được lưu trữ trong CSDL

phân tán Trong mô hình quan hệ, lược đồ tổng thể bao gồm định nghĩa của các tậpquan hệ tổng thể

- Lược đồ phân mảnh: Mỗi quan hệ tổng thể có thể chia thành một vài phần tách

biệt nhau được gọi là mảnh (fragments) Có nhiều cách khác nhau để thực hiện việcphân chia này Ánh xạ (một - nhiều) giữa lược đồ tổng thể và các mảnh được định nghĩatrong lược đồ phân mảnh

- Lược đồ định vị: Các mảnh là các phần logic của quan hệ tổng thể được

định vị

Trang 16

vật lý trên một hoặc nhiều vị trí trên mạng Lược đồ định vị định nghĩa mảnh nào định

vị tại các vị trí nào Kiểu ánh xạ được định nghĩa trong lược đồ định vị quyết địnhCSDL phân tán là dư thừa hay không

- Lược đồ ánh xạ cục bộ: Ánh xạ các ảnh vật lý và các đối tượng được lưu trữ tại

một trạm (tất cả các mảnh của một quan hệ tổng thể trên cùng một vị trí tạo ra một ảnhvật lý)

Lược đồ tổng thểLược đồ phân mảnhLược đồ định vị

Hệ quản trị CSDL phân tán (DDBMS) là một hệ thống phần mềm cho phép quản

lý các CSDL phân tán (tạo lập và điều khiển các truy nhập cho các hệ CSDL phân tán)

và làm cho việc phân tán trở nên trong suốt với người sử dụng [11]

Đặc tính trong suốt muốn nói đến sự tách biệt về ngữ nghĩa ở cấp độ cao của một

hệ thống với các vấn đề cài đặt ở cấp độ thấp Sự phân tán dữ liệu được che dấu vớingười sử dụng làm cho người sử dụng truy nhập vào CSDL phân tán như hệ CSDL tậptrung Sự thay đổi việc quản trị không ảnh hưởng tới người sử dụng

Hệ quản trị CSDL phân tán gồm một tập các phần mềm (chương trình) sau đây:

- Chương trình quản trị dữ liệu phân tán

- Chương trình quản trị việc truyền thông dữ liệu

Trang 17

- Hệ quản trị cơ sở dữ liệu phân tán đồng nhất: Là hệ quản trị cơ sở dữ liệu mà tất

cả các nút sử dụng cùng một loại hệ quản trị cơ sở dữ liệu

- Hệ quản trị cơ sở dữ liệu phân tán không đồng nhất: Là hệ quản trị cơ sở dữ liệu

mà có ít nhất một nút không cùng loại hệ quản trị cơ sở dữ liệu với hệ quản trị cơ sở dữliệu ở các nút còn lại

1.4.2 Kiến trúc hệ quản trị CSDL phân tán

1.4.2.1 Các hệ Client/Server

Các hệ quản trị CSDL Client/Server cung cấp kiến trúc hai lớp chức năng Server

và chức năng Client nhằm tạo ra sự dễ dàng trong việc quản lý tính phức tạp của các hệquản trị CSDL hiện đại và tính phức tạp của phân tán dữ liệu

Server thực hiện các công việc quản lý dữ liệu Nghĩa là tất cả xử lý và tối ưu hóatruy vấn, quản lý giao dịch và quản lý lưu trữ đều được thực hiện trên Server Client,ngoài ứng dụng và giao diện người sử dụng, có một module hệ quản trị Client quản lý

dữ liệu và khóa giao dịch được gửi đến Client Client và Server trao đổi với nhau bằngcâu lệnh SQL Cụ thể, Client chuyển truy vấn SQL đến Server, Server sẽ thực hiện vàtrả kết quả lại cho Client

Loại kiến trúc Client/Server đơn giản chỉ có một Server được truy nhập bởi nhiềuClient, gọi là đa Client – một Server Việc quản lý dữ liệu không khác so với CSDL tậptrung CSDL chỉ được lưu trên Server và có phần mềm quản lý nó Tuy nhiên, sự khácbiệt quan trọng so với các hệ thống tập trung là cách thực thi giao dịch và quản lý bộnhớ Cache [2]

Loại kiến trúc có nhiều Server trong hệ thống, được gọi là đa Client - đa Server

Có hai chiến lược quản lý: Hoặc Client quản lý kết nối của nó tới Server hoặc Client chỉbiết Server chủ của nó và liên lạc với các Server khác qua Server chủ khi có yêu cầu.Chiến lược thứ nhất làm đơn giản cho các Server nhưng lại gắn thêm nhiều trách nhiệmcho các máy Client Điều này dẫn đến một hệ thống được gọi là hệ máy khách tự phục

vụ Mặt khác, với chiến lược thứ hai, tập trung vào chức năng quản lý dữ liệu tại Server

Vì vậy, tính trong suốt của truy nhập dữ liệu được cung cấp tại giao diện Server

Mô hình CSDL logic Client/Server là duy nhất Mô hình mức vật lý của nó có thểphân tán Vì vậy, phân biệt giữa Client/Server và ngang hàng không phải ở mức độtrong suốt được cung cấp cho người sử dụng và cho ứng dụng mà ở mô hình kiến trúcđược dùng để nhận ra mức độ trong suốt

1.4.2.2 Các hệ phân tán ngang hàng

Mô hình Client/Server phân biệt Client (nơi yêu cầu dịch vụ) và Server (nơi phục

vụ các yêu cầu) Nhưng trong mô hình xử lý ngang hàng, các hệ thống tham gia có vaitrò như nhau Chúng có thể vừa yêu cầu dịch vụ từ một hệ thống khác hoặc vừa trởthành nơi cung cấp dịch vụ Một cách lý tưởng, mô hình tính toán ngang hàng cung cấpcho xử lý hợp tác giữa các ứng dụng có thể nằm trên các phần cứng hoặc hệ điều hànhkhác nhau Mục đích của môi trường xử lý ngang hàng là để hỗ trợ các CSDL

Trang 18

được nối mạng Như vậy, người sử dụng DBMS sẽ có thể truy cập tới nhiều CSDL không đồng nhất [2].

1.5 Thiết kế cơ sở dữ liệu phân tán

1.5.1 Các chiến lược phân tán dữ liệu

Có 3 chiến lược phân tán dữ liệu cơ bản: Sao lặp dữ liệu, phân mảnh dữ liệu và phương pháp hỗn hợp

+ Tăng hiệu năng truy vấn dữ liệu trên mạng với các truy vấn toàn cục vì dữ liệu sẽđược lấy từ các trạm cục bộ

+ Tránh việc kiểm tra toàn vẹn dữ liệu phức tạp

+ Giảm liên thông mạng

+ Tăng độ phức tạp trong việc bảo trì toàn vẹn

Phân mảnh dữ liệu: CSDL được chia thành các mảnh nhỏ liên kết với nhau

(không trùng lặp) Mỗi mảnh dữ liệu được đưa đến các trạm thích hợp để sử dụng

Phương pháp hỗn hợp: Kết hợp phương pháp phân mảnh và sao lặp dữ

liệu

1.5.2 Phân mảnh dữ liệu

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ảnhdọc và phân mảnh hỗn hợp [7]

Một sự phân mảnh là đúng đắn nếu thoả mãn ba điều kiện sau:

- Tính đầy đủ: 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 là 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ảnhcủa nó

Trang 19

- Tính phục hồi: Luôn có thể xây dựng lại được quan hệ tổng thể từ các mảnh đãcó

- Tính tách biệt: Nếu quan hệ R được phân mảnh ngang thành các mảnh Ri (i=1, 2,

…, n) và mục dữ liệu dj nằm trong một mảnh Ri thì nó sẽ không nằm trong mảnh Rk(k≠i), đảm bảo các mảnh phân mảnh rời nhau Trong trường hợp phân mảnh dọc, khóachính của quan hệ phải được lặp lại trong tất cả các mảnh Vì vậy, tính tách biệt trongphân mảnh dọc được hiểu không liên quan đến khóa chính của quan hệ

1.5.2.1 Phương pháp phân mảnh ngang

Phân mảnh ngang là việc chia quan hệ thành nhiều các nhóm bộ Kết quả của quátrình phân mảnh ngang là các quan hệ con, số lượng quan hệ con phụ thuộc vào điềukiện ràng buộc của các thuộc tính Các bộ trong các quan hệ con là tách biệt nhau Phânmảnh ngang thực chất là phép chọn quan hệ thỏa mãn một biểu thức điều kiện cho trước

Có hai loại phân mảnh ngang:

+ Phân mảnh ngang nguyên thủy: Là phân mảnh ngang được thực hiện trên các vị

từ của chính quan hệ đó

+ Phân mảnh ngang dẫn xuất: Là phân rã một quan hệ dựa trên các vị từ của quan

hệ khác

b) Thông tin cần thiết của phân mảnh ngang

- Thông tin về CSDL: Thông tin về CSDL là lược đồ toàn cục, quan hệ gốc và cácquan hệ con Trong ngữ cảnh này, cần biết được các quan hệ sẽ kết nối với nhau bằngphép nối hay bằng phép tính khác Với mục đích phân mảnh dẫn xuất, các vị từ đượcđịnh nghĩa trên quan hệ khác, ta thường dùng mô hình thực thể liên kết vì trong mô hìnhnày các mối liên hệ được biểu diễn bằng các đường nối có hướng (các cung) giữa cácquan hệ có liên hệ với nhau qua một nối Trong mô hình quan hệ thực thể, các mối liên

hệ giữa các đối tượng CSDL được mô tả rõ ràng Nhìn chung, mối quan hệ giữa các đốitượng trong CSDL thường mô tả bằng các mối quan hệ một - một, một – nhiều và quan

hệ nhiều – nhiều

Ví dụ 1.1: Trong Hình 1.3, mỗi một chức vụ có nhiều nhân viên giữ chức vụ đó.Đây là mối quan hệ một – nhiều được biểu diễn bằng một đường nối có hướng L1 trỏ từquan hệ CT (Chi trả) đến NV (nhân viên), mối quan hệ nhiều – nhiều được trỏ từ cácquan hệ NV (nhân viên) và DA (dự án) đến quan hệ PC (phân công) được biểu diễn bằnghai đường nối L2 và L3

Quan hệ tại điểm cuối của đường nối được gọi là quan hệ chủ (quan hệ đích) vàcác quan hệ tại điểm đầu được gọi là các quan hệ thành viên (quan hệ nguồn) Ánh xạOwner và Member từ tập đường nối tới tập quan hệ Khi cho trước một đường nối, hàm

sẽ trả về quan hệ đích hay quan hệ nguồn của đường nối Ví dụ trong Hình 1.3: Owner(L1) = CT và Member (L1) = NV

Trang 20

Ký hiệu lực lượng của mỗi quan hệ R là Card(R).

- Thông tin về ứng dụng: Để thực hiện được phân mảnh, cần phải có thông tin địnhtính và thông tin định lượng Thông tin định tính hướng dẫn cho hoạt động phân mảnh,thông tin định lượng chủ yếu sử dụng trong các mô hình cấp phát

Thông tin định tính cơ bản gồm các vị từ dùng trong câu truy vấn

Thông tin định lượng về ứng dụng cần phải có hai tập dữ liệu:

+ Độ tuyển hội sơ cấp (Minterm Selectivity): Số các bộ của quan hệ sẽ được chọn theo vị từ hội sơ cấp cho trước, ký hiệu chọn của hội sơ cấp m là sel(m)

+ Tần số ứng dụng người dùng truy cập dữ liệu

+ Tần số truy nhập hội sơ cấp là tần số truy nhập của hội sơ cấp m, ký hiệu là acc(m)

b) Phân mảnh ngang nguyên thủy

Phân mảnh ngang nguyên thuỷ được định nghĩa bằng một phép toán chọn trên cácquan hệ đích của một lược đồ của CSDL Vì thế, cho biết quan hệ R, các mảnh ngangcủa R là các Ri: Ri = σFi (R), 1 ≤ i ≤ n Trong đó, Fi là biểu thức đại số quan hệ Nếu Fi

có dạng chuẩn hội thì nó là vị từ hội sơ cấp (mi)

Trang 21

2 = σ

Địa điểm = “Hà Nội” (DA)

Trang 22

Một đặc tính quan trọng của các vị từ đơn giản là tính đầy đủ và tính cực tiểu.

- Tập các vị từ đơn giản Pr được gọi là đầy đủ nếu và chỉ nếu xác suất mỗi ứngdụng truy xuất đến một bộ bất kỳ thuộc về một mảnh hội sơ cấp nào đó được định nghĩatheo Pr đều bằng nhau

Ví dụ 1.3: Xét quan hệ phân mảnh DA được đưa ra trong Ví dụ 1.2 Nếu tập ứngdụng Pr = {Địa điểm = ”Hưng Yên”, Địa điểm = ”Hà Nội ”, Địa điểm = ”Huế”, Ngânsách 200000} thì Pr không đầy đủ vì có một số bộ của DA không được truy xuất bởi vị

từ Ngân sách 200000 Để tập vị từ này đầy đủ, cần phải xét thêm vị từ Ngân sách

>200000 vào Pr Vậy Pr = {Địa điểm = ”Hưng Yên”, Địa điểm = ”Hà Nội”, Địa điểm =

”Huế”, Ngân sách 200000 , Ngân sách > 200000} là đầy đủ bởi vì mỗi bộ được truy xuấtbởi đúng hai vị từ p của Pr Nếu bớt đi một vị từ bất kỳ trong Pr thì tập còn lại không đầyđủ

Cần phải đảm bảo tính đầy đủ vì các mảnh thu được theo tập vị từ đầy đủ sẽ nhấtquán về mặt logic do tất cả chúng đều thoả vị từ hội sơ cấp Chúng cũng đồng nhất vàđầy đủ về mặt thống kê theo cách mà ứng dụng truy xuất chúng Vì thế, sẽ dùng một tậphợp gồm các vị từ đầy đủ làm cơ sở của phân mảnh ngang nguyên thủy

- Đặc tính thứ hai của tập các vị từ là tính cực tiểu Vị từ đơn giản phải có liên đớitrong việc xác định một mảnh Một vị từ không tham gia vào một phân mảnh nào thì cóthể coi vị từ đó là thừa Nếu tất cả các vị từ của Pr đều có liên đới thì Pr là cực tiểu

Trang 23

bỏ những vị từ thừa để có tập vị từ Pr’ là cực tiểu và Pr’ cũng là tập đầy đủ với Pr.

Thuật toán COM_MIN: Cho phép tìm tập các vị từ đầy đủ và cực tiểu Pr’ từ Pr.Quy tắc 1: Quy tắc cơ bản về tính đầy đủ và cực tiểu, nó khẳng định rằng một quan

hệ hoặc một mảnh được phân hoạch thành ít nhất hai phần và chúng được truy xuất khácnhau bởi ít nhất một ứng dụng

Thuật toán 1.1 COM_MIN

Input: R: Quan hệ; Pr: Tập các vị từ đơn giản;

Output: Pr’: Tập các vị từ cực tiểu và đầy đủ;

Trang 24

Bước hai của việc thiết kế phân mảnh nguyên thủy là suy dẫn ra tập các vị từ hội

sơ cấp có thể được định nghĩa trên các vị từ trong tập Pr’ Các vị từ hội sơ cấp này xácđịnh các mảnh cấp phát

Bước ba của quá trình thiết kế là loại bỏ một số mảnh vô nghĩa Điều này đượcthực hiện bằng cách xác định những vị từ mâu thuẫn với tập các phép kéo theo I Chẳnghạn nếu Pr’ = {p1, p2}, trong đó:

p1: att = value_1

p2: att = value_2

Và miền biến thiên của att là {value_1, value_2}, rõ ràng I chứa hai phép kéo theovới khẳng định:

I1: (att = value_1) (att = value_2)

I2: (att = value_1) (att = value_2)

Bốn vị từ hội sơ cấp được định nghĩa theo Pr’ như sau:

m1: (att = value_1) (att = value_2)

m2: (att = value_1) (att = value_2)

m3: (att = value_1) (att = value_2)

m4: (att = value_1) (att = value_2)

Trong trường hợp này các vị từ hội sơ cấp m1, m4 mâu thuẫn với các phép kéo theo

I và vì thế bị loại ra khỏi M

Thuật toán phân mảnh ngang nguyên thủy được trình bày trong thuật toán 1.2

Thuật toán 1.2 PHORIZONTAL

Input: R: Quan hệ; Pr: Tập các vị từ đơn giản;

Output: M: Tập các vị từ hội sơ cấp;

Trang 25

End {PHORIZONTAL}

Ví dụ 1.5: Xét quan hệ DA Giả sử có hai ứng dụng: Ứng dụng đầu tiên được đưa

ra tại ba vị trí và cần tìm tên và ngân sách của các dự án khi cho biết vị trí Câu truy vấnđược viết theo cú pháp SQL là:

SELECT TênDA, Ngân sách

WHERE địa điểm=giá trị

Đối với ứng dụng này, các vị từ đơn giản có thể được dùng là:

p1: Địa điểm = ”Hưng Yên”

p2: Địa điểm = ”Hà Nội”

p3: Địa điểm = ”Huế”

Ứng dụng thứ hai là những dự án có ngân sách dưới 200.000 đô la được quản lý tạimột vị trí, còn những dự án có ngân sách lớn hơn được quản lý tại một vị trí thứ hai Vìthế các vị từ đơn giản phải được sử dụng để phân mảnh theo ứng dụng thứ hai là:

p4: ngân sách ≤ 200000

p5: ngân sách > 200000

Nếu kiểm tra bằng thuật toán COM_MIN, tập Pr’ = {p1, p2, p3, p4, p5} rõ ràng đầy

đủ và cực tiểu

Dựa trên Pr’, có thể định nghĩa sáu vị từ hội sơ cấp sau đây tạo ra M:

m1: (Địa điểm =”Hưng Yên”) (ngân sách ≤ 200000)

m2: (Địa điểm =”Hưng Yên”) (ngân sách > 200000)

m3: (Địa điểm =”Hà Nội”) (ngân sách ≤ 200000)

m4: (Địa điểm =”Hà Nội”) (ngân sách > 200000)

m5: (Địa điểm =”Huế”) (ngân sách ≤ 200000)

m6: (Địa điểm =”Huế”) (ngân sách > 200000)

Đây không phải là các vị từ hội sơ cấp duy nhất có thể được tạo ra Chẳng hạn vẫn

Cho phép loại bỏ những vị từ hội sơ cấp này và còn lại m1 đến m6

Một số mảnh được định nghĩa theo M = {m1,…,m6} có thể rỗng nhưng chúng

Trang 26

vẫn là các mảnh Kết quả phân mảnh nguyên thuỷ cho DA là tạo ra sáu mảnh FDA = {DA1, DA2, DA3, DA4, DA5, DA6}, ở đây có hai mảnh rỗng là {DA2, DA5}

DA1

MDA

MDA

MDAP3

MDAP4

c) Phân mảnh ngang dẫn xuất

Phân mảnh ngang dẫn xuất được định nghĩa trên một quan hệ thành viên của đường nối dựa theo phép toán chọn trên quan hệ đích của đường nối đó

Như vậy, nếu cho trước một đường nối L, trong đó owner (L) = S và member(L)

= R, và các mảnh ngang dẫn xuất của R được định nghĩa là:

Ri = R Si , 1 ≤ i ≤ w

Trong đó, w là số lượng các mảnh được định nghĩa trên R, và Si = Fi(S) với Fi là

công thức định nghĩa mảnh ngang nguyên thuỷ Si

Ví dụ 1.6: Xét đường nốiNV

MNV

E1

E2E3E4E5E6E7E8

Trang 27

Ta có thể nhóm các kỹ sư thành hai nhóm tùy theo lương: Nhóm có lương từ

Trang 28

30.000 đôla trở lên và nhóm có lương dưới 30.000 đô la Hai mảnh Nhân viên 1 vàNhân viên 2 được định nghĩa như sau:

Kỹ sư điệnPhân tích hệ thống

Kết quả phân mảnh ngang dẫn xuất của quan hệ NV như sau:

Để thực hiện phân mảnh ngang dẫn xuất, ta cần:

1 Tập các phân hoạch của quan hệ đích (Ví dụ: CT1, CT2)

+ Phân mảnh ngang dẫn xuất: Định nghĩa quy tắc đầy đủ như sau:

R là quan hệ thành viên của một đường nối mà chủ nhân là quan hệ S Gọi A là thuộc tính nối giữa R và S, vậy thì với mỗi bộ t của R, phải có một bộ t’ của S sao cho

Trang 29

23trong cả phân mảnh ngang nguyên thủy lẫn dẫn xuất Vì thế, một quan hệ R với phân mảnh Fr = {R1, R2,…,Rm}, ta có: R = Ri , Ri FR

a Khái niệm phân mảnh dọc.

Phân mảnh dọc cho một quan hệ R sinh ra các mảnh R1, R2, , Rr, mỗi mảnh chứamột tập con thuộc tính của R và khoá của R Mục đích của phân mảnh dọc là phân chiamột quan hệ thành một tập các quan hệ nhỏ hơn để nhiều ứng dụng chỉ cần chạy trênmột mảnh Một phân mảnh “tối ưu” là phân mảnh sinh ra một lược đồ phân mảnh chophép giảm tối đa thời gian thực thi các ứng dụng chạy trên mảnh đó

b Thông tin cần thiết của phân mảnh dọc:

 Ma trận giá trị sử dụng thuộc tính:

Gọi Q = {q1, q2,…,qq} là tập các truy vấn của người dùng (các ứng dụng) sẽ thựchiện trên quan hệ R(A1, A2,…,An) Khi đó, ma trận giá trị sử dụng thuộc tính có q hàng

và n cột Các phần tử được ký hiệu là giá trị câu truy vấn qi, i = 1…q sử dụng thuộc tính

Aj, j = 1…n, ký hiệu là use(qi, Aj) được định nghĩa như sau:

1 Nếu thuộc tính Aj được truy vấn qi tham chiếuuse(qi, Aj) =

0 Trong trường hợp ngược lại

Ví dụ 1.7: Xét quan hệ DA, giả sử rằng các ứng dụng sau đây chạy trên quan hệ DA.Mỗi trường hợp được đặc tả bằng SQL

q1: Tìm ngân sách của một dự án, cho biết mã của dự án

SELECT Ngân sách

WHERE MDA = giá trị

q2: Tìm tên và ngân sách của tất cả các dự án

SELECT TênDA, ngân sách

q3: Tìm tên của các dự án được thực hiện tại một thành phố đã cho

SELECT TênDA

WHERE địa điểm = giá trị

q4: Tìm tổng ngân sách dự án của mỗi thành phố

SELECT SUM (ngân sách)

WHERE Địa điểm = giá trị

Trang 30

Ký hiệu A1 = MDA, A2 = TênDA, A3 = Ngân sách, A4 = địa điểm Khi đó, matrận biểu diễn giá trị sử dụng các thuộc tính được biểu diễn như sau:

q1

q2

q3

q4

 Ma trận tương quan (Affinity) của thuộc tính

Các thuộc tính thường được truy nhập chung với nhau nên cần phải định nghĩa mộtgiá trị để chỉ ra mức độ liên hệ giữa các thuộc tính, được gọi là sự tương quan của cácthuộc tính

Số đo tương quan giữa hai thuộc tính Ai và Aj theo quan hệ R (A1, A2 An) ứng vớitập truy vấn Q = {q1, q2…qq} được định nghĩa như sau:

aff(A i , A j )= ref l (q k ) acc l (q k )

k[(use(qk, Ai )ʌ use(qk, Aj) l Sl ]

Trong đó, refl (qk) là số truy xuất các thuộc tính (Ai, Aj) cho qk tại vị trí Sl vàaccl(qk) là số đo tần số truy xuất ứng dụng qk tại vị trí Sl Kết quả tính toán là một matrận vuông cấp n x n, phần tử (i, j) là số đo sự tương quan của các thuộc tính Ai, Aj

Ví dụ 1.8: Giả sử rằng refl (qk) = 1 cho tất cả qk và Rl Nếu tần số ứng dụng là:Acc1(q1) = 15

Trang 31

Input: AA - Ma trận tương quan của các thuộc tính;

Output: CA - Ma trận tụ tương quan sau khi đã sắp xếp lại các hàng các cột; Begin

Tính cont(A

index-1,A

index, A

index+1);

Loc nơi đặt, được cho bởi giá trị cont lớn nhất;

For i: = index downto loc do CA( , j) CA( , j-1);

CA( , loc) AA( , index);

index index+1;

End Sắp thứ tự các hàng theo thứ tự tương đối của cột.

End {BEA}

Ma trận tương quan thuộc tính AA có tính đối xứng, số đo tương quan chung

AM được định nghĩa như sau:

AM= n i=1 n j=1 aff(A i , A j )[aff(A i , A j-1 )+aff(A i , A j+1 )]

AM = n i=1 n

j=1 [aff(A i , A j ) aff(A i , A j-1 )+aff(A i , A j ) aff(A i , A j+1 )]

= n j=1 [ n i=1 aff(A i , A j ) aff(A i , A j-1 )+ n i=1 aff(A i , A j ) aff(A i , A j+1 )]

Cầu nối giữa hai thuộc tính Ax, và Ay được định nghĩa như sau:

Bond(A x , A y )= n z=1 aff(A z , A x )aff(A z , A y )

Với A1 A2 …Ai-1 thuộc nhóm AM’ và AiAj Aj+1 …An thuộc nhóm AM”

Khi đó độ đo tương quan chung cho những thuộc tính này có thể viết lại:

AM old = AM’ + AM”+ bond(A i-1 , A i ) + bond(A i , A j ) + bond(A j , A i )+ bond(A j , A j+1 )

= n l=1 [ bond(A l , A l-1 )+bond(A i , A l+1 )] + n l=i+1 [bond(A l , A l-1 ) + bond(A i , A l+1 )] + 2bond(A i , A l ))

Số đo tương quan chung mới khi đặt thuộc tính Ak giữa các thuộc tính Ai và Ajtrong ma trận tụ tương quan được tính toán như sau:

AM new = AM’ + AM”+ bond(A i , A k ) + bond(A k , A i ) + bond(A k , A j )+ bond(A j , A k )

Trang 32

= AM’ + AM”+ 2bond(A i , A k ) + 2bond(A k , A j )

Vì thế, đóng góp thực cho số đo tương quan chung khi đặt thuộc tính Ak giữa Ai và Aj

là: Cont(A i , A k , A j ) = AM new - AM old = 2Bond(A i , A k )+ 2Bond(A k , A j ) - 2Bond(A i , A j )

Vị trí Ak nào cho số đóng góp tương quan chung AM lớn nhất sẽ được chọn để đặt

và tiếp tục chọn vị trí đặt tiếp theo cho đến khi không còn cột nào trống

Cuối cùng sắp xếp lại các hàng theo thứ tự của các cột trong ma trận CA kết quả.Thuật toán kết thúc

Ví dụ 1.9: Xét quá trình gom tụ các thuộc tính của quan hệ DA (Dự án) và dùng

ma trận tương quan thuộc tính AA trong Ví dụ 1.8

Trước tiên, chép các cột 1 và 2 của ma trận AA vào ma trận CA và bắt đầu thựchiện từ cột thứ ba Có 3 vị trí có thể đặt được cột 3 là: (3-1-2), (1, 3, 2) và (1, 2, 3).Đóng góp số đo tương quan chung của mỗi khả năng này được tính như sau:

A1

A3 A

2

A4(c) Đặt A4 bên phải A2 (d) Hoán vị hàng

Hình 1.4: Ma trận tụ tương quan CA

Trang 33

Thuật toán phân mảnh:

Mục đích của việc phân mảnh dọc quan hệ là xác định các tập thuộc tính đượctruy nhập bởi các tập ứng dụng Xét ma trân thuộc tính tụ:

A

i+1 :

BA

:

AnNếu một điểm nằm trên đường chéo được chọn, hai tập thuộc tính sẽ được xácđịnh Một tập {A1, A2, , Ai} nằm tại góc trên trái và tập thứ hai {Ai+1, Ai+2, , An} nằmtại góc bên phải và bên dưới điểm này Gọi 2 tập lần lượt là TA, BA

Ký hiệu Q={q1, q2, ,qq}là tập các ứng dụng Khi đó:

- AQ(qi) = {Aj | use(qi, Aj) = 1}: Tập các thuộc tính được ứng dụng qi truy nhập

- TQ = {qi | AQ(qi) TA}: Tập các ứng dụng truy nhập trên các thuộc tính TA

- BQ = {qi | AQ(qi) BA}: Tập các ứng dụng truy nhập trên các thuộc tính BA

- OQ = Q - {TQ BQ}: Tập các ứng dụng truy nhập trên BA và TA

Nếu có n thuộc tính trong quan hệ thì sẽ có n-1 vị trí có thể là điểm phân chia trênđường chéo chính của ma trận tụ tương quan CA Vị trí tốt nhất để phân chia là vị trísinh ra tập TQ và BQ sao cho tổng truy nhập từng mảnh là tối đa và tổng truy nhập cảhai mảnh là tối thiểu Vì thế, ta định nghĩa các phương trình chi phí như sau:

CQ = ∑ ∑ ref j (q i ) acc j (q i )

qi Q Sj CTQ = ∑ ∑ ref j (q i ) acc j (q i )

Thuật toán 1.4: Thuật toán phân mảnh dọc PARTITION.

Giả thiết thủ tục chuyển đổi SHIFT đã được cài đặt.

Trang 34

Input: CA: Ma trận tụ tương quan

z CTQ i *CBQ i – (COQ i ) 2 ; if z > best then Begin

best z ; Ghi lại điểm phân chia trong SHIFT ; End

End Gọi SHIFT(CA);

End

While không còn SHIFT

Xây dựng lại ma trận theo vị trí chuyển đổi

R 1 TA (R) K; {K là tập thuộc tính khoá chính của R}

R 2 BA (R) K;

F {R 1 , R 2 };

End {partition}

Trang 35

DA2={MDA, TênDA, Địa điểm}

(MDA là thuộc tính khoá của Dự án)

Kiểm tra tính đúng đắn:

- Tính đầy đủ: Được đảm bảo bằng thuật toán PARTITION vì mỗi thuộc tính của

quan hệ toàn cục được gán cho một mảnh Tập các thuộc tính của quan hệ toàn cục đúngbằng hợp của các thuộc tính các mảnh thành viên

- Tính khôi phục: Quan hệ toàn cục ban đầu R có thể được khôi phục lại bằng

các phép kết nối bằng nhau trên các thuộc tính khóa, giả sử quan hệ R có phân mảnhdọc FR = {R1, R2, , Rr} và tập các thuộc tính khoá chính K Trong mỗi quan hệ Richứa các thuộc tính khóa K và là các quan hệ đầy đủ Khi đó:

Tính đúng đắn của phân mảnh hỗn hợp được đảm bảo, vì chiến lược phân mảnhnày dựa theo phân mảnh ngang và phân mảnh dọc, đảm bảo tính đúng đắn như đã trìnhbày ở trên Để khôi phục quan hệ toàn cục trong trường hợp phân mảnh hỗn hợp, có thểbắt đầu từ các nút lá của cây phân hoạch và dịch chuyển lên bằng cách thực hiện cácphép kết nối và phép hợp (xem Hình 1.6) Phân mảnh hỗn hợp đầy đủ nếu các mảnh lá

và các mảnh trung gian là đầy đủ Tương tự, có thể kiểm tra tính tách biệt của chiến lượcphân mảnh hỗn hợp Tính tách biệt được đảm bảo khi các mảnh lá và mảnh trung giancũng tách biệt

Trang 36

Cơ sở dữ liệu phân tán ngày càng trở nên quan trọng, tính cần thiết ngày càng cao

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ácmạ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ệuphân tán đó là: Cơ sở dữ liệu phân tán được xây dựng để khắc phục các hạn chế của cơ

sở dữ liệu tập trung và nó phù hợp hơn với sự phát triển mở rộng của các cơ cấu tổ chức

và vấn đề kinh tế Kỹ thuật cơ sở dữ liệu phân tán được mở rộng và phát triển từ kỹ thuậtcủ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 đòihỏi các giải pháp khác và một số giải pháp hoàn toàn mới

Có nhiều cách thiết kế cơ sở dữ liệu phân tán, mỗi cách thiết kế có ưu nhược điểmriêng, tùy vào yêu cầu, đặc điểm của từng hệ thống mà áp dụng cho phù hợp Đặc điểmnổi bật nhất của cơ sở dữ liệu phân tán là tính trong suốt Tính trong suốt phân tán cungcấ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 trongsuố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 sử dụng không biết được sự phân tán dữliệu

Trang 37

31Chương 2TỐI ƯU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU PHÂN TÁN

2.1 Vấn đề tối ưu hóa xử lý truy vấn

Chức năng chính của bộ xử lý truy vấn là chuyển đổi một truy vấn mức cao (phéptính quan hệ) sang một truy vấn tương đương (đại số quan hệ) Quá trình chuyển đổicùng cho một kết quả như nhau [4]

Có nhiều giải pháp chuyển đổi, mỗi giải pháp khác nhau có thể tiêu thụ tài nguyêncủa mạng máy tính khác nhau Vì vậy, cần lựa chọn một giải pháp thực hiện sao cho tiêuthụ tài nguyên ít nhất

Có hai phương pháp tối ưu cơ bản: Phương pháp biến đổi một câu truy vấn mứccao thành câu truy vấn tương đương ở mức thấp hơn dưới dạng biểu thức đại số quan hệ

và phương pháp chọn lựa trong số các câu truy vấn dạng biểu thức đại số quan hệ tươngđương một biểu thức có chi phí thời gian thực hiện và chi phí sử dụng tài nguyên là ítnhất

Ví dụ 2.1: Xét các quan hệ sau:

NV( MNV, TênNV, Chức vụ)

PC (MNV, MDA, Nhiệm vụ, Thời gian)

Và một câu truy vấn đơn giản sau:

“Cho biết tên của các nhân viên hiện đang quản lý một dự án”

Biểu thức truy vấn bằng phép tính quan hệ theo cú pháp của SQL là:

Trong trường hợp CSDL tập trung, việc chuyển đổi câu truy vấn sang các phép đại

số quan hệ được tiến hành một cách thuận lợi Chức năng chính của bộ xử lý tập trung làlựa chọn phép truy vấn đại số quan hệ tối ưu trong các phép đại số tương đương

Trong môi trường phân tán, các phép đại số quan hệ không đủ để mô tả các giảipháp thực hiện Nó phải được cung cấp thêm các thao tác để chuyển đổi dữ liệu giữa các

vị trí Việc lựa chọn thứ tự các thao tác đại số quan hệ, bộ xử lý truy vấn cũng phải lựachọn các vị trí tốt nhất để xử lý dữ liệu và đường truyền thông mà dữ liệu sẽ lưu chuyển.Việc này sẽ làm tăng số các giải pháp lựa chọn cần lựa chọn trong số đó

Trang 38

một giải pháp thực hiện Vì vậy, việc xử lý phân tán càng trở nên khó khăn hơn.

Ví dụ 2.2: Minh họa tầm quan trọng của việc lựa chọn vị trí và cách truyền dữ liệu

của một câu truy vấn đại số Xét câu truy vấn của Ví dụ 2.1:

2 =

MNV > “E3”(NV)PC

1 =

MNV “E3” (PC) PC

2 =

MNV “E3” (PC)

Các mảnh PC1, PC2, NV1, NV2 theo thứ tự được lưu tại các vị trí 1, 2, 3 và 4 và

kết quả được lưu tại vị trí 5 như Hình 2.1 và Hình 2.2

PC 1

Trang 39

Vị trí 1

Hình 2.2: Giải pháp BMũi tên đi kèm ký hiệu quan hệ để chỉ hệ thống sẽ truyền quan hệ kết quả từ vị

Trang 40

trí i đến vị trí j Ví dụ trong chiến lược A, tại vị trí 1, sau khi thực hiện phép chọn trênquan hệ PC1 thỏa mãn biểu thức Nhiệm vụ = “Quản lý”, kết quả PC’1 sẽ được truyền từ

vị trí 1 sang vị trí 3 để tham gia phép kết nối với quan hệ NV1

Hai giải pháp A và B thực hiện truy vấn là tương đương Trong đó:

- Giải pháp A: Sử dụng hai quan hệ PC và NV được phân mảnh theo cùng mộtcách để thực hiện lựa chọn và kết nối các thao tác một cách song song các phép chọn vàkết nối

- Giải pháp B: Tập trung tất cả các dữ liệu trong toán hạng tại vị trí kết quả trước khi xử lý truy vấn

Để có thể đánh giá chi phí nguồn tài nguyên của hai giải pháp trên, ta ký hiệu:

- Chi phí để thao tác truy xuất nội bộ là một đơn vị, ký hiệu là tupacc

- Chi phí để truyền nội bộ là 10 đơn vị, ký hiệu là tuptrans

- Giả sử lực lượng của quan hệ NV và PC là 500 và 1000 bản ghi

- Giả sử có 40 quản lý trong quan hệ PC

Khi đó, tổng chi phí của giải pháp A là:

1.Tạo ra PC’ bằng cách chọn trên PC cần (20+20)* tupacc

2 Truyền PC’ đến vị trí của NV cần (20+20)*tuptrans

3 Tạo NV’ bằng cách nối PC’ và NV’ cần (20+20)*tupacc*2

4 Truyền NV’ đến vị trí nhận kết quả cần (20+20)*tuptrans

Việc đánh giá chi phí sử dụng tài nguyên mạng có thể theo tổng thời gian xử lý cácthao tác truy vấn tại các vị trí khác nhau và việc truyền dữ liệu giữa các vị trí [9] hoặcđánh giá theo chỉ số thời gian trả lời truy vấn Các thao tác có thể được thực hiện đồngthời song song tại các vị trí khác nhau, vì vậy thời gian đáp ứng có thể nhỏ hơn tổng chiphí Chi phí truyền thông là một trong các nhân tố quan trọng và được quan tâm trongCSDL phân tán

Ngày đăng: 11/11/2020, 22:20

TỪ KHÓA LIÊN QUAN

w