Giải thớch cỏc truy vấn cú chứa cỏc khung nhỡn

Một phần của tài liệu Giáo trình Ngôn ngữ SQL doc (Trang 56 - 59)

1.7 KHUNG NHèN (VIEW)

1.7.5Giải thớch cỏc truy vấn cú chứa cỏc khung nhỡn

Để giải thớch cỏc truy vấn khung nhỡn, chỳng ta lần theo cỏch một truy vấn cú chứa khung nhỡn được xử lý như thế nào.

Tư tưởng cơ bản được minh hoạ ở hỡnh vẽ dưới đõy (hỡnh 3). Một truy vấn Q được biểu thị bằng cõy biểu thức trong đại số quan hệ. Cõy biểu thức này sử dụng cỏc quan hệ là cỏc khung nhỡn làm lỏ. Trong hỡnh vẽ cõy cú hai lỏ, đú là cỏc khung nhỡn V và W. Để giải thớch Q theo thuật ngữ của cỏc bảng cơ sở, chỳng ta tỡm cỏc định nghĩa của V và W. Cỏc định nghĩa này cũng được biểu thị bằng cỏc cõy biểu thức trong đại số quan hệ. Trong hỡnh 3 (ở bờn phải) chỳng ta thay cỏc lỏ V và W bằng cỏc định nghĩa của cỏc khung nhỡn đú. Cõy kết quả là một truy vấn trờn cỏc bảng cơ sở tương đương với truy vấn gốc trờn cỏc khung nhỡn.

V W

Hỡnh 3: Thay thế cỏc định nghĩa khung nhỡn cho cỏc tham chiếu khung nhỡn

Vớ dụ 47: Ta xột khung nhỡn và truy vấn được định nghĩa như sau: 1) CREATE VIEW NVHÀNỘI AS

2) SELECT MósốNV, Họđệm,Tờn, Lương, MósốĐV 3) FROM NHÂNVIấN

4) WHERE Địachỉ = ‘Hà nội’ ;

Một cõy biểu thức cho truy vấn định nghĩa khung nhỡn này được chỉ ra ở hỡnh 4.  MósốNV, Họđệm,Tờn, Lương, MósốĐV  Địachỉ = ‘Hànội’ NHÂNVIấN

Hỡnh 4: Cõy biểu thức cho khung nhỡn NVHÀNỘI Truy vấn ở vớ dụ 41 cú dạng

SELECT Tờn

FROM NVHÀNỘI WHERE MósốĐV = 4 ;

Cõy biểu thức cho truy vấn này được chỉ ra ở hỡnh 5

Mó sốĐV = 4

NVHÀNỘI

Hỡnh 5: Cõy biểu thức cho truy vấn ở vớ dụ 41 Chỳ ý rằng lỏ của cõy này biểu diễn khung nhỡn NVHÀNỘI. Từ đú, chỳng ta giải thớch truy vấn bằng cỏch thay thế cõy truy vấn của NVHÀNỘI vào vị trớ của NVHÀNỘI trong cõy biểu thức của truy vấn. Kết quả, chỳng ta cú cõy biểu thức như sau:

 Tờn Mó sốĐV = 4  MósốNV, Họđệm,Tờn, Lương, MósốĐV  Địachỉ = ‘Hànội’ NHÂNVIấN

Cõy truy vấn này là một giải thớch chấp nhận được của truy vấn. Tuy nhiờn nú được diễn đạt bằng cỏch phức tạp khụng cần thiết. Hệ thống SQL sẽ ỏp dụng cỏc biến đổi đối với cõy này để làm cho nú giống như biểu thức cõy đối với truy vấn

SELECT Tờn

FROM NHÂNVIấN

Chẳng hạn, chỳng ta cú thể đưa phộp chiếu  MósốNV, Họđệm,Tờn, Lương, MósốĐV lờn trờn phộp chọn Mó sốĐV = 4 vỡ việc thay đổi đú khụng làm ảnh hưởng đến kết quả của biểu thức. Sau đú, chỳng ta cú hai phộp chiếu liờn tiếp, đầu tiờn chiếu trờn MósốNV, Họđệm,Tờn, Lương, MósốĐV, sau đú chiếu trờn Tờn. Rừ ràng lần chiếu thứ nhất là thừa, chỳng ta cú thể loại bỏ nú. Như vậy chỳng ta cú thể thay thế hai phộp chiếu bằng bằng một phộp chiếu trờn Tờn. Hai phộp chọn cũng cú thể được kết hợp lại. Núi chung, cú thể thay thế hai phộp chọn liờn tiếp bằng một phộp chọn với phộp toỏn AND của cỏc điều kiện của chỳng. Cõy biểu thức kết quả là:

 Tờn

Mó sốĐV = 4 AND Địachỉ = ‘Hànội’ NHÂNVIấN

Đú là cõy nhận được từ truy vấn: SELECT Tờn

FROM NHÂNVIấN

WHERE Địachỉ = ‘Hà nội’;

Một phần của tài liệu Giáo trình Ngôn ngữ SQL doc (Trang 56 - 59)