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ụ
Trang 1ĐẠ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
Trang 2ĐẠ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
Trang 3MỤ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
Trang 4DANH 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 q1 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
Trang 5Hì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
Trang 6LỜ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
Trang 7khô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
Trang 8Chươ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 Ω={A1,A2, A n}, khi đó :
)(
)()
(A1 Dom A2 Dom A n Dom
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:
),(
|), ,,{(a1 a2 a n a i Dom A i
r⊆ ∈ với i=1,2, n}Trong đó Dom(A i) là miền giá trị của thuộc tính A i
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ự
Trang 9Cò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:
), ,,(A1 A2 A n R
Với R là tên của quan hệ, A1,A2, ,A n 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ệ R=<Ω,F >, 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 t1,t2∈r , r là một thể hiện của R, luôn có
][]
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ệ:
Trang 10Về 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 X → thỏa trên R, A A ∉ thì X là một siêu khóa X
của R [2]
Trang 11Định nghĩa phụ thuộc hàm đầy đủ Cho lược đồ quan hệ R với tập thuộc tính
},
,
{A1 A2 A n
=
Ω , 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
Trang 12(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
)}
({
)(R t R p t
σ
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
}
|][{)(R t X t R
R∪ ={ | ∈ hoặc t∈ hoặc S t∈ vàR 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
R t t S
R− ={ | ∈ và t∉S}
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 (a1,a2, a n,b1,b2, b m) trong đó (a1,a2, a n)∈R và
S b b
b, , m)∈
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:
)(
},
|{t t R t S R R S S
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:
)(R S S
R><F =σF ×
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]
]}
[][]
[
|),{(u v u R v s Y s S s X u X S
R>< = ∈ ∧ = ∧ ∈ ∧ =
Trang 13Nối nửa của hai quan hệ R và S theo vị từ p cho kết quả là :
)(R S S
R><p =∏X ><p , 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 đó n>m,vàm ≠0) là
tập các t bộ trên n−m thuộc tính sao cho với mọi bộ u∈ thì S (t,u)∈R
) ) ) ( ((
)
S
R÷ = ∏A − ∏A ∏A × − , 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
Trang 14 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
Trang 15Mộ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
Trang 16(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
Trang 17Cá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
Trang 18Thà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
Trang 19Hì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í
Trang 20dụ 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)
Trang 21MUCLUONG(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):
),(R
R i =σFi 1≤i≤z trong đó Fi 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):
Trang 22DUAN =σNSDA≤ và DUAN2 =σNSDA>200000(DUAN)
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à:
)
(R
R i =∏X , 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: DUAN1 =ΠMSDA,NSDA(DUAN) và
)(
, ,
DUAN =ΠMSDA TENDA DD , 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
Trang 23Phâ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 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
nối-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ì
Trang 24việ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={F1,F2,…Fn} và một mạng bao gồm các nút S={S1,S2,…Sm} trên đó có một tập các ứng dụng Q={q1,q2,…qn} đ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
Trang 25Chươ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ệ)
Trang 26Với câu truy vấn cấp thấp này việc cài đặt các chiến lược thực thi sẽ được thực hiện Việc biến đổi câu truy vấn phải đáp ứng được cả tính đúng đắn, lẫn tính hiệu quả Một biến đổi được coi là đúng đắn nếu câu truy vấn cấp thấp cho cùng một kết quả như câu truy vấn cấp cao Việc đưa ra được một chiến lược thực thi thích hợp để đạt được tính hiệu quả lại là một bài toán khó Một câu truy vấn cấp cao có thể được biến đổi thành nhiều câu truy vấn cấp thấp tương đương, và mỗi một chiến lược thực thi này lại tiêu tốn tài nguyên hệ thống rất khác nhau Việc khó khăn là phải tìm ra một chiến lược nhằm hạ thấp tối đa việc tiêu dùng tài nguyên
Thí dụ 2.1:
Xét CSDL đã cho ở thí dụ 1.1 Với câu truy vấn “Tìm tên các nhân viên đang quản
lý một dự án có thời gian lớn hơn 37 tháng”
( TGIAN 37 NHANVIEN.MSNV PHANCONG.MSNV NHANVIEN PHANCONG
Và: ∏TENNV(NHANVIEN ><MSNV (σTGIAN>37(PHANCONG)))
Tất nhiên do trong biểu thức đại số thứ hai không có chứa tích Descartes nên sẽ tiêu tốn ít tài nguyên hơn nên sẽ được giữ lại để sử dụng Trong môi trường tập trung, chiến lược thực thi truy vấn có thể được diễn tả chính xác bằng một mở rộng của đại số quan hệ Nhiệm vụ chính của bộ xử lý truy vấn trong môi trường tập trung là phải chọn ra một câu truy vấn dạng biểu thức đại số tốt nhất trong các câu truy vấn tương đương Đây là một bài toán phức tạp khi số lượng các quan hệ lớn, nên nói chung là chúng ta chỉ hướng đến là tìm được một lời giải tốt (gần tối ưu)
Trong môi trường phân tán, các biểu thức đại số quan hệ không đủ để diễn tả các chiến lược thực thi Nó phải được bổ sung thêm các phép toán trao đổi dữ liệu giữa các trạm Và cùng với việc chọn các phép toán đại số quan hệ, thì bộ xử lý truy vấn
Trang 27phân tán cũng phải chọn các trạm tốt nhất để xử lý dữ liệu Do vậy việc tìm ra lời giải cho bài toán chiến lược thực thi trở nên khó khăn hơn nhiều
Xét lại ví dụ trên trong môi trường phân tán:
Ta có chiến lược A tại Trạm 5:
Và chiến lược B như sau:
) (
) (NHANVIEN 1 ∪NHANVIEN 2 MSNV TGIAN 37 PHANCONG 1 ∪PHANCONG 2
1
Hình 2 1 Các chiến lược thực thi
Trang 28Để đánh giá được việc tiêu dùng tài nguyên của hai chiến lược này, ta dùng mô hình
chi phí sau:
Giả sử độ lớn của quan hệ NHANVIEN và PHANCONG tương ứng là 400 và
1000 bộ (tuple) và chi phí truy xuất bộ (tuple access cost) tupacc là một đơn vị, chi
phí truyền bộ (tuple transfer cost) tuptrans là 10 đơn vị
Ở phương án B ta thấy rõ ràng là tổng chi phí lớn hơn rất nhiều so với phương án A
Như đã nêu ở trên, mục tiêu của việc xử lý truy vấn trong môi trường phân tán là
biến đổi câu truy vấn cấp cao trên CSDL PT thành các câu truy vấn (ở ngôn ngữ cấp
thấp) trên các CSDL cục bộ
Và một việc quan trọng của xử lý truy vấn là vấn đề tối ưu hóa Trong các chiến
lược thực thi (kết quả của các quá trình biến đổi) thì một chiến lược sử dụng các tài
nguyên của hệ thống tối ưu nhất thì sẽ được giữ lại
Chỉ số đánh giá mức sử dụng hệ thống là tổng chi phí (total cost) được tính toán như
sau:
Tổng chi phí= chi phí xuất nhập + chi phí CPU + chi phí truyền
Với chi phí xuất nhập là chi phí/thời gian cần thiết cho các thao tác xuất nhập
Trang 29Chi phí CPU là chi phí/thời gian phải trả khi thực hiện các thao tác trên dữ liệu
2.2 Độ phức tạp của các phép toán đại số quan hệ
Ở phần này chúng ta coi đại số quan hệ là một phương pháp cơ bản để biểu diễn kết quả của việc xử lý truy vấn Do vậy ta thấy rõ ràng là sự phức tạp của phép toán đại
số quan hệ có sự ảnh hưởng trực tiếp đến thời gian xử lý Những nguyên tắc sau đây
là rất có lợi trong việc chọn lựa ra cây thực thi
Độ phức tạp được định nghĩa đơn giản nhất là theo lực lượng của quan hệ (cardinality), nó độc lập với việc cài đặt vật lý như phân mảnh và cấu trúc lưu trữ
dữ liệu Bảng sau cho ta thấy sự so sánh độ phức tạp của các phép toán quan hệ:
Trang 30Dựa trên bảng so sánh này ta có thể sơ lược rút ra kết luận như sau: Trước hết độ phức tạp có tính tương quan so với lực lượng của quan hệ, các thao tác có tính chọn làm giảm đi lực lượng cần phải được ưu tiên thực hiện trước Thứ hai các phép toán cần phải được sắp xếp theo độ phức tạp để tránh thực hiện tích Descartes, hay để thực hiện sau
2.3 Mô tả bộ xử lý truy vấn
Trong việc xử lý truy vấn trên các hệ CSDL thì ngôn ngữ sử dụng chủ yếu được biểu diễn dựa trên các phép tính quan hệ, và trong quá trình phân rã câu truy vấn thì chúng được chuyển thành các phép tính đại số quan hệ Trong môi trường phân tán
thì ngôn ngữ đầu ra (output) được sử dụng chính là một dạng của đại số quan hệ
được tăng cường thêm các yếu tố truyền tin (nguyên thủy truyền tin-communication primitive) Các phép toán này được cài đặt trực tiếp trong hệ thống Việc xử lý truy
vấn phải là sự ánh xạ hiệu quả từ ngôn ngữ đầu vào (input) thành ngôn ngữ đầu ra
Việc tối ưu hóa truy vấn là nhằm chọn ra được một chiến lược thực thi hiệu quả nhất trong không gian các lời giải Thường thì không gian lời giải có thể là rất lớn, nên việc tìm ra được lời giải tối ưu lại có thể phải tiêu tốn rất nhiều thời gian và tài nguyên hệ thống Chi phí cao cho việc tìm lời giải tối ưu làm cho việc tối ưu hóa truy vấn có ý nghĩa khi chỉ phải trả chi phí một lần tối ưu hóa cho nhiều lần thực hiện câu truy vấn đó Khi đó chiến lược vét cạn thường được sử dụng [Selinger et al.,1979]
Nhằm làm giảm chi phí cao cho tìm kiếm vét cạn, các chiến lược ngẫu nhiên hóa đã được đề xuất như Iteractive Improvement [Swami,1989] và Stimulated Annealing [Ioannidis and Wong,1987], để nhằm tim ra một giải pháp tốt, không nhất thiết là tốt nhất, và tránh được chi phí tối ưu hóa cao Có một cách khác hay được dùng để giảm chi phí là dùng thuật giải heuristic, với tác dụng làm thu hẹp phạm vi tìm kiếm Một heuristic quan trọng trong các hệ phân tán là thay các nối bằng tổ hợp của các nối nửa nhằm làm hạ thấp chi phí truyền dữ liệu
Ullman J.D 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:
Trang 31 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
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í
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
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ó 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
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
Đá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
Thời điểm tối ưu hóa. Việc tối ưu hóa câu truy vấn có thể thực hiện tại những thời điểm khác nhau
Tối ưu hóa kiểu tĩnh (ví dụ R*) Được thực hiện trước khi thực thi truy vấn, nó được thực hiện vào lúc biên dịch, vì thế đây là thời điểm thích hợp cho phương pháp vét cạn, phương án này thích hợp khi các truy vấn được thực thi nhiều lần, do vây chi phí sẽ được bù đắp qua các lần sử dụng Nhưng phương pháp này cũng có khăn khi
Trang 32xác định kích thước các quan hệ kết quả trung gian, chúng được đánh giá theo các
số liệu thống kê của CSDL
Tối ưu hóa kiểu động (ví dụ Distributed INGRESS) Được tiến hành trong thời gian thực thi truy vấn (run time) Ở mỗi thời điểm của quá trình thực thi, sẽ chọn ra thao tác kế tiếp tốt nhất dựa trên thông tin chính xác về kết quả của các thao tác thực hiện trước đó Ưu điểm chính của phương pháp này là xác định được chính xác kích thước của quan hệ trung gian, nhưng cũng có nhược điểm là thao tác có thể phải lặp
đi lặp lại cho mỗi lần thực hiện truy vấn
Các phương pháp hỗn hợp (ví dụ MERMAID) cũng được thử nghiệm nhằm cung cấp những ưu điểm của phương pháp tĩnh, đồng thời tránh được các vấn đề do các đánh giá không chính xác gây ra Về cơ bản vẫn sử dụng phương pháp tĩnh, nhưng khi phát hiện ra lỗi trong việc xác định kich cỡ thì sử dụng phương pháp động trong thời gian thực thi
Như chúng ta đã biết số liệu thống kê làm tăng hiệu quả của tối ưu hóa truy vấn tĩnh cũng như động Trong CSDL phân tán, số liệu thống kê được tính theo mảnh, và gồm kích thước, lực lượng cũng như kích thước và số lượng các giá trị phân biệt
của mỗi thuộc tính (distinct value) Độ chính xác của số liệu thống kê có được là
nhờ vào sự cập nhật theo định kỳ Đối với phương pháp tĩnh sự thay đổi lớn của số liệu thống kê có thể dẫn đến việc phải thực hiện lại tối ưu hóa
Phần lớn các hệ thống đều sử dụng phương pháp quyết định tập trung, việc ra quyết định chỉ do một trạm đảm nhiệm Phương án này đơn giản nhưng đòi hỏi phải có thông tin đầy đủ về toàn bộ CSDL Trong cách tiếp cận phân tán thì nhiều trạm cùng tham gia vào việc ra quyết định, và chỉ cần có thông tin cục bộ Các phương pháp hỗn hợp cũng hay được sử dụng khi đó một trạm ra các quyết định chính và các trạm khác có thể đưa ra các lựa chọn cục bộ Chẳng hạn System R* [Williams et al.,1982] sử dụng cách tiếp cận hỗn hợp
Yếu tố cấu hình mạng (network topology), cũng có ảnh hưởng quan trọng đến quá
trình tối ưu hóa Trong mạng WAN với tính chất là băng thông nhỏ, tốc độ truyền chậm, thì chi phí truyền dữ liệu được đánh giá là có trọng lượng trong việc tính toán
Trang 33hàm chi phí Trong mạng LAN với băng thông lớn, tốc độ truyền cao, thì tất cả các chi phí phải được tính đến trong việc tính toán hàm chi phí
Trong CSDL PT các mảnh được nhân bản cũng được tận dụng để nhằm làm hạ thấp
số lần truyền Và do đặc tính quan trọng của phép nối nửa là làm giảm đi kích thước của quan hệ nên sử dụng chúng có thể làm giảm đi dữ liệu cần trao đổi giữa các trạm Chúng đặc biệt có ích trong ngữ cảnh mạng có tốc độ chậm Tuy vậy nối nửa vẫn có ích trong ngữ cảnh tốc độ mạng ngày càng nhanh hiện nay Vì vậy một số thuật toán xử lý truy vấn gần đây đều tìm cách chọn ra một tổ hợp tối ưu giữa phép nối và nối nửa [Ozsoyogly and Zhou, 1987],[Wah and Lien,1985]
Bài toán xử lý truy vấn được phân rã thành nhiều bài toán con tương ứng với các tầng khác nhau trong xử lý vấn tin phân tán
Hình 2 2 Lược đồ tổng quát xử lý truy vấn phân tán
Nguồn của quá trình xử lý truy vấn là câu truy vấn dạng phép tính trên các quan hệ phân tán Các tầng tham gia vào việc phân tích xử lý truy vấn thành một dãy tối ưu
các phép toán cục bộ là: phân rã câu truy vấn, định vị dữ liệu, tối ưu hóa toàn cục,
và tối ưu hóa cục bộ Phân rã truy vấn và cục bộ hóa dữ liệu tương ứng với quá
Trang 34trình viết lại câu truy vấn Ba tầng đầu tiên được thực hiện bởi một trạm trung tâm
và sử dụng thông tin toàn cục, tầng thư tư được thực hiện tại các trạm cục bộ Các tầng nầy sẽ được bàn luận chi tiết ở phần sau
2.4 Phân rã truy vấn và định vị dữ liệu
Hai tầng phân rã truy vấn và định vị dữ liệu được thực hiện liên tiếp và chịu trách nhiệm biến đổi câu truy vấn ở dạng phép tính quan hệ ban đầu thành câu truy vấn dạng đại số quan hệ được định nghĩa trên các mảnh
Trong phần này chúng ta giả sử là câu truy vấn đã nhập đúng về cú pháp Khi kết thúc giai đoạn này câu truy vấn thu được sẽ đúng về ngữ nghĩa và đạt chất lượng Các bước phân rã truy vấn:
1) Đưa về dạng chuẩn tắc
2) Phân tích
3) Loại bỏ dư thừa 4) Viết lại truy vấn
2.4.1.1 Đưa về dạng chuẩn tắc (normalization)
Mục đích của chuẩn hóa là biến đổi câu truy vấn thành một dạng chuẩn để xử
lý tiếp Với các ngôn ngữ quan hệ như SQL, biến đổi quan trọng nhất là lượng
từ hóa vấn tin, có thể là một vị từ phi lượng từ với độ phức tạp nào đó, với tất
cả các lượng từ cần thiết đặt phía trước
Có hai dạng chuẩn có thể có cho vị từ:
Dạng chuẩn hội (conjunctive normal form) là hội của các tuyển:
Dạng chuẩn tuyển (disjunctive normal form) là tuyển của các hội:
Trang 35tương đương đã biết trong toán logic:
AND TGIAN=12 OR TGIAN=24
Viết dưới dạng chuẩn hội:
) TGIAN (TGIAN
"
"P SDA PHANCONG.M
SNV PHANCONG.M SNV
NHANVIEN.M
24 12
"
1
"
.
.
(
) 12
"
1
"
.
MSDA PHANCONG MSNV
PHANCONG MSNV
NHANVIEN
TGIAN P
MSDA PHANCONG MSNV
PHANCONG MSNV
NHANVIEN
2.4.1.2 Phân tích (analysis)
Việc phân tích câu truy vấn giúp chúng ta loại bỏ các câu truy vấn không đúng
Lý do có thể là do chúng bị sai kiểu hoặc sai nghĩa
Trang 36trong lược đồ toàn cục hoặc các phép toán được áp dụng cho các thuộc tính có kiểu không thích hợp
Sai nghĩa: nếu các thành phần của nó không tham gia vào việc tạo ra kết quả,
trong ngữ cảnh của phép tính quan hệ chỉ có thể kiểm tra được tính đúng đắn cho tập con của phép tính quan hệ Chúng thường không chứa các tuyển và phủ định Để xác định lỗi này thường sử dụng cách biểu diễn câu truy vấn dưới dạng đồ thị, được gọi là đồ thi nối tương ứng (join graph) và đồ thị kết nối
(connection graph) hay còn gọi là đồ thị truy vấn (query graph)
Trong đồ thị truy vấn, một nút biểu thị cho một quan hệ kết quả, các nút khác biểu thị cho các quan hệ toán hạng Cạnh giữa các nút là toán hạng biểu diễn cho một nối, cạnh nối với nút kết quả sẽ biểu thị cho phép chọn
Thí dụ 2.5:
SELECT TENNV, NVU
FROM NHANVIEN, PHANCONG, DUAN
Trang 37Hình 2 3 Các đồ thị quan hệ
Trong đồ thị nối thì chỉ có các nối, đồ thị này có ích cho giai đoạn tối ưu hóa vấn tin
Nếu như đồ thị không liên thông thì câu truy vấn đó có lỗi
SELECT TENNV, NVU
FROM NHANVIEN, PHANCONG, DUAN
Trang 38Sau khi lượng từ hóa truy vấn, kết quả có thể chứa các vị từ dư thừa Các vị từ này có thể được loại bỏ bằng cách giản ước lượng từ hóa bằng các qui tắc lũy đẳng sau:
2.4.1.4 Viết lại truy vấn (restructuring)
Bước này được chia thành hai bước nhỏ: (1) biến đổi câu truy vấn (query tree) sang dạng đại số quan hệ, (2) cấu trúc lại câu truy vấn đại số nhằm cải thiện hiệu năng Câu truy vấn sẽ được biểu diễn dưới dạng cây toán tử Mỗi nút lá biểu thị cho một quan hệ của CSDL, các nút không phải lá biểu thị cho quan hệ
Trang 39hướng từ lá đến gốc biểu thị cho kết quả truy vấn
AND (TGIAN=12 OR TGIAN=24)
Cây truy vấn có thể được biểu diễn như sau:
Hình 2 5 Thí dụ về cây truy vấn
Bằng cách sử dụng các quy tắc biến đổi (transformation rule) dưới đây ta có thể thu được nhiều cây tương đương từ cây trên
Quy tắc biến đổi (transformation rule):
1) Giao hoán của phép toán hai ngôi”
R×S ⇔ S×R
Trang 402 ( 2 ) 1 ( 1 )
2 ( 2 ) 1 (
()(( ( ) ( ) 1, , ,
∏
(R , S) '(R) , '(S)
B Bk Aj A
Bk Aj