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

Cơ sở dữ liệu phân tán và tối ưu hoá vấn tin

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 (2.57 MB, 127 trang )




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





NGUYẾN QUANG THẢO





Cơ sở dữ liệu phân tán và tối ưu hoá vấn tin



luËn v¨n th¹c SĨ CÔNG NGHỆ THÔNG TIN












Hµ néi - 2006





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





NGUYẾN QUANG THẢO




Cơ sở dữ liệu phân tán và tối ưu hoá vấn tin


Mã số : 1.01.10


luËn v¨n th¹c SĨ CÔNG NGHỆ THÔNG TIN





Người hướng dẫn khoa học: PGS.TS. Hồ Thuần






Hµ néi - 2006



1
MỤC LỤC
LỜI NÓI ĐẦU 4
Chương 1 KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 6
1.1 Cơ sở dữ liệu quan hệ 6
1.2 Các dạng chuẩn. 7
1.3 Ngôn ngữ dữ liệu quan hệ [4]. 9
1.4 Hệ cơ sở dữ liệu phân tán [4] 11
1.4.1 Các khái niệm về CSDL PT 12
1.4.2 Các mục tiêu của hệ quản trị CSDL PT 13
1.4.3 Kiến trúc hệ quản trị CSDL PT 14
1.4.4 Phân mảnh, nhân bản và cấp phát dữ liệu 17
Chương 2 MỘT SỐ NGUYÊN LÝ CHUNG CỦA TỐI ƯU HÓA TRUY VẤN 23
2.1 Mục tiêu của bài toán xử lý truy vấn [4] 23
2.2 Độ phức tạp của các phép toán đại số quan hệ. 27
2.3 Mô tả bộ xử lý truy vấn 28
2.4 Phân rã truy vấn và định vị dữ liệu. 32
2.4.1 Phân rã truy vấn 32
2.4.2 Định vị dữ liệu 40

2.5 Tối ưu hóa truy vấn phân tán. 46
2.5.1 Tối ưu hóa truy vấn 47
2.5.2 Tối ưu hóa truy vấn trong môi trường tập trung 54
2.5.3 Các thuật toán tối ưu hóa truy vấn trong môi trường phân tán 61
Chương 3 MỘT SỐ ĐỀ XUẤT KHÁC VỀ XỬ LÝ PHÉP NỐI TRONG CÁC HỆ
CSDL
85
3.1 Ứng dụng lý thuyết đồ thị trong tối ưu hóa truy xuất CSDL để thực hiện phép
nối [9].
85
3.1.1 Sử dụng chỉ mục để thực hiện phép nối 86
3.1.2 Mô hình đồ thị kết nối trang 88
3.1.3 Xác định cận trên của kích thước bộ nhớ đệm 90
3.1.4 Các Heuristic để làm giảm lượng bộ nhớ đệm cần thiết 92
3.1.5 Lược đồ bộ nhớ đệm dựa trên cơ sở lưu trữ toàn bộ trang. 94
3.1.6 Xác định kích thước bộ nhớ đệm để thực hiện một truy xuất cho mỗi
trang
95
3.2 Một số phương án tiếp cận xử lý nối phân tán khác. 102
3.2.1 Sử dụng thông tin phụ thuộc vị trí (placement dependency) để thực hiện
nối [7].
102
3.2.2 Thuật toán phân mảnh và nhân bản [7] 105
3.2.3 Thuật toán qui hoạch băm [7] 107
3.2.4 Xử lý truy vấn chuỗi [7] 110
3.2.5 Tăng tốc xử lý truy vấn nhờ AHYPERF [12] 114
KẾT LUẬN 124
TÀI LIỆU THAM KHẢO 125



2
DANH MỤC CÁC HÌNH VẼ
Hình 1. 1 CSDL trung tâm trên một mạng 12
Hình 1. 2 Môi trường của hệ CSDL PT 12
Hình 1. 3 Kiến trúc tham chiếu CSDL PT 15
Hình 1. 4 Các thành phần của một hệ quản trị CSDL PT 17
Hình 1. 5 Các kiểu phân mảnh 18
Hình 1. 6 Các quan hệ đã được chuẩn hóa 19
Hình 1. 7 Phân mảnh ngang nguyên thủy cho quan hệ DUAN 20
Hình 1. 8 Phân mảng dọc cho quan hệ DUAN 21
Hình 2. 1 Các chiến lược thực thi 25
Hình 2. 2 Lược đồ tổng quát xử lý truy vấn phân tán 31
Hình 2. 3 Các đồ thị quan hệ 35
Hình 2. 4 Đồ thị truy vấn không liên thông 35
Hình 2. 5 Thí dụ về cây truy vấn 37
Hình 2. 6 Cây truy vấn tương đương 39
Hình 2. 7 Cây truy vấn đã được viết lại 40
Hình 2. 8 Cây truy vấn sau khi thay thế 41
Hình 2. 9 Rút gọn phân mảnh ngang (với phép chọn) 42
Hình 2. 10 Rút gọn cho phân mảnh ngang (với phép nối) 43
Hình 2. 11 Rút gọn cho phân mảnh dọc 44
Hình 2. 12 Rút gọn cho phân mảnh gián tiếp 45
Hình 2. 13 Rút gọn cho phân mảnh hỗn hợp 46
Hình 2. 14 Quá trình tối ưu hóa truy vấn 47
Hình 2. 15 Các cây nối tương đương 48
Hình 2. 16 Hai hình thái của các cây nối 49
Hình 2. 17 Hành động của bộ tối ưu hóa khi áp dụng chiến lược đơn định 49
Hình 2. 18 Hành động của bộ tối ưu hóa khi áp dụng chiến lược ngẫu nhiên 50
Hình 2. 19 Thí dụ về truyền dữ liệu cho một truy vấn 51
Hình 2. 20 Đồ thị nối của câu truy vấn

1
q 60
Hình 2. 21 Các thứ tự nối khác nhau 61
Hình 2. 22 Truyền các toán hạng trong phép toán hai ngôi 62
Hình 2. 23 Đồ thị nối của câu truy vấn phân tán 63
Hình 2. 24 Biến đổi câu truy vấn có chu trình 73
Hình 2. 25 Truy vấn mẫu và số liệu thống kê 76
Hình 3. 1 Quan hệ với các bộ tham gia nối 87
Hình 3. 2 Hai dãy truy xuất trang dữ liệu của hình 3.1 87
Hình 3. 3 Đồ thị kết nối trang của CSDL trong hình 3.1 88
Hình 3. 4 Quan hệ giữa kích thước tập trang và hệ số chọn 89
Hình 3. 5 Một đồ thị kết nối trang tổng quát 90
Hình 3. 6 Giá trị lát cắt biểu diễn lượng bộ nhớ đệm cần thiết 91
Hình 3. 7 Kích thước thước bộ nhớ đệm của heuristic 1 và 2 93
Hình 3. 8 Kích thước trung bình của danh sách tìm về 93
Hình 3. 9 Đồ thị kết nối trang và đồ thị không chu trình tương ứng 96

3
Hình 3. 10 Đồ thị kết nối trang 99
Hình 3. 11 Đồ thị không chu trình thu được từ hình 3.10 99
Hình 3. 12 Hai quan hệ được phân mảnh 102
Hình 3. 13 Cấu hình trước khi xử lý nối 105
Hình 3. 14 Một ví dụ về phân mảnh trên các trạm 107
Hình 3. 15 Mô tả cách tạo bản sao cho bộ 108
Hình 3. 16 Tính toán chi phí từ dưới – lên 112
Hình 3. 17 PERF của R và S 115
Hình 3. 18 Mô tả quan hệ 118


4

LỜI NÓI ĐẦU

Cơ sở dữ liệu (CSDL) là một trong những lĩnh vực được quan tâm nhiều trong công
nghệ thông tin. Ra đời từ những năm 60 đến nay, đã xuất hiện nhiều thế hệ quản trị
CSDL, và cũng đã có nhiều ứng dụng trong khoa học kỹ thuật cũng như trong các
ngành kinh tế khác.
Việc nghiên cứu CSDL đã và đang phát triển ngày càng phong phú, đa dạng. Từ
những năm 70, mô hình dữ liệu quan h
ệ do E.F. Codd đưa ra đã tạo một cơ sở vững
chắc cho các vấn đề nghiên cứu về CSDL. Với ưu điểm về tính cấu trúc, và khả
năng hình thức hóa phong phú, CSDL quan hệ dễ dàng mô phỏng các hệ thống
thông tin đa dạng trong thực tiễn, làm tăng khả năng xử lý, quản trị, khai thác dữ
liệu, thông tin. Trên thực tế nhiều hệ quản trị CSDL thương mại, xây dựng trên mô
hình quan h
ệ, đã và đang được lưu hành, sử dụng rộng rãi trên thị trường
như:DBASE, ORACLE, MS SQL…
Cho đến nay đã có hàng loạt các vấn đề về CSDL được nghiên cứu, giải quyết. Với
mục đích tìm hiểu để nâng cao khả năng ứng dụng của của các hệ CSDL, luận văn
tập trung vào việc nghiên cứu vấn đề “tối ưu hóa câu truy vấn trong CSDL phân
tán”.
CSDL phâ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ền thô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ì CSDL phâ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ứu cũng như các nhà sản xuất phần mềm.
Như ta đã biết, thành công ngày càng tăng của công nghệ CSDL quan hệ trong việc
xử lý dữ li
ệu một phần là do tính dễ dùng khả năng khai thác, tìm kiếm dữ liệu của
các ngôn ngữ phi thủ tục (như SQL), và chính nó đã cải thiện đáng kể công việc

phát triển ứng dụng và khả năng sáng tạo của người dùng. Các ngôn ngữ phi thủ tục
của CSDL quan hệ đã cho phép diễn tả câu truy vấn phức tạp một cách chính xác và
đơn giản. Đặc biệt là để có được câu trả lời cho một câu truy v
ấn thì người sử dụng

5
không cần phải xác định chính xác trình tự tiến hành các thao tác/phép toán trong
một câu truy vấn. Trình tự này được xử lý bởi Bộ xử lý truy vấn (query processor)
của hệ quản trị CSDL, và đó là bài toán xử lý truy vấn hay tối ưu hóa truy vấn.
Tối ưu hóa truy vấn là việc xác định một chiến lược thực hiện truy vấn sao cho có
thể cực tiểu hóa được hàm chi phí. Đây là bài toán khó, đặc biệt là trong môi trường
phân tán bài toán này thuộc lớp NP-Hard. Để tránh mộ
t chi phí tối ưu hóa quá lớn
thì cách tiếp cận dùng các heuristic được sử dụng để có thể đạt được một chiến lược
thực thi gần tối ưu. Các yếu tố cần được xem xét khi giải bài toán này là: sự phân
tán dữ liệu, chi phí xử lý cục bộ, chi phí truyền…
Các yếu tố quyết định đến việc cực tiểu hàm chi phí có thể có nhiều, nhưng những
yếu tố quan trọng nhất là trình tự
thực hiện tối ưu các phép nối, việc chọn các bản
sao, các mảnh phải truy xuất, cũng như việc chọn các trạm thực hiện và việc sử
dụng các giải thuật truy xuất dữ liệu cục bộ và phân tán.
Với những nét chính ở trên, nội dung của bản luận văn này trình bày các nguyên lý
chung, các kỹ thuật, thuật toán liên quan đến vấn đề tối ưu hóa truy vấn và một số
phươ
ng án đề xuất cho việc giải quyết bài toán tối ưu này. Luận văn được chia làm
3 phần:
Chương 1: KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN - Chương này trình
bày những kiến thức cơ bản của hệ CSDL phân tán, kiến trúc tham chiếu, các kiểu
phân mảnh, các mức trong suốt phân tán.
Chương 2: MỘT SỐ NGUYÊN LÝ CHUNG CỦA TỐI ƯU HÓA CÂU TRUY

VẤN - Chương này trình bày nguyên lý chung của tối ưu hóa truy vấn trong CSDL
nói chung và trong CSDL phân tán nói riêng. Trong chương này cũng có trình bày
một số thuật toán kinh điển để tối ưu hóa câu truy vấn được sử dụng trong các hệ
CSDL quan hệ như INGRES, SYSTEM R…
Chương 3: Chương 3 MỘT SỐ ĐỀ XUẤT KHÁC VỀ XỬ LÝ PHÉP NỐI
TRONG CÁC HỆ CSDL - Chương này trình bày một số các đề xuất cải tiến, các
kỹ thuật xử lý truy vấn dựa trên việc xử lý các nối và có nhận xét, đánh giá và so
sánh.

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

Chương này trình bày một cách khái quát những kiến thức cơ sở về mô hình quan
hệ (lược đồ quan hệ, ngôn ngữ dữ liệu quan hệ…), về hệ CSDL phân tán (các kiến
trúc, đặc trưng, và các vấn đề của CSDL phân tán…)[4]. Chương này cung cấp
những kiến thức cơ sở cho các chương sau.
1.1 Cơ sở dữ liệu quan hệ
Cơ sở dữ liệu (CSDL) là một tập hợp dữ liệu có cấu trúc, liên quan đến các hiện
tượng thực tế mà chúng ta cố gắng mô hình hóa chúng. CSDL quan hệ là loại CSDL
được cấu trúc theo dạng bảng (table).
Về hình thức quan hệ (relation) là một tập con của tích Descartes của một hoặc
nhiều miền trị (domain) xác định trên tập các thuộc tính (attributes).
Một quan hệ r xác định trên tập thuộc tính
}, ,{
21 n
AAA
=
Ω
, khi đó :
)( )()(

21 n
ADomADomADomr
×
×
×

Mỗi hàng của quan hệ được gọi là một bộ (tuple), như vậy quan hệ r là một tập hợp
các n-bộ có dạng:
),(|), ,,{(
21 iin
ADomaaaar

⊆ với }, 2,1 ni
=

Trong đó
)(
i
ADom là miền giá trị của thuộc tính
i
A .
Số thuộc tính của quan hệ gọi là bậc của quan hệ.
Quan hệ r có thể bị thay đổi theo thời gian do việc thực hiện các phép toán cập nhật
trên r (thêm vào, loại bỏ, sửa đổi các bộ).
Lược đồ quan hệ (relation scheme). Một lược đồ quan hệ R là một cặp có thứ tự
>Ω=<
F
R ,
, trong đó
Ω

là tập hữu hạn các thuộc tính của quan hệ, F là tập các
điều kiện giữa các thuộc tính (F còn gọi là tập các ràng buộc toàn vẹn).
Một ràng buộc trên tập các thuộc tính
}, ,,{
21 n
AAA là một tính chất trên tập tất cả
các quan hệ xác định trên tập thuộc tính này.

7
Còn khi nói đến một lược đồ quan hệ, trong đó chỉ tập trung vào khía cạnh mô tả
cấu trúc của một quan hệ mà không quan tâm đến bộ cụ thể, ta sẽ dùng ký hiệu:
), ,,(
21 n
AAAR
Với R là tên của quan hệ,
n
AAA , ,,
21
là danh sách tên các thuộc tính.
Thể hiện quan hệ. Với lược đồ quan hệ R, theo thời gian, nhiều quan hệ có cấu
trúc và ràng buộc toàn vẹn được mô tả bởi lược đồ này. Mỗi quan hệ như vậy còn
được gọi là một thể hiện của lược đồ R. Lược đồ quan hệ mô tả cấu trúc của quan
hệ. Tại mỗi thời điểm lược đồ quan hệ sẽ có một thể hiện quan hệ cụ th
ể.
Khóa của một lược đồ quan hệ là một tập con các thuộc tính không rỗng nhỏ nhất
sao cho giá trị của các thuộc tính trong khóa cho phép xác định duy nhất mỗi bộ của
quan hệ. Các thuộc tính có mặt trong ít nhất một khóa gọi là các thuộc tính khóa.
Một tập có chứa khóa được gọi là siêu khóa (supperkey). Ta có thể định nghĩa một
cách hình thức như sau:
Cho lược đồ quan hệ

>Ω=<
F
R , ,
Ω

K
,
K
được gọi là khóa của lược đồ quan
hệ R nếu thỏa mãn 2 điều kiện sau:
i.
Bất kỳ hai bộ khác nhau rtt

21
, , r là một thể hiện của R, luôn có
][][
21
KtKt ≠ .
ii.
Không tồn tại
K
K

'
thỏa mãn điều kiện trên.
Tập K sẽ là siêu khóa nếu chỉ thỏa mãn điều kiện (i).
1.2 Các dạng chuẩn.
Chuẩn hóa – là một quá trình từng bước thay thế một tập quan hệ đã cho bằng các
tập quan hệ có cấu trúc ngày càng đơn giản và chuẩn tắc hơn [Tsichritzis and
Lochovsky, 1977]. Mục đích của chuẩn hóa là loại bỏ những bất thường của một

quan hệ. Quan hệ được chuẩn hóa là quan hệ trong đó mỗi miền của một thuộc tính
chỉ chứa những giá trị nguyên tố (atomic), tức là không phân nhỏ được n
ữa và do đó
mỗi giá trị trong quan hệ cũng là nguyên tố.
Theo lý thuyết ban đầu Codd đưa ra có 3 dạng chuẩn của quan hệ:

8

Về sau Boyce và Codd đã định nghĩa một phiên bản sửa đổi của dạng 3NF, thường
được gọi là dạng chuẩn Boyce-Codd (BCNF). Tiếp sau đó là các dạng chuẩn 4NF
[Fagin, 1977] và chuẩn 5NF [Fagin, 1979]
Yêu cầu của chuẩn hóa là không làm mất mát thông tin khi thay một quan hệ bằng
các quan hệ khác. Nếu chúng ta có thể nối các quan hệ kết quả để tạo thành quan hệ
ban đầu, thì quá trình phân rã đó được gọi là phân rã không mất thông tin.
Một yêu cầu khác đối với quá trình chuẩn hóa là b
ảo toàn phụ thuộc (dependency
preservation). Phân rã được gọi là bảo toàn phụ thuộc nếu hợp của các phụ thuộc
hàm của các quan hệ được phân rã tương đương với bao đóng (closure) của các phụ
thuộc hàm trong quan hệ ban đầu.
Định nghĩa dạng chuẩn 1NF.
Một lược đồ quan hệ R được gọi là ở dạng chuẩn 1NF
nếu và chỉ nếu toàn bộ các miền có mặt trong R đều chỉ chứa các giá trị nguyên tố
[2].
Định nghĩa dạng chuẩn 2NF.
Lược đồ quan hệ R ở dạng chuẩn 2NF nếu nó ở dạng
chuẩn 1NF và nếu mỗi thuộc tính không khóa của R phụ thuộc hàm đầy đủ vào mỗi
một khóa [2].
Định nghĩa dạng chuẩn 3NF.
Lược đồ quan hệ R ở dạng chuẩn 3NF nếu nó ở dạng
chuẩn 1NF và nếu mỗi thuộc tính không khóa của R là không phụ thuộc hàm bắc

cầu vào mỗi một khóa [2].
Định nghĩa dạng chuẩn BCNF.
Lược đồ quan hệ với tập các phụ thuộc hàm được
gọi là ở dạng chuẩn BCNF nếu
A
X
→ thỏa trên R,
X
A

thì X là một siêu khóa
của R [2].

9
Định nghĩa phụ thuộc hàm đầy đủ.
Cho lược đồ quan hệ R với tập thuộc tính
}, ,{
21 n
AAA=Ω , X và Y là hai tập thuộc tính khác nhau Ω⊆X và
Ω

Y
. Y là
phụ thuộc hàm đầy đủ vào X nếu Y là phụ thuộc hàm vào X nhưng không phụ thuộc
vào bất kỳ một tập con thực sự nào của X [2].
1.3 Ngôn ngữ dữ liệu quan hệ [4].
Các ngôn ngữ thao tác dữ liệu (DML) được phát triển cho mô hình quan hệ (được
gọi là ngôn ngữ truy vấn – query language) được chia thành hai nhóm cơ bản.: các
ngôn ngữ dựa trên đại số quan hệ (relational algebra) và các ngôn ngữ dựa trên
phép tính quan hệ. Khác biệt giữa chúng là cách thức người sử dụng đưa ra câu truy

vấn. Đại số quan hệ thuộc loại thủ tục (procedural), trong đó người dùng cần phải
đặc tả, nhờ một số toán t
ử, xem làm thế nào để thu được kết quả. Ngược lại phép
tính quan hệ thuộc loại phi thủ tục (nonpropcedural), người sử dụng chỉ cần đặc tả
các mối liên hệ cần phải bảo đảm trong kết quả. Cả hai đều được Codd đưa ra và
đều tương đương về khả năng diễn tả.
Đại số quan hệ được sử dụng nhiều hơn trong các nghiên cứ
u về CSDL phân tán vì
nó ở mức thấp hơn và tương ứng trực tiếp hơn với chương trình được trao đổi trên
mạng. Về cơ bản thì phép tính quan hệ có thể được dịch thành đại số quan hệ.
Đại số quan hệ là cơ sở quan trọng trong việc tối ưu hóa truy vấn, sau đây sẽ trình
bày một số các phép toán trên các quan hệ.
Đại số quan hệ có một tập hợp các phép toán trên các quan hệ. Mỗi toán tử
nhận
một hoặc hai quan hệ làm toán hạng và cho ra một quan hệ mới (quan hệ kết quả),
đến lượt nó lại có thể sử dụng làm toán hạng cho một toán tử khác. Các phép toán
này cho phép vấn tin và cập nhật CSDL quan hệ.
Có năm phép toán cơ bản và năm phép khác có thể được định nghĩa theo năm phép
toán cơ bản này. Đó là các phép chọn (selection), chiếu (projection), hợp (union),
trừ (set difference), và tích Descartes. Hai phép toán đầu tiên thuộc loại mộ
t ngôi,
ba phép toán sau thuộc loại hai ngôi. Các phép toán bổ sung có thể là: giao
(intersection), nối
θ
(
θ
-join), nối tự nhiên (natural join), nối nửa (semi join) và
phép chia (division) [4]. Trong đó toán hạng của phép toán hai ngôi phải khả hợp

10

(union compatible). Hai quan hệ được gọi là khả hợp nếu chúng có cùng bậc (có số
thuộc tính bằng nhau) và thuộc tính thứ i của quan hệ này có miền xác định trùng
với miền của thuộc tính thứ i của quan hệ kia.
Phép chọn trên quan hệ R với vị từ p là tập tất cả các bộ t của R thỏa p
)}({)( tpRtR
p


=
σ

Phép chiếu của quan hệ R trên tập các thuộc tính X của quan hệ R, là một quan hệ
trên tập thuộc tính X, được xây dựng bằng cách loại đi trong quan hệ R những thuộc
tính không nằm trong X. Vì thế bậc của quan hệ kết quả luôn nhỏ hơn bậc của quan
hệ gốc
}|][{)( RtXtR
X

=


Phép hợp. Hợp của hai quan hệ R và S, là tập tất cả các bộ thuộc R hoặc thuộc S
hoặc thuộc cả hai. Cần chú ý rằng R và S phải khả hợp.
RttSR

=∪ |{ hoặc
S
t

hoặc R

t

và }
S

Phép trừ. Hiệu của hai quan hệ R và S là tập tất cả các bộ của R không thuộc S.
RttSR

=

|{ và }St


Tích Descartes. Tích Descartes của hai quan hệ R bậc n và S bậc m có kết quả là
tập các (n+m)-bộ sao cho mỗi bộ này có n thành phần đầu thuộc R và m thành phần
sau thuộc S.

S
R {t|t có dạng ), ,,, ,(
2121 mn
bbbaaa trong đó Raaa
n
∈), ,(
21

Sbbb
m

), ,(
21

}
Phép giao. Giao của hai quan hệ R và S, là tập tất cả các bộ t thuộc về cả hai quan
hệ R và S. Giao có thể biểu thị bằng các toán tử cơ bản như sau:
)(},|{ SRRStRttSR


=


=

Nối-
θ
. Phép nối này là một dẫn xuất của tích Descartes. Có nhiều kiểu nối, và kiểu
nối tổng quát nhất là nối-
θ
, hay đơn giản là nối. Với F là vị từ nối:
)( SRSR
FF
×
=
σ
><
Nối tự nhiên. Giả sử hai quan hệ R và S có tập thuộc tính chung là X. Phép nối tự
nhiên của hai quan hệ R và S là quan hệ trên tập thuộc tính của R và tập Y các thuôc
tính của S không nằm trong X, gồm tất cả các bộ t là bộ ghép của bộ r thuộc R và bộ
s[Y] với s bộ thuộc S thỏa r[X]=s[X]
]}[][][|),{( XuXsSsYsvRuvuSR =




=


=><


11
Nối nửa của hai quan hệ R và S theo vị từ p cho kết quả là :
)( SRSR
pXp
><> ∏=
<
, với X là tập các thuộc tính của R
Phép chia. Chia quan hệ R bậc n cho quan hệ S bậc m (trong đó ,mn > và 0

m ) là
tập các t bộ trên
mn − thuộc tính sao cho với mọi bộ
S
u

thì Rut ∈),(
)))((()(
'''
RSRRSR
AAA

×
∏∏


∏=÷
, với '
A
là tập thuộc tính của R không thuộc S.
1.4 Hệ cơ sở dữ liệu phân tán [4].
Cơ sở dữ liệu phân tán là sự hợp nhất của hai cách tiếp cận xử lý dữ liệu dường như
đối lập nhau: công nghệ CSDL và công nghệ mạng máy tính. Một trong những mục
đích, động cơ chính của việc sử dụng các hệ CSDL là việc tích hợp các dữ liệu, giao
tác của một xí nghiệp, tổ chức và cho phép truy xuất tập trung, do vậy có thể điều
khiển được các truy xuất
đến dữ liệu đó. Còn công nghệ mạng lại đi ngược lại với
mọi nỗ lực tập trung hóa.
Mấu chốt của vấn đề là mục tiêu quan trọng của công nghệ CSDL là sự tích hợp mà
không phải là sự tập trung hóa, như vậy ta vẫn có thể có được sự tích hợp mà không
cần sự tập trung hóa và đó chính là mục tiêu của CSDL phân tán (CSDL PT).
Chúng ta có thể định nghĩa một CSDL PT là một tập h
ợp nhiều CSDL có liên đới
logic và được phân bố trên một mạng máy tính. Vậy hệ quản trị CSDL PT được
định nghĩa là một hệ thống phần mềm cho phép quản lý các CSDL PT, và làm cho
việc phân tán trở nên trong suốt đối với người sử dụng.
Với các hệ CSDL PT chúng ta dễ dàng nhận thấy những ưu điểm tiềm năng như
sau:
 Quản trị dữ liệu phân tán với nhiều mức trong suốt khác nhau. Hệ quản trị
CSDL PT cung cấp khả năng trong suốt phân tán (distribution transparent)
với ý nghĩa là che dấu các chi tiết như dữ liệu được lưu trữ ở đâu trong hệ
thống… Hệ quản trị CSDL PT có thể cung cấp các khả năng trong suốt sau:
9 Trong suốt phân tán, hay trong suôt mạng
9 Trong suốt nhân bản
9 Trong suốt phân mảnh


12
 Tăng tính tin cậy và tính sẵn sàng.
 Cho phép dùng chung dữ liệu trong khi vẫn duy trì được biện pháp điều
khiển cục bộ.
 Cải tiến hiệu năng.
 Tính dễ mở rộng.
1.4.1 Các khái niệm về CSDL PT
Ở mức phần cứng vật lý, những nhân tố chính phân biệt một hệ CSDL PT với một
hệ CSDL tập trung là:
Có nhiều máy tính được gọi là trạm hay nút (node)
Các trạm phải được kết nối bởi một kiểu mạng truyền thông nào đó để truyền dữ
liệu và các lệnh giữa các trạm.


Hình 1. 1 CSDL trung tâm trên một mạng



Hình 1. 2 Môi trường của hệ CSDL PT

13
Một hệ quản trị CSDL PT là một tập các phần mềm hệ thống bao gồm các phần
mềm quản trị các dữ liệu phân tán, các phần mềm quản trị truyền thông và các hệ
quản trị CSDL địa phương/ cục bộ lưu trú trên mỗi trạm của hệ CSDL PT.
Ngoài chức năng của các hệ quản trị CSDL và của phần mềm quản trị truyền thông,
hệ qu
ản trị CSDL PT còn có các chức năng đặc biệt sau:
 Quản lý một từ điển dữ liệu tổng thể lưu trữ thông tin liên quan đến các dữ
liệu phân tán

 Định nghĩa các dữ liệu phân tán.
 Kiểm tra ngữ nghĩa của các dữ liệu phân tán.
 Định giá các câu truy vấn phân tán do người dùng đưa ra.
 Quản lý các giao tác phân tán.
 Bảo mật giao tác và dữ liệu.
 Phục hồi CSDL phân tán, cung cấp khả năng phục hồi dữ liệu từ những trạm
(site) bị lỗi (sập).
 Quản trị nhân bản dữ liệu.
Một tính chất quan trọng của các CSDL PT là tính thuần nhất hay không thuần nhất.
Một CSDL PT thuần nhất (homogeneous DDB) có được bằng cách chia một CSDL
thành một tập các CSDL cục bộ, mỗi CSDL cục bộ này được quản trị bởi cùng một
hệ quản trị CSDL. Một CSDL PT thuần nhất thường là kết quả của cách tiếp cận
thiết kế trên xuống, trong đ
ó ta thiết kế một CSDL PT từ một CSDL tập trung.
Một CSDL PT không thuần nhất (heterogeneous DDB) là một CSDL PT có được
bằng cách tích hợp một tập các CSDL cục bộ (có thể được xây dựng từ các mô hình
dữ liệu khác nhau) được quản trị bởi các hệ quản trị CSDL khác nhau, thành một
CSDL duy nhất.
1.4.2 Các mục tiêu của hệ quản trị CSDL PT.
Sự độc lập dữ liệu và trong suốt phân bố. Người dùng có thể không quan tâm đến
sự phân tán dữ liệu. Các thông tin này được lưu giữ trong từ điển dữ liệu (catalog),
và được hệ quản trị CSDL PT sử dụng để định vị dữ liệu. Đây là một dạng trong
suốt cơ bản cần có trong một hệ CSDL PT, nó liên quan đến tính độc lập dữ liệu

14
(data independence) và làm tăng khả năng thích ứng của các ứng dụng đối với
những thay đổi trong định nghĩa và tổ chức của dữ liệu và ngược lại. Khi đó không
có sự khác biệt nào giữa các ứng dụng chạy trên CSDL tập trung với ứng dụng chạy
trên CSDL PT.
Trong suốt phân mảnh. Việc truy cập tới dữ liệu thường được xác định trên các

quan hệ con (thu được từ việc chia nh
ỏ các quan hệ gốc) được gọi là các mảnh
(fragment). Việc phân mảnh (ngang, dọc, hỗn hợp) làm tăng hiệu năng, tính sẵn
sàng, độ tin cậy của CSDL PT. Trong suốt phân mảnh che dấu sự phân đoạn đối với
người dùng.
Trong suốt nhân bản. Một giải pháp cho sự tin cậy dữ liệu là việc tạo ra dư thừa dữ
liệu dưới một hình thức nào đó. Mỗi mảnh dữ
liệu được sao lưu thành hai hay nhiều
bản, mỗi bản được lưu trên một trạm khác nhau, được gọi là sự nhân bản. Nó giúp
hệ CSDL PT nâng cao hiệu năng, độ tin cậy và tính sẵn sàng. Tuy nhiên việc nhân
bản sẽ gây khó khăn cho việc cập nhật CSDL, và việc duy trì và quản lý các bản sao
là phức tạp và tốn kém. Việc trong suốt nhân bản là việc che dấu khiến người dùng
chỉ nhìn thấy các quan hệ không có nhân bản.
Tính trong suốt đối v
ới hệ quản trị CSDL. Cho phép che dấu đối vói người dùng
việc các hệ quản trị CSDL cục bộ có thể khác nhau.
Tính tự trị của các trạm. Đây là mục tiêu cho phép mỗi trạm điều khiển và thao tác
dữ liệu địa phương của nó độc lập với các trạm khác. Do đó việc quản trị của CSDL
PT có thể hoàn toàn phi tập trung.
Tính mở rộng. Là khả năng mở rộ
ng bằng việc đưa thêm các trạm mới vào mạng
với ảnh hưởng tối thiểu lên các CSDL cục bộ và các chương trình ứng dụng hiện có.
1.4.3 Kiến trúc hệ quản trị CSDL PT
Có nhiều kiểu kiến trúc CSDL như, các hệ CSDL client/server, các phức hệ CSDL,
hay các CSDL trong môi trường phân tán đầy đủ (không có sự phân biệt nào giữa
client và server ) hay còn gọi là các hệ phân tán ngang hàng. Và kiểu kiến trúc này
cũng là kiểu được tập trung thảo luận ở phần này.

15
Các hệ phân tán ngang hàng. Tổ chức vật lý trên mỗi máy có thể rất khác nhau,

do đó ta cần phải có một định nghĩa tổ chức dữ liệu vật lý cho mỗi trạm, mà chúng
ta gọi là lược đồ trong cục bộ (LIS). Hình ảnh về toàn thể CSDL được mô tả bởi
lược đồ khái niệm toàn cục (GCS), nó mô tả cấu trúc logic của dữ liệu ở mọi vị trí.
Để xử lý việc phân mảnh và nhân bản ta sử dụ
ng lược đồ khái niệm cục bộ (LCS),
mô tả tổ chức logic của dữ liệu tại mỗi trạm. Do đó trong kiến trúc này lược đồ khái
niệm toàn cục là “hợp” của các lược đồ khái niệm cục bộ.
Và các ứng dụng truy xuất dữ liệu thông qua lược đồ ngoài (ES), được định nghĩa là
một tầng nằm trên lược đồ khái niệm toàn cục.
Các khái niệm trên được mô tả trong hình 1.3
Các thành phần cụ thể của một hệ CSDL PT . Ở đây hệ QT CSDL PT gồm 2
thành phần (mô tả trong Hình 1.4). Một thành phần xử lý mọi tương tác với người
sử dụng là Bộ xử lý tiếp nhận người dùng (User Processor), còn thành phần kia lo
việc xử lý dữ liệu (Data Processor).


Hình 1. 3 Kiến trúc tham chiếu CSDL PT

16
Thành phần đầu tiên bao gồm:

Bộ giao tiếp người dùng (user interface handler) diễn dịch các lệnh của người sử
dụng, và định dạng dữ liệu để chuyển cho người sử dụng các kết quả.
Bộ kiểm soát dữ liệu ngữ nghĩa (semantic data controller) sử dụng các ràng buộc
toàn vẹn (integrity constraints) và thông tin cấp phép, quyền hạn (authorization),
được định nghĩa như thành phần của lược đồ khái niệm toàn cục, để kiểm tra, xác
định xem các câu truy v
ấn có xử lý được hay không.
Bộ tối ưu truy vấn toàn cục (Global query optimizer) xác định một chiến lược hoạt
động để giảm thiểu chi phí, và phiên dịch các câu truy vấn toàn cục thành câu truy

vấn cục bộ thông qua việc sử dụng các lược đồ toàn cục, khái niệm cục bộ và thư
mục toàn cục, ngoài ra còn chịu trách nhiệm tạo ra một chién lược thực thi tốt cho
các phép nối phân tán.
Bộ theo dõi hoạt động toàn cục (Global execution Monitor) có trách nhi
ệm điều
phối việc thực hiện phân tán các yêu cầu của người dùng và cũng được gọi là bộ
quản lý giao dịch phân tán (Distributed transaction manager).
Thành phần thứ hai gồm:

Bộ tối ưu truy vấn cục bộ (Local query processor) chịu trách nhiệm chọn ra một
đường truy xuất thích hợp nhất để truy xuất các dữ liệu.
Bộ khôi phục cục bộ (Local recovery manager) đảm bảo cho các CSDL cục bộ duy
trì được tính nhất quán khi có sự cố xảy ra.
Bộ hỗ trợ thực thi (Runtime support processor) truy xuất CSDL tùy vào các lệnh
trong lịch (schedule) do bộ tối ưu vấn tin sinh ra. Nó là giao diện với bộ điề
u hành
và chứa bộ quản lý vùng đệm CSDL (database buffer manager), chịu trách nhiệm
quản lý vùng đệm và quản lý việc truy xuất dữ liệu.
Một điểm lưu ý là hai thành phần này chỉ là phân chia về mặt tổ chức chứ không
phải bắt buộc phải cài đặt trên các trạm khác nhau. Tuy nhiên cũng có những gợi ý
tách biệt những trạm chỉ thực hiện truy vấn ra khỏi những hệ thống có đầy đủ chứ
c
năng, và khi đó các trạm này chỉ cần có bộ xử lý tiếp nhận người dùng.

17

Hình 1. 4 Các thành phần của một hệ quản trị CSDL PT
1.4.4 Phân mảnh, nhân bản và cấp phát dữ liệu
1.4.4.1 Phân mảnh
Sự phân mảnh dữ liệu nhằm chia một quan hệ tổng thể thành các đơn vị logic (các

đoạn/mảnh), có thể được sắp đặt tối ưu trong CSDL PT. Các mảnh được xử lý như
một đơn vị, qua đó cho phép thực hiện nhiều giao dịch đồng thời. Ngoài ra việc
phân mảnh các quan hệ còn cho phép thực hiện song song câu truy vấn bằng cách
phân chia câu truy vấn thành một tập các câu truy vấn con tương ứng với các mả
nh.
Do vậy việc phân mảnh sẽ làm tăng mức độ hoạt động đồng thời và như thế làm
tăng lưu lượng hoạt động của hệ thống.
Tuy nhiên việc phân mảnh cũng có những hạn chế. Như việc những ứng dụng có
các khung nhìn được định nghĩa trên nhiều mảnh sẽ bị giảm hiệu suất hoạt động (ví

18
dụ việc truy xuất dữ liệu từ nhiều mảnh rồi nối hoặc hợp chúng lại với chi phí cao),
tránh được điều này là một kỹ thuật cơ bản của kỹ thuật phân mảnh. Còn vấn đề
nữa, là việc liên quan đến việc kiểm soát dữ liệu ngữ nghĩa (semantic data control),
đặc biệt là vấn đề kiểm tra tính toàn vẹn. Do kết quả của việc phân m
ảnh, các thuộc
tính tham gia vào một phụ thuộc có thể bị phân rã vào các mảnh khác nhau và được
cấp phát cho những trạm khác nhau, vậy nên việc đơn giản như kiểm tra các phụ
thuộc cũng phải thực hiện truy tìm dữ liệu trên nhiều trạm khác nhau.
Việc phân mảnh của một quan hệ phải được xác định bởi người quản trị CSDL, và
phải tuân thủ ba quy tắc: không mất mát thông tin, khôi phục lại được và không
trùng lặ
p (chỉ áp dụng cho phân đoạn ngang).

Hình 1. 5 Các kiểu phân mảnh
Thí dụ 1.1:
Để tiện miêu tả ta sẽ sử dụng một CSDL mẫu mô hình hóa cho một công ty để làm
ví dụ. Các thực thể được mô hình hóa là nhân viên -NHANVIEN và các dự án -
DUAN. Với mỗi nhân viên thì có những thông tin sau: mã số nhân viên – MSNV,
tên nhân viên – TENNV, nghề nghiệp - NNGH, lương – LUONG, mã số dự án –

MSDA mà nhân viên đó đang làm việc, nhiệm vụ - NVU trong dự án đó, thời gian –
TGIAN được phân công trong dự án tính theo tháng. Tương tự như vậy với mỗi dự
án thì cũng có nhiều thông tin như: MSDA, tên dự án – TENDA, ngân sách d
ự án –
NSDA, địa điểm tiến hành dự án - DD.
Các lược đồ quan hệ cho CSDL này có thể được định nghĩa như sau:
NHANVIEN(MSNV,TENNV,NNGH,LUONG,MSDA,NVU,TGIAN)
DUAN(MSDA,TENDA,NSDA,DDDA)
Sau khi thực hiện các bước chuẩn hóa ta thu được:
NHANVIEN(MSNV,TENNV,NNGH)

19
MUCLUONG(NNGH,LUONG)
DUAN(MSDA,TENDA,NSDA,DD)
PHANCONG(MSNV,MSDA,NVU,TGIAN)
Các thể hiện của chúng được trình bày trong hình 1.6

Hình 1. 6 Các quan hệ đã được chuẩn hóa
Phân mảnh ngang. 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 chọn áp dụng cho quan hệ (phân
mảnh ngang nguyên thủy):

),(RR
Fii
σ
=
z
i

≤1 trong đó

F
i là vị từ chọn trên quan hệ R
hay được xác định bới phép nối nửa của một quan hệ với mỗi mảnh của một quan
hệ khác (phân mảnh gián tiếp):
,
ii
SRR <= > wi ≤≤1 với w là số lượng các mảnh được định nghĩa trên R

20
)(SS
Fii
σ
= với
F
i là vị từ chọn để định nghĩa phân mảnh ngang nguyên thủy S.
Thí dụ 1.2:
Ta thực hiện phân mảnh quan hệ ngang DUAN theo 2 quan hệ con DUAN
1
có ngân
sách không quá 200000 USD và DUAN
2
với những bản ghi có ngân sách lớn hơn
200000 USD như sau:
)(
2000001
DUANDUAN
NSDA≤
=
σ
và )(

2000002
DUANDUAN
NSDA>
=
σ


Hình 1. 7 Phân mảnh ngang nguyên thủy cho quan hệ DUAN
Phân mảnh dọc. Phân mảnh dọc là sự phân hoạch một quan hệ thành các tập các
bộ con, mỗi tập được xác định bởi một phép chiếu được áp dụng cho quan hệ. Tức
là:
)(RR
Xi
∏= , trong đó
Ω

X
là tập con của tập các thuộc tính của R.
Để khôi phục lại quan hệ từ các mảnh dọc, cần phải thêm vào mỗi đoạn một hay
nhiều thuộc tính làm khóa.
Thí dụ 1.3:
Phân mảnh dọc quan hệ DUAN theo phép chiếu: )(
,1
DUANDUAN
NSDAMSDA
Π
=

)(
,,2

DUANDUAN
DDTENDAMSDA
Π= , và kết quả được mô tả trong hình 1.8.
Phân mảnh hỗn hợp là sự phân hoạch một quan hệ thành các tập con các bộ con.
Các bộ con được xác định bởi sự phân mảnh dọc, còn các tập con bởi sự phân mảnh
ngang.

21
Phân mảnh hỗn hợp cho phép tối ưu hóa các câu truy vấn chọn-chiếu, hay kết nối-
chiếu. Việc xác định các đoạn hỗn hợp phức tạp hơn vì nó dựa trên sự hợp thành
của các phép chọn hay kết nối với các phép chiếu.

Hình 1. 8 Phân mảng dọc cho quan hệ DUAN
1.4.4.2 Nhân bản và cấp phát
Việc nhân bản nhằm làm nâng cao khả năng sẵn sàng của dữ liệu. Mức nhân bản
cao nhất là nhân bản toàn bộ dữ liệu, tại mỗi trạm của hệ thống phân tán đều được
nhân bản toàn bộ CSDL, với phương án này chỉ cần it nhất một trạm làm việc là hệ
thống có thể hoạt động. Nhưng với phương án này thì hệ thống bị ảnh hưởng đáng
k
ể tới tốc độ trong quá trình cập nhật dữ liệu.
Mức thấp nhất là không nhân bản, mỗi một mảnh chỉ được lưu trữ tại một vị trí.
Mức hay sử dụng nhất là nhân bản từng phần (partial replication.).
Mỗi đoạn – hay mỗi bản sao của phân mảnh – phải được cấp phát vào một trạm cụ
thể nào đó trong hệ thống phân tán. Quá trình đó đượ
c gọi là cấp phát dữ liệu. Việc
chọn vị trí để cấp phát và mức độ nhân bản phụ thuộc vào hiệu suất và khả năng sẵn
sàng của hệ thống cũng như phụ thuộc vào loại và tần suất của các giao dịch của
mỗi vị trí. Ví dụ, nếu như yêu cầu tính sẵn sàng cao, cùng việc giao dịch có thể
được thực hiện tại bất kỳ vị
trí nào và các giao dịch chủ yếu là truy xuất dữ liệu, thì


22
việc nhân bản toàn bộ CSDL là một lựa chọn tốt. Tuy nhiên việc tìm phương án tối
ưu, hay ít nhất là một phương án tốt cho việc phân bổ dữ liệu phân tán là bài toán
khó.
Cho một tập các mảnh F={F
1
,F
2
,…F
n
} và một mạng bao gồm các nút
S={S
1
,S
2
,…S
m
} trên đó có một tập các ứng dụng Q={q
1
,q
2
,…q
n
} đang chạy. Bài
toán cấp phát (allocation problem) là tìm một phân phối “tối ưu” của F cho S. Một
trong các điểm quan trọng cần được thảo luận là khái niệm về tính tối ưu.
Tính tối ưu (optimality) có thể được định nghĩa ứng với hai độ đo:

Chi phí nhỏ nhất, đó là chi phí lưu mỗi mảnh tại một nút, chi phí vấn tin, chi

phí cập nhật, chi phí truyền dữ liệu. Bài toán cấp phát cố gắng tìm một lược
đồ cấp phát với chi phí nhỏ nhất.

Hiệu năng, các chiến lược cấp phát luôn hướng tới tiêu chí hạ thấp thời gian
đáp ứng và tăng tối đa lưu lượng hệ thống tại mỗi vị trí
Các chiến lược cấp phát để tối ưu được hai thông số này luôn là bài toán khó.

23
Chương 2 MỘT SỐ NGUYÊN LÝ CHUNG CỦA TỐI ƯU
HÓA TRUY VẤN

Ở phần này chúng ta sẽ thảo luận những kỹ thuật được sử dụng trong hệ QT CSDL
để xử lý, tối ưu hóa và thực hiện các câu truy vấn bậc cao – như SQL. Thành công
của công nghệ CSDL quan hệ trong việc xử lý dữ liệu một phần là do tính dễ dùng
của ngôn ngữ phi thủ tục như SQL. Nhờ che dấu các chi tiết cấp thấp về tổ chức vật
lý của dữ liệu, các ngôn ngữ
CSDL quan hệ đã cho phép biểu diễn được các câu
truy vấn phức tạp một cách chính xác và đơn giản. Để có câu trả lời cho một câu
truy vấn, người sử dụng không cần phải xác định thứ tự tiến hành các phép toán.
Việc này sẽ do bộ xử lý truy vấn (Query processor) thực hiện, đồng thời nó cũng
thực hiện tối ưu hóa câu truy vấn.
Việc xử lý, tối ưu hóa truy vấn có tầm ả
nh hưởng quan trọng tới hiệu năng xử lý dữ
liệu của hệ thống, do vậy nó nhận được sự quan tâm trong cả ngữ cảnh tập trung lẫn
phân tán. Tất nhiên bài toán xử lý truy vấn trong môi trường phân tán có rất nhiều
phức tạp, do có nhiều yếu tố ảnh hưởng đến hiệu năng của các truy vấn phân tán. Ví
dụ như việc quan hệ có mặt trong câu truy vấn có thể bị phân mảnh hay nhân bản

nhiều trạm, do vậy hệ thống phải tiêu tốn thêm chi phí truyền thông trong việc xử lý
truy vấn, hay việc có nhiều trạm phải truy xuất nên thời gian đáp ứng có thể là lâu.

2.1 Mục tiêu của bài toán xử lý truy vấn [4].
Bộ xử lý truy vấn có nhiệm vụ phân tích, biến đổi các câu truy vấn cấp cao (ở dạng
các phép tính quan hệ) thành một câu truy vấn tương đương ở cấp thấp hơn (dạng
đại số quan hệ).

×