Tải bản đầy đủ (.pdf) (107 trang)

Luận văn thạc sỹ Tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.18 MB, 107 trang )

MỞ ĐẦU
1. Cơ sở thực tiễn của đề tài
1.1. Cơ sở khoa học của đề tài
Với sự phát triển nhanh chóng của công nghệ thông tin các ứng dụng cơ sở dữ
liệu đã xâm nhập vào hoạt động kinh tế xã hội đem lại những hiệu quả vô cùng to lớn.
Xã hội ngày các phát triển nhu cầu thu thập, lưu trữ, xử lý và trao đổi thông tin
ngày càng tăng. Trên thực tế các công ty, doanh nghiệp, đơn vị kinh doanh ở những địa
điểm 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 đó hoạt động. Khi dữ liệu không còn tập trung thì việc
làm thế nào để quản lý, truy xuât cơ sở dữ liệu 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 được đặt ra. Cơ sở dữ liệu phân tán được ra
đời để giải quyết vấn đề đó.
Khi 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à xử lý thông tin như thế nào để giảm chi phí một các tối thiểu một trong những
giải pháp có tính khả thi là phải tối ưu hóa câu lênh khi truy vấn dữ liệu.
Vấn đề tối ưu truy vấn luôn là một vấn đề quan trọng hàng đầu đối với CSDL,
đặc biệt với các hệ CSDL lớn. So với môi trường tập trung, vấn đề tối ưu truy vấn
trong môi trường phân tán quan trọng và phức tạp hơn bởi vì có rất nhiều tham số ảnh
hưởng đến hiệu năng của các truy vấn phân tán. Các quan hệ có mặt trong truy vấn
phân tán có thể bị phân mảnh, bị nhân bản, phải tốn kém thêm nhiều chi phí cho quá
trình truyền thông giữa các vị trí được truy xuất khác nhau. Như vậy, 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.
Từ những nhận định nêu trên, tôi chọn luận văn cao học là “Tối ưu hóa truy
vấn trong cơ sở dữ liệu phân tán”.

1


1.2. Ý nghĩa thực tiễn của đề tài
Góp phần vào việc thiết kế cơ sở dữ liệu phân tán phục vụ cho việc truy vấn có


hiệu quả.
Làm tài liệu nghiên cứu, tham khảo cho giảng viên, sinh viên Công nghệ thông
tin trong trường cao đẳng Sơn La.
2. Nội dung nghiên cứu
2.1. Mục tiêu của đề tài
Nghiên cứu lý thuyết CSDL, CSDL phân tán, các kỹ thuật truy vấn trong cơ sở
dữ liệu.
Tổng hợp các kết quả đã công bố về truy vấn tối ưu và đề xuất một sô cải tiến
thực hiện tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán
Cài đặt thực nghiệm môt thuật toán tối ưu, thực hiện truy vấn vào cơ sở dữ liệu
phân tán và đánh giá kết quả khi thực hiện.
2.2. Nội dung của đề tài
Mục đích của luận văn đề cập đến hai phần
 Phần lý thuyết: Nắm rõ trình bày những cơ sở lý thuyết liên quan đến cơ sơ dữ
liệu và cơ sở dữ liệu phân tán như:
 Giới thiệu tổng quan về cơ sở dữ liệu phân tán
 Một số nguyên lý chung tối ưu hóa truy vấn
 Trình bày các phương pháp, các thuật toán tối ưu hóa truy vấn
 Phần thực nghiệm cài đặt: Cài đặt thực nghiệm một thuật toán tối ưu, thực hiện
truy vấn vào cơ sở dữ liệu phân tán, đánh giá kết quả thực hiện.
3. Phương pháp nghiên cứu
 Tìm kiếm, tham khảo, nghiên cứu lý thuyết cơ sở dữ liệu, cơ sở dữ liệu phân tán,
các kỹ thuật truy vấn trên sách báo đã công bố.
 Tổng hợp các kết quả đã truy vấn về truy vấn tối ưu và đề xuất một số cải tiến
thực hiện tối ưu hóa truy vấn phấn tán.
2


4. Phạm vi nghiên cứu
Đề tài nghiên cứu về vấn đề cơ bản của cơ sở dữ liệu 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 và
cài đặt thử nghiệm một thuật toán tối ưu, 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.
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 các phương pháp, thuật toán tối ưu hóa truy vấn
- Cài đặt thử nghiệm một thuật toán tối ưu hóa truy vấn

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ơ sở dữ liệu phân tán là một tập hợp các dữ liệu phụ thuộc logic lẫn nhau của
cùng một hệ thống và được lưu trữ trên các trạm 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 nhập tới cơ sở dữ liệu lớn trên mạng trong mỗi hệ
thống đó mỗi máy tính quản lý một cơ sở dữ liệu thành phần được gọi là một node hoặc
site [4].
Hệ quản trị cơ sở dữ liệu phân tán (DBMS) là một phần mềm quản trị cơ sở dữ
liệu, đảm bảo trong suốt với người sử dụng và cho phép tính tự trị nghĩa là một cơ sở
dữ liệu thành phần vẫn được quản trị độc lập và riêng biệt.
Đị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 chất 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 được cơ sở dữ liệu phân tán với cơ sở dữ liệu tập trung.
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 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. 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à cơ sở dữ liệu vật lý riêng biệt
được tích hợp vật lý với nhau làm cho nhiều người 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
- Trong suốt mạng - phân tán: Hệ quản trị cơ sở dữ liệu 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 mảnh
2. Tăng độ tin cậy và khả năng sẵn sàng

4


Độ 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ề hệ cơ sở dữ liệu phân tán trên một trạm, một trạm có
thể có sự cố trong khi các trạm 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ụ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.
3. 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ể 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 sự cạnh tranh
CPU, giảm các phục vụ I/O và giảm tương tranh truy nhập trên mạng. Dữ liệu được
phân tán trên mạng 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 giao tác hơn số
các giao tác trên cơ sở dữ liệu tập trung vì vậy cũng tăng hiệu suốt hệ thống.
4. 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ặc thêm bộ xử lý
trong môi trường phân tán là dễ hơn vì cũng chỉ thêm các cơ sở dữ liệu thành phần.
1.1.3. Những nhược điểm của cơ sở dữ liệu phân tán [3]
1. Giá thành và sự phước tạp của phần mềm
Các phần mềm sử dụng trong môi trường cơ sở dữ liệu phân tán rất phước tạp,
đặc biệt là phần mềm sử dụng cho việc quản trị môi trường cơ sở dữ liệu phân tán.
2. Tiến trình kết nối các vị trí dữ liệu cục bộ khó khăn, phiền phức
Các vị trí cục bộ phải trao đổi thông điệp với nhau và thực hiện thêm các tính
toán phức tạp để đảm bảo sự kết nối đúng đắn giữa những vị trí đó.
3. Sự toàn vẹn dữ liệu
Một sản phẩm mang nhiều tính phức tạp như vậy dĩ nhiên phải làm gia tăng khả
năng xáo trộn trong việc đảm bảo tính toàn vẹn cho dữ liệu.

5


4. Tốc độ truy cập sẽ trở lên chậm chạp một cách đáng kể
Nếu dữ liệu không được phân tán thích hợp theo đúng yêu cầu sử dụng hoặc các
bảng thiết lập truy vấn được thiết lập không đúng đắn thì việc tìm kiếm và xử lý cũng
sẽ xảy ra khá chậm chạp.
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 tán
- Cho phép xử lý dữ liệu trên hệ cơ sở dữ liệu phân tán giống như đối với cơ sở dữ
liệu tập trung.
- Người sử dụng không cần biết: dữ liệu đã được phân mảnh như thế nào, các bản
sao dữ liệu để ở đâu, vị trí vật lý lưu trữ dữ liệu ở đâu.
- Trong suốt phân tán thể hiện:

Trong suốt địa điểm: Người sử dụng không cần biết lưu trữ vật lý của dữ
liệu ở đâu trong truy vấn chỉ cần chỉ ra tên đoạn mà không cần chỉ ra vị trí.
Trong suốt tên: Khi một đối tượng đã được đặt tên thì có thể truy nhập chính
xác không cần đặc tả thêm.
Trong suốt bản sao: Sự nhân bản là quá trình sao chép và duy trì dữ liệu
trong hệ cơ sở dữ liệu phân tán. Cùng một dữ liệu (được lưu trữ vật lý tại một vị
trí) có thể sử dụng được trên nhiều vị trí khác nhau. Các bản sao có thể được lưu
trữ trên nhiều trạm làm tăng hiệu suất, độ tin cậy và tính sẵn sàng của hệ thống.
Các ứng dụng có thể truy cập dữ liệu tại các trạm mà không cần phải truy cập từ
xa giảm truyền tải trên mạng lớn. Hệ thống cho phép tiếp tục thực hiện nếu như các
trạm từ xa có sự cố. Trong suốt bản sao đảm bảo người sử dụng không biết đó là các
bản sao vì dữ liệu luôn được cập nhật và đồng bộ với dữ liệu gốc.
Trong suốt phân mảnh: Một quan hệ trong cơ sở dữ liệu phân tán có thể phân
mảnh ngang hoặc phân mảnh dọc nghĩa là được tách thành các bộ dữ liệu hoặc các
quan hệ con và lưu trữ trên nhiều trạm khác nhau. Trong suốt p hân mảnh cho
phép người sử dụng không cần biết có sự phân mảnh, các truy vấn dữ liệu vẫn

6


được viết như cơ sở dữ liệu tập trung.
1.2.2 Trong suốt giao dịch
Cơ sở dữ liệu phân tán cho phép một giao dịch có thể cập nhật, sửa đổi dữ
liệu trên các trạm khác nhau. Để đảm bảo dữ liệu nhất quán trên toàn hệ thống,
các trạm trong giao dịch chỉ commit khi tất cả các trạm đã commit thành công
hoặc roll back khi một trạm bị thất bại.
1.2.3 Trong suốt thất bại
Đảm bảo tại một trạm của hệ thống bị hỏng thì hệ thống vẫn làm việc bình
thường (do cơ chế tạo bản sao hoặc làm việc trên các trạm không bị sự cố). Nếu
mạng hoặc hệ thống có sự cố trong khi commit của giao dịch cơ sở dữ liệu phân

tán thì giao dịch đó được giải quyết tự động và trong suốt theo nghĩa khi mạng
hoặc hệ thống khôi phục thì tất các các trạm này hoặc là commit hoặc là roll back
lại giao tác đó.
1.2.4 Trong suốt thao tác
Cho phép các câu lệnh thao các dữ liệu đơn giản để truy nhập được các cơ
sở dữ liệu tại trạm cục bộ hoặc trạm từ xa. Các thao tác xử lý dữ liệu từ xa không
phức tạp và vẫn đảm bảo vẫn giống như khi thao tác dữ liệu trên hệ cơ sở dữ liệu
không phân tán.
1.2.5. Trong suốt về tính không thuần nhất
Cho phép hỗn hợp nhiều hệ quản trị cơ sở dữ liệu khác nhau với các khả năng
trao đổi dữ liệu, xử lý cập nhật dữ liệu, xử lý giao tác phân tán trên toàn hệ thống.
1.3.

Kiến trúc tham chiếu của cơ sở dữ liệu phân tán
Đây là một kiến trúc tường minh cho tất cả các cơ sở dữ liệu phân tán, tuy vậy

kiến trúc này thể hiện tổ chức của bất kỳ một cơ sở dữ liệu phân tán nào [3].
Lược đồ tổng thể (Global schema) là mô tả và thống 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.

7


Mảnh (fragment) mối quan hệ tổng thể có thể chia thành một vài phần không gối
lên nhau được gọi là mảnh. Lược đồ phân mảnh (Fragment schema) định nghĩa ánh xạ
giữa các quan hệ tổng thể và các phân mảnh. Ánh xạ này là một chiều: vài mảnh tương
ứng với một quan hệ tổng thể, nhưng chỉ một quan hệ tổng thể tương ứng với một
mảnh. Ký hiệu là Ri là mảnh thứ i của quan hệ tổng thể R.
Lược đồ phân phối (Allocation schema): Định nghĩa ánh xạ từ các mảnh vào
những trạm chứa những phân mảnh đó. Tất cả các mảnh 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ý (physical image)
của quan hệ tổng thể R tại trạm j.
Lược đồ ánh xạ cục bộ (Local mapping schema): Á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 cục bộ. Trong hệ
không thuần nhất ta có các kiểu ánh xạ cục bộ khác nhau tại các trạm khác nhau
Lược đồ tổng thể

Lược đồ Phân mảnh

Lược đồ lập trạm

Lược đồ định vị

Lược đồ ánh xạ
cục bộ 1

Lược đồ ánh xạ
cục bộ 2

Hệ quản trị cơ sở
dữ liệu của vị trí 1

Hệ quản trị cơ sở
dữ liệu của vị trí 2

Cơ sở dữ liệu cục
bộ tại vị trí 1

Các vị trí khác,…


Cơ sở dữ liệu cục
bộ tại vị trí 2

Hình 1.1: Kiến trúc tham chiếu của cơ sở dữ liệu phân tán

8


1.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 cơ sở dữ liệu có thể được lưu trữ trên
nhiều hơn một trạm.

-

Quá trình cục bộ các phân mảnh dữ liệu hoặc cục bộ các bản sao phân mảnh
lưu trữ dữ liệu trên các đoạn 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 phải thỏa 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 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ảnh của nó.

-

Điều kiện xây dựng lại: Luôn có thể xây dựng lại 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 hóa sự
lập lại của dữ liệu.

1.4.1.1. Phân mảnh ngang (Horizontal framentation)
Phân mảnh ngang là sự phân chia một quan hệ thành các tập con các bộ, mỗi
tập con được xác định bởi phép chon với tân từ p trên quan hệ tổng thể R: Ri   p ( R ) ,
i

với pi là tân từ của R i . Để có thể khôi phục được R ta dùng phép hợp các quan hệ
R=R 1  R 2  ...  R n .

Ví dụ 1.1: Xét quan hệ tổng thể
NHACUNGCAP

9



Trong đó các thuộc tính
SHNCC:

Số hiệu nhà cung cấp

TNCC:

Tên nhà cung cấp

TP:

Thành phố

Ta tách quan hệ NHACUNGCAP thành 2 quan hệ NCC1 và NCC2 thuộc hai
chi nhánh “HN” và “HP”. Ta có phân mảnh ngang như sau:

N C C 1   T P = "H N " ( N H A C U N G C A P )
NCC2  

T P = "H P "

(NHACUNGCAP)

Thỏa mãn:
-

Điều kiện xây dựng lại: N H A C U N G C A P  N C C 1  N C C 2

-


Điều kiện rời nhau thỏa mãn vì: N C C 1  N C C 2  

Tổng quát:
-

Điều kiện không mất thông tin nếu các tập tân từ của tất cả các mảnh phải
đầy đủ

-

Điều kiện xây dựng lại luôn luôn thỏa mãn bởi phép hợp

-

Điều kiện rời nhau đòi hỏi các tân từ phải loại trừ nhau

1.4.1.2. Phân mảnh ngang gián tiếp (Direver Horizontal framentation)
Phân mảnh ngang gián tiếp là sự phân chia 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 khóa ngoài.
Điều này thể hiện mối liên hệ dữ liệu giữa quan hệ ban đầu và quan hệ thứ hai được
phân mảnh trong cùng một cách.
Ví dụ 1.2: Xét quan hệ tổng thể
CUNGCAP(SHNCC, SHSP, SHPHONG, SOLUONG)
Trong đó các thuộc tính
SHNCC:

Số hiệu nhà cung cấp

SHSP:


Số hiệu sản phẩm

10


SHPHONG: Số hiệu phòng
SOLUONG: Số lượng
Phân mảnh ngang gián tiếp quan hệ CUNGCAP được thực hiện như sau:

CUNGCAP1 CUNGCAP  SHNCC  SHNCCNCC1
CUNGCAP2  CUNGCAP  SHNCC  SHNCCNCC2
Việc bố trí trên cùng một trạm của mỗi cặp đoạn(NCC1, CUNGCAP1) và
(NCC2, CUNGCAP2) cho phép cải thiện hiệu năng của phép kết nối các quan hệ
NHACUNGCAP và CUNGCAP vì thế có thể thể hiện song song bởi hai phép kết nối
( NCC1  CUNGCAP1 ) và ( NCC2  CUNGCAP2 )
- Điều kiện không mất thông tin của phân mảnh trên đòi hỏi không có SHNCC
nào trong quan hệ CUNGCAP mà lại không chứa trong quan NHACUNGCAP ở đây
có dàng buộc quan hệ tham chiếu

s  CUNGCAP  Phải p  NHACUNGCAP mà p.SHNCC = s.SHNCC
p.SHNCC  NCC1 qua



p.SHNCC  NCC2 qua

 



s

 s

CUNGCAP1 hoăc
CUNGCAP2

 thỏa mãn điều kiện không mất thông tin

-

Điều kiện xây dựng lại: CUNGCAP = CUNGCAP1  CUNGCAP2

-

Điều kiện rời nhau: ta chứng minh: CUNGCAP1  CUNGCAP2 = 

Giả sử p  CUNGCAP1 & CUNGCAP2
 p1  NCC1 p.SHNCC = p1.SHNCC

p2  NCC2 p.SHNCC = p2.SHNCC
Mâu thuẫn vì SHNCC là khóa của nhà NHACUNGCAP

11


1.4.1.3. Phân mảnh dọc (Vertical Fragmentation)
Phân mảnh dọc là sự phân chia một quan hệ thành một tập con các bộ, mỗi tập
được xác định bởi 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 một 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 đoạn dọc nào đó.

-

Điều kiện xây dựng lại: Cần phải thêm vào mỗi đoạn khóa chính, do đó việc
xây dựng lại phải nhờ vào kết nối các đoạn dọc theo các thuộc tính của
chúng.

-

Điều kiện tách rời: Ít nhất khóa phải được lập lại trên tất cả các đoạn để cho
phép xây dựng lại, nên ở đây không thể xem là rời hoàn toàn được.

Ví dụ 1.3: Xét quan hệ tổng thể
NHANVIEN(SHNV, TEN, LUONG, THUE, SHQL, SHPHONG)
SHNV:

Là số hiệu nhân viên

TEN:

Tên nhân viên

LUONG:

Mức lương


THUE:

Thuế

SHQL:

Số hiệu quản lý

SHPHONG:

Số hiệu phòng

Ta tách quan hệ NHANVIEN thành hai quan hệ NV1 và NV2

NV1   SHNV ,TEN , LUONG ,THUE NHANVIEN
NV2   SHNV ,TEN , SHQL , SHPHONG NHANVIEN
Thuộc tính TEN lặp lại ở các đoạn, khi xây dựng lại quan hệ NHANVIEN thông
qua phép chiếu, thuộc tính này sẽ bị khử.

NHANVIEN  NV1  SHNV  SHVN  SHNV , SHQL , SHPHONG NV2
12


1.4.1.4. Phân mảnh hỗn hợp (Mixed Fragmentation)
Là sự kết hợp của phân mảnh dọc và phân mảnh ngang.
Ví dụ 1.4: Xét quan hệ tổng thể
NHANVIEN(SHNV, TEN, LUONG, THUE, SHQL, SHPHONG)
Tách quan hệ NHANVIEN thành các quan hệ NV1, NV2, NV3, NV4


NV1   SHPHONG 10  SHNV ,TEN , SHQL , SHPHONG NHANVIEN

NV2   SHPHONG 20  SHNV ,TEN ,SHQL , SHPHONG NHANVIEN
NV3   SHPHONG 20  SHNV ,TEN , SHQL , SHPHONG NHANVIEN
N V 4   S H N V ,T E N , L U O N G ,T H U E N H A N V IE N

NHANVIEN
Phân tích dọc

Phân tích ngang

NV4
NV1

NV3
NV2

Hình 1.2: Cây phân tách của quan hệ tổng thể
Xây dựng lại quan hệ NHANVIEN ta thực hiện như sau:
N H A N V IE N   ( N V 1 , N V 2 , N V 3 )   S H N V  S H N V  S H N V , L U O N G ,T H U E N V 4

Sự phân mảnh hỗn hợp có thể biểu diễn dưới dạng cây phân mảnh. Trong cây
phận mảnh nút gốc tương đương với quan hệ tổng thể, các nút ở giữa tương ứng với
các kết quả trung gian của thể hiện định nghĩa phân mảnh, cho ví dụ hình 1.2 thể hiên
cây phân mảnh của quan hệ NHANVIEN. Nút gốc quan hệ NHANVIEN được phân
mảnh thành hai phần; một phần tương ứng với một nút lá của cây(NV4), phần còn lại

13



được phân mảnh ngang do vậy có ba nút lá khác tương ứng với ba phân mảnh: NV1,
NV2, NV3.
1.4.2. Nhân bản dữ liệu
- Có lợi trong việc nâng cao tính sẵn sàng của dữ liệu.
- Các chiến lược nhân bản dữ liệu
+ Nhân bản dữ liệu đầy đủ: toàn bộ 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 có 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ật dữ liệu rất chậm vì phải sao
chép, đồ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.
+ 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à cục bộ không dư thừa dữ liệu. Trong trường hợp
này các phân mảnh phải tách rời tránh lặp bản ghi giống nhau cho các phân mảnh
ngang và phân mảnh hỗn hợp.
+ 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á nhâ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 với
cơ sở dữ liệu server.
1.4.3. Cục bộ hóa dữ liệu
Là quá trình gán từng phân mảnh, từng bản sao của phân mảnh 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
yêu cầu tính sẵn sàng cao, mọi giao dịch thao tác dư liệu, giao dịch cập nhật chỉ làm

14



trên 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 mảnh cho dữ liệu đó nên được cục bộ 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 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 từ
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.

15


CHƯƠNG 2: TỐI ƯU HÓA CƠ SỞ DỮ LIỆU PHÂN TÁN
2.1. Một số nguyên lý chung của tối ưu hóa truy vấn
Các ngôn ngữ bậc cao như SQUEARE, SQUEL, SQL, ... Cho phép viết nhiều
cầu truy vấn với sự quan tâm đến nhiều 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 nó. Sự cải tiến như vậy thường gọi là “tối ưu hóa” mặc dù câu truy

vấn được viết lại không cần sự tối ưu trên tất cả các cách cài đặt câu truy vấn có thể.
Trong phần này 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 Descates, xem xét các kỹ thuật
điển hình INGERES và System R.
2.1.1. Các chiến lược tối ưu hóa cơ bản
Trong ngôn ngữ hỏi dựa trên đại số quan hệ, các truy vấn liên quan đến phép
tích Decates, và phép kết nối tốn rất nhiều thời gian.
Ullman J.D [6] trong các kết quả nghiên cứu của mình đã trình bày những chiến
lược tổng quan cho tối ưu hóa như sau:
1. Thực hiện phép chọn sớm nhất có thể: nhằm làm giảm kích thước của các kết
quả trung gian.
2. Tổ hợp phép chọn xác định với phép tích Descartes thành phép kết nối: phép
kết nối, đặc biệt là phép kết nối bằng có chi phí thực hiện thấp hơn so với phép tích
Descartes trên cùng hai quan hệ. Nếu kết quả của tích Descartes RxS là đối số của phép
chọn, và phép chọn lại có liên quan đến phép so sánh giữa các thuộc tính của R và S thì
ta đưa về phép kết nối để giảm chi phí.
3. Tổ hợp dãy các phép toán một ngôi như phép chọn và phép chiếu: Bất kỳ dãy
các phép toán một ngôi (như phép chọn, phép chiếu) có kết quả phụ thuộc vào các bộ
của một quan hệ độc lập thì có thể nhóm các phép đó lại.
4. Tìm các biểu thức con chung trong một biểu thức: Nếu kết quả của một biểu
thức con chung – biểu thức xuất hiện hơn một lần- là một quan hệ không lớn và nó có

16


thể được đọc từ bộ nhớ thứ cấp với ít thời gian, thì nên tính toán trước biểu thức đó chỉ
một lần.
5. Tiền xử lý các tệp: Cần sắp xếp các tệp và thiết lập các tệp chỉ số, khi đó việc
thực hiện các phép toán liên quan đến hai tệp (phép toán hai ngôi) sẽ nhanh hơn nhiều.
6. Đánh giá trước khi thực hiện phép toán: Khi cần chọn trình tự thực hiện các

phép toán trong biểu thức, hay việc chọn một trong hai đối của phép tính hai ngôi, thì ta
nên tính toán chi phí thực hiện các phép toán đó (như số phép tính, thời gian, dung
lượng bộ nhớ theo kích thước các quan hệ, …) theo các cách khác nhau. Từ đó sẽ quyết
định phương án có chi phí thấp.
2.1.2. Các phép biến đổi đại số
Hầu hết các chiến lược trên liên quan đến phép biến đổi đại số. Một xử lý câu
truy vấn bắt đầu với việc xây dựng cây phân tích biểu thức đại số, trong đó các nút biểu
diễn toán tử đại số quan hệ và toán tử đặc biệt của ngôn ngữ. Ngôn ngữ hỏi có thể là
ngôn ngữ đại số quan hệ như SQUARE, SEQUEL, hoặc là một ngôn ngữ phép tính
quan hệ mà các biểu thức phép tính được chuyển thành biểu thức đại số.
2.1.2.1. Các yêu cầu của phép biến đổi tối ưu hóa
- 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 tri 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ữ kết quả trung gian trong
quá trình thực hiện câu truy vấn.

17


2.1.2.2. Biểu thức tương đương
Hai biểu thức E1 và E2 được gọi là tương đương (kí hiệu E1  E 2 ) nếu quan hệ
kết quả của hai biểu thức là như nhau khi thay các lược đổ bởi các biểu thức quan hệ cụ
thể. Với định nghĩa tương đương này ta có một số phép biến đổi đại số có lợi [4].

2.1.2.3. Các quy tắc liên quan đến phép kết nối và tích Decartes
(0)

Quy tắc giao hoán của phép kết nối và tích Decates
Nếu E1 và E2 là các biểu thức quan hệ; p là điều kiện trên các thuộc tính E1 và E2

thì E1  p E 2  E2  p E1

E1  E2  E2  E1

E1  E 2  E 2  E1
Ta chứng minh tính chất giao hoán của phép nối: Giả sử E1 có các thuộc tính A1,
A2, ..., An và E2 có các thuộc tính B1, B2, ..., Bm. Gọi r1 và r2 là hai quan hệ tương ứng
của E1 và E2 khi đó giá trị của E1  E 2 là các ánh xạ v từ A1, A2, ..., An, B1, B2, ..., Bm
vào tập giá trị sao cho các ánh xạ 1  r1 và  2  r2 thỏa mãn:
v[Ai] = m1[Ai], i = 1,2, ...,n
v[Bi] = m1[Bi], i = 1,2, ...,n
Biểu thức điều kiện p đúng khi thay v[C] cho mỗi thuộc tính C trong p.
Nếu biều diễn E1  E2 theo kiểu này, nó hoàn toàn cho cùng một tập hệ kết
quả. Do đó biểu thức là tương tương.
Chú ý: nếu quan hệ là một tập các bộ thì phép kết nối, kết nối tự nhiên, tích
Decartes sẽ không giao hoán vì thứ tự các thuộc tính trong quan hệ bị thay đổi.
(1)

Quy tắc kết hợp của phép kết nối và tích Decartes
Nếu E1, E2, E3 là các biểu thức quan hệ, p1, p2 là biểu thức điều kiện khi đó:

( E1  p1 E2 )  p2 E3  E1  p1 ( E2  p2 E3 )

(E1  E2 )  E3  E1  ( E2  E3 )


18


(E1  E2 )  E3  E1  (E2  E3 )

2.1.2.4. Các quy tắc liên quan đến phép chọn và phép chiếu
(1) Quy tắc hợp nhất của các phép chiếu: dãy các phép chiếu có thể tổ hợp thành
một phép chiếu.



A 1 ,. . . , A n

(

B 1 ,. . . , B m

( E ))  

A 1 ,. . . , A n

(E )

Với các thuộc tính A1, A2, …, An nằm trong tập các thuộc tính B1, B2, …, Bm
(3) Quy tắc hợp nhất của phép chọn: Dãy các phép chọn có thể tổ hợp thành một
phép chọn




p1

(

p2

( E ))  

p1  p 2

(E )

(4) Quy tắc giao hoán của phép chọn và phép chiếu
Nếu p liên quan đến các thuộc tính A1, A2, ..., An thì:



A1 ,..., An

( ( E ))   p (  A1 ,..., A ( E ))
n

Nếu p liên quan đến các thuộc tính B1, B2, ..., Bm mà không thuộc tập thuộc tính
A1, A2, ..., An thì

 A1 ,..., A ( ( E ))   A1 ,..., A ( p (  A1 ,..., A n , B1 ,..., B m ( E )))
m

n


(5) Quy tắc giao hoán của phép chọn và phép tích Decartes
Nếu tất cả các thuộc tính của p là thuộc tính của E1 thì

 p ( E1  E 2 )   p1 ( E1 )  E2
Hệ quả: nếu p  p1  p2 , p1 chỉ liên quan đến các thuộc tính của E1, p2 chỉ liên
quan đến các thuộc tính của E2, từ các quy tắc (1), (3), (5) Ta có:

 p ( E1  E 2 )   p1 ( E1 )  p2 ( E2 )
Nếu p1 chỉ liên quan đến các thuộc tính của E1, p2 liên quan đến các thuộc tính
của E1 và E2 thì:

19


 p ( E1  E 2 )   p 2 ( p1 ( E1 )  E2 )
(6) Quy tắc giao hoán của phép chọn và phép hợp
Nếu biểu thức E  E1  E2 , và giả sử các thuộc tính của E1 và E2 có cùng tên
như của E hoặc ít nhất mỗi thuộc tính của E là phù hợp với một thuộc tính duy nhất của
E1 và thuộc tính duy nhất của E2 thì:

 p ( E1  E 2 )   p ( E1 )   p ( E2 )
Nếu tên các thuộc tính E1 và / hoặc E2 khác tên thuộc tính của E thì trong p ở vế
phải của công thức trên cần sửa đổi để sử dụng tên cho phù hợp.
(7) Quy tắc giao hoán của phép chọn và phép hiệu tập hợp

 p ( E1  E 2 )   p ( E1 )   p ( E2 )
Theo quy tắc +, nếu tên các thuộc tính của E1 và E2 là khác nhau thì cần thay thế
các thuộc tính trong p ở vế phải tương ứng các thuộc tính của E1.
Chú ý: phép chọn  p ( E 2 ) là không cần thiết, có thể thay thế bởi E2. Tuy nhiên
tron nhiều trường hợp việc thực hiện các phép chọn  p (E2 ) trước sẽ có hiệu quả hơn

là tính toán trực tiếp với E2 vì khi đó kích thước quan hệ sẽ nhỏ đi nhiều.
Phép kết nối thực hiện tốn thời gian, nên thường đẩy phép chọn xuống trước
phép kết nối theo quy tắc (3), (4), (5). Quy tắc đẩy phép chiếu xuống trước phép tích
Decarses hoặc phép hợp tương tự như quy tắc (5), (6), (7). Không có phương pháp tổng
quát cho việc đẩy phép chiếu xuống trước phép hiệu các tập hợp.
(8) Quy tắc giao hoán phép chiếu và tích Decartes
E1, E2 là hai biểu thức quan hệ: A1, A2, ..., An là tập các thuộc tính trong đó B1,
B2, ..., Bm là các thuộc tính của E1, các thuộc tính còn lại C1, C2,..., Ck thuộc E2 khi đó

 A1 ,... An ( E1  E 2 )   B1 ,... Bm ( E1 )   C1 ,...C k ( E 2 )
(9) Quy tắc giao hoán của phép chiếu và phép hợp

20


 A1 ,... An ( E1  E 2 )   B1 ,... Bm ( E1 )   C1 ,...C k ( E 2 )
Như trong phép +, nếu các thuộc tính của E1 và / hoặc E2 là khác với thuộc tính
trong E1  E2 thì phải thay thế A1, A2, ..., An bởi những tên phù hợp.
2.1.2.5. Thuật toán cải tiến cây biểu diễn biểu thức quan hệ
Chúng ta có thể áp dụng các quy tắc trên để tối ưu các biểu thức quan hệ. Biểu
thức tối ưu kết quả phải tuân theo các nguyên tắc trong mục 2.1.2.4 mặc dù các nguyên
tắc không có nghĩa bảo đảm để tối ưu cho tất cả các biểu thức tương đương [4].
Đầu ra của thuật toán này là một chương trình gồm các bước sau:
1. Áp dụng của một phép chọn và một phép chiếu đơn giản.
2. Áp dụng của một phép chọn và một phép chiếu, hoặc
3. Áp dụng của một tích Descartes, phép hợp hoặc phép hiệu tập hợp cho hai
biểu thức mà trước đó các phép chọn và / hoặc các phép chiếu đã áp dụng cho một hay
hai dạng thức.
Thuật toán: tối ưu hóa biểu thức quan hệ
Vào: Cây biểu diễn biểu thức quan hệ

Ra: chương trình đánh giá biểu thức đó
Phương pháp
1. Sử dụng quy tắc (3) để tách mỗi phép chọn  p1  p2 ... pn ( E ) thành dãy

σp1 (... (σpn (E))) .
2. Sử dụng quy tắc (3), (7) để đẩy sâu phép chọn xuống đến mức có thể trong
biểu diễn.
3. Sử dụng quy tắc (2), (8), (9) và (4) để đẩy sâu phép chiếu đến mức có thể
trong cây biểu diễn. Chú ý: quy tắc (2) gây ra một phép chiếu biến mất, trong khi quy
tắc (4) tách một phép chiếu thành hai phép chiếu và một trong chúng có thể chuyển
xuống.

21


4. Sử dung quy tắc (2), (4) để tổ hợp dãy các phép chọn thành một phép chọn
xác định với một phép chiếu.
5. Chia các nút trong cây kết quả thành các nhóm sau: mỗi nút biểu diễn một
phép toán hai ngôi

, 

hoặc – là trong cùng nhóm với bất kỳ các nút gốc trực tiếp của

nó được gán bởi phép σ, π . Nhóm cũng bao gồm các nút là được gán bởi các phép
toán một ngôi trừ trường hợp phép toán hai ngôi là tích Descartes và không được xác
định bởi phép chọn để tạo thành phép kết nối.
6. Đưa ra chương trình đánh giá mỗi nhóm theo thứ tự bất kỳ.
Ví dụ 2.1: xét cơ sở dữ liệu thư viên bào gồm các quan hệ sau:
SACH(TENSACH, TACGIA, TEN_NXB, SHTV) Quan hệ sách

NHAXB(TEN_NXB, DC_NXB, TB_NXB) Quan hệ nhà xuất bản
DOCGIA(TEN, ĐIACHI, THPHO, SOTHE) Quan hệ độc giả
MUON(SOTHE, SHTV, NGAY) Quan hệ mượn
Trong đó các thuộc tính là
TEN_NXB: Tên nhà xuất bản
SHTV: Số hiệu thư viện
DC_NXB: Địa chỉ nhà xuất bản
TB_NXB: Thành phố nơi nhà xuất bản đóng
SOTHE: Số thể thư viên của độc giả
TEN: Tên độc giả
DIACHI: Địa chỉ độc giả
THPHO: Thành phố nơi độc giả ở
NGAY: Ngày mượn sách
Để lưu thông tin về sách, giả sử có một khung nhìn XMUON bao gồm một số
thông tin bổ sung về sách cho mượn. XMUON là kết nối tự nhiên của quan hệ SACH ,
DOCGIA, MUON có thể được xác định như sau:

22


πS (σP (SACH×DOCGIA×MUON))
Trong đó
P = DOCGIA.SOTHE = MUON.SOTHE and SACH.SHTV = MUON.SHTV
S = TENSACH, TACGIA, TEN_NXB, SHTV, TEN, DIACHI, THPHO,
SOTHE, NGAY
Cần đưa ra những cuốn sách đã cho mượn trước ngày 1/1/2004

p TENSACH s NGAY <1/1/ 2004 (XMUON)
Sau khi thay thế cho XMUON, biểu thức trên biểu diễn dạng cây như sau:


 TENSACH
 NGAY 1/1/2004
 TENSACH ,TACGIA , SACH . SHTV ,TEN .DIACHI
THPHO .TACGIA.. SOTHE , NGAY

 SACH .SHTV  MUON .SHTV 
DONGIA. SOTHE  MUON . SOTHE



MUON

SACH

DOCGIA

Hình 2.1: Cây biểu diễn biểu thức hỏi
Bước 1: Tách phép p thành hai phép chọn có điều kiện
SACH.SHTV = MUON.SHTV và DONGIA.SOTHE = MUON.SOTHE
Đẩy sâu một trong ba phép chọn xuống đến mức có thể trong cây biểu diễn.
Phép chọn σNGAY<1/1/2004 được đẩy xuống dưới phép chiếu và hai phép chọn kia bời quy
23


tắc (3) và (4). Phép chọn này áp dụng cho tích ((MUON × DONGIA)×SACH) , vì thuộc
tính NGAY trong phép chọn chỉ ở quan hệ MUON nên có thể thay

σ NGAY<1/1/2004 ((MUON× DONGIA)×SACH)
Bởi
(σ NGAY<1/1/ 2004 (MUON × DONGIA))×SACH


Cuối cùng bởi

((((σNGAY<1/1/2004 (MUON))×DONGIA)×SACH)
Phép chọn này đã được đẩy sâu đến mức có thể. Phép chọn này với điều kiện
SACH.SHTV = MUON.SHTV không thể đẩy xuống tích Descartes vì nó liên quan tới
một thuộc tính của quan hệ SACH và một thuộc tính không thuộc quan hệ SACH. Tuy
nhiên, phép chọn DONGIA.SOTHE = MUON.SOTHE có thể đẩy xuống để áp dụng
cho tích Descartes.

σ NGAY<1<1<2004 (MUON)× DONGIA, MUON.SOTHE là tên một thuộc tính của

σ NGAY<1<1<2004 (MUON) .
Bước 2: tổ hợp hai phép chiếu thành một phép chiếu
kết quả như hình 2.2 sau đó áp dụng quy tắc (4) thay

σ SACH.STHV = MUON.SHTV

bởi:

πTENSACH

σSACH.STHV=MUON.SHTV
π TENSACH.SACH.SHTV.MUON.SHTV

24

πTENSACH

πTENSACH




nhờ quy tắc (2)


Áp dụng quy tắc + để thay thế phép chiếu cuối cùng bởi πTENSACH.SACH.SHTV áp
dụng cho SACH và πTENSACH.MUON.SHTV áp dụng cho hạng thức bên trái của tích
Decartes trong hình 2.2

 TENSACH
 SACH .SHTV MUON .SHTV

 DOCGIA.SOTHE  MUON .SOTHE

SACH



 NGAY 1/1/2004

MUON
Hình 2.2: Cây với tổ hợp phép chọn

Phép chiếu cuối tác động với phép chọn bởi luật (4) để có dãy

 TENSACH

SACH.STHV MUON.SHTV


TENSACH.SACH.SHTV.MUON.SHTV
Phép chiếu cuối cùng được tách xuống tích Descartes bởi quy tắc (8) và một
phần xuống phép chọn

σ N G A Y <1<1< 20 0 4

bởi quy tắc (4). Trong biểu thức

πTENSACH.SACH.SHTV.MUON.SHTV không cần thiết vì thuộc tính MUON đã được để cập
vì vậy loại bỏ phép chiếu này. Cây biểu diễn cuối cùng ứng với hình 2.3.

25


×