Cho 1 CSDL quản lý các dự án của 1 công ty như sau: TOSX MATO, TENTO, TENBP NHANVIEN MANV, HOTEN, MATO CONGDOAN MACD, TENCD, DONGIA, MATO SANXUAT MANV, MACD, SOLUONG Cho truy vấn: “Hãy c
Trang 1Cho 1 CSDL quản lý các dự án của 1 công ty như sau:
TOSX (MATO, TENTO, TENBP)
NHANVIEN (MANV, HOTEN, MATO)
CONGDOAN (MACD, TENCD, DONGIA, MATO)
SANXUAT (MANV, MACD, SOLUONG)
Cho truy vấn: “Hãy cho biết họ tên nhân viên, tên tổ của nhân viên tham gia vào công đoạn 1”
được viết dưới dạng ngôn ngữ truy vấn SQL như sau:
SELECT HOTEN,TENTO
FROM TOSX, NHANVIEN, SANXUAT, CONGDOAN
WHERE TOSX.MATO = NHANVIEN.MATO AND
NHANVIEN.MANV = SANXUAT.MANV AND
SANXUAT.MACD = CONGDOAN.MACD AND
TENCD = N’Công đoạn 1’
Hãy tối ưu hóa câu truy vấn trên
Giải
Trước tiên , tích Descartes các bảng trong FROM theo xu hướng có chung thuộc tính thì gom Sau khi được cái tích lớn nhất, ta sẽ làm phép chọn (σ) và ghi kế bên toàn bộ các thứ trong ) và ghi kế bên toàn bộ các thứ trong WHERE Sau đó là ta sẽ làm phép chiếu (∏) và ghi kế bên toàn bộ các thứ trong SELECT Ta
được Hình 1:
Trang 2Hình 1
Sau đó, tích Descartes -> kết tự nhiên theo các thuộc tính chung Được Hình 2
Trang 3Hình 2
Kế tiếp, ta cố đẩy các phép chọn xuống đáy Phép chọn còn lại ở đây chỉ có điều kiện của thuộc tính TENCD nên kiếm các bảng nào có TENCD thì mình sẽ chọn trước ở dưới để ở trên khỏi chọn nữa Được Hình 3
Hình 3
Tới đây, ta thấy trên cùng là phép chiếu HOTEN,TENTO và dưới nó là phép kết tự nhiên qua MANV, ta sẽ tìm cách làm sao thêm các phép chiếu xuống phía dưới mục đích là loại những thuộc tính “dư thừa” trước khi kết các bảng lại
Trang 4– Thuộc tính của phép chiếu phía trên
– Thuộc tính kết của phép kết phía dưới
Ví dụ như ở Hình 4 Phép chiếu HOTEN,TENTO,MANV được thêm vào giữa:
– Phép chiếu HOTEN,TENTO
– Phép kết qua MANV
Hình 4
Bây giờ, ta sẽ phân tích lại thuộc tính của phép chiếu mới sinh thêm đó Tách làm sao trở thành hợp giữa 2 tập thuộc tính và điều kiện là mỗi tập thuộc tính này phải nằm ở mỗi bảng của phép kết Ví dụ như ở hình 5, HOTEN,TENTO,MANV tách ra thành (HOTEN,TENTO,MANV) U (MANV) vì HOTEN,TENTO đều chỉ nằm ở bên nhánh con bên trái của phép kết Và MANV thì do là thuộc tính được kết cho nên đều nằm ở cả 2 bên
Trang 5Hình 5
Tách ra rồi thì giờ đẩy xuống được Hình 6 Đó là do áp dụng phép biến đổi tương đương số 12 –
phép kết kề với phép chiếu – công thức thứ 2 trang 176 quyển cơ sở dữ liệu phân bố (Nguyễn Trung Trực) :
Trang 6Áp dụng cho các cặp ‘chiếu kề kết’ còn lại :
Hình 7
Trang 7Hình 8
Tới đây, ở phép chiếu HOTEN,MANV,MATO bị lược đi vì đó là toàn bộ thuộc tính của bảng NHANVIEN
Đồng thời ta cũng nhấn phép chiếu xuống dưới phép chọn bằng phép biến đổi số 3 – công thức thứ 2 Phép chiếu mới được sinh ra nằm dưới phép chọn và có thuộc tính chiếu là hợp các thuộc tính của 2 phép phía trên
Trang 8Biểu thức cuối :
Trang 9Như vậy là ta vừa thực hiện xong việc tối ưu câu truy vấn cơ sở dữ liệu, chúc các bạn thành công !