Ứng dụng tại trƣờng Cao đẳng kinh tế kỹ thuật Vĩnh Phúc (Dạng demo)

Một phần của tài liệu mô hình tối ưu hóa truy vấn hai pha trong cơ sở dữ liệu và ứng dụng (Trang 58 - 77)

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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í (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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. (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu mô hình tối ưu hóa truy vấn hai pha trong cơ sở dữ liệu và ứng dụng (Trang 58 - 77)