Chúng ta kết hợp hai phƣơng pháp phân rã SQL và thay thế SQL đã trình bày ở trên để có thuật toán tiền tối ƣu nhƣ sau:
Vào: MRQ: Câu vấn tin có n quan hệ.
Ra: Output: Các câu vấn tin đơn quan hệ
Tien_TOI_UU(MRQ)
Begin1
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ If n= 1 then //chỉ có một quan hệ//
ORQ = MRQ
Output = ThucHien(ORQ) //thực hiện câu vấn tin một quan hệ và kết thúc//
Else
Begin2 //có câu vấn tin đa quan hệ//
MRQ ={ORQ1, ORQ2, … , ORQm, MRQ’}
For i = 1 to m Do Begin3
Output’ = ThucHien(ORQi) //thực hiện ORQi}
Output = Output Output’ //trộn tất cả các kết quả lại// End Begin3
Next i
R = CHON_QH(MRQ’) //R có size nhỏ nhất đƣợc chọn cho phép thế bộ//
For Each t In R Do //t là biến bộ của R// Begin4
MRQ” = thay giá trị cho t trong MRQ’
Output‟ = Tien_TOI_UU (MRQ”) //gọi đệ qui//
Output = Output Output’ //Trộn tất cả các kết quả lại// End Begin4
Next t
End Begin2
//phân rã MRQ thành tập m //câu vấn tin đơn quan hệ //ORQ1, ORQ2, … , ORQm
//và một câu vấn tin đa quan hệ MRQ’//
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ End_if
End Begin1 //Kết thúc Tien_TOI_UU//
Ví dụ:Nhằm minh họa cho thuật toán. Chúng ta xét CSDL (rất đơn
giản) với các quan hệ sau:
DanhHieu (MaDanhHieu, TenDanhHieu, CapQuyetDinh)
MaDanhHieu TenDanhHieu MADH1 MADH2 MADH3 MADH4 Bằng khen Giấy khen Huân chƣơng Huy Chƣơng Bảng 2.2.2. Số liệu của quan hệ DanhHieu
ThamGiaCM(MaThamGiaCM, TenThamGiaCM, GioiTinh)
MaThamGiaCM TenThamGiaCM GioiTinh
MACM1 MACM2 MACM3 MACM4 MACM5 MACM6 MACM7 MACM8
Ngô Quốc Anh Lê Văn Hoàn Trần Văn Lệ Hoàng Văn Minh Hồ Van Canh Bùi Chu Nguyễn Ngọc Bích Lê Hồng Hạnh Nam Nam Nam Nam Nam Nam Nữ Nữ Bảng 2.2.3 Số liệu quan hệ ThamGiaCM
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ KhenThuong(MaThamGiaCM, MaDanhHieu, ThanhTich)
Từ các quan hệ trên, hãy "Cho biết tên và thành tích của những ngƣời tham gia cách mạng đã nhận huân chƣơng?”
Câu vấn tin này có thể đƣợc diễn tả bằng SQL đƣợc ký hiệu là p nhƣ sau:
p: SELECT ThamGiaCM.TenThamGiaCM, KhenThuong.ThanhTich FROM DanhHieu , ThamGiaCM, KhenThuong
WHERE ThamGiaCM.MaThamGiaCM =
KhenThuong.MaThamGiaCM AND KhenThuong.MaDanhHieu = DanhHieu.MaDanhHieu AND TenDanhHieu = "Huân chƣơng"
Theo thuật toán phân rã câu vấn tin p đƣợc thay bởi pl, và p‟, và từ p‟: pl: SELECT DanhHieu.MaDanhHieu INTO DanhHieu‟
FROM DanhHieu
WHERE TenDanhHieu = "Huân chƣơng"
MaThamGiaCM MaDanhHieu ThanhTich
MACM1 MACM2 MACM2 MACM3 MACM3 MACM4 MACM5 MACM6 MACM7 MACM8 MADH1 MADH1 MADH2 MADH3 MADH4 MADH2 MADH2 MADH4 MADH3 MADH3 Chống Mỹ Chống Pháp Nhà giáo Anh hùng lực lƣợng vũ trang Chống Mỹ Anh hùng lao động Chống Mỹ Chống Mỹ Chống Pháp Chống Mỹ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Là câu vấn tin đơn quan hệ DanhHieu. Kết quả trong DanhHieu‟ chỉ có MADH3
P1: SELECT ThamGiaCM.TenThamGiaCM, KhenThuong.ThanhTich FROM ThamGiaCM, KhenThuong, DanhHieu‟
WHERE ThamGiaCM.MaThamGiaCM =
KhenThuong.MaThamGiaCM AND
KhenThuong.MaDanhHieu = DanhHieu‟.MaDanhHieu Là câu vấn tin đa quan hệ ThamGiaCM, KhenThuong, DanhHieu‟. Các bƣớc phân rã tiếp theo là phân rã p' thành p2 và p3:
p2: SELECT KhenThuong.MaThamGiaCM, KhenThuong.ThanhTich INTO KhenThuong‟
FROM KhenThuong, DanhHieu‟
WRERE KhenThuong.MaDanhHieu = DanhHieu.MaDanhHieu Là câu vấn tin đa quan hệ KhenThuong, DanhHieu‟. Kết quả trong KhenThuong‟ chỉ có (MACM3, Anh hùng lực lƣợng vũ trang); (MACM7, Chống Pháp) và (MACM8, Chống Mỹ)
p3: SELECT ThamGiaCM.TenThamGiaCM ,
KhenThuong‟.ThanhTich
FROM ThamGiaCM, KhenThuong‟ WHERE ThamGiaCM.MaThamGiaCM =
KhenThuong‟.MaThamGiaCM Là câu vấn tin đa quan hệ ThamGiaCM, KhenThuong‟.
Nhƣ vậy câu vấn tin p đã đƣợc phân rã thành chuỗi câu vấn tin pl p2 p3 . Câu vấn tin đơn quan hệ pl có thể dùng thể vấn tin ORQOP (One Relation Query Optimization Processor). Còn các câu vấn tin p2 và p3 không phải loại đơn quan hệ và cũng không thể rút gọn hơn nữa bằng phép phân rã
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ của thuật toán nữa. Theo phép thế bộ của thuật toán p3 đƣợc thay bởi tập 3 câu SQL một quan hệ:
q1 : SELECT ThamGiaCM.TenThamGiaCM , ThanhTich FROM ThamGiaCM
WHERE ThamGiaCM.MaThamGiaCM = “MACM3” AND ThanhTich = “Anh hùng lực lƣợng vũ trang”
q2: SELECT ThamGiaCM.TenThamGiaCM , ThanhTich FROM ThamGiaCM
WHERE ThamGiaCM.MaThamGiaCM = “MACM7” AND ThanhTich = “Chống Pháp”
q3: SELECT ThamGiaCM.TenThamGiaCM , ThanhTich FROM ThamGiaCM
WHERE ThamGiaCM.MaThamGiaCM = “MACM8” AND ThanhTich = “Chống Mỹ”
Kết quả thực hiện thuật toán cho danh sách những ngƣời nhận huân chƣơng và với thành tích trong bảng sau
TenThamGiaCM ThanhTich Trần Văn Lệ Nguyễn Ngọc Bích Lê Hồng Hạnh Anh hùng lực lƣợng vũ trang Chống Pháp Chống Mỹ
Bảng 2.2.5 Kết quả sau khi thực hiện thuật toán tối ƣu
2.4. Kết luận chƣơng
Chƣơng 2 chỉ ra cách tìm kiếm vét cạn các câu vấn tin dạng SQL đa quan hệ sau đó dùng phƣơng pháp tối ƣu động Tien_TOI_UU để chuyển nó thành một tập các câu vấn tin đơn quan hệ và thay lại vào vị trí câu SQL đã tìm.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
CHƢƠNG 3: CHƢƠNG TRÌNH THỬ NGHIỆM 3.1 Mô tả bài toán
Để thử nghiệm tối ƣu các câu lệnh SQL, chúng tôi xây dựng hệ thống quản lý sinh viên trƣờng đại học CNTT & TT – Đại học Thái Nguyên. Sau đó, thực hiện tiền tối ƣu câu lệnh SQL từ chƣơng trình.
Trƣờng CNTT & TT – ĐH Thái Nguyên hiện có khoảng 10000 sinh viên đang theo học và có khoảng 8000 sinh viên đã tốt nghiệp. Nhu cầu của nhà trƣờng là xây dựng hệ thống cho phép quản lý thông tin sinh viên về lý lịch sinh viên, điểm của sinh viên, học bổng …
Qua khảo sát thực tế, chúng tôi nhận thấy yêu cầu của hệ thống nhƣ sau: Yêu cầu chức năng:
- Hệ thống cho phép cập nhập thông tin cá nhân của sinh viên: họ tên, ngày sinh, số chứng minh thƣ nhân dân, quê quán, nơi ở, thông tin về bố mẹ, gia đình của sinh viên.
- Hệ thống cho phép cập nhập các thông tin về điểm các môn học của sinh viên, điểm rèn luyện của sinh viên.
- Tính đƣợc học bổng.
- Lƣu đƣợc thông tin về nơi công tác, đơn vị công tác của sinh viên sau khi ra trƣờng.
- Cho phép thực hiện đƣợc các thống kê báo cáo, tìm kiếm thông tin. Yêu cầu phi chức năng:
- Hệ thống cho phép cập nhập, tìm kiếm, thống kê nhanh chóng và chính xác.
Hệ thống chúng tôi xây dựng để minh hoạ cho việc tối ƣu câu lệnh SQL nên không đi sâu vào quy trình nghiệp vụ của hệ thống cũng nhƣ phân tích thiết kế hệ thống thực. Vì vậy, cơ sở dữ liệu của hệ thống chúng tôi xây dựng đơn giản nhƣ sau:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
BẢNG SINH VIÊN
Tên trƣờng Kiểu dữ liệu Diễn giải
MaSV Char(10) Mã sinh viên
TenSV Nvarchar(50) Tên sinh viên
MaLop Char(10) Mã lớp
QueQuan Nvarchar(200) Quê quán
GioiTinh Int Giới tính
NgaySinh Date Ngày sinh
SDT Char(12) Số điện thoại
CuuSinhVien Int Cựu sinh viên của
trƣờng hay không? DiaChiThuongTru Nvarchar(200) Địa chỉ thƣờng trú DonViCongTac Nvarchar(200) Đơn vị công tác
SoCMTND Char(9) Số chứng minh thƣ
nhân dân
NgayKetNapDoan Date Ngày kết nạp đoàn
NgayVaoDang Date Ngày vào đảng
MaDoiTuong Char(10) Mã đối tƣợng
Bảng 3.1: Bảng sinh viên
BẢNG LỚP
Tên trƣờng TrƣờngKiểu dữ Diễn giải
MaLop Char(10) Mã lớp
TenLop Nvarchar(50) Tên lớp
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
BẢNG MÔN HỌC
Tên trƣờng TrƣờngKiểu dữ Diễn giải
MaMon Char(10) Mã môn
TenMon Nvarchar(50) Tên môn học
SoTinChi Int Số tín chỉ Bảng 3.3: Bảng môn học BẢNG ĐIỂM Tên trƣờng TrƣờngKiểu dữ Diễn giải
MaSV Char(10) Mã sinh viên
MaMon Char(10) Mã môn học
MaLanHoc Int Mã lần học
DiemThuongXuyen Float Điểm thƣờng xuyên
DiemThi Float Điểm thi
Bảng 3.4: Bảng điểm
ĐIỂM RÈN LUYỆN Tên trƣờng TrƣờngKiểu
dữ
Diễn giải
MaSV Char(10) Mã sinh viên
MaHocKy Char(10) Mã học kỳ
Diem Int Điểm rèn luyện
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
ĐỐI TƢỢNG Tên trƣờng TrƣờngKiểu
dữ
Diễn giải
MaDoiTuong Char(10) Mã đối tƣợng
TenDoiTuong Nvarchar(50) Tên đối tƣợng Bảng 3.6: Bảng đối tƣợng
GIA ĐÌNH Tên trƣờng TrƣờngKiểu
dữ
Diễn giải
MaSV Char(10) Mã sinh viên
MaThanhVien Nvarchar(50) Mã thành viên Bảng 3.7: Bảng gia đình
HỌC KỲ
Tên trƣờng TrƣờngKiểu dữ Diễn giải
MaHocKy Char(10) Mã học kỳ
TenHocKy Nvarchar(50) Tên học kỳ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
QUAN HỆ Tên trƣờng TrƣờngKiểu
dữ
Diễn giải
MaQuanHe Char(10) Mã quan hệ
TenQuanHe Nvarchar(50) Tên quan hệ Bảng 3.9: Bảng quan hệ
THÀNH VIÊN GIA ĐÌNH Tên trƣờng TrƣờngKiểu
dữ
Diễn giải
MaThanhVien Char(10) Mã thành viên
MaQuanHe Char(10) Mã quan hệ
HoTen Nvarchar(50) Họ tên
Tuoi Int Tuổi
NgheNghiep Nvarchar(50) Nghề nghiệp
SDT Char(12) Số điện thoại
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
3.2 Thử nghiệm tiền tối ƣu câu lệnh SQL
3.2.1 Xây dựng chương trình thử nghiệm.
Hình 3.1: Giao diện chính chương trình
Chƣơng trình thực hiện 2 câu lệnh truy vấn với 2 sự lựa chọn Lý lịch sinh viên và Danh sách điểm:
-Câu lệnh truy vấn 1: Lấy danh sách điểm của tất cả các sinh viên đã học môn Toán cao cấp 1 bao gồm cả lần học đi và lần học lại.
-Câu lệnh truy vấn 2: In thông tin lý lịch của một sinh viên có mã sinh viên SV001
Nút “Lấy dữ liệu thông thường” cho phép thực hiện lấy dữ liệu theo câu lệnh truy vấn chƣa đƣợc tối ƣu.
Nút “Lấy dữ liệu sau khi phân rã” cho phép thực hiện lấy dữ liệu theo câu truy vấn đã đƣợc tối ƣu.
Sau khi thực hiện, chƣơng trình sẽ đƣa ra kết quả và tính thời gian thực hiện của câu lệnh truy vấn trƣớc và sau khi tối ƣu.
Giải pháp: là phần mô tả cách thức thực hiện tối ƣu câu lệnh truy vấn SQL một cách tƣờng minh nhất.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Công cụ: Chƣơng trình này đƣợc thực hiện trên CSDL không có thực, qua đó phần Công cụ giúp thêm nhanh những bản ghi vào bảng CSDL. Với lƣợng CSDL lớn sẽ làm nổi bật đƣợc tính tối ƣu của giải thuật.
3.2.2. Thực hiện thử nghiệm.
Để nhận biết đƣợc sự thay đổi về tốc độ thực hiện câu lệnh truy vấn SQL trƣớc và sau khi tiền tối ƣu, cần phải có lƣợng dữ liệu đủ lớn. Chúng tôi xây dựng công cụ tự động chèn dữ liệu vào Cơ sở dữ liệu.
Hình 3.2: Giao diện phần chèn dữ liệu tự động
Sau đó, chúng tôi thử nghiệm với 2 câu lệnh truy vấn sau:
Câu lệnh truy vấn 1: Lấy danh sách điểm của tất cả các sinh viên đã học môn Toán cao cấp 1 bao gồm cả lần học đi và lần học lại.
Câu lệnh đƣợc thể hiện nhƣ sau: p: SELECT tblSinhVien.MaSV, tblSinhVien.TenSV,
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
tblDiem.DiemThi
FROM tblDiem, tblSinhVien,
tblMonHoc
WHERE tblSinhVien.MaSV = tblDiem.MaSV
and tblDiem.MaMonHoc = tblMonHoc.MaMonHoc and tblMonHoc.TenMonHoc = N'Toán cao cấp 1'
Hình 3.3: Thực hiện truy vấn lấy danh sách điểm sinh viên
Theo luật phân rã câu vấn tin p đƣợc thay bởi P1: SELECT MaMonHoc
FROM tblMonHoc INTO TGMonHoc WHERE TenMonHoc = N'Toán cao cấp 1'
Là câu vấn tin đơn quan hệ TGMonHoc. Kết quả trong TG1 chỉ có „ToanCC‟
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ P2: SELECT tblSinhVien.MaSV,
tblSinhVien.TenSV,
tblDiem.DiemThuongXuyen,
tblDiem.DiemThi
FROM tblDiem, tblSinhVien,TGMonHoc WHERE tblSinhVien.MaSV = tblDiem.MaSV
and tblDiem.MaMonHoc = TGMonHoc.MaMonHoc
Là câu lệnh đa quan hệ, P2 đƣợc phân rã thành P21 và P22: P21: SELECT tblDiem.MaSV,tblDiem.DiemThuongXuyen,
tblDiem.DiemThi INTO TGDiem FROM tblDiem, TGMonHoc
WHERE tblDiem.MaMonHoc = TGMonHoc.MaMonHoc P22: SELECT tblSinhVien.MaSV, tblSinhVien.TenSV,
TGDiem.DiemThi, TGDiem.DiemThuongXuyen
FROM tblSinhVien, TGDiem
WHERE TGDiem.MaSV = tblSinhVien.MaSV
Nhƣ vậy câu vấn tin p đƣợc phân rã thành chuỗi câu vấn tin p1-> p21->p22. Câu vấn tin đơn quan hệ p1 có thể dùng thể vấn tin ORQOP (One Relation Query Optimization Processor). Còn câu lệnh p21, p22 không phải loại đơn quan hệ và cũng không thể rút gọn hơn nữa bằng phép phân rã của thuật toán. Theo phép thế bộ của thuật toán, p22 đƣợc thay bởi tập 3 câu lệnh SQL một quan hệ:
q1: SELECT tblSinhVien.MaSV, tblSinhVien.TenSV, '9' as DiemThuongXuyen, 9' as DiemThi
FROM tblSinhVien
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ q2: SELECT tblSinhVien.MaSV, tblSinhVien.TenSV,
'10' as DiemThuongXuyen, '10' as DiemThi FROM tblSinhVien
WHERE tblSinhVien.MaSV = 'SV001'
q3: SELECT tblSinhVien.MaSV, tblSinhVien.TenSV, '10' as DiemThuongXuyen, '10' as DiemThi FROM tblSinhVien
WHERE tblSinhVien.MaSV = 'SV002'
Kết quả truy vấn cho ta danh sách điểm những sinh viên đã học môn Toán cao cấp 1 nhƣ sau:
Hình 3.4 Thực hiện truy vấn lấy danh sách điểm sinh viên sau khi tối ưu SQL
Và thời gian thực hiện câu lệnh truy vấn là: -Câu lệnh chƣa tối ƣu: 0.2157369
-Câu lệnh tối ƣu: 0.1155684
Câu lệnh truy vấn 2: In thông tin lý lịch của một sinh viên có mã sinh viên SV001
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ P: SELECT tblThanhVienGiaDinh.HoTen, tblThanhVienGiaDinh.NgheNghiep, tblThanhVienGiaDinh.SDT, tblThanhVienGiaDinh.Tuoi, tblQuanHe.TenQuanHe
FROM tblQuanHe, tblGiaDinh, tblThanhVienGiaDinh WHERE tblGiaDinh.MaSV = 'SV001'
and tblQuanHe.MaQuanHe =
tblThanhVienGiaDinh.MaQuanHe
and tblGiaDinh.MaThanhVien =
tblThanhVienGiaDinh.MaThanhVien
Hình 3.5 Thực hiện truy vấn lấy thông tin sinh viên
Câu lệnh p đƣợc phân rã nhƣ sau: P1: SELECT MaThanhVien FROM tblGiaDinh
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ P2: SELECT tblThanhVienGiaDinh.HoTen, tblThanhVienGiaDinh.NgheNghiep, tblThanhVienGiaDinh.SDT, tblThanhVienGiaDinh.Tuoi, tblQuanHe.TenQuanHe FROM tblThanhVienGiaDinh,tblQuanHe,TGGiaDinh WHERE tblQuanHe.MaQuanHe = tblThanhVienGiaDinh.MaQuanHe And tblThanhVienGiaDinh.MaThanhVien = TGGiaDinh.MaThanhVien
P2 là câu lệnh đa quan hệ, đƣợc phân rã tiếp thành p21 và p22 nhƣ sau: P21: SELECT tblThanhVienGiaDinh.MaQuanHe,
tblThanhVienGiaDinh.HoTen, tblThanhVienGiaDinh.NgheNghiep,
tblThanhVienGiaDinh.SDT,
tblThanhVienGiaDinh.Tuoi
FROM tblThanhVienGiaDinh, TGGiaDinh INTO TGThanhVienGiaDinh WHERE tblThanhVienGiaDinh.MaThanhVien = TGGiaDinh.MaThanhVien P22: SELECT tblQuanHe.TenQuanHe, TGThanhVienGiaDinh.HoTen, TGThanhVienGiaDinh.NgheNghiep, TGThanhVienGiaDinh.SDT, TGThanhVienGiaDinh.Tuoi
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ WHERE TGThanhVienGiaDinh.MaQuanHe =
tblQuanHe.MaQuanHe
Nhƣ vậy câu vấn tin p đƣợc phân rã thành chuỗi câu vấn tin p1 -> p21->p22. Câu vấn tin đơn quan hệ p1 có thể dùng thể vấn tin ORQOP (One Relation Query Optimization Processor). Còn câu lênh p21, p22 không phải loại đơn quan hệ và cũng không thể rút gọn hơn nữa bằng phép phân rã của thuật toán. Theo phép thế bộ của thuật toán, p22 đƣợc thay bởi tập 2 câu lệnh SQL một quan hệ:
Q1: SELECT N'Nguyễn Văn A' as HoTen,
tblQuanHe.TenQuanHe,
N'Giáo viên' as NgheNghiep, '123456' as SDT,
'40' as Tuoi
FROM tblQuanHe
WHERE tblQuanHe.MaQuanHe = 'Bo' Q2: SELECT N'Nguyễn Thị B' as HoTen,
tblQuanHe.TenQuanHe, N'Kỹ sƣ' as NgheNghiep, '123456' as SDT, '35' as Tuoi
FROM tblQuanHe WHERE tblQuanHe.MaQuanHe = 'Me' Và kết quả truy vấn của câu lệnh truy vấn trên là:
Hình 3.6 Thực hiện truy vấn lấy thông tin sinh viên sau khi tối ưu SQL
Thời gian thực hiện trƣớc tối ƣu: 0.1989044 Thời gian thực hiện sau khi tối ƣu: 0.09933
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
KẾT LUẬN
Trong các tài liệu nghiên cứu và ứng dụng các lệnh SQLs, AQLs, OTs thì SQL thƣờng đƣợc chỉ ra trƣớc. Từ đó bằng phƣơng pháp tối ƣu hóa thủ công, thậm chí có thể tự động tối ƣu hóa bằng các thuật toán đã cho tại chƣơng 2 mục 2.3. Nhƣng việc tìm kiếm thủ công trong chƣơng trình nguồn, viết lại câu vấn tin SQL sẽ mất không ít thời gian và cũng không tránh đƣợc các sai sót. Phƣơng pháp đã đƣợc trình bày trong luận văn này nhằm khắc phục các nhƣợc điểm trên, đồng thời sẽ hỗ trợ đắc lực cho hƣớng nghiên cứu và ứng dụng thuật toán song song, lập trình song song, xử lí song song và phân tán,…
HƢỚNG PHÁT TRIỂN
Nghiên cứu này có thể tiếp tục phát triển tiếp theo nhƣ sau:
Có thể thay phƣơng pháp tối ƣu tĩnh bằng phƣơng pháp tối ƣu động, nghĩa là tìm các chiến lƣợc truy nhập/xuất đến các quan hệ, sau đó tìm ra