1.4 HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN Ta có thể định nghĩa, CSDL phân tán là một tập hợp các dữ liệu thuộc về một hệ thống có liên quan với nhau một cách logic và được phân bố trên một mạng máy
Trang 1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
=====o0o=====
Đinh Thị Lan Phương
TỐI ƯU TRUY VẤN CƠ SỞ DỮ LIỆU QUAN HỆ
VÀ CƠ SỞ DỮ LIỆU PHÂN TÁN BẰNG PHƯƠNG PHÁP HEURISTIC
LUẬN VĂN THẠC SĨ
Trang 2MỤC LỤC
LỜI CẢM ƠN 1
MỤC LỤC 2
CÁC THUẬT NGỮ VIẾT TẮT 4
MỞ ĐẦU 5
Chương 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 7
1.1 CƠ SỞ DỮ LIỆU QUAN HỆ 7
1.1.1 Khái niệm 7
1.1.2 Tiêu chuẩn của một cơ sở dữ liệu 7
1.2 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 8
1.2.1 Hệ quản trị cơ sở dữ liệu 8
1.2.2 Các chức năng của hệ quản trị cơ sở dữ liệu 8
1.2.3 Cách thức truy nhập CSDL 8
1.3 MÔ HÌNH DỮ LIỆU QUAN HỆ 9
1.3.2 Các phép toán trên quan hệ 10
1.3.3 Các dạng chuẩn của mô hình quan hệ 11
1.4 HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN 13
1.4.1 Các khái niệm về cơ sở dữ liệu phân tán 13
1.4.2 Các mục tiêu của hệ quản trị cơ sở dữ liệu phân tán 15
1.4.3 Kiến trúc hệ quản trị cơ sở dữ liệu phân tán 16
1.4.4 Phân đoạn, nhân bản và cấp phát dữ liệu 19
1.5 KẾT LUẬN CHƯƠNG 1 21
Chương 2 TỔNG QUAN VỀ TỐI ƯU HOÁ TRUY VẤN 22
2.1 BÀI TOÁN TỐI ƯU HÓA TRUY VẤN 22
2.2 BỘ TỐI ƯU TRUY VẤN 23
2.2.1 Không gian tìm kiếm 24
2.2.2 Chiến lược tìm kiếm 26
2.2.3 Mô hình chi phí 27
2.3 KẾT LUẬN CHƯƠNG 2 31
Chương 3 MỘT SỐ PHƯƠNG PHÁP TỐI ƯU TRUY VẤN 32
3.1 MỘT SỐ PHƯƠNG PHÁP TỐI ƯU HOÁ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG 32
3.1.1 Thuật toán INGRES 32
3.1.2 Thuật toán System R 36
3.2 MỘT SỐ PHƯƠNG PHÁP TỐI ƯU HOÁ TRUY VẤN TRONG MÔI TRƯỜNG PHÂN TÁN 41
3.2.1 Thuật toán INGRES phân tán 41
Trang 33.2.2 Thuật toán System R* 45
3.2.3 Thuật toán SDD-1 50
3.3 KẾT LUẬN CHƯƠNG 3 59
Chương 4 TỐI ƯU TRUY VẤN BẰNG PHƯƠNG PHÁP HEURISTIC 60
4.1 CÁC CHIẾN LƯỢC TỐI ƯU TỔNG QUÁT 60
4.2 CÁC PHÉP BIẾN ĐỔI ĐẠI SỐ QUAN HỆ 61
4.2.1 Biểu thức quan hệ 61
4.2.2 Biến đổi tương đương của đại số quan hệ 62
4.3 THUẬT TOÁN HEURISTIC 64
4.4 VÍ DỤ TỐI ƯU HOÁ CÂU HỎI THEO HEURISTIC 65
4.5 KẾT LUẬN CHƯƠNG 4 77
KẾT LUẬN 79
TÀI LIỆU THAM KHẢO 81
Trang 4CÁC THUẬT NGỮ VIẾT TẮT
ES External Schema Lƣợc đồ ngoài
MRQ Multi Relation Query Truy vấn đa quan hệ
ORQ One Relation Query Truy vấn đơn quan hệ
OVQP One Variable Query Processor Bộ xử lý truy vấn một biến QEP Query Excution Plan Hoạch định thực thi truy vấn QTCSDL DataBase System Quản trị cơ sở dữ liệu
Trang 5MỞ ĐẦU
1 Đặt vấn đề
Trong thời đại của nền kinh tế tri thức mà chúng ta đang sống, mọi hoạt động muốn đạt hiệu quả cao thì nhất thiết phải có được thông tin, tri thức cần thiết một cách nhanh chóng và chính xác Thông tin có thể có được ở mọi nơi,
và CSDL là một trong những nguồn cung cấp thông tin
Vấn đề đặt ra là khối lượng thông tin lưu trữ lớn song đòi hỏi việc xử lý thông tin phải nhanh chóng và hiệu quả Để lấy được thông tin cần thiết ta cần thực hiện hàng loạt các thao tác trên CSDL thông qua các câu truy vấn Từ câu truy vấn ban đầu có thể thực hiện theo các phương pháp khác nhau để có kết quả song cần phải hạ thấp chi phí thực hiện truy vấn gọi là tối ưu hoá truy vấn Tuy nhiên để có được phương án tối ưu nhất thì có thể chi phí cho quá trình tối ưu lại rất cao
Xuất phát từ những đặc điểm chung và tính thời sự nêu trên, tôi đã chọn
đề tài nghiên cứu về tối ưu hoá truy vấn và đi sâu vào tìm hiểu về phương pháp tối ưu truy vấn bằng Heuristic mong được đóng góp một phần nhỏ bé trong việc nghiên cứu về các phương pháp tối ưu hoá truy vấn dữ liệu để khai thác thông tin một cách có hiệu quả và nhanh chóng, trợ giúp cho những người sử dụng dữ liệu thực hiện tốt công việc của mình
2 Mục tiêu của luận văn
Mục tiêu của đề tài là nghiên cứu các phương pháp tối ưu hoá truy vấn, đặc biệt tập trung nghiên cứu phương pháp tối ưu hoá bằng Heuristic Luận văn bao gồm các vấn đề chính sau đây:
- Nghiên cứu về cơ sở dữ liệu quan hệ và cơ sở dữ liệu phân tán
- Tìm hiểu bài toán tối ưu hoá truy vấn
- Tìm hiểu một số phương pháp tối ưu hoá trong môi trường tập trung và phân tán
Trang 6Luận văn gồm 4 chương:
Chương 1: Tổng quan về cơ sở dữ liệu quan hệ và cơ sở dữ liệu phân tán Chương 2: Bài toán tối ưu hoá truy vấn
Chương 3: Một số phương pháp tối ưu hoá truy vấn trong môi trường tập
trung và phân tán
Chương4: Phương pháp tối ưu hoá truy vấn bằng Heuristic, ví dụ minh
hoạ
Trang 7Chương 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
1.1 CƠ SỞ DỮ LIỆU QUAN HỆ
1.1.1 Khái niệm
Được phát triển từ những năm 60, cho đến nay các hệ cơ sở dữ liệu (CSDL) được tập trung nghiên cứu và phát triển ứng dụng rất mạnh Khái niệm CSDL cũng đã được định nghĩa dưới nhiều góc độ khác nhau, ta có thể hiểu CSDL theo khái niệm là một tập hợp dữ liệu của một tổ chức, xí nghiệp,… được lưu trữ trong máy tính, được nhiều người sử dụng và cách tổ chức của nó được chi phối bằng một mô hình dữ liệu[5]
Một ngân hàng dữ liệu thường là tập hợp các thông tin lưu trữ trong máy tính có liên quan đến một lĩnh vực khoa học, kinh tế hoặc văn hoá, thể thao theo một cách đầy đủ nhất có thể có Dữ liệu trong ngân hàng thực chất chỉ là một kho dữ liệu trong khi đó một CSDL của một tổ chức hàm chứa cả các thông tin liên quan đến việc bảo mật, cấu trúc lưu trữ thông tin và sự chia sẻ tài nguyên
1.1.2 Tiêu chuẩn của một cơ sở dữ liệu
Một CSDL cần thoả mãn các tiêu chuẩn sau[1, 4, 6]:
1 Biểu diễn tốt thế giới thực: cung cấp một hình ảnh trung thực của thực tại
Một CSDL trung thực cho phép người dùng có các thông tin thoả mãn việc sử dụng và cập nhật
2 Không dư thừa thông tin: mỗi thông tin đảm bảo không bị trùng lặp, chỉ có
mặt một lần trong CSDL do đó sự lựa chọn dữ liệu là duy nhất
3 Tính độc lập của các chương trình đối với dữ liệu: tương ứng với sự cần thiết
làm giảm giá thành bảo trì các chương trình Những thay đổi về cấu trúc của hệ CSDL là do sự thay đổi của thế giới thực chứ không phải do một ứng dụng cụ thể và nó cho phép nhiều ứng dụng cùng chia sẻ một bộ dữ liệu
4 Tính an toàn và bí mật của dữ liệu: CSDL được đảm bảo chỉ những người có
Trang 85 Hiệu suất ứng dụng: Mặc dù chia sẻ cùng một nguồn chung, các ứng dụng
phải có hiệu suất trong CSDL giống nhau như trong sử dụng thông tin truyền thông
Các tiêu chuẩn trên là thiết yếu nhất cho một CSDL hoàn thiện và tối ưu, tuy nhiên các tiêu chuẩn khác nhau sẽ được ưu tiên ít nhiều khác nhau tuỳ theo từng mục đích và ứng dụng cụ thể
1.2 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
1.2.1 Hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu (QTCSDL) là hệ thống phần mềm đặc biệt cho phép khai thác một cách hợp lý các CSDL Một hệ QTCSDL bao gồm các phần mềm cho phép mô tả, lưu trữ, thao tác, xử lý các tập hợp dữ liệu Đồng thời, hệ QTCSDL đảm bảo sự an toàn và bí mật của các dữ liệu trong một môi trường có nhiều người sử dụng với những yêu cầu khác nhau có thể có những tác động truy nhập đồng thời lên dữ liệu
1.2.2 Các chức năng của hệ quản trị cơ sở dữ liệu
Một hệ QTCSDL phải đảm bảo được các chức năng tối thiểu sau:
- Mô tả dữ liệu
- Tìm kiếm dữ liệu đã được lưu trữ
- Cập nhật dữ liệu (thêm, bớt, sửa đổi,…)
- Chuyển hoá dữ liệu giữa các mức độ lược đồ
- Điều khiển tính an toàn và toàn vẹn dữ liệu
- Quản lý dữ liệu ở mức thấp (mức các giao tác xử lý dữ liệu)
1.2.3 Cách thức truy nhập CSDL
Truy nhập CSDL là phương pháp khai thác tệp do chương trình ứng dụng sử dụng để chọn những bản ghi Trong hệ CSDL có các loại truy nhập sau:
1 Tổ chức truy nhập tuần tự: là phương pháp đọc tuần tự các bản ghi của
tệp, từ đầu tệp cho đến bản ghi cần tìm.Trong kiểu tổ chức này các bản ghi được lưu trữ lần lượt, muốn đọc bản ghi thứ n, ta phải lần lượt đi qua (n-1) bản ghi trước đó Tuy nhiên ta không cần đọc toàn bộ nội dung các
Trang 9bản ghi mà chỉ cần đọc một phần thông tin tối thiểu đủ để xác định xem
đó có phải là bản ghi cần hay không
2 Tổ chức truy nhập trực tiếp: Cho phép truy nhập trực tiếp đến các đơn vị
thông tin cần tìm mà không cần đọc lần lượt từ đầu Để truy nhập phải tuân theo phương pháp đã xác định khi tổ chức lưu trữ Có hai loại tổ chức truy nhập là tệp trực tiếp và tệp có chỉ số Ta phải sử dụng một phần thông tin của bản ghi làm khoá của bản ghi đó Qua đặc trưng của khoá
cho phép xác định chính xác bản ghi cần tìm
3 Truy nhập ngẫu nhiên: Kiểu tổ chức này lưu trữ các bản ghi tại địa chỉ
theo một khoá nào đó Ta thường dùng một thuật toán, một hàm ngẫu nhiên để tính toán ra địa chỉ của bản ghi Hàm địa chỉ được xây dựng theo nhiều phương pháp khác nhau như phương pháp tính địa chỉ tuyến tính, phương pháp dùng hàm mã cắt v.v…
1.3 MÔ HÌNH DỮ LIỆU QUAN HỆ
Mô hình dữ liệu là tập hợp các khái niệm dùng để biểu diễn các cấu trúc của CSDL Cấu trúc của một CSDL bao gồm các kiểu dữ liệu, các mối liên kết và các ràng buộc phải tuân theo trên các dữ liệu Nhiều mô hình còn có thêm tập hợp các phép toán cơ bản để đặc tả các thao tác trên CSDL
Mô hình quan hệ được Ted Codd đưa ra vào những năm 1970 và được sử dụng rất rộng rãi bởi tính đơn giản và cơ sở toán học của nó
1.3.1 Khái niệm về quan hệ
Một lược đồ quan hệ R, kí hiệu là R(A1, A2,…,An) được tạo nên từ một tên quan hệ R, một danh sách các thuộc tính A1, A2,…,An Số thuộc tính của quan hệ gọi là bậc của quan hệ
Một quan hệ r tương ứng với lược đồ R là :
r(R ) D1 x D2 x…x Dn trong đó Di với (1i n) là miền giá trị của thuộc tính Ai
Một quan hệ được biểu diễn như một bảng, trong đó các giá trị của một
Trang 101.3.2 Các phép toán trên quan hệ
Có năm phép toán cơ bản và năm phép toán khác có thể đƣợc định nghĩa theo năm phép toán cơ bản này Đó là phép chọn, phép chiếu, phép hợp, phép trừ và phép tích Descartes Các phép toán bổ sung có thể là: giao, nối, nối tự nhiên, nối nửa và phép chia
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 thoả p:
)}
( / {t ) (R 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 bỏ trong quan hệ R những thuộc tính không nằm trong X
}
| ] [ {t )
Phép hợp Hợp của hai quan hệ R và S, là tập tất cả các bộ thuộc R hoặc
thuộc S hoặc thuộc cả hai Các bộ trùng lặp bị loại bỏ
R S= {t| tR hoặc t 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-S = {t| tR 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
R x S = {t | t có dạng (a1, a2,…,an, b1, b2,…, bm ) trong đó (a1, a2,…,an) R
và (b1,b2,…,bm)S}
Phép giao: Giao của 2 quan hệ R và S, là tập tất cả các bộ t thuộc cả hai
quan hệ R và S
R S = {t | t R, t S } = R - (R-S)
Nối - Phép nối 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 là nối hay đơn giản là nối Với F là vị từ nối:
RF S = F (R x S)
Trang 11Nố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
R S = {(u,v)|uR v = s[Y] sS s[X] = u[X]}
Nối nửa của hai quan hệ R và S theo vị từ p cho kết quả là:
R < p S =X (RP S ) 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 bộ t trên bộ n-m thuộc tính sao cho với mọi bộ uS thì (t,u) R
RS = A‟(R)-A‟((A‟(R)xS)-R), với A‟ là tập thuộc tính của R không thuộc S
1.3.3 Các dạng chuẩn của mô hình quan hệ
Các quan hệ dùng trên mỗi hệ QTCSDL phải thoả mãn điều kiện[4]:
- Hạn chế tối thiểu sự dư thừa thông tin
- Cho phép các cập nhật nhanh nhất
- Tránh những sự rời rạc liên quan đến quá trình cập nhật
Chuẩn hoá - là một quá trình từng bước thay thế một tập quan hệ đã cho bằng tập các quan hệ có cấu trúc ngày càng đơn giản và chuẩn tắc hơn Mục đích của chuẩn hoá là loại bỏ những bất thường của một quan hệ Quan hệ được chuẩn hoá là quan hệ trong đó mỗi miền giá trị của một thuộc tính chỉ chứa những giá trị nguyên tố tức là không phân nhỏ ra đượ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ệ Về sau Boyce và Codd đã định nghĩa một phiên bản sửa đổi của dạng chuẩn ba, thường gọi là dạng chuẩn Boyce-Codd (BCNF) Tiếp sau đó là các dạng chuẩn bốn (4NF) và chuẩn năm (5 NF) được đề nghị dựa trên các phụ thuộc hàm đa trị và các phụ thuộc hàm nối
Trang 12Chuẩn hoá dữ liệu có thể được xem như là một quá trình phân tích các lược
đồ quan hệ cho trước dựa trên các phụ thuộc hàm và các khoá chính của chúng
để đạt đến các tiêu chuẩn mong muốn là cực tiểu sự dư thừa và cực tiểu các phép cập nhật bất thường
Yêu cầu của chuẩn hoá là không làm mất mát thông tin khi thay một quan
hệ này 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ã đó 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 hoá là bảo toàn phụ thuộc Phân
rã được gọi là bảo toàn phụ thuộc nếu đảm bảo rằng từng phụ thuộc hàm sẽ được biểu hiện trong các quan hệ riêng rẽ sau khi tách
Định nghĩa dạng chuẩn 1 (1 NF): Một lược đồ quan hệ R được gọi là ở
dạng chuẩn 1 nếu và chỉ nếu toàn bộ các miền thuộc tính có mặt trong R đều chỉ chứa các giá trị nguyên tố [1]
Như vậy 1NF không cho phép quan hệ có các thuộc tính đa trị hoặc có các nhóm thuộc tính đa trị
Định nghĩa dạng chuẩn 2 (2 NF): Một lược đồ quan hệ ở dạng chuẩn 2NF
nếu nó đã ở dạng chuẩn 1NF và nếu mỗi thuộc tính không khoá của R phụ thuộc hàm đầy đủ vào mỗi một khoá [1]
Dạng không chuẩn hóa
Dạng chuẩn thứ hai (2NF) Dạng chuẩn thứ nhất (1NF)
Dạng chuẩn thứ ba (3NF)
Trang 13Định nghĩa dạng chuẩn 3 (3 NF): Một lược đồ quan hệ R ở dạng chuẩn
3NF nếu nó đã ở dạng chuẩn 2NF và nếu mỗi thuộc tính không khoá của R là không phụ thuộc hàm bắc cầu vào mỗi một khoá [1]
Định nghĩa dạng chuẩn BCNF: Một lược đồ quan hệ R với tập các phụ
thuộc hàm được gọi là ở dạng chuẩn BCNF nếu X A thoả mãn trên R, A X thì X là một siêu khoá của R [1]
1.4 HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN
Ta có thể định nghĩa, CSDL phân tán là một tập hợp các dữ liệu thuộc về một hệ thống có liên quan với nhau một cách logic và được phân bố trên một mạng máy tính Hệ quản trị CSDL phân tán được định nghĩa là một hệ thống phần mềm cho phép quản lý các CSDL phân tán và làm cho việc phân tán trở nên trong suốt với người sử dụng
Với các CSDL phân tán chúng ta dễ dàng nhận thấy những ưu điểm tiềm năng như:
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 phân tán cung cấp khả năng trong suốt phân tán với ý nghĩa là che dấu đặc tính phân tán đối với người sử dụng Hệ quản trị CSDL phân tán
có thể cung cấp các khả năng trong suốt sau:
- Trong suốt phân tán
- Trong suốt phân đoạn
- Trong suốt nhân bản
Tăng tính tin cậy và tính sẵn sàng
Cho phép dùng chung dữ liệu vẫn duy trì được biện pháp điều khiển cục
Trang 14Trạm 1
Trạm 5 Trạm 4
Trạm 3
Trạm 2
Hình 1- Cơ sở dữ liệu trung tâm trên một mạng
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
Một hệ quản trị CSDL phân tán 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 phân tán
Ngoài các chức năng của các hệ quản trị CSDL tập trung và của phần mềm
Trạm 1
Trạm 5 Trạm 4
Trạm 3
Trạm 2
Hình 2- Môi trường của hệ Cơ sở dữ liệu phân tán
Trang 15quản trị truyền thông, hệ quản trị CSDL phân tán 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á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 và dữ liệu
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
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 phân tán là tính thuần nhất hay không thuần nhất Một CSDL phân tán thuần nhất 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 phân tán thuần nhất thường là kết quả của cách tiếp cận thiết kế từ trên xuống, trong đó thiết kế một CSDL phân tán từ một CSDL tập trung
Một CSDL phân tán không thuần nhất là một CSDL phân tán có được bằng cách tích hợp một tập 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ị cơ sở dữ liệu phân tán
Sự độc lập dữ liệu và trong suốt phân tán 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 trữ trong từ điển dữ liệu, và được hệ quản trị CSDL phân tán sử dụng để định vị dữ liệu Đây là một dạng trong suốt cơ bản cần có trong CSDL phân tán, nó liên quan đến tính độc
Trang 16khá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 phân tán
Trong suốt phân đoạn Việc truy cập tới dữ liệu được xác định trên các quan hệ con (thu được từ việc chia nhỏ quan hệ gốc) được gọi là các đoạn (fragment) Việc phân đoạn làm tăng hiệu năng, tính sẵn sàng, độ tin cậy của CSDL phân tán Trong suốt phân đoạn 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 đoạn 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 phân tán 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 phân tán 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 phân tán có thể hoàn toàn không 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ị cơ sở dữ liệu phân tán
Có nhiều kiểu kiến trúc CSDL như, các hệ CSDL client/sever, 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à sever) hay còn gọi là các hệ phân tán ngang hàng
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, gọi là lược đồ trong cục bộ (Local Internal Schema - LIS) Hình ảnh toàn thể của CSDL được mô tả bởi lược đồ khái niệm toàn cục (Global Conceptual Schema -
GCS), nó mô tả cấu trúc logic của dữ liệu ở mọi vị trí
Trang 17Để xử lý việc phân đoạn và nhân bản, sử dụng lược đồ khái niệm cục bộ (Local Conceptual Schema - 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ộ
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 3
Các thành phần cụ thể của một hệ CSDL phân tán
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à đinh dạng dữ liệu để chuyển cho người dùng các kết quả
Bộ kiểm soát dữ liệu ngữ nghĩa (sematic 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
Hình 3- Kiến trúc tham chiếu Cơ sở dữ liệu phân tán
ES-lược đồ ngoài (External Schema)
GCS-lược đồ khái niệm toàn cục (Global Conceptual
Trang 18câ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 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
Người sử dụng
Bộ kiểm soát dữ liệu ngữ nghĩa
Bộ tối ưu truy vấn toàn cục
Bộ theo dõi hoạt động toàn cục
Lược đồ khái niệm toàn cục
Bộ giao tiếp người dùng
Thư mục/Từ điển toàn cục Lược đồ ngoài
Lược đồ trong cục
bộ Nhật ký hệ thống
Trang 19Bộ hỗ trợ thực thi (runtime support processor): truy xuất CSDL tuỳ vào
các lệnh trong lịch do bộ tối ưu truy vấn sinh ra Nó là giao diện với bộ điều hành, chứa bộ quản lý vùng đệm và việc quản lý 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 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
1.4.4 Phân đoạn, nhân bản và cấp phát dữ liệu
1.4.4.1 Phân đoạn
Sự phân đoạn 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 phân tán Các đoạn đượ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 đoạn 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 đoạn Do vậy việc phân đoạn 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 đoạn 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 đoạn sẽ bị giảm hiệu suất hoạt động (ví dụ việc truy xuất dữ liệu từ nhiều đoạn 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 đoạn Còn vấn đề nữa liên quan đến việc kiểm soát dữ liệu ngữ nghĩa, đặc biệt là những vấn đề kiểm tra tính toàn vẹn Do kết quả của việc phân đoạn, 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 đoạn khác nhau và được cấp phát cho những trạm khác nhau, do đó việc 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 đoạn 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)
Trang 20Các kiểu phân đoạn:
Phân đoạn ngang: Phân đoạn ngang là sự phân chia một quan hệ thành các
tập các bộ con, mỗi tập con được xác định bởi phép chọn áp dụng cho quan hệ (phân đoạn ngang nguyên thuỷ):
Ri = Fi (R), 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 đoạn ngang của một quan hệ khác (phân đoạn ngang dẫn xuất):
Ri = R < Si, 1 i w với w là số lượng các đoạn được định nghĩa trên R
Si = Fi (S) với Fi là vị từ chọn để định nghĩa phân đoạn ngang nguyên thuỷ
S
Phân đoạn dọc: Phân đoạn dọc là sự phân hoạch một quan hệ thành tập
con các bộ, mỗi tập được xác định bởi phép chiếu được áp dụng cho quan hệ, tức là:
Ri =X (R), 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 phân đoạn dọc, cần phải thêm vào mỗi đoạn khoá chính của quan hệ
Phân đoạn hỗn hợp: Là sự kết hợp giữa phân đoạn dọc và phân đoạn
ngang
1.4.4.2 Nhân bản và cấp phát
Việc nhân bản nhằ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 mức này chỉ cần ít nhất một trạm làm việc là
hệ thống có thể hoạt động Nhưng với mức nhân bả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
Hình 5 - Các kiểu phân đoạn
Trang 21Mức thấp nhất là không nhân bản, mỗi một đoạn chỉ 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
Mỗi đoạn – hay mỗi bản sao của phân đoạn - 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á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 một 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ì 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 đoạn 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 ứng dụng Q= {q1, q2, …,qn đang chạy Bài toán cấp phát 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à tính tối ưu
Tính tối ưu có thể được định nghĩa ứng với hai độ đo:
Chi phí nhỏ nhất, đó là chi phí mỗi đoạn tại một nút, chi phí vấn tin, chi phí cập nhật, chi phí truyền dữ liệu Bài toán cấp phát cố gắng tìm một lược đồ cấp phát với chi phí nhỏ nhất
Hiệu năng, các chiến lược cấp phát luôn hướng tới tiêu chí hạ thấp thời gian đáp ứng và tăng tối đa lưu lượng hệ thống tại mỗi vị trí
Các chiến lược cấp phát để tối ưu được hai thông số này luôn là bài toán khó
1.5 KẾT LUẬN CHƯƠNG 1
Trong chương I đã trình bày tổng quan về CSDL và hệ quản trị CSDL bao gồm các khái niệm các phép toán quan hệ, các dạng chuẩn Khái niệm CSDL phân tán, mục tiêu và kiến trúc CSDL phân tán với các mức trong suốt Các phép toán quan hệ, các kiểu phân đoạn trong CSDL phân tán là cơ sở để thực hiện tối ưu hoá truy vấn được đề cập trong các chương sau
Trang 22Chương 2 TỔNG QUAN VỀ TỐI ƯU HOÁ TRUY VẤN
2.1 BÀI TOÁN TỐI ƯU HÓA TRUY VẤN
Về khái niệm, tối ưu hoá truy vấn nhằm chọn ra một chiến lược tốt nhất trong không gian các chiến lược thực thi [10]
Chiến lược được chọn phải hạ thấp tối đa hàm chi phí bao gồm thời gian xử
lý của CPU, thời gian truy nhập dữ liệu đối với CSDL tập trung và trong CSDL phân tán cần xét thêm chi phí truyền dữ liệu
Truy vấn cần tối ưu giả thiết được diễn tả bằng đại số quan hệ trên các CSDL có thể là các đoạn trong CSDL phân tán
Trong CSDL 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ở rộng của đại số quan hệ và chọn ra câu truy vấn đại số tốt nhất trong số các câu truy vấn tương đương Đây là bài toán khó khi số lượng các quan hệ lớn nên nói chung thường được rút lại ở yêu cầu chọn được một lời giải gần tối ưu
Trong CSDL phân tán, đại số quan hệ chưa đủ để diễn tả các chiến lược thực thi Bên cạnh việc chọn thứ tự cho các phép toán đại số quan hệ cần phải chọn các vị trí tốt nhất để xử lý dữ liệu Vì thế không gian lời giải các chiến lược thực thi tăng lên làm cho việc xử lý phân tán phức tạp hơn Kết quả của quá trình tối ưu hóa trong môi trường phân tán là câu truy vấn đại số được đặc tả theo các đoạn và các phép toán truyền dữ liệu hỗ trợ cho việc thực thi truy vấn qua các vị trí
Các yêu cầu của phép biến đổi tương đương :
- Các phép biến đổi phải thực sự hữu ích đối với phần lớn các dạng truy vấn hay một lớp các truy vấn thường dùng mà không cần chi phí quá nhiều để thực hiện quá trình biến đổi đó
- Các phép biến đổi phải bảo toàn kết quả của truy vấn trước và sau khi biến đổi, có nghĩa là hai biểu thức trước và sau khi biến đổi phải cho cùng một kết quả khi thay các lược đồ trong biểu thức bởi các thể hiện cụ thể
- Các phép biến đổi phải làm giảm chi phí thực hiện câu hỏi
Trang 23Chi phí cho việc xử lý các truy vấn bao gồm rất nhiều yếu tố, trong đó cần chú ý đến các thông số cơ bản sau:
- Số khối nhớ cần truy xuất giữa bộ nhớ trong và bộ nhớ ngoài
- Số bản ghi phải xử lý ở thiết bị trung tâm
- Không gian bộ nhớ để lưu trữ các kết quả trung gian trong quá trình thực hiện truy vấn
Trong hệ phân tán ta cần lưu ý thêm các thông số:
- Giá truyền dữ liệu trong mạng truyền thông
- Ưu điểm của việc xử lý song song các phần câu hỏi trên các trạm
2.2 BỘ TỐI ƯU TRUY VẤN
Câu hỏi truy vấn cần tối ưu giả thiết là được biểu diễn bằng đại số quan hệ trên các CSDL, có thể là các đoạn trong CSDL phân tán
Tối ưu hoá truy vấn là quá trình sinh ra một chiến lược thực thi truy vấn (Query Execution Plan – QEP) Chiến lược được chọn phải hạ thấp tối đa hàm chi phí
Bộ tối ưu được xem là cấu thành bởi ba thành phần: không gian tìm kiếm,
mô hình chi phí, chiến lược tìm kiếm
Trang 242.2.1 Không gian tìm kiếm
Không gian tìm kiếm được xem là tập hợp của các chiến lược thực thi truy vấn khác nhau Để nêu bật các đặc trưng của bộ tối ưu hoá, chúng ta tập trung vào các cây nối là cây toán tử với các phép toán là phép nối hoặc tích descartes
Lý do là việc hoán vị thứ tự nối có ảnh hưởng quan trọng đến hiệu năng của các truy vấn quan hệ
Với N quan hệ ta có O(N!) cây nối tương đương Việc đánh giá trong một không gian tìm kiếm lớn có thể mất nhiều thời gian có khi còn lớn hơn cả thời gian thực thi thực sự
Ví dụ 2.1: Với CSDL gồm các quan hệ :
NHANVIEN(MSNV, TENNV, NNGH)
MUCLUONG(NNGH, LUONG)
DUAN(MSDA, TENDA, NSDA, DDDA)
PHANCONG(MSNV, MSDA, NVU, TGIAN)
Tạo ra không gian
Trang 25Xét câu truy vấn sau :
SELECT TENNV
FROM NHANVIEN, PHANCONG, DUAN
WHERE NHANVIEN.MSNV=PHANCONG.MSNV
AND PHANCONG.MSDA=DUAN.MSDA
Để thực hiện truy vấn, ta có thể xây dựng các cây nối tương đương như :
Có hai loại cây nối thường được sử dụng là cây tuyến tính, và cây xum xuê
NHANVIEN
(1)
MSNV
MSDA DUAN
DUAN (2)
NHANVIEN
NHAN VIEN PHANCONG PHANCONG DU AN
Trang 26Trong cây tuyến tính, kích thước của không gian tìm kiếm được rút gọn hơn Tuy nhiên trong môi trường phân tán, cây xum xuê có thể có lợi cho việc thực hiện xử lý song song
R1
Hình 8- Hai hình thái của cây nối
Trang 27Nhằm tránh chi phí cao trong tìm kiếm vét cạn, các chiến lược ngẫu nhiên được đề xuất tập trung vào việc tìm kiếm lời giải tối ưu xung quanh một số đặc điểm nào đó Chúng không đảm bảo rằng sẽ tìm ra được lời giải tốt nhất nhưng lại tránh được chi phí quá cao của tối ưu hoá (dựa trên việc tiêu dùng bộ nhớ và thời gian) Trước tiên một hoặc nhiều phương án khởi đầu được xây dựng bởi một chiến lược thiện cận Sau đó thuật toán tìm cách cải thiện các phương án này bằng cách thăm các lân cận của nó Một lân cận thu được bằng việc biến đổi ngẫu nhiên một phương án và xây dựng phương án khả thi theo chiều sâu
2.2.3 Mô hình chi phí
Mô hình chi phí của bộ tối ưu hoá gồm có các hàm chi phí để dự đoán chi phí của các toán tử, số liệu thống kê, dữ liệu cơ sở và các công thức để ước lượng, tính toán kích thước kết quả trung gian
Trang 28Tổng chi phí = chi phí xuất nhập + chi phí CPU
Đối với CSDL phân tán chi phí của một chiến lƣợc thực thi có thể đƣợc diễn tả bởi tổng thời gian hoặc thời gian đáp ứng là thời gian tính từ khi bắt đầu đến khi hoàn thành câu truy vấn
Tổng chi phí = chi phí xuất nhập + chi phí CPU + chi phí truyền
Trong đó :
Chi phí CPU = chi phí xử lý một lệnh của CPU * số lệnh
Chi phí xuất nhập = chi phí của một thao tác xuất nhập đĩa * số lần xuất nhập
Chi phí truyền = chi phí khởi tạo một thông báo * số thông báo + chi phí truyền một đơn vị dữ liệu * số bytes
Khi thời gian đáp ứng truy vấn là hàm mục tiêu của bộ tối ƣu hóa, ta cần phải quan tâm đến vấn đề xử lý cục bộ song song và truyền song song Công thức tổng quát của thời gian đáp ứng là:
Thời gian đáp ứng = thời gian xử lý của CPU + thời gian xuất nhập + thời gian truyền
Trong đó các lệnh, các xuất nhập, các thông báo hay các bytes là số lớn nhất phải đƣợc thực hiện một cách tuần tự khi thực hiện truy vấn
Ví dụ 2.2:
Minh hoạ sự khác nhau giữa tổng chi phí và thời gian đáp ứng, trong đó kết quả đƣợc trả lời tại trạm 3, dữ liệu đƣợc lấy từ trạm 1 và 2 Để đơn giản chúng ta giả sử rằng chỉ xét đến chi phí truyền
Giả sử thời gian truyền một đơn vị dữ liệu và thời gian khởi tạo một thông báo đƣợc biểu thị theo đơn vị thời gian, ta có:
Tổng thời gian = 2 * thời gian khởi tạo một thông báo + thời gian truyền một đơn vị dữ liệu * (x+y)
Thời gian đáp ứng = max(thời gian khởi tạo một thông báo + thời gian truyền một đơn vi dữ liệu * x, thời gian khởi tạo một thông báo + thời gian truyền một đơn vị dữ liệu * y)
Trang 29Thời gian đáp ứng tối thiểu đạt được bằng cách tăng mức độ xử lý song song, tuy nhiên không đồng nghĩa với tổng chi phí là tối thiểu, ngược lại tổng chi phí có thể tăng khi có nhiều xử lý cục bộ và truyền song song hơn
Số liệu thống kê cho việc tối ưu
Một tác nhân ảnh hưởng tới hiệu quả hoạt động của chiến lược thực thi là kích thước của các quan hệ trung gian Chúng ta cần phải ước lượng kích thước của trạm khác trong quá trình thực hiện truy vấn Việc ước lượng này được thực hiện dựa trên các thông số thống kê về các quan hệ cơ sở và các công thức dự đoán lực lượng các kết quả
Tuy nhiên độ chính xác của các số liệu thống kê càng cao thì chi phí dành cho việc duy trì quản lý chúng càng cao Với quan hệ R[A1,A2,…,An] được phân đoạn là R1, R2,…,Rn ta có :
Độ dài (số byte) của mỗi thuộc tính là: length(A1)
Số lượng các giá trị phân biệt (distinct value) của mỗi thuộc tính trong từng đoạn được ký hiệu; card( Ai (Rj))
Ứng với miền của mỗi thuộc tính có các giá trị lớn nhất và nhỏ nhất:
max(Ai) và min(Aj)
Với miền của mỗi thuộc tính ta có lực lượng của miền: card(dom[Ai])
Số lượng của các bộ trong mỗi đoạn: card(Rj)
Trang 30SFj =
) (
* ) (
) (
S card R
card
S R card
Hệ số này càng nhỏ thì độ chọn càng tốt (good selectivity) Và ta cũng có kích thước của một quan hệ R như sau:
Size(R) = card(R)*length(R)
Lực lượng của kết quả trung gian
Phần này sẽ trình bày công thức ước lượng lực lượng các kết quả của các phép toán đại số quan hệ như chọn, chiếu, nối, tích Descartes
1
A R card
SF S (A > value) =
) min(
) max(
) max(
A A
value A
SF S (A < value) =
) min(
) max(
) min(
A A
A value
SF S (p(A i ) p(A j )) = SF S (p(A i )) * SF S (p(A j ))
SF S (p(A i ) p(A j )) = SF S (p(A i )) + SF S (p(A j )) – SF S (p(A i )) * SF S (p(A j ))
SF S (A i {value}) = SF S (A=value) * card({value})
Phép chiếu: Ở đây ta xem như phép chiếu có kèm việc loại bỏ các bộ giống nhau Một phép chiếu bất kỳ rất khó ước lượng chính xác lực lượng của kết quả trung gian Tuy nhiên có hai trường hợp đặc biệt có ích nhưng việc ước lượng lại có thể thực hiện dễ dàng Nếu chiếu của quan hệ R dựa trên một thuộc tính A duy nhất, lực lượng của kết quả trung gian là số bộ thu được khi thực hiện phép chiếu Nếu một trong các thuộc tính chiếu là khoá thì:
Card(A(R)) = card(R)
Trang 31Tích Descartes:
Card(R x S) = card(R) * card(S) Phép nối: Không có phương pháp nào để tính toán lực lượng của nối mà không cần thêm thông tin bổ sung Trường hợp đặc biệt, khi thực hiện phép nối bằng và A là khoá của quan hệ R, B là khoá ngoại của quan hệ S ta có:
Card(RA=B S) = card(S) Trong trường hợp tổng quát cần duy trì hệ số chọn nối trong công thức:
Card(R S) = SFJ * card(R) * card(S) Phép nối nửa: Card(R A S) = SFSJ(S.A) * card(S)
Trong đó hệ số chọn của nối nửa là:
SFSJ(R A S) = SFSJ(S.A) = ( )
)) ( (
A dom card
S card A
Khi R.A là khoá ngoại của S (S.A là khoá chính) thì hệ số chọn nối nửa là
1, và ta có lực lượng của nối nửa là card(R)
Phép hợp: Rất khó ước lượng lực lượng của phép hợp giữa R và S vì các bộ giống nhau bị loại bỏ trong hợp Ta sẽ chỉ trình bày công thức tính cận trên và dưới tương ứng là:
Trong chương 2 đã trình bày bài toán tối ưu tổng quát, các thành phần của
bộ tối ưu truy vấn Từ không gian tìm kiếm của bài toán, sử dụng các chiến lược tối ưu truy vấn khác nhau có thể cho các phương án thực hiện khác nhau với chi phí khác nhau Căn cứ vào mô hình chi phí, số liệu thống kê cho việc tối ưu và
Trang 32Chương 3 MỘT SỐ PHƯƠNG PHÁP TỐI ƯU TRUY VẤN
3.1 MỘT SỐ PHƯƠNG PHÁP TỐI ƯU HOÁ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG
Trong phần này, chúng tôi trình bày hai thuật toán tối ưu thông dụng nhất trong hệ thống tập trung là thuật toán INGRES và thuật toán System R, và cả hai thuật toán này đều có phiên bản phân tán là mở rộng của phiên bản tập trung
3.1.1 Thuật toán INGRES
INGRES sử dụng thuật toán tối ưu hoá động, nó tách dần câu truy vấn dạng phép tính quan hệ thành các phần nhỏ hơn Nó là tổ hợp của hai giai đoạn phân
Phân rã
Biến đổi câu truy vấn q có n biến thành một tập tuần tự n câu truy vấn con
q1 q2 …qn, trong đó qi sử dụng kết quả của qi-1 Quá trình phân rã câu truy vấn được thực hiện bởi hai kĩ thuật cơ bản : Kĩ thuật tách và kĩ thuật thay thế
Kỹ thuật tách: Câu truy vấn q được phân tách thành q‟q” dựa trên một quan hệ chung là kết quả của q‟:
q: SELECT R2.A2, R3.A3, …, Rn.An
FROM R1, R2, …, Rn
WHERE P1(R1.A‟1) AND P2(R1.A1, R2.A2,…, Rn.An)
Trang 33Trong đó Ai và A‟i là danh sách các thuộc tính của quan hệ Ri, P1 là vị từ
có chứa các thuộc tính của R1, P2 là vị từ đa quan hệ có chứa các thuộc tính của các quan hệ R1, R2, …, Rn Một câu vấn tin như vậy có thể được phân rã thành hai câu vấn tin con q‟ và q‟‟ qua phép tách quan hệ chung R1 :
Thay thế bộ: Trước tiên chọn một quan hệ để thay thế, gọi R1 là quan hệ
đó Với mỗi bộ t1i trong R1, các thuộc tính được tham chiếu trong q được thay thế bằng các giá trị thực sự trong t1i tạo ra một câu truy vấn q‟ có n-1 quan hệ:
Trang 34q 12 : SELECT PHANCONG.MSNV INTO GVAR
FROM PHANCONG, JVAR
WHERE PHANCONG.MSDA=JVAR.MSDA
q 13 : SELECT NHANVIEN.TENNV
FROM NHANVIEN, GVAR
WHERE NHANVIEN.MSNV=GVAR.MSNV
Áp dụng phép thay thế bộ ta có: q11 là câu truy vấn ” đơn biến”, nhƣ vậy
q12 và q13 là đối tƣợng để thay thế Với giả sử GVAR chỉ chứa hai bộ <E1> và
<E2> thì q13 sẽ đƣợc thay thế nhƣ sau:
INPUT: MRQ câu truy vấn “đa biến” có n quan hệ
Trang 35OUTPUT: kết quả thực hiện
RCHOOSE_VARIABLE(MRQ’) {R được chọn cho phép thế bộ} For mỗi bộ tR do
Begin
MRQ’’thay giá trị cho t trong MRQ’
Output’INGRES-QOA(MRQ’’) {gọi đệ quy} Output output output’ {trộn tất cả các kết quả lại} End-for
End-if
End
Với MRQ là truy vấn đa quan hệ (MultiRelation Query), và ORQ là truy
Trang 363.1.2 Thuật toán System R
System R sử dụng thuật toán tối ưu hoá tĩnh dựa trên tìm kiếm vét cạn nhờ
Dự đoán phương pháp tốt nhất để truy xuất đến mỗi quan hệ dựa trên một
Có hai thuật toán và một trong hai sẽ là tối ưu trong ngữ cảnh đã cho
Phương pháp thứ nhất “vòng lặp lồng” (nested loops)
Trang 37For each bộ trong quan hệ ngoài (lực lượng n 1 )
For each bộ trong quan hệ trong (lực lượng n 2 )
nối hai bộ nếu điều kiện nối được thoả mãn end
Phương pháp thứ hai “nối trộn” (merge join)
Sắp xếp quan hệ theo thuộc tính nối
Thuật toán tối ưu hoá SYSTEM R (R-QOA)
INPUT: QT là cây truy vấn có n quan hệ
OUTPUT: kết quả thực thi
Trang 38For mỗi đường truy xuất AP ij đến R i do
Xác định cost(AP ij ) End-for
Best_ AP i AP ij có chi phí nhỏ nhất
End-for
For mỗi thứ tự (R i1 , R i2 , … R in ) với i=1,…,n! do
Begin
Xây dựng strategy(…(( best_ AP i1 R i2 ) R i3 ) … R in )
Tính chi phí của strategy
End-for
Output strategy có chi phí nhỏ nhất
End
Ví dụ 3.2
Sử dụng câu truy vấn q1 (trong ví dụ 3.1) Giả sử:
Giả sử NHANVIEN có chỉ số trên MSNV
PHANCONG có chỉ số trên MSDA
DUAN có chỉ số trên MSDA và một chỉ số khác trên TENDA
Giả sử rằng vòng lặp đầu tiên của thuật toán chọn ra các đường truy xuất một quan hệ như sau:
NHANVIEN: truy cập tuần tự, do không có phép chọn nào trên NHANVIEN
PHANCONG: truy cập tuần tự, do không có phép chọn nào trên
Trang 39 DUAN: truy cập theo chỉ số trên TENDA, do có phép chọn trên DUAN theo TENDA
Xây dựng cây với các thứ tự nối khác nhau (hình 13 Mức 1 của cây chỉ ra phương pháp truy xuất một quan hệ tốt nhất Với mỗi phương pháp này mức 2 chỉ ra phương pháp nối tồi nhất với một quan hệ khác
Các chiến lược có sử dụng tích Descartes được loại bỏ, và nếu giả sử rằng NHANVIEN PHANCONG và PHANCONG DUAN có chi phí tương ứng lớn hơn so với PHANCONG NHANVIEN và DUAN PHANCONG, thì mức 3 đưa ra khả năng còn lại đó là:
((PHANCONGNHANVIEN)DUAN)
((DUANPHANCONG) NHANVIEN)
Khả năng thứ 2 sẽ được chọn do có chỉ mục trên thuộc tính chọn và truy xuất trực tiếp các bộ nối PHANCONG và NHANVIEN Và chọn phương pháp truy xuất như sau: chọn DUAN do việc sử dụng chỉ số trên TENDA sau đó được nối với PHANCONG nhờ việc sử dụng tệp chỉ số trên MSDA, rồi tiến hành nối tiếp với NHANVIEN nhờ sử dụng chỉ mục trên MSNV