Bước phõn tớch

Một phần của tài liệu Cơ sở dữ liệu phân tán (Trang 117 - 119)

5.5 Phõn ró truy vấn

5.5.2 Bước phõn tớch

Bước phõn tớch cõu truy vấn cho phộp loại bỏ cõu truy vấn đó được chuẩn hoỏ nhưng sai kiểu hoặc khụng đỳng ngữ nghĩạ

a) Sai kiểu: Một cõu truy vấn sai kiểu (Semantically Incorrect) nếu cú một thuộc tớnh

trong quan hệ hay tờn một quan hệớcha được khai bỏo trong lược đồ toàn cục, hoặc cỏc thao tỏc ỏp dụng cho cỏc thuộc tớnh cú kiểu khơng thớch hợp. Tỡm cỏc truy vấn cú kiểu khụng đỳng tương tự như kiểm tra khai bỏo kiểu trong cỏc ngụn ngữ lập trỡnh.

Vớ dụ 5.4:

SELECT E# FROM EMP

WHERE ENAME > 200. Truy vấn này sai kiểu, vỡ

• Thuộc tớnh E# khơng phải là thuộc tớnh của lược đồ quan hệ toàn cục.

• ENAME cú kiểu chuỗi (String) khụng thể so sỏnh với 200 kiểu số.

b. Sai ngữ nghĩa: Một cõu truy vấn được gọi là sai nghĩa (Semantically Incorrect) 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ả. Để cú thể xỏc định tớnh đỳng đắn ngữ nghĩa cõu truy vấn tổng quỏt, bằng cỏch biểu diễn đồ thị truy vấn (Query Graph) hay đồ thị kết nối [Ulhman, 1982] gồm cỏc phộp chọn, phộp chiếu và cỏc phộp kết nối, khụng chứa cỏc phộp tuyển và phộp phủ định. Trong một đồ thị truy vấn, cú một node biểu thị cho một quan hệ kết quả và cỏc node khỏc biểu thị cho cỏc quan hệ toỏn hạng. Đường nối giữa 2

quan hệ kết quả biểu thị cho phộp chiếụ Cỏc node quan hệ toỏn hạng cú thể được gỏn nhón là một vị từ chọn hoặc vị từ tự kết nốị Đồ thị kết nối nối (Join Graph) là đồ thị con của đồ thị truy vấn, được sử dụng nhiều trong kỹ thuật tối ưu hoỏ truy vấn.

Vớ dụ 5.5: “Tờn và nhiệm vụ của cỏc lập trỡnh viờn đó làm việc cho dự ỏn CAD/CAM

hơn 3 năm”

SELECT ENAME, RESP FROM EMP, ASG, PROJ

WHERE EMP.ENO = ASG.ENO AND ASG.PNO = PROJ.PNO AND PNAME = “CAD/CAM” AND DUR ≥ 36

AND TITLE = “Programmer”

Đồ thị truy vấn như sau:

Đồ thị kết nối tương ứng::

Đồ thị truy vấn sử dụng nhằm xỏc định tớnh đỳng đắn về mặt ngữ nghĩa của truy vấn hội đa biến khơng cú phủ định (ơ). Một cõu truy vấn khụng đỳng về mặt ngữ nghĩa nếu đồ thị

truy vấn của nú khơng liờn thụng. Nghĩa là cú ớt nhất một đồ thị con, tương ứng cõu với truy EMP.ENO=ASG.ENO TITLE=”Programmer” ENAME ASG.PNO=PROJ.PNO PNAME=”CAD/CAM” DUR ≥ 36 Hỡnh 5.4: Vớ dụ đồ thị truy vấn RESULT EMP PROJ ASG RESP EMP.ENO=ASG.ENO ASG.PNO=PROJ.PNO Hỡnh 5.5: Đồ thị kết nối tương ứng EMP PROJ ASG

vấn con, tỏch ra khỏi đồ thị truy vấn cú chứa quan hệ kết quả. Thường khi cú cỏc vị từ kết nối bị thiếu, cõu truy vấn đú cần được loại bỏ.

Vớ dụ 5.6: Xột cõu truy vấn sau:

SELECT ENAME, RESP FROM EMP, ASG, PROJ

WHERE EMP.ENO = ASG.ENO AND PNAME = “CAD/CAM” AND DUR ≥ 36

AND TITLE = “PROGRAMMER”

Đồ thị truy vấn như sau:

Đồ thị truy vấn hỡnh 5.6 khơng liờn thơng, cú 2 đồ thị tỏch biệt nhaụ Điều này cú nghĩa

là cõu truy vấn này sai nghĩạ Cú 3 giải phỏp khắc phục (1) loại bỏ cõu vấn tin, (2) giả thiết một tớch Đề cỏc giữa quan hệ ASG và PROJ, hoặc (3) cú thể đoỏn nhận vị từ kết nối bị

thiếu ASG.PNO = PROJ.PNỌ

Một phần của tài liệu Cơ sở dữ liệu phân tán (Trang 117 - 119)