Việc tổng hợp dữ liệu phụ thuộc vào cây truy vấn thu được ở bước trên. Ví dụ với câu hỏi:
“Điểm chuẩn của ngành Công nghệ Thông tin trường Đại học Lạc Hồng là bao nhiêu”
Qua công đoạn tiền xử lý ta thu được:
“d9ie63m, chua63n, cu3a, nga2nh, co6ng, nghe65, tho6ng, tin, tru7o72ng, d9a5i, ho5c, la5c, ho62ng, la2, bao, nhie6u” Qua công đoạn phân tích cú pháp câu hỏi ta thu được cây truy vấn sau:
diemChuan ( where(nganh(ten(co6ng,ten(nghe65,ten(tho6ng,tin)))))), where(truong(ten(d9a5i,ten(ho5c,ten(la5c,ho62ng)))))), where(hedaotao(hedaotaoMD)), where(nam(namMD)), select(diemChuan) )
Do câu hỏi trên người dùng nhập thiếu hai thành phần xác định là hệ đào tạo và năm. Do đó bộ phân tích cú pháp câu hỏi sẽ tự gán các giá trị trên về mặc định. Câu hỏi đúng trong trường hợp này phải là: “điểm chuẩn năm yyyy ở bậc đại học của ngành công nghệ thông tin của trường đại học lạc hồng là bao nhiêu”.
Với cây truy vấn ở dạng chuỗi trên ta có thể chuyển về dạng cấu trúc cây như sau:
Hình 4.6 Cây truy vấn của câu hỏi “Điểm chuẩn của ngành Công nghệ Thông tin trường Đại học Lạc Hồng là bao nhiêu”.
Nhận xét ở cây truy vấn trên ta thấy nút gốc 4 nút con WHERE và một nút con SELECT. Các nút con của WHERE chính là các giá trị dùng để làm điều kiện lọc, và các nút con của SELECT chính là các giá trị cần hiển thị.
Các công việc cần làm để phát sinh câu SQL dựa trên cây truy vấn là:
- Tổng hợp các nút lá lại trên mỗi nút WHERE để có được các mệnh đề con của mệnh đề WHERE trong câu truy vấn SQL.
- Phát sinh câu truy vấn dựa trên nút WHERE và SELECT.