Sơ đồ truy trình xử lý truy vấn

Một phần của tài liệu (LUẬN văn THẠC sĩ) tối ưu hóa cơ sở dữ liệu phân tán 04 (Trang 38 - 41)

2.2.1. Phân rã truy vấn

Phân rã truy vấn là giai đoạn đầu tiên của quá trình xử lý câu truy vấn, thực hiện việc biến đổi câu truy vấn ở dạng ngôn ngữ bậc cao thành câu truy vấn ngôn ngữ bậc thấp thực thi cho kết quả tương đương. Đặc trưng của giai đoạn này, khi biến đổi không sử dụng các thông tin về dữ liệu đã được phân tán trên các vị trí. Vì thế, phân

Phân rã truy vấn

Các phép tính truy vấn trên các quan hệ phân tán

Truy vấn dạng đại số trên các quan hệ phân tán

Cục bộ hóa dữ liệu

Truy vấn theo mảnh

Tối ưu hóa toàn cục

Truy vấn theo mảnh đã tối ưu. Với các phép toán truyền

Tối ưu hóa cục bộ

Truy vấn cục bộ đã tối ưu

Lược đồ toàn cục Lược đồ mảnh Số liệu trên các mảnh Lược đồ cục bộ Các vị trí cục bộ Vị trí điều khiển

rã truy vấn đều giống nhau trong cả hệ thống tập trung và phân tán, câu truy vấn sẽ đúng về ngữ nghĩa và đạt chất lượng theo nghĩa là đã loại bỏ các hành động không cần thiết. Phân rã truy vấn bao gồm bốn bước liên tiếp: Chuẩn hoá, phân tích, loại bỏ dư thừa, viết lại câu truy vấn.

- Chuẩn hóa: Các câu truy vấn bằng các phép tính quan hệ được viết lại dưới dạng chuẩn tắc thích hợp cho các bước tiếp theo. Sự chuẩn hóa một câu truy vấn bao gồm đặt các lượng tử và lượng tử hóa truy vấn bằng cách áp dụng độ ưu tiên các toán tử logic.

- Phân tích: Câu truy vấn đã chuẩn hóa được phân tích về mặt ngữ nghĩa nhằm loại bỏ các câu truy vấn sai càng sớm càng tốt. Tìm ra truy vấn sai chỉ tồn tại với một tập con các phép tính quan hệ. Thông thường sử dụng một loại đồ thị để nắm bắt ngữ nghĩa của câu truy vấn.

- Loại bỏ dư thừa: Câu truy vấn đúng được đơn giản hóa bằng cách loại bỏ các phụ thuộc dư thừa.Truy vấn dư thừa chỉ xuất hiện khi một truy vấn là kết quả của việc biến đổi hệ thống được áp dụng cho truy vấn của người sử dụng.

- Xây dựng lại câu truy vấn: Câu truy vấn phép tính quan hệ được xây dựng lại dưới dạng truy vấn đại số quan hệ bằng các quy tắc biến đổi.

2.2.1.1. Chuẩn hóa câu truy vấn

Mục đích của chuẩn hoá là biến đổi câu truy vấn thành một dạng chuẩn để xử lý tiếp. Chuẩn hoá một truy vấn nói chung gồm có đặt các lượng từ và lượng từ hoá truy vấn bằng cách áp dụng độ ưu tiên của các toán tử logic.

Với các ngôn ngữ quan hệ như SQL, biến đổi quan trọng nhất là lượng từ hoá truy vấn (mệnh đề Where), 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 ( hoặc ) được đặt phía trước. Có hai dạng chuẩn có thể cho vị từ, một có thứ bậc cao cho AND () và loại còn lại cho OR ().

-Dạng chuẩn hội là hội (vị từ ) của các tuyển vị từ (các vị từ ): (p11  p12 …. p1n)  ….. (pm1 pm2 …. pmn) Trong đó pij là một vị từ đơn giản (nguyên tố).

-Ngược lại, một lượng từ hoá ở dạng chuẩn tuyển như sau: (p11  p12 …. p1n)  …. (pm1 pm2 …. pmn)

Trong dạng chuẩn tắc tuyển, câu truy vấn có thể được xử lý như các câu truy vấn con hội độc lập, được nối bằng phép hợp (tương ứng với các tuyển mệnh đề).

Dạng chuẩn tuyển ít được dùng vì dẫn đến các vị từ nối và chọn trùng nhau. Dạng chuẩn hội hay dùng trong thực tế.

Ví dụ 2.3: Tìm tên các nhân viên đang làm việc ở dự án P1 trong 12 tháng hoặc 24 tháng.

SELECT TênNV FROM NV, PC

WHERE NV.MNV = PC.MNV AND PC.MDA = “P1”

AND Thời gian =12 OR Thời gian =24

Lượng từ hoá ở dạng chuẩn hội là:

NV.MNV = PC.MNV  PC.MDA = “P1”  (Thời gian = 12  Thời gian = 24) Lượng từ hoá ở dạng chuẩn tuyển là:

(NV.MNV = PC.MNV  PC.MDA = ”P1”  Thời gian = 12) 

(NV.MNV = PC.MNV  PC.MDA = ”P1”  Thời gian = 24)

ở dạng sau, xử lý hai hội độc lập có thể là một công việc thừa nếu các biểu thức con chung không được loại bỏ.

2.2.1.2. Phân tích

Phân tích câu truy vấn cho phép loại bỏ các câu truy vấn đã chuẩn hoá nhưng không thể tiếp tục xử lý được hoặc không cần thiết, do chúng sai kiểu hoặc sai ngữ nghĩa.

-Một câu truy vấn gọi là sai kiểu nếu 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 nếu áp dụng cho các thuộc tính có kiểu không thích hợp. Ví dụ:

Select MaDA From TenNV >100

Câu truy vấn trên sai kiểu do TenNV có kiểu chuỗi (String) không thể so sánh với kiểu số (100) được.

-Một câu truy vấn gọi là sai ngữ 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ả.

Nếu các truy vấn không chứa các tuyển và phủ định ta có thể dùng đồ thị truy vấn. Truy vấn chứa phép chọn, nối, chiếu.

-Biểu diễn bằng đồ thị truy vấn: + Một nút biểu thị quan hệ kết quả

+ Các nút khác biểu thị cho quan hệ toán hạng

+ Đường nối giữa hai nút không phải là quan hệ kết quả biểu thị cho phép kết nối + Đường mà nút đích là kết quả sẽ biểu thị cho phép chiếu.

+ Các nút không phải là kết quả sẽ được gán nhãn là một vị từ chọn hoặc vị từ tự kết nối (chính nó).

-Đồ thị nối: Một đồ thị con quan trọng của đồ thị truy vấn, chỉ có các nối. Ví dụ 2.4: Cho các quan hệ sau:

PC (MaNV, MaDA, NVụ, Tgian) NV (MaNV, TênNV, CVụ) DA (MaDA, TênDA, Kphí, Đđiểm)

Câu truy vấn “ Tìm tên, nhiệm vụ của những người có Cvụ = ’TP’ đã làm việc ở dự án ‘CAD/CAM’ trong hơn 3 năm” được viết dưới dạng SQL như sau:

Select TênNV From PC, NV, DA

Where PC.MaNV = NV.MaNV and PC.MaDA = DA.MaDA and TênDA = ’CAD/CAM’ and CVụ = ’TP’ and tgian >36

Ta có, các vị từ đơn giản:

p1: PC.MaNV = NV.MaNV p2: PC.MaDA = DA.MaDA

p3: TênDA = ’CAD/CAM’ p4: CVụ = ’TP’ p5: tgian >36 Đồ thị truy vấn và đồ thị nối như Hình 2.4:

Đồ thị truy vấn Đồ thị nối

Một phần của tài liệu (LUẬN văn THẠC sĩ) tối ưu hóa cơ sở dữ liệu phân tán 04 (Trang 38 - 41)

Tải bản đầy đủ (PDF)

(79 trang)