4. Những nội dung nghiên cứu chính
3.1. Ứng dụng tại trƣờng Cao đẳng kinh tế kỹ thuật Vĩnh Phúc (Dạng demo)
3.1.1. Giới thiệu CSDL của trƣờng Cao đẳng kinh tế - kỹ thuật Vĩnh Phúc
3.1.1.1. Mô tả cơ sở dữ liệu
Cơ sở dữ liệu trƣờng Cao đẳng kinh tế - kỹ thuật Vĩnh Phúc bao gồm các quan hệ:
Quan hệ HOSOSV: Hồ sơ sinh viên
Masv: Mã sinh viên
hoten: Họ và tên sinh viên
ngaysinh: Ngày, tháng, năm sinh gioitinh: Giới tính
dantoc: Dân tộc tinh: Tỉnh Malop: Mã lớp Makhoa: Mã khoa
Masv hoten Ngaysinh gioitinh dantoc tinh Malop Makhoa Sv01 Hà Văn Hùng 17/09/1993 Nam Kinh Vĩnh Púc Kt4 Kt Sv02 Nguyễn Thị Bình 21/11/1993 Nữ Kinh Vĩnh Púc Kt4 Cntt Sv03 Vũ Thị kiều 21/06/1993 Nữ Tày Vĩnh Púc Kt3 Kt Sv04 Bùi Tiến Long 02/05/1992 Nam Kinh Vĩnh Púc Kt3 Kt Sv05 Trần Thị Hƣơng 10/12/1993 Nữ Kinh Phú Thọ Cntt3 Cntt Sv06 Phùng Thi Hậu 23/12/1993 Nữ Kinh Vĩnh Púc Cntt3 Cntt Sv07 Phạm Đức Nghĩa 24/08/1993 Nam Mƣờng Phú Thọ Cntt4 Cntt Sv08 §ç §øc Quúnh 08/12/1991 Nam Kinh Hà Nam Ck4 Ck Sv09 Trần Tuấn Dũng 13/07/1992 Nam Dao Yên Bái Ck4 Ck
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Sv10 Đặng Văn Khỏe 27/05/1993 Nam Tày Yên Bái Ck3 Ck ... ....
Quan hệ LOP: Lớp
Malop: Mã lớp tenlop: Tên lớp Magv: Mã giáo viên
Malop tenlop Magv
Kt3 Kế toán 3 Nvc
Kt4 Kế toán 4 Nta
Cntt3 Công nghệ thông tin 3 Nqh Cntt4 Công nghệ thông tin 4 Hvl
Ck3 Cơ khí 3 Hmt Ck4 Cơ khí 4 Ptt ... ... Quan hệ HOCPHAN: Học phần Mahp: Mã học phần tenhp: Tên học phần sotc: Số tín chỉ ky: Học kỳ
Mahp tenhp sotc ky
csdl Cơ sở dữ liệu 3 2 trr Toán rời rạc 3 1 php Lập trình php 3 2 qtm Quản trị mạng 4 2 ktm Kiến trúc mạng 3 2 ktmt Kiên trúc máy tính 2 1 ... ...
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Quan hệ DIEM: Điểm
Masv: Mã sinh viên Mahp: Mã học phần diem: Điểm
Masv Mahp diem
Sv01 csdl 8 Sv02 csdl 7 Sv03 trr 8 Sv04 trr 6 Sv05 qtm 7 Sv06 csdl 4 Sv07 csdl 8 Sv08 trr 9 Sv09 qtm 8 Sv10 csdl 3 ... ...
Quan hệ GIAOVIEN: Giáo viên
Magv: Mã giáo viên
tengv: Họ và tên giáo viên dienthoai: Số điện thoại
Magv tengv Dienthoai
Nvc Nguyễn Văn Chiến 0123569874
Nta Nguyễn Tuấn Anh 0975968521
Nqh Ngô Quang Hƣng 0918714444
Hvl Hoàng Văn Lê 0985213674
Hmt Hoàng Minh Thái 0982032011
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Quan hệ NGANH: Ngành học
Manganh: Mã ngành tennganh: Tên ngành Mahe: Mã hệ
Manganh tennganh Mahe
nkt Kế toán Cd
nqtkd Quản trị kinh doanh Tccn ncntt Công nghệ thông tin Tcn
nck Cơ khí Tccn
ndien Cong nghệ kỹ thuật điện tcn
... ...
Quan hệ HE: Hệ đào tạo
Mahe: Mã hệ tenhe: Tên hệ hocphi: Học phí
Mahe tenhe hocphi
Cd Cao đẳng 300000
Cdn Cao đẳng nghề 300000
tccn Trung cấp chuyên nghiệp 250000
tcn Trung cấp nghề 200000
Quan hệ KHOA: Khoa chuyên môn
Makhoa: Mã khoa tenkhoa: Tên khoa vitri: Vị trí của khoa Manganh: Mã ngành
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Makhoa tenkhoa vitri Manganh
Kt Kinh tế 306 nkt
Cntt Công nghệ thông tin 409 Nktmt
Ck Cơ khí 411 Nck
Ktnn Kỹ thuật nông nghiệp 407 Ncnty
ddt Điện - Điện tử 402 ndien
... ...
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
3.1.1.2. Phát biểu, phân tích ứng dụng
Giao diện chính của chƣơng trình
Hình 3-2. Màn hình chính của chương trình
a. Ví dụ 1
Xét câu truy vấn sau: " Hãy cho biết tên và điểm của các sinh viên học học phần cơ sở dữ liệu"
Câu SQL nhƣ sau:
SELECT HOSOSV.hoten, DIEM.diem FROM HOSOSV, DIEM, HOCPHAN WHERE (HOSOSV.Masv = DIEM.Masv)
AND (DIEM.Mahp = HOCPHAN.Mahp) AND (HOCPHAN.Tenhp = "cơ sở dữ liệu") Cây truy vấn ban đầu
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn Hình 3-3. Cây truy vấn ban đầu của ví dụ 1
Cây truy vấn sau khi sắp xếp lại các phép nối
Hình 3-4. Cây sau khi sắp lại phép nối ví dụ 1
Giao diện Pha 1 của chương trình
Khi nhấn chọn nút Pha 1 ta có màn hình sau đây để đƣa thông tin vào
DIEM HOCPHAN
HOSO.Masv = DIEM.Masv
DIEM.Mahp = HOCPHAN.Mahp
HOSOSV
HOSOSV.hoten, DIEM.diem
Tenhp = "cơ sở dữ liệu" Masv, hoten DIEM HOCPHAN HOSO.Masv = DIEM.Masv DIEM.Mahp = HOCPHAN.Mahp HOSOSV HOSOSV.hoten, DIEM.diem
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn Hình 3-5. Màn hình nhập câu truy vấn
Thông tin đƣợc đƣa vào nhƣ hình 3-6
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Kết quả thực hiện
Nhấn chọn nút Xem kết quả và Kết quả pha 1 sẽ cho cùng kết quả nhƣ hình 3-7
Hình 3-7. Kết quả của câu truy vấn ví dụ 1
Đánh giá
Bằng lý thuyết có thể thấy sau khi đẩy phép chọn xuống dƣới cây nối thì chi phí về không gian nhớ và chi phí của phép kết nối đã giảm do đã loại bớt đi các bản ghi không thỏa mãn điều kiện.
Giả sử với bảng dữ liệu và số lƣợng bản ghi của các quan hệ HOCPHAN, DIEM, HOSOSV nhƣ mục 3.1.1.1 thì chi phí nhƣ sau
Phép toán Chi phí
Chọn trên quan hệ HOCPHAN 5 Nối HOCPHAN và DIEM (TG) 5
Nối TG và HOSOSV 5
Tổng chi phí 15
b. Ví dụ 2
Xét câu truy vấn sau: "Hãy cho biết tên của các sinh viên nữ học ngành Kỹ thuật máy tính"
Câu SQL nhƣ sau:
SELECT HOSOSV.hoten
FROM HOSOSV, KHOA, NGANH
WHERE (HOSOSV.Makhoa =KHOA.Makhoa)
AND (KHOA.Manganh =NGANH.Manganh) AND (NGANH.Tennganh = "Kỹ thuật máy tính")
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
AND (HOSOSV.gioitinh = "Nữ") Cây truy vấn ban đầu
Hình 3-8. Cây truy vấn ban đầu của ví dụ 2
Cây truy vấn sau khi sắp xếp lại các phép nối
Hình 3-9. Cây sau khi sắp lại phép nối ví dụ 2
Câu truy vấn đƣợc đƣa vào nhƣ hình 3-10
KHOA NGANH
HOSOSV.Makhoa = NGANH.Makhoa
NGANH.Manganh = KHOA.Manganh
HOSOSV
HOSOSV.hoten
NGANH.Tennganh = "Kỹ thuật máy tính" HOSOSV.gioitinh = "Nữ" KHOA NGANH HOSOSV.Makhoa = NGANH.Makhoa NGANH.Manganh = KHOA.Manganh HOSOSV HOSOSV.hoten
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn Hình 3-10. Giao diện câu truy vấn ban đầu và sau biểu diễn lại ví dụ 2
Kết quả thực hiện
Nhấn chọn nút Xem kết quả và Kết quả pha 1 sẽ cho cùng kết quả nhƣ hình 3-11
Hình 3-11. Kết quả của câu truy vấn ví dụ 2
Đánh giá
Sau khi đẩy phép chọn xuống dƣới cây nối (trọn trước trên các quan hệ HOSOSV, NGANH) thì chi phí về không gian nhớ và chi phí của phép kết nối đã giảm do đã loại bớt đi các bản ghi không thỏa mãn điều kiện.
Giả sử với bảng dữ liệu và số lƣợng bản ghi của các quan hệ HOCPHAN, KHOA, NGANH nhƣ mục 3.1.1.1 thì chi phí nhƣ sau
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Phép toán Chi phí
Chọn trên quan hệ HOSOSV 4 Chọn trên quan hệ NGANH 1
Nối NGANH và KHOA 1
Nối HOSOSV và KHOA (TG) 3
Tổng chi phí 9
c. Ví dụ 3
Xét câu truy vấn sau: "Hãy cho biết tên của các sinh viên nam trƣợt học phần PHP"
Câu SQL nhƣ sau:
SELECT HOSOSV.hoten
FROM HOSOSV, DIEM, HOCPHAN WHERE (HOSOSV.Masv = DIEM.Masv)
AND (DIEM.Mahp = HOCPHAN.Mahp) AND (HOSOSV.gioitinh = "Nam")
AND (HOCPHAN.Tenhp = "PHP") AND (DIEM.diem < 5) Biểu thức F = (HOSOSV.gioitinh = "Nam" HOCPHAN.Tenhp = "PHP" DIEM.diem < 5)
Cây truy vấn ban đầu
Hình 3-12. Cây truy vấn ban đầu của ví dụ 3
DIEM HOCPHAN HOSO.Masv = DIEM.Masv DIEM.Mahp = HOCPHAN.Mahp HOSOSV HOSOSV.hoten F
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Cây truy vấn sau khi sắp xếp lại các phép nối:
Hình 3-13. Cây sau khi xếp lại phép nối của ví dụ 3
Giao diện nhập truy vấn
Hình 3-14. Giao diện câu truy vấn ban đầu và sau biểu diễn lại ví dụ 3
Kết quả thực hiện DIEM HOCPHAN HOSO.Masv = DIEM.Masv DIEM.Mahp = HOCPHAN.Mahp HOSOSV HOSOSV.hoten HOCPHAN.tenhp = "php" DIEM.diem < 5 HOSOSV.gioitinh = "Nam"
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn Hình 3-15. Kết quả của câu truy vấn ví dụ 3
Đánh giá
Sau khi đẩy phép chọn xuống dƣới cây nối (trọn trước trên các quan hệ HOSOSV, DIEM, HOCPHAN) thì chi phí về không gian nhớ và chi phí của phép kết nối đã giảm do đã loại bớt đi các bản ghi không thỏa mãn điều kiện.
3.1.2. Cực tiểu hóa chi phí phân mảnh lại CSDL tại mục 3.1.1
3.1.2.1. Cực tiểu hóa chi phí phân mảnh lại truy vấn phần a. Ví dụ 1
Giả sử: Quan hệ HOSOSV đƣợc phân mảnh ngang hai nút theo thuộc tính "hoten". Quan hệ DIEM đƣợc phân mảnh ngang hai nút theo thuộc tính "Mahp". Quan hệ HOCPHAN đƣợc phân mảnh ngang hai nút theo thuộc tính "tenhp".
Nút 0 Nút 1
HOSOSV0: Hash(hoten) mod 2 = 0 DIEM0: Hash(Mahp) mod 2 = 0 HOCPHAN0: Hash(tenhp) mod 2 = 0
HOSOSV1: Hash(hoten) mod 2 = 1 DIEM1: Hash(Mahp) mod 2 = 1 HOCPHAN1: Hash(tenhp) mod 2 = 1
Hình 3-16. Sơ đồ phân mảnh ngang dữ liệu tại các nút của ví dụ 1
Cây gốc và các phƣơng án tô màu cho cây truy vấn
a) Cây truy vấn ban đầu
DIEM(Mahp) HOCPHAN(tenhp) Masv Mahp HOSOSV(hoten) 6 9 3 4
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
b) Tô màu với chi phí 9 c) Tô màu tối ƣu với chi phí 7
d) Tô màu với chi phí 10
Hình 3-17. Cây gốc và các phương án tô màu của ví dụ 1
Chi phí tô màu là tổng các cạnh đứt nét. Việc tô màu ở đây sử dụng thuật giải Heuristic, chỉ đơn giản là tránh phân mảnh ngang lại những quan hệ có chi phí cao
Từ câu truy vấn ban đầu và giả sử chi phí phân mảnh ban đầu là 9
Hình 3-18. Giao diện pha 2 của ví dụ 1
Khi nhấn vào nút Phân mảnh lại Cho kết quả phân mảnh lại với chi phí tối ƣu là 7 DIEM(Mahp) HOCPHAN(tenhp) Masv Mahp HOSOSV(hoten) 6 9 3 4 DIEM(Mahp) HOCPHAN(tenhp) Masv Mahp HOSOSV(hoten) 3 9 6 4 DIEM(Mahp) HOCPHAN(tenhp) Masv Mahp HOSOSV(hoten) 6 9 3 4
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn Hình 3-19. Giao diện kết quả pha 2 của ví dụ 1
3.1.2.2. Cực tiểu hóa chi phí phân mảnh lại truy vấn phần b. Ví dụ 2
Giả sử: Quan hệ HOSOSV đƣợc phân mảnh ngang ba nút theo thuộc tính "hoten". Quan hệ KHOA đƣợc phân mảnh ngang ba nút theo thuộc tính "Makhoa". Quan hệ NGANH đƣợc phân mảnh ngang ba nút theo thuộc tính "tennganh".
Nút 0 Nút 1 Nút 2 HOSOSV0: Hash(hoten) mod 3 = 0 KHOA0: Hash(Makhoa) mod 3 = 0 NGANH0: Hash(tennganh) mod 3 = 2 HOSOSV1: Hash(hoten) mod 3 = 1 KHOA 1: Hash(Makhoa) mod 3 = 1 NGANH 1: Hash(tennganh) mod 3 = 2 HOSOSV2: Hash(hoten) mod 3 = 2 KHOA 2: Hash(Makhoa) mod 3 = 2 NGANH 2: Hash(tennganh) mod 3 = 2
Hình 3-20. Sơ đồ phân mảnh ngang dữ liệu tại các nút của ví dụ 2
Cây gốc và các phƣơng án tô màu cho cây truy vấn
a) Cây truy vấn ban đầu
KHOA(Makhoa) NGANH(tennganh) Makhoa Manganh HOSOSV(hoten) 2 7 5 3
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
b) Tô màu với chi phí 7 c) Tô màu với chi phí 8
d) Tô màu tối ƣu với chi phí 5
Hình 3-21. Cây gốc và các phương án tô màu của ví dụ 2
Từ câu truy vấn ban đầu và giả sử chi phí phân mảnh ban đầu là 7
Hình 3-22. Giao diện pha 2 của ví dụ 2
Khi nhấn vào nút Phân mảnh lại Cho kết quả phân mảnh lại với chi phí tối ƣu là 5 KHOA(Makhoa) NGANH(tennganh) Makhoa Manganh HOSOSV(hoten) 2 7 5 3 KHOA(Makhoa) NGANH(tennganh) Makhoa Manganh HOSOSV(hoten) 2 7 5 3 KHOA(Makhoa) NGANH(tennganh) Makhoa Manganh HOSOSV(hoten) 2 7 5 3
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn Hình 3-23. Giao diện kết quả pha 2 của ví dụ 2
3.2. Kết luận chƣơng 3
Trong chƣơng này tác giả đã áp dụng lý thuyết của chƣơng 2 vào cơ sở dữ liệu của trƣờng Cao đẳng kinh tế - kỹ thuật Vĩnh Phúc (dạng Demo). Thông qua việc phát biểu và phân tích bài các toán.
Mỗi ví dụ thể hiện kết quả hai pha của bài toán, sắp xếp lại thứ tự phép nối và cực tiểu hóa chi phí phân mảnh lại thông qua bài toán tô màu đơn giản sử dụng thuật giải Heuristic, chỉ đơn giản là tránh việc phân mảnh ngang lại các quan hệ có chi phí cao.
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN CỦA LUẬN VĂN
1. Kết luận
Một vấn đề mà tất cả các Hệ quản trị CSDL cho phép các truy vấn khai báo phải giải quyết là bài toán Tối ƣu hoá truy vấn. Trên môi trƣờng song song, một mô hình tối ƣu hoá truy vấn dựa trên cách tiếp cận hai pha đã đƣợc nhiều nhà tin học quan tâm phát triển. Luận văn này đã dành phần lớn trình bày để khảo sát giai đoạn đầu của cách tiếp cận này nhằm cực tiểu hoá khối lƣợng truy vấn. Các thuật toán đƣợc trình bày, dựa trên kỹ thuật quy hoạch động, có tính đến các chi phí phân bố lại, là một đóng góp bổ sung cho giai đoạn tối ƣu hoá truy vấn.
Áp dụng mô hình tối ƣu hóa truy vấn hai pha vào thiết kế hệ thống quản lý sinh viên trƣờng Cao đẳng kinh tế - kỹ thuật Vĩnh Phúc.
2. Hƣớng phát triển
Tìm hiểu về vấn đề lập lịch tối ƣu cho cây truy vấn song song. Bằng cách tiếp cận bài toán lập lịch tối ƣu cho cây toán tử nhận đƣợc từ giai đoạn JOQR, nhằm tìm kiếm một sự phân chia hợp lý các nút của cây toán tử cho các bộ xử lý để thời gian trả lời truy vấn là nhỏ nhất.
Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Đoàn Văn Ban, Nguyễn Mậu Hân, “Xử lý song song và phân tán”,
NXB Khoa học và Kỹ thuật, 2006.
[2] Đỗ Xuân Lôi, “Cấu trúc dữ liệu và giải thuật”, NXB Khoa học và Kỹ thuật, 1996
[3] Lê Huy Thập, “Cơ sở lý thuyết song song”, NXB Thông tin và Truyền thông, 2010
[4] Lê Huy Thập, “Bài giảng CSDL phân tán” tại ĐH Sƣ Phạm Hà Nội 2 và Học Viện CN Bƣu Chính Viễn Thông
Tiếng Anh
[5] M.Tamer Ozsu, Patrick Valduriez. “Nguyên lý các hệ cơ dữ liệu phân tán” Trần Đức Quang biên dịch. NXB Thống kê, 1999
[6] Seyed H. Roo, “Parallel processing and Parallel Algorithms, Theory and Coputation”, Springer 1999