Các yếu tố cần được xem xét khi giải bàitoá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
Trang 1MỤC LỤC
LỜI NÓI ĐẦU 2
CHƯƠNG 1: CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ MỘT SỐ NGUYÊN LÝ CHUNG CỦA TỐI ƯU HOÁ TRUY VẤN 3
1 Các khái niệm về CSDL PT 3
2 Các mục tiêu của hệ quản trị CSDL PT 5
3 Kiến trúc hệ quản trị CSDL PT 5
4 Một số nguyên lý chung của tối ưu hóa truy vấn 8
4.1 Mục tiêu của bài toán xử lý truy vấn 8
4.2 Độ phức tạp của các phép toán đại số quan hệ 11
4.3 Mô tả bộ xử lý truy vấn 12
4.4 Phân rã truy vấn 15
4.4.1 Đưa về dạng chuẩn tắc (normalization) 15
4.4.2 Phân tích (analysis) 16
4.4.3 Loại bỏ dư thừa (simplification) 18
4.4.4 Viết lại truy vấn (restructuring) 18
CHƯƠNG 2 : TỐI ƯU HÓA TRUY VẤN PHÂN TÁN 22
2.1 Tối ưu hóa truy vấn 22
2.1.1 Không gian tìm kiếm 23
2.1.2 Chiến lược tìm kiếm 24
2.1.3 Mô hình chi phí 25
2.2 Các thuật toán tối ưu hóa truy vấn trong môi trường phân tán 28
2.2.1 Các thuật toán dựa trên sắp xếp thứ tự nối (Ordering Joins) 28
2.2.1.1 Thuật toán INGRES phân tán 30
2.2.1.2 Thuật toán của System R* 31
2.3 Kết luận 34
TÀI LIỆU THAM KHẢO 36
Trang 2LỜI NÓI ĐẦU
Cơ sở dữ liệu (CSDL) là một trong những lĩnh vực được quan tâmnhiều trong công nghệ thông tin Ra đời từ những năm 60 đếnnay, đã 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ácngành kinh tế khác
Việc nghiên cứu CSDL đã và đang phát triển ngày càng phongphú, đ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êncứu về CSDL Với ưu điểm về tính cấu trúc, và khả năng hình thứchóa phong phú, CSDL quan hệ dễ dàng mô phỏng các hệ thốngthông tin đa dạng trong thực tiễn, làm tăng khả năng xử lý, quảntrị, 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êncứu, giải quyết Với mục đích tìm hiểu để nâng cao khả năng ứngdụng của của các hệ CSDL, bài thu hoạch này tập trung vào việcnghiên cứu vấn đề “tối ưu hóa câu truy vấn trong CSDL phântá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útnhiều sự quan tâm của các nhà nghiên cứu cũng như các nhà sảnxuất phần mềm
Như ta đã biết, thành công ngày càng tăng của công nghệ CSDLquan 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ấnphức tạp một cách chính xác và đơn giản Đặc biệt là để có đượccâu trả lời cho một câu truy vấn thì người sử dụng không cần phảixác định chính xác trình tự tiến hành các thao tác/phép toántrong một câu truy vấn Trình tự này được xử lý bởi Bộ xử lý truyvấ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ượcthực hiện truyvấn sao cho có thể cực tiểu hóa được hàm chi phí Đây là bài toánkhó, đặc biệt là trong môi trường phân tán bài toán này thuộc lớp
Trang 3NP-Hard Để tránh một chi phí tối ưu hóa quá lớn thì cách tiếp cậndùng các heuristic được sử dụng để có thể đạt được một chiếnlược thực thi gần tối ưu Các yếu tố cần được xem xét khi giải bàitoá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ệntối ưu các phép nối, việc chọn các bản sao, các mảnh phải truyxuất, cũng như việc chọn các trạm thực hiện và việc sử dụng cácgiải thuật truy xuất dữ liệu cục bộ và phân tán
CHƯƠNG 1: CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ MỘT SỐ NGUYÊN LÝ
CHUNG CỦA TỐI ƯU HOÁ TRUY VẤN
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ủaviệc sử dụng các hệ CSDL là việc tích hợp các dữ liệu, giao táccủa một xí nghiệp, tổ chức và cho phép truy xuất tập trung, dovậy có thể điều khiển được các truy xuất đến dữ liệu đó Còncô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ềuCSDL 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ầnmề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ểmtiề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ácnhau 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:
Trong suốt phân tán, hay trong suôt mạng
Trong suốt nhân bản
Trong suốt phân mảnh
Trang 4 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
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 duợc gọi là trạm hay nút (node)
Các trạm phải duợc kết nối bởi một kiểu mạng truyền thông nào dó dể 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 truờng của hệ CSDL PT
Một hệ quản trị CSDL PT là một tập các phần mềm hệ thống baogồ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
Trang 5quả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ềnthô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ếpcận thiết kế trên xuống, trong đó ta thiết kế một CSDL PT từ mộtCSDL 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ảntrị bởi các hệ quản trị CSDL khác nhau, thành một CSDL duy nhất
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 đượclư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ảncần có trong một hệ CSDL PT, nó liên quan đến tính độc lập dữliệu (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ạytrên CSDLPT
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ủaCSDL PT Trong suốt phân mảnh che dấu sự phân đoạn đối vớingười dùng
Trang 6Trong 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ênmộ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ênviệc nhân bản sẽ gây khó khăn cho việc cập nhật CSDL, và việcduy trì và quản lý các bản sao là phức tạp và tốn kém Việc trongsuốt nhân bản là việc che dấu khiến người dùng chỉ nhìn thấy cácquan 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ácnhau
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ạmkhác Do đó việc quản trị của CSDL PT có thể hoàn toàn phi tậptrung
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ácchương trình ứng dụng hiện có
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
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áiniệ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áiniệ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ủacá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ànhphần xử lý mọi tương tác với người sử dụng là Bộ xử lý tiếp nhậnngười dùng (User Processor), còn thành phần kia lo việc xử lý dữliệu (Data Processor)
Trang 7Hình 1 3 Kiến trúc tham chiếu CSDL PT
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 chongườ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 tincấp phép, quyền hạn (authorization), được định nghĩa như thànhphần của lược đồ khái niệm toàn cục, để kiểm tra, xác định xemcá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âutruy 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àncục, ngoài ra còn chịu trách nhiệm tạo ra một chién lược thực thitố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ủangườ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ấtcác dữ liệu
Trang 8Bộ 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 đệmCSDL (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
Hình 1 4 Các thành phần của một hệ quản trị CSDL PT
4 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ụngtrong hệ QT CSDL để xử lý, tối ưu hóa và thực hiện các câu truy
Trang 9vấ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ứcvật lý của dữ liệu, các ngôn ngữ CSDL quan hệ đã cho phép biểudiễn được các câu truy vấn phức tạp một cách chính xác và đơngiản Để có câu trả lời cho một câu truy vấn, người sử dụng khôngcầ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ớihiệ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àitoán xử lý truy vấn trong môi trường phân tán có rất nhiều phứctạp, do có nhiều yếu tố ảnh hưởng đến hiệu năng của các truyvấ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ốngphả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
4.1 Mục tiêu của bài toán xử lý truy vấn
Bộ xử lý truy vấn có nhiệm vụ phân tích, biến đổi các câu truyvấn cấp cao (ở dạng các phép tính quan hệ) thành một câu truyvấn tương đương ở cấp thấp hơn (dạng đại số quan hệ)
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âutruy vấn cấp cao Việc đưa ra được một chiến lược thực thi thíchhợp để đạt được tính hiệu quả lại là một bài toán khó Một câutruy vấn cấp cao có thể được biến đổi thành nhiều câu truy vấncấp thấp tương đương, và mỗi một chiến lược thực thi này lại tiêu
Trang 10tốn tài nguyên hệ thống rất khác nhau Việc khó khăn là phảitì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ụ 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 dể làm
ví dụ Các thực thể đuợ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 dó đ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:
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”
TENNV(σ TGIAN>37NHANVIEN.MSNV=PHANCONG.MSNV (NHANVIENPHANCONG))
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íchDescartes 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ậptrung là phải chọn ra một câu truy vấn dạng biểu thức đại số tốtnhất trong các câu truy vấn tương đương Đây là một bài toánphức tạp khi số lượng các quan hệ lớn, nên nói chung là chúng tachỉ 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
Trang 11các phép toán trao đổi dữ liệu giữa các trạm Và cùng với việcchọn các phép toán đại số quan hệ, thì bộ xử lý truy vấn phân táncũ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ơnnhiều
Xét lại ví dụ trên trong môi trường phân tán:
Thí dụ 1.2:
Các mảnh được cấp phát tại các trạm 1, 2, 3, 4 và kết quả được truy xuất tại trạm 5
Trạm 1: PHANCONG 1 = σ MSNV ≤ “E3” ( PHANCONG)
Trạm 2: PHANCONG 2 = σ MSNV > “E3” ( PHANCONG)
Trạm 3: NHANVIEN 1 = σ MSNV ≤ “E3” ( NHANVIEN )
Trạm 4: NHANVIEN 2 = σ MSNV ≤ “E3” ( NHANVIEN)
Ta có chiến lược A tại Trạm 5:
Và chiến lược B như sau:
Trạm 1
Kết quả = (NHANVIEN 1NHANVIEN 2 )
Trạm 1 Trạm 2 Trạm 3 Trạm 4
Hình 2 1 Các chiến lược thực thi
Trang 12Để đánh giá được việc tiêu dùng tài nguyên của hai chiến lượcnà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ị
Với phương án A ta có:
1 Tạo ra PHANCONG’: (10+10)*tupacc 20
2 Truyền PHANCONG’ (10+10)*tuptrans 200đến vị trí chứa
NHANVIEN
3 Tạo NHANVIEN’ (10+10)*tupacc*2 40
4 Truyền NHANVIEN’ (10+10)*tuptrans 200
Đối với phương án B ta có:
1 Truyền NHANVIEN 400*tuptrans
4 Nối NHANVIEN và PHANCONG’ 400*20*tupacc 8000
Ở phương án B ta thấy rõ ràng là tổng chi phí lớn hơn rất nhiều sovới phương án A Như đã nêu ở trên, mục tiêu của việc xử lý truyvấn trong môi trường phân tán là biến đổi câu truy vấn cấp caotrên CSDL PT thành các câu truy vấn (ở ngôn ngữ cấpthấp) trêncá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 ưunhấ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 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 trong bộ nhớ chính
Tuy nhiên cũng có cách đánh giá khác để đánh giá việc xử lý truy
vấn là thời gian đáp ứng (response time).
Trang 13Các yếu tố này có thể được đánh giá khác nhau trong các môitrường phân tán khác nhau Trong môi trường tập trung hai thànhphần đầu tiên (trong biểu thức tính tổng chi phí) là những yếu tốduy nhất được đề cập đến khi tính toán chi phí của câu truy vấn.Trong môi trường mạng WAN thì yếu tố truyền tin sẽ được quantâm đến nhiều hơn, do giả thiết rằng chi phí truyền lớn hơn rấtnhiều chi phí xử lý cục bộ.
Trên thực tế thì các nghiên cứu gần đây đều xem xét đến việc tổhợp của cả ba thành phần trên bởi vì chúng đều có giá trị đáng kểtrong tổng chi phí ước lượng của câu truy vấn
4.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ự ảnhhưở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ủaquan hệ (cardinality), nó độc lập với việc cài đặt vật lý như phânmả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ệ:
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ượngcủa quan hệ, các thao tác có tính chọn làm giảm đi lực lượng cầnphả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
4.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ụngchủ yếu được biểu diễn dựa trên các phép tính quan hệ, và trong
Trang 14quá trình phân rã câu truy vấn thì chúng được chuyển thành cácphé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ênthủ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ượcthự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ảitố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 ưuhóa truy vấn có ý nghĩa khi chỉ phải trả chi phí một lần tối ưu hóacho nhiều lần thực hiện câu truy vấn đó Khi đó chiến lược vét cạnthường được sử dụng [Selinger etal.,1979]
Nhằm làm giảm chi phí cao cho tìm kiếm vét cạn, các chiến lượcngẫu nhiên hóa đã được đề xuất như Iteractive Improvement[Swami,1989] và Stimulated Annealing [Ioannidis andWong,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áchkhá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 quantrọng trong các hệ phân tán là thay các nối bằng tổ hợp của cácnố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àynhững chiến lược tổng quan cho tối ưu hóa như sau:
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ộctí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ậpthì 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ứ
Trang 15cấp với ít thời gian, thì nên tính toán trước biểu thức đó chỉ mộtlầ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 tronghai đối của phép tính hai ngôi, thì ta nên tính toán chi phí thựchiệ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 thitruy 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íchhợ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 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ànhtrong thời gian thực thi truy vấn (run time) Ở mỗi thời điểm củaquá trình thực thi, sẽ chọn ra thao tác kế tiếp tốt nhất dựa trênthô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ínhxá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ệntruy 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ácgây ra Về cơ bản vẫn sử dụng phương pháp tĩnh, nhưng khi pháthiệ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ệuthống kê được tính theo mảnh, và gồm kích thước, lực lượng cũngnhư 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ựchiện lại tối ưu hóa
Trang 16Phần lớn các hệ thống đều sử dụng phương pháp quyết định tậptrung, việc ra quyết định chỉ do một trạm đảm nhiệm Phương ánnà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 giavào việc ra quyết định, và chỉ cần có thông tin cục bộ Cácphương pháp hỗn hợp cũng hay được sử dụng khi đó một trạm racác quyết định chính và các trạm khác có thể đưa ra các lựa chọncục bộ Chẳng hạn System R* [Williams etal.,1982] sử dụng cáchtiế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ínhchấ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 hàm chiphí 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 chiphí
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ủaphép nối nửa là làm giảm đi kích thước của quan hệ nên sử dụngchú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 Tuyvậy nối nửa vẫn có ích trong ngữ cảnh tốc độ mạng ngày càngnhanh 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
Trang 17Hì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ínhtrê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á trình viết lại câu truy vấn Ba tầng đầu tiên được thựchiện bởi một trạm trung tâm và sử dụng thông tin toàn cục, tầngthư tư được thực hiện tại các trạm cục bộ Các tầng nầy sẽ đượcbàn luận chi tiết ở phần sau
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 3) Loại bỏ dư thừa
2) Phân tích 4) Viết lại truy vấn
4.4.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ạngchuẩn để xử lý tiếp Với các ngôn ngữ quan hệ như SQL, biến đổiquan trọng nhất là lượng từ hóa vấn tin, có thể là một vị từ philượ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:
)
(
)
(p11 p12 p1n p m1 p m2 p mn
Dạng chuẩn tuyển (disjunctive normal form) là tuyển của các hội:
)
(
)
(p11 p12 p1n p m1 p m2 p mn
Trang 18Biến đổi các vị từ phi lượng từ là chuẩn hóa bẳng cách sử dụngcác qui tắc
tương đương đã biết trong toán logic:
Câu truy vấn “Tìm tên các nhân viên đang làm việc ở dự án P1
trong 12 hoặc 24 tháng” Viết dưới dạng SQL:
SELECT TENNV
FROM NHANVIEN, PHANCONG
WHERE NHANVIEN.MSNV=PHANCONG.MSNV
AND PHANCONG.MSDA=”P1”
AND TGIAN=12 OR TGIAN=24
Viết dưới dạng chuẩn hội:
(TGIAN =12 GIAN=24)
Viết dưới dạng chuẩn hội:
(NHANVIEN MSNV= PHANCONG MSNV PHANCONG MSDA=” P1” TGIAN=12)( NHANVIEN MSNV= PHANCONG.MSNV
HANCONG.MSDA=” P1” TGIAN=24)
4.4.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 truyvấn không đúng Lý do có thể là do chúng bị sai kiểu hoặc sainghĩa
Sai kiểu: nếu như nó có một thuộc tính , hoặc tên quan hệ chưa
được khai báo trong lược đồ toàn cục hoặc các phép toán được ápdụ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ể
Trang 19kiể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ỗinà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ácnú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
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
WHERE NHANVIEN.MSNV=PHANCONG.MSNV
AND TENDAN=”CAD/CAM”
Trang 21Như vậy câu truy vấn trên được đơn giản hóa như sau:
SELECT NNGH
FROM NHANVIEN
WHERE TENNV=”V Dũng”
4.4.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ệună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ệ trung gianđược sinh ra bởi các phép tính quan hệ Chuỗi các phép toán theohướng từ lá đếngố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: