1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

127 1,3K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 127
Dung lượng 2,57 MB

Nội dung

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 3

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

Trang 4

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 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 5

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

Trang 6

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

Trang 7

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

Trang 8

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 Ω={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 9

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:

), ,,(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 10

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 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à tS}

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

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><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]

]}

[][]

[

|),{(u v u R v s Y s S s X u X S

R>< = ∈ ∧ = ∧ ∈ ∧ =

Trang 13

Nố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 nm thuộc tính sao cho với mọi bộ u∈ thì S (t,u)∈R

) ) ) ( ((

)

S

R÷ = ∏A − ∏AA × − , 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 15

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

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 17

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

Trang 18

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

Trang 19

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í

Trang 20

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)

Trang 21

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):

),(R

R iFi 1≤iz 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 22

DUANNSDA≤ 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à

)(

, ,

DUANMSDA 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 23

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 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 24

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={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 25

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ệ)

Trang 26

Vớ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 ><MSNVTGIAN>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 27

phâ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 29

Chi 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 30

Dự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 32

xá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 33

hà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 34

trì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 35

tươ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 36

trong 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 37

Hì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 38

Sau 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 39

hướ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×SS×R

Trang 40

2 ( 2 ) 1 ( 1 )

2 ( 2 ) 1 (

()(( ( ) ( ) 1, , ,

™ (R , S) '(R) , '(S)

B Bk Aj A

Bk Aj

Ngày đăng: 25/03/2015, 09:37

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Bá Tường (2001), CƠ SỞ DỮ LIỆU Lý thuyết và thực hành, NXB Khoa học và kỹ thuật Sách, tạp chí
Tiêu đề: CƠ SỞ DỮ LIỆU Lý thuyết và thực hành
Tác giả: Nguyễn Bá Tường
Nhà XB: NXB Khoa học và kỹ thuật
Năm: 2001
[2] Lê Tiến Vương (1996), Nhập môn CƠ SỞ DỮ LIỆU QUAN HỆ, NXB Khoa học và kỹ thuật Sách, tạp chí
Tiêu đề: Nhập môn CƠ SỞ DỮ LIỆU QUAN HỆ
Tác giả: Lê Tiến Vương
Nhà XB: NXB Khoa học và kỹ thuật
Năm: 1996
[3] Hồ Thuần, Hồ Cẩm Hà (2004, 2005), Các hệ CƠ SỞ DỮ LIỆU lý thuyết và thực hành, tập 1,2, NXB Giáo dục Sách, tạp chí
Tiêu đề: Các hệ CƠ SỞ DỮ LIỆU lý thuyết và thực hành
Nhà XB: NXB Giáo dục
[4] Jeffrey D. Ulman, biên dịch Trần Đức Quang (2002), Nguyên lý các hệ CƠ SỞ DỮ LIỆU và CƠ SỞ TRI THỨC, tập I và II, NXB Thống kê Sách, tạp chí
Tiêu đề: Nguyên lý các hệ CƠ SỞ DỮ LIỆU và CƠ SỞ TRI THỨC
Tác giả: Jeffrey D. Ulman, biên dịch Trần Đức Quang
Nhà XB: NXB Thống kê
Năm: 2002
[5]Kenneth H. Rosen, người dịch: Phạm Văn Thiều, Đặng Hữu Thịnh (1998), Toán rời rạc Ứng dụng trong tin học, NXB Khoa học và kỹ thuật Sách, tạp chí
Tiêu đề: Toán rời rạc Ứng dụng trong tin học
Tác giả: Kenneth H. Rosen, người dịch: Phạm Văn Thiều, Đặng Hữu Thịnh
Nhà XB: NXB Khoa học và kỹ thuật
Năm: 1998
[6] M. Tamer Ozsu, Patrick Valduriez, biên dịch Trần Đức Quang (1999), Nguyên lý các hệ CƠ SỞ DỮ LIỆU phân tán, tập I, NXB Thống kê Sách, tạp chí
Tiêu đề: Nguyên lý các hệ CƠ SỞ DỮ LIỆU phân tán
Tác giả: M. Tamer Ozsu, Patrick Valduriez, biên dịch Trần Đức Quang
Nhà XB: NXB Thống kê
Năm: 1999
[7] Clement T.Yu, Weiyi Meng (1998), Principles of Database Query Processing for Advanced Applications, Morgan Kaufmann Publishers, Inc Sách, tạp chí
Tiêu đề: Principles of Database Query Processing for Advanced Applications
Tác giả: Clement T.Yu, Weiyi Meng
Năm: 1998
[8] Ramez Elmasri, Shamkant Navathe (2002), Fundamentals of Database Systems, 3 rd Edition Sách, tạp chí
Tiêu đề: Fundamentals of Database Systems
Tác giả: Ramez Elmasri, Shamkant Navathe
Năm: 2002
[9] Sakti Pramanik, David Ittiner (1985), Use of Graph-Theoretic Models for Optimal Relational Database Accesses to Perform Join, pages 57-76 , ACM Transaction on Database Systems Sách, tạp chí
Tiêu đề: Use of Graph-Theoretic Models for Optimal Relational Database Accesses to Perform Join
Tác giả: Sakti Pramanik, David Ittiner
Năm: 1985
[10] Zhe Li, Kenneth A. Ross (1994), Better Semijoin Using Tuple Bit-Vectors, Technical Report No. CUCS-010-94 Sách, tạp chí
Tiêu đề: Better Semijoin Using Tuple Bit-Vectors
Tác giả: Zhe Li, Kenneth A. Ross
Năm: 1994
[11] Zhe Li, Kenneth A. Ross (1995), PERF Join: An Alternative To Two-way Semijoin And Bloomjoin, Department of Computer Science, Columbia University, New York Sách, tạp chí
Tiêu đề: PERF Join: An Alternative To Two-way Semijoin And Bloomjoin
Tác giả: Zhe Li, Kenneth A. Ross
Năm: 1995
[12] Ramzi A. Haraty, Roula C.Fany (2001), Query Acceleration in Distributed Database Systems, Colombian Journal of Computation. Volume 2, Number 1 Sách, tạp chí
Tiêu đề: Query Acceleration in Distributed Database Systems
Tác giả: Ramzi A. Haraty, Roula C.Fany
Năm: 2001

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w