Nghiên cứu ứng dụng khung nhìn thực để nâng cao hiệu năng hệ thống thông tin quản lý đào tạo

Nghiên cứu ứng dụng khung nhìn thực để nâng cao hiệu năng hệ thống thông tin quản lý đào tạo tại Trường Đại học Tài chính - Kế toán

Nghiên cứu ứng dụng khung nhìn thực để nâng cao hiệu năng hệ thống thông tin quản lý đào tạo tại Trường Đại học Tài chính – Kế toán

  1. Lý do chọn đề tài

Hiện nay, công nghệ thông tin (CNTT) đang ngày càng phát triển. Con người đã ứng dụng CNTT vào công việc cũng như các hoạt động hàng ngày. Các hệ thống thông tin (HTTT) đã được triển khai trong hầu hết các lĩnh vực: kinh doanh, giải trí, quản trị, hành chính… Các hệ thống này có thể hoạt động 24/7 và có nhiều chức năng được thực hiện tự động mà không cần sự kiểm soát của con người.

Tại Trường Đại học Tài chính – Kế toán, HTTT cũng được triển khai trong các hoạt động: quản lý, dạy học, quảng bá… Trong số các HTTT này, HTTT quản lý đào tạo là hệ thống quan trọng và có sự tương tác cao. HTTT quản lý đào tạo đã giúp cho quá trình đào tạo được diễn ra suôn sẻ, nhanh chóng và dễ kiểm soát.

Ngoài những kết quả đáng tin cậy, HTTT quản lý đào tạo vẫn còn một số vấn đề về hiệu năng mà tồn tại lớn nhất là chức năng đăng ký lớp học phần. Chức năng này vừa yêu cầu dữ liệu được trích xuất phức tạp từ cơ sở dữ liệu (CSDL) vừa có một lượng lớn sinh viên truy cập đồng thời. Để thực hiện chức năng này chương trình phải tính nhiều dữ liệu trung gian, đặc biệt là tính các môn học: sinh viên đã học, sinh viên còn nợ hoặc được phép học cải thiện và các môn học được phép học vượt… Các phép tính này dùng nhiều phép nối (▷◁). Vì thế thời gian phản hồi của hệ thống bị chậm và nhiều lúc quá tải, không phản hồi.

Trong thời gian học tập khóa học cao học của mình, tôi đã được tiếp cận với kỹ thuật khung nhìn thực (KNT) – một kỹ thuật giúp cải thiện và nâng cao tốc độ thực thi cho các truy vấn phức tạp. KNT là một đối tượng trong CSDL dùng để lưu trữ kết quả thực thi của một truy vấn, giúp cải thiện và nâng cao tốc độ thực thi đối với các truy vấn phức tạp, có tần suất sử dụng cao trên một lượng dữ liệu lớn.

Cùng với đó, tôi cũng được tiếp cận hệ quản trị cơ sở dữ liệu (HQT CSDL) PostgreSQL – một HQT CSDL nguồn mở cho phép tích hợp kỹ thuật KNT vào để nâng cao hiệu năng. PostgreSQL là một HQT CSDL mã nguồn mở, được phát triển dựa trên mã nguồn của trường Đại học Berkeley, hỗ trợ đầy đủ các thành phần phổ biến của một HQT CSDL như các truy vấn phức hợp, bẫy sự kiện, khung nhìn, tính toàn vẹn của giao dịch,… và có thể chạy trên mọi hệ điều hành.

Trigger là một thủ tục đặc biệt mà việc thực thi của nó tự động khi có sự kiện xảy ra, các sự kiện gọi thủ tục đặc biệt này được định nghĩa trong câu lệnh, thông thường được thực hiện với các sự kiện liên quan đến Insert, Update, Delete dữ liệu. Trigger được sử dụng trong việc bảo đảm toàn vẹn dữ liệu. Sử dụng trigger một cách hợp lý trong CSDL sẽ có tác động rất lớn trong việc tăng hiệu năng của CSDL.

Từ vấn đề đang tồn tại trong HTTT quản lý đào tạo tại trường và kiến thức được tiếp cận trong khóa học, tôi chọn đề tài “Nghiên cứu ứng dụng khung nhìn thực để nâng cao hiệu năng hệ thống thông tin quản lý đào tạo tại Trường Đại học Tài chính – Kế toán” để làm luận văn tốt nghiệp.

2. Mục tiêu và nhiệm vụ đề tài

– Nghiên cứu tổng quan về KNT.

– Nghiên cứu Ứng dụng KNT trong các HQT CSDL thương mại.

– Nghiên cứu ứng dụng KNT nhằm đẩy nhanh các thực thi các truy vấn trên một số lượng bản ghi lớn.

– Nghiên cứu hệ thống quản lý đào tạo tại Trường Đại học Tài chính – Kế toán.

– Khai thác các thuật toán CNGT KNT đã có để ứng dụng vào đề tài, đặc biệt là thuật toán CNGT KNT với truy vấn lồng.

– Ứng dụng KNT vảo phần mềm quản lý đào tạo tại Trường Đại học Tài chính – Kế toán để nâng cao hiệu năng.

3. Đối tượng và phạm vi nghiên cứu

3.1. Đối tượng nghiên cứu

– Hệ quản trị CSDL PostgreSQL

– KNT

– Thuật toán CNGT đồng bộ, CNGT toàn phần.

– Hệ thống thông tin quản lý đào tạo.

3.2 Phạm vi nghiên cứu

– Ứng dụng KNT trong HQT CSDL PostgreSQL.

– Ứng dụng KNT nhằm đẩy nhanh các thực thi các truy vấn.

– Nghiên cứu hệ thống quản lý đào tạo tại Trường Đại học Tài chính – Kế toán.

– Khai thác các thuật toán CNGT KNT để có để ứng dụng vào phần mềm quản lý đào tạo tại Trường Đại học Tài chính – Kế toán, đặc biệt là thuật toán CNGT KNT với truy vấn lồng.

4. Phương pháp nghiên cứu

Về phương pháp nghiên cứu, tôi sử dụng hai phương pháp chính là nghiên cứu lý thuyết và nghiên cứu thực nghiệm.

4.1. Phương pháp lý thuyết

Thu thập, chọn lọc, phân loại, ghi chú và nghiên cứu các tài liệu (sách, bài báo, luận văn, trang web) có liên quan đến KNT, HQTCSDL SQL Server, CNGT KNT, đồng bộ KNT.

4.2. Phương pháp thực nghiệm

– Nghiên cứu phân tích thiết kế hệ thống thông tin Quản lý đào tạo Trường Đại học Tài chính – Kế toán.

– Ứng dụng KNT để nâng cao hiệu năng.

5. Kết quả dự kiến

5.1. Lý thuyết

– Đề tài sẽ chọn được thuật toán phù hợp, có hỗ trợ KNT, sử dụng truy vấn lồng.

– Nâng cao hiệu năng, xử lý khối lượng dữ liệu lớn chính xác, nhanh gọn trong việc truy cập dữ liệu

– Tạo điều kiện thuận lợi cho người dùng, tiết kiệm thời gian và chi phí

5.2. Thực tiễn

Đề tài sẽ ứng dụng được KNT để nâng cao hiệu năng của phần mềm Quản lý đào tạo tại Trường Đại học Tài chính – Kế toán.

6. Ý nghĩa khoa học của và thực tiễn của luận văn

Luận văn nghiên cứu áp dụng KNT cho một số truy vấn có độ phức tạp tương đối cao vào hệ thống thông tin quản lý đào tạo của trường Đại học Tài chính – Kế toán nhằm tăng tốc hệ thống. Trong đó, các cài đặt sẽ được triển khai trên HQT CSDL PostgreSQL – một HQT CSDL được Bộ Thông tin và Truyền thông khuyến khích sử dụng.

7. Bố cục luận văn:

Chương 1 – Nghiên cứu tổng quan. Chương này trình bày tổng quan các kiến thức cơ sở về KNT. Phân loại KNT. Các phương pháp cập nhật KNT được sử dụng hiện nay. Giới thiệu HQT CSDL PostgreSQL. Các kiến thức liên quan đến KNT trong HQT CSDL PostgreSQL như trigger và hàm trigger.

Chương 2 – Thiết kế hệ thống. Chương này trình bày các kết quả thiết kế CSDL, các chức năng ứng dụng KNT. Trình bày kết quả phân tích yêu cầu hệ thống quản lý đào tạo tại Trường Đại học Tài chính – Kế toán. Thiết kế mô hình dữ liệu ở mức khái niệm – mô hình ER và mô hình dữ liệu quan hệ. Phân tích thiết kế biểu đồ tuần tự và câu lệnh truy vấn cho các chức năng hệ thống có kết nối phức tạp hay thường được truy cập đồng thời cần ứng dụng KNT để nâng cao hiệu năng. Thiết kế KNT hỗ trợ cho các chức năng được nêu ra.

Chương 3 – Cài đặt, thử nghiệm và đánh giá. Trình bày các kết quả cài đặt, thử nghiệm KNT và đánh giá. Đầu tiên là cài đặt các KNT được thiết kế ở Chương 2. Sau đó là chạy thử nghiệm một số truy vấn đối chứng cho các KNT được cài đặt. Cuối cùng là các so sánh, đánh giá về kết quả thử nghiệm.

Nghiên cứu ứng dụng khung nhìn thực để nâng cao hiệu năng hệ thống thông tin quản lý đào tạo tại Trường Đại học Tài chính - Kế toán
Nghiên cứu ứng dụng khung nhìn thực để nâng cao hiệu năng hệ thống thông tin quản lý đào tạo tại Trường Đại học Tài chính – Kế toán

CHƯƠNG 1

NGHIÊN CỨU TỔNG QUAN

1.1. Tổng quan về KNT

1.1.1. Tổng quan về KNT

Một khung nhìn có thể được cụ thể hóa bằng cách lưu trữ các bộ dữ liệu của các khung nhìn trong CSDL, được gọi là khung nhìn thực (KNT – Materialized view).

KNT là một đối tượng trong CSDL dùng để lưu trữ kết quả thực thi của một truy vấn, giúp cải thiện và nâng cao tốc độ thực thi đối với các truy vấn phức tạp, có tần suất sử dụng cao trên một lượng dữ liệu lớn..

1.1.2. Phân loại KNT

KNT được chia làm 04 loại:

a) KNT bản sao (snapshot materialized view):

b) KNT hăm hở (eager materialized view):

c) KNT rất lười (very lazy materialized view):

d) KNT lười (lazy materialized view):

1.2. Các cơ chế và phương pháp cập nhật KNT

1.2.1. Các cơ chế cập nhật KNT

Dựa vào thời hạn cập nhật các thay đổi vào các bảng KNT, người ta chia làm 02 cơ chế cập nhật KNT: đồng bộ và bất đồng bộ.

a) Cập nhật đồng bộ: Là cập nhật đồng bộ được thực thi không chậm trễ ngay khi có thay đổi dữ liệu trong bảng gốc như một phần của giao tác thực hiện thay đổi đó.

b) Cập nhật bất đồng bộ: là cập nhật được thực hiện vào một thời điểm nào đó sau khi các giao tác sửa đổi dữ liệu trong bảng gốc đã được cố định. Cập nhật bất đồng bộ khai thác thời gian trì hoãn cho phép trong cập nhật dữ liệu được xác định bởi công nghệ xử lý dữ liệu trong các hệ thống thông tin và ý nghĩa của các bài toán giải quyết trong đó.

1.2.2. Các phương pháp cập nhật KNT

Các quá trình cập nhật dữ liệu cho một KNT để đáp ứng với những thay đổi trong dữ liệu cơ bản được gọi là cập nhật KNT. Có 03 phương pháp cập nhật KNT: toàn phần, gia tăng và ép buộc.

a) Cập nhật toàn phần (COMPLETE): là cập nhật làm mới lại bảng dữ liệu KNT. Tương tự việc xóa tất cả dữ liệu đã có và thêm dữ liệu mới. Thực hiện phương pháp này tốn nhiều thời gian.

b) CNGT (FAST hay còn gọi là INCREMENTAL): là cập nhật chỉ sửa đổi nội dung KNT tương ứng với các thay đổi trong các BG.

c) Cập nhật ép buộc (FORCE): là cập nhật xem xét khi có khả năng thì thực hiện CNGT, còn nếu không thì sử dụng cập nhật toàn phần.

1.3. KNT trong PostgreSQL

1.3.1. Tổng quan về PostgreSQL

PostgreSQL là một HQT CSDL mã nguồn mở, được phát triển dựa trên mã nguồn của trường Đại học Berkeley, hỗ trợ đầy đủ các thành phần phổ biến của một HQT CSDL như các truy vấn phức hợp, bẫy sự kiện, khung nhìn, tính toàn vẹn của giao dịch,… và có thể chạy trên mọi hệ điều hành.

PostgreSQL không chỉ là cơ sở dữ liệu quan hệ (CSDLQH), nó là quan hệ hướng đối tượng.

Một đặc điểm cơ bản của CSDLQH hướng đối tượng là hỗ trợ các đối tượng người dùng tự định nghĩa và các hành vi của chúng bao gồm các kiểu dữ liệu, các hàm, các thao tác, các tên miền và các chỉ mục. Điều này làm cho PostgreSQL cực kỳ mạnh và linh hoạt. Các cấu trúc dữ liệu phức tạp có thể được tạo ra, lưu trữ, và truy xuất.

KNT cũng có thể được đánh chỉ mục, không giống các views thông thường được tạo ra mỗi lần chúng được gọi, KNT là các ảnh chụp tại một thời điểm. Chúng không được làm mới (refreshed) ngoại trừ được chỉ định. Điều này có thể tăng đáng kể tốc độ với các truy vấn chạy sử dụng KNT. Khi bạn sẵn sàng cập nhật dữ liệu trong materialized view, nó có thể làm mới sử dụng lệnh REFRESH [15].

1.3.2. Khái niệm về trigger

Trigger là một thủ tục đặc biệt mà việc thực thi của nó tự động khi có sự kiện xảy ra, các sự kiện gọi thủ tục đặc biệt này được định nghĩa trong câu lệnh, thông thường được thực hiện với các sự kiện liên quan đến Insert, Update, Delete dữ liệu. Trigger được sử dụng trong việc bảo đảm toàn vẹn dữ liệu theo quy tắc xác định, được quản lý theo bảng dữ liệu hoặc khung nhìn.

Sử dụng trigger một cách hợp lý trong CSDL sẽ có tác động rất lớn trong việc tăng hiệu năng của CSDL. Các trigger thực sự hữu dụng với những khả năng sau:

Một trigger có thể nhận biết, ngăn chặn và huỷ bỏ được những thao tác làm thay đổi trái phép dữ liệu trong CSDL.

Các thao tác trên dữ liệu (xoá, cập nhật và bổ sung) có thể được trigger phát hiện ra và tự động thực hiện một loạt các thao tác khác trên CSDL nhằm đảm bảo tính hợp lệ của dữ liệu.

Thông qua trigger, ta có thể tạo và kiểm tra được những mối quan hệ phức tạp hơn giữa các bảng trong CSDL mà bản thân các ràng buộc không thể thực hiện được.

Có thể định nghĩa nhiều trigger cho một sự kiện trên một bảng. Lúc đó, chúng sẽ được thực thi theo thứ tự alphabet theo tên của trigger.

Có thể xác định sự kiện insert, update hay delete cũng như thời điểm gọi trigger là trước (before) hay sau (after) từ bên trong trigger, nên ta có thể sinh mã một trigger cho tất cả các sự kiện trên mỗi bảng.

1.3.3. Trigger trong PostgreSQL

PostgreSQL hỗ trợ 2 loại trigger là trigger viết bằng ngôn ngữ PL/pgSQL và trigger viết bằng ngôn ngữ C.

Trigger trên PostgreSQL có thể xử lý một tập các bản ghi, hoặc chỉ xử lý một bản ghi. Chỉ trigger xử lý một bản ghi mới có thể nhìn thấy dữ liệu đang được thao tác. Vì vậy đề tài thực hiện sinh mã nguồn trigger bắt sự kiện thay đổi dữ liệu trên các BG theo cơ chế xử lý từng bản ghi một trong tập các bản ghi được cập nhật.

Một bảng có thể được khai báo nhiều trigger, vì vậy các trigger thực hiện CNGT có thể được cài đặt song song với các trigger khác của người dùng. Quá trình cập nhật KNT bằng trigger được thể hiện như Hình 1.4.

Description: Description: C:\Users\TARS\AppData\Local\Microsoft\Windows\INetCache\Content.Word\Picture1.png

Hình 1.4. Quá trình CNGT KNT bằng trigger

1.3.4. Hàm trigger

Khi một hàm được khai báo trả về kiểu trigger và được nạp vào server, có thể tạo hàm trigger bằng lệnh: CREATE TRIGGER <tên trigger> {BEFORE|AFTER} {INSERT|DELETE|UPDATE} ON <tên bảng> FOR EACH ROW EXECUTE PROCEDURE <tên hàm C>. Trong đó:

Tên trigger do người dùng tùy chọn, tên hàm C trùng với tên hàm nằm ngay sau lệnh CREATE FUNCTION <tên hàm>, không nhất thiết phải trùng hoàn toàn với tên hàm trong tệp thư viện chia sẻ.

1.4. Kết luận chương 1

Chương này trình đã bày tổng quan các kiến thức cơ sở về KNT và HQT CSDL PostgreSQL. Các kiến thức cơ sở về KNT được trình bày bao gồm: khái niệm, phân loại KNT và các phương pháp cập nhật KNT. Các kiến thức về HQT CSDL PostgreSQL được trình bày như trigger, hàm trigger.

Đây là những kiến thức trọng tâm liên quan đến việc xây dựng KNT trên PostgreSQL sẽ được nghiên cứu ở các chương sau.

CHƯƠNG 2

THIẾT KẾ HỆ THỐNG

2.1. Mô tả CSDL hiện tại

2.1.1. Yêu cầu hệ thống

2.1.2. Mô hình ER

Hinh 2.1. Mô hình ER của hệ thống

2.1.3. Mô hình quan hệ

Từ mô hình ER có được ở Hình 2.1, chuyển mô hình này sang mô hình quan hệ ta được mô hình CSDL của hệ thống như Hình 2.2.

Hình 2.2. Mô hình quan hệ

2.1.4. Mô tả chi tiết thiết kế các bảng

Mô tả chi tiết thiết kế của các bảng trong CSDL như Bảng 2.1.

Bảng 2.1. Mô tả chi tiết các bảng trong CSDL quản lý đào tạo

BảngCộtKiểu dữ liệuGhi chú
GIANGVIENMaGVintKhóa chính
HoDemGVnvarchar(30)Họ đệm
TenGVnvarchar(10)Tên giáo viên
HocHamnvarchar(20)Học hàm
HocVinvarchar(20)Học vị
MaKhoaintKhóa ngoài
SINHVIENMaSVnvarchar(12)Khóa chính
HoDemnvarchar(30)Họ đệm
TenSVnvarchar(30)Tên sinh viên
NgaySinhdateNgày sinh
GioiTinhbitGiới tính
MaLopintKhóa ngoài
DaTNbitĐã tốt nghiệp
KHOAMaKhoaintKhóa chính
TenKhoanvarchar(30)Tên khoa
HEDAOTAOMaHeintKhóa chính
TenHenvarchar(30)Tên hệ đào tạo
NGANHMaNgintKhóa chính
TenNgnvarchar(30)Tên ngành học
MaHeintKhóa ngoài
MaKhoaintKhóa ngoài
LOPMaLopintKhóa chính
TenLopnvarchar(30)Tên lớp
MaNgintKhóa ngoài
KyHTintHọc kỳ hiện tại
LOPHOCPHANMaLopHPintKhóa chính
MaGVintKhóa ngoài
MaMHintKhóa ngoài
MaHKintKhóa ngoài
TrangThaibitTrạng thái
MONHOCMaMHintKhóa chính
TenMHnvarchar(30)Tên môn học
SoTCintSố tín chỉ
MHTruocintMôn phải học trước
LaBBbitBắt buộc/tự chọn
CHUONGTRINHKyThuintKỳ học
MaMHintKhóa chính,

Khóa ngoài

MaNgint
HOCMaSVnvarchar(12)Khóa chính,

Khóa ngoài

MaLopHPint
DiemThiintĐiểm thi
DiemTPintĐiểm thành phần
CuoibitLà điểm cuối cùng
NAMHOCMaNHintKhóa chính
TenNHnchar(9)Tên năm học

2.2. Mô tả các chức năng của hệ thống

2.2.1. Sơ đồ chức năng tổng quát

Hệ thống thực tế có nhiều chức năng. Sau đây là sơ đồ chức năng tổng quát đã được lược bỏ các chức năng phụ.

Hình 2.3. Chức năng hệ thống

2.2.2. Mô tả chi tiết các chức năng

Các chức năng thường xuyên trong hệ thống.

a) Tạo học phần:

b) Đăng ký học phần

c) Hủy đăng ký học phần

d) Nhập điểm thành phần

e) Nhập điểm thi

f) Xem điểm

g) Lọc danh sách xét học bổng

h) Lọc danh sách nợ học phần

2.3. Các chức năng sẽ ứng dụng KNT

Các chức năng sẽ ứng dụng KNT là các chức năng mà việc tạo ra dữ liệu sử dụng phải được tính toán nhiều/phức tạp làm tốn nhiều thời gian hoặc bị truy cập đồng thời với số lượng lớn người dùng.

2.3.1. Đăng ký học phần

Gồm 2 quá trình:

+ Quá trình 1: lấy danh sách học phần có thể đăng ký

+ Quá trình 2: đăng ký lớp học phần

+ Vào đợt đăng ký lớp học phần, sinh viên toàn trường tập trung đăng ký/hủy đăng ký làm tạo ra một lượng lớn user truy cập đồng thời.

+ Để có được danh sách lớp học phần mà sinh viên có thể đăng ký, chương trình phải tính nhiều dữ liệu trung gian, đặc biệt là tính các môn học: sinh viên đã học, sinh viên còn nợ hoặc được phép học cải thiện và các môn học được phép học vượt. Các phép tính này dùng nhiều phép nối (▷◁). Trong đó phép tính các môn học sinh viên còn nợ hoặc được phép học cải thiện phải dùng thêm phép thống kê (Max).

2.3.2. Hủy đăng ký học phần

Gồm 2 quá trình

+ Quá trình 1: lấy danh sách học phần có thể hủy đăng ký

+ Quá trình 2: hủy đăng ký lớp học phần

+ Vào đợt đăng ký lớp học phần, sinh viên toàn trường tập trung đăng ký/hủy đăng ký làm tạo ra một lượng lớn user truy cập đồng thời.

+ Sử dụng 02 phép nối (▷◁) trong câu truy vấn xử lý dữ liệu.

2.3.3. Xem điểm

– Mô tả quá trình thao tác dữ liệu của chức năng xem điểm:

+ Để xem được bảng điểm, chương trình phải thực hiện 05 phép nối.

+ Để có được số tín chỉ tích lũy, điểm trung bình tích lũy, chương trình phải thực hiện thêm 02 phép thống kê (Sum).

2.3.4. Lọc danh sách xét học bổng

– Chức năng này chỉ lọc danh sách điểm của những sinh viên đủ tiêu chí xét học bổng học tập trong năm học cụ thể. Từ danh sách này, Khoa, Phòng CT HSSV sẽ xem xét lại, cân đối, chọn lọc để cấp học bổng học tập.

+ Để có được bảng điểm, chương trình phải thực hiện 08 phép nối, lấy dữ liệu từ nhiều bảng SINHVIEN, HOC, LOPHOCPHAN, MONHOC, HOCKY, NAMHOC, LOP, NGANH, KHOA

+ Để có được danh sách xét cấp học bổng cuối cùng, chương trình phải thực hiện thêm 05 phép thống kê (Sum, Min, Average).

2.3.5. Lọc danh sách nợ học phần

– Chức năng này chỉ lọc danh sách điểm của những sinh viên nợ học phần. Từ danh sách này, Khoa, Phòng Đào tạo sẽ xem xét lại, để cố vấn cho sinh viên. Trong những trường hợp điểm tích lũy thấp, số môn nợ nhiều, đã cảnh báo học tập… thì sẽ ra cảnh báo học tập.

+ Để có được bảng điểm, cần thực hiện 06 phép nối.

+ Để có được danh sách cuối cùng, chương trình phải thực hiện thêm 02 phép thống kê (Sum).

2.4. Thiết kế KNT hỗ trợ cho các chức năng đã đề xuất

* Đánh giá:

Có 5 chức năng cần được triển khai ứng dụng KNT:

1. Đăng kí tín chỉ (thống kê danh sách các môn cùng lớp học phần có thể đăng kí của sinh viên)

2. Hủy đăng kí (thống kê danh sách các môn đang được đăng kí để hủy đăng kí)

3. Xem bảng điểm (thống kê, tính toán điểm của từng môn học ứng với lớp học phần và sinh viên qua các lần học)

4. Thống kê sinh viên để xét học bổng

5. Thống kê sinh viên nợ học phần.

* Nhận xét:

– Các truy vấn phục vụ chức năng 1, 3, 4 ,5 đều cần truy vấn vào kết quả học tập của sinh viên (table Hoc) để làm tiền đề, điều kiện lọc ra dữ liệu theo yêu cầu.

– Truy vấn cho chức năng 2 chỉ cần xem danh sách các môn đang được đăng kí ở (table lophocphan) để sinh viên hủy đăng kí.

– Truy vấn cho các chức năng 1 phức tạp do nối nhiều truy vấn khác nữa sau khi có dữ liệu từ truy vấn ở chức năng 3.

* Kết luận:

– Không cần tạo riêng KNT cho các truy vấn phục vụ cho chức năng 4, 5. Có thể dùng chung KNT với chức năng 3.

– Phải tạo riêng KNT cho chức năng 1. KNT này có truy cập đến KNT của chức năng 3. Đồng thời tạo thêm 02 KNT khác cho riêng truy vấn 1 để hỗ trợ việc cập nhật dữ liệu thuận tiện hơn.

2.4.1. KNT hỗ trợ chức năng xem bảng điểm mv3

a) Mục đích: lưu trữ danh sách điểm của sinh viên (thống kê, tính toán điểm của từng môn học ứng với lớp học phần và sinh viên qua các lần học).

b) Cấu trúc bảng: KNT mv3 có cấu trúc bảng như Bảng 2.1.

Bảng 2.1. Cấu trúc bảng KNT mv3

mv3
masvhodemtensvmamhtenmhsotcmalophpdiemdiemtb

c) Chiến lược cập nhật:

Sử dụng CNGT đồng bộ. Các trigger sẽ áp dụng cho các hoạt động trên các table:

– sinhvien: update, delete; lophocphan: update, delete; monhoc: update, delete; hoc: insert, update, delete

2.4.2. KNT hỗ trợ chức năng hủy đăng kí học phần mv2

a) Mục đích: lưu trữ danh sách đăng ký học phần hiện tại (thống kê danh sách các môn đang được đăng kí để hủy đăng kí)

b) Cấu trúc bảng: KNT mv2 có cấu trúc bảng như Bảng 2.2.

Bảng 2.2. Cấu trúc các KNT mv2

mv2
masvhodemtensvmalophpmagvmamhsotcmahktrangthai

c) Chiến lược cập nhật: CNGT đồng bộ

Các trigger sẽ áp dụng cho các hoạt động trên các table:

– sinhvien: update, delete; lophocphan: update, delete; monhoc: update, delete; hoc: insert, update, delete

2.4.3. KNT hỗ trợ chức năng thống kê điểm mv4

KNT để thống kê sinh viên xét cấp học bổng, sinh viên nợ học phần để cảnh báo và các yêu cầu khác. Khi đã xây dựng nên KNT2 và KNT3 ta hoàn toàn có thể truy vấn trên 2 KNT đó để đáp ứng cho các chức năng khác mà không cần phải đi xây dựng lại KNT mới.

– Ta sử dụng mv3 để lấy danh sách học bổng. Dù rằng không phải truy vấn để lấy kết quả trực tiếp trên KNT nhưng việc sử dụng KNT mv3 đã giúp tối ưu tốc độ truy vấn nhờ mv3 đã tính toán bảng điểm của các môn mà sinh viên học (diemtb, diemtb). Chỉ việc join thêm table lophocphan để lấy tìm ra ‘học kì’ muốn lấy học bổng.

2.4.4. KNT hỗ trợ chức năng đăng kí tín chỉ mv1, mv1a, mv1b

a) Mục đích: thống kê danh sách các môn cùng lớp học phần có thể đăng kí của sinh viên

– mv1a: Danh sách lớp học phần đang mở.

– mv1b: Danh sách môn học sinh viên được đăng ký. Danh sách này có được bằng cách gộp 03 danh sách

+ Danh sách môn học trong kỳ hiện tại của sinh viên,

+ Danh sách môn học sinh viên còn nợ/được phép học cải thiện,

+ Danh sách môn học sinh viên được phép học vượt.

– mv1: Danh sách lớp học phần sinh viên được phép đăng ký. Danh sách này có được bằng cách nối 02 danh sách: mv1a và mv1b.

b) Cấu trúc bảng:

KNT mv1a, mv1b, mv1 có cấu trúc bảng như Bảng 2.3.

Bảng 2.3. Cấu trúc các KNT mv1a, mv1b, mv1

mv1amv1b
malophpmamhtenmhmasvmamhtenmh
mv1
malophpmasvmamhtenmh

c) Chiến lược cập nhật mv1a: CNGT đồng bộ

Các trigger cho các hành vi ở bảng gốc:

– lophocphan: insert, delete, update; monhoc: update; hoc: insert, update, delete

d) Chiến lược cập nhật mv1b: CNGT đồng bộ

Các trigger cho các hành vi ở bảng gốc:

– sinhvien: insert, delete, update; lop:update; nganh:update; chuongtrinh:insert, delete, update; mv3: insert, delete, update

e) Chiến lược cập nhật mv1: CNGT đồng bộ

Các trigger cho các hành vi ở bảng gốc:

– mv1a: insert, delete, update

– mv1b: insert, delete, update

Đánh giá: KNT đã lưu lại kết quả tính toán, truy vấn nên tốc độ select đã được tối ưu. Tuy nhiên có vấn đề nảy sinh khi thực hiện update lên bảng gốc là thời gian thực hiện lại quá lâu ~ 20s.

Sở dĩ có kết quả update như vậy là do cơ chế đệ quy của trigger trong HQT CSDL. Khi ta thực hiện chiến lược CNGT. Với mỗi row thay đổi ta phải thực thi 1 số câu truy vấn để xác định được cần phải cập nhật những row nào trong KNT. Và khi tiến hành nhiều KNT chồng chéo lên nhau, mỗi row của bảng gốc lại kích hoạt trigger update một số bảng ghi của một hoặc nhiều KNT, mà mỗi KNT lại mang trigger để cập nhật một hoặc nhiều KNT khác làm cho số lượng câu truy vấn phải thực hiện là rất lớn.

Khi monhoc bị update cũng sẽ sinh trigger cập nhật đến mv3, mv1a và table lophocphan (cơ chế khóa ngoại); lophocphan lại chạy trigger cập nhật mv3; mv3 chạy trigger capnhat mv1b; mv1b chạy trigger capnhat mv1, mv1a sinh trigger cập nhật mv1… Làm cho số lượng câu truy vấn phải thực thi là rất lớn; phụ thuộc vào số lượng sinh viên thuộc khoa, nganh bị ảnh hưởng.

g) Chiến lược cập nhật mv1: cập nhật toàn phần đồng bộ

Cập nhật toàn phần là chiến lược cập nhật hủy hoàn toàn và tái tạo lại KNT. Điểm đặc biệt là nó không quan tâm đến số bản ghi mà mỗi câu lệnh update, insert hay delete tác động; truy vấn để tìm ra phải cập nhật thế nào trong mv như CNGT mà chỉ thực hiện 1 lần. Sau mỗi câu lệnh insert, delete, update.

Việc cài đặt cũng đơn giản là 2 hoạt động:

– delete * from mv1 : để xóa toàn bộ dữ liệu mv1

– và insert into mv1: để chèn dữ liệu của câu truy vấn vào mv1.

Cập nhật toàn phần là phương pháp được sử dụng để hi sinh thời gian update, delete để đảm bảo việc thực hiện select trong mùa đăng kí tín chỉ được diễn ra nhanh chóng; Không phụ thuộc vào lượng dữ liệu, diễn ra với một tốc độ cố định, và không mắc phải vấn đề như ở CNGT khi các KNT cập nhật lẫn nhau.

2.5. Kết luận Chương 2

Chương này đã trình bày phân tích HTTT quản lý đào tạo của Trường Đại học Tài chính – Kế toán, mô tả thiết kế mô hình CSDL gồm mô hình ER và mô hình quan hệ, mô tả chi tiết các chức năng dưới dạng biểu đồ tuần tự, xác định được 05 chức năng có truy vấn dữ liệu phức tạp kèm theo các phân tích, đánh giá câu lệnh SQL truy vấn được sử dụng cho chức năng và thiết kế 05 KNT nhằm hỗ trợ hệ thống xử lý.

Sử dụng chiến lược CNGT đồng bộ bằng cách sử dụng các triger, chiến lược cập nhật toàn phần đồng bộ cho thấy hiệu quả khi viết lại truy vấn để sử dụng KNT – tăng tốc độ thực thi của truy vấn lên nhiều lần, đặc biệt là các truy vấn phức tạp sử dụng lượng dữ liệu lớn.

CHƯƠNG 3

CÀI ĐẶT, THỬ NGHIỆM VÀ ĐÁNH GIÁ

3.1. Cài đặt KNT

3.1.1. KNT hỗ trợ chức năng xem bảng điểm mv3

a) Mục đích:

– Lập danh sách điểm học phần của sinh viên,

– Thống kê số tín chỉ tích lũy, điểm trung bình tích lũy.

b) Tạo bảng thể hiện KNT:

c) Khởi tạo dữ liệu:

d) Tạo các hàm và trigger:

3.1.2. KNT hỗ trợ chức năng hủy đăng kí học phần mv2

a) Mục đích:

– Lập danh sách các lớp học phần có thể hủy đăng ký.

b) Tạo bảng thể hiện KNT:

c) Khởi tạo dữ liệu:

d) Tạo các hàm và trigger:

3.1.3. KNT thống kê các lớp học phần được mở trong kì hiện tại mv1a

a) Mục đích:

– Các lớp học phần được mở trong kì hiện tại.

b) Tạo bảng thể hiện KNT:

c) Khởi tạo dữ liệu:

d) Tạo các hàm và trigger:

3.1.4. KNT thống kê danh sách môn học sinh viên được đăng ký mv1b

a) Mục đích:

– Lập danh sách môn học sinh viên được đăng ký.

b) Tạo bảng thể hiện KNT:

c) Khởi tạo dữ liệu:

d) Tạo các hàm và trigger:

3.1.5. KNT danh sách lớp học phần sinh viên được phép đăng ký mv1

a) Mục đích:

– Lập danh sách lớp học phần sinh viên được phép đăng ký.

b) Tạo bảng thể hiện KNT:

c) Khởi tạo dữ liệu:

d) Tạo các hàm và trigger:

* Theo chiến lược gia tăng đồng bộ:

* Theo chiến lược toàn phần đồng bộ:

3.2. Thử nghiệm và kết quả

3.2.1. Cấu hình hệ thống, số lượng dữ liệu test

a) Cấu hình hệ thống:

Môi trường chạy thử nghiệm là hệ điều hành Windows 10 64 bit, Intel core i5 2.5GHz, RAM 4G DDR3, HDD 1TB SATA3 7200 vòng/phút.

b) Số lượng dữ liệu trong CSDL test: Số lượng dữ liệu đã thực hiện trên hệ thống thử nghiệm được thống kê như Bảng 3.1.

Bảng 3.1. Số lượng dữ liệu test

STTTên bảngSố lượng
dòng dữ liệu
STTTên bảngSố lượng
dòng dữ liệu
1sinhvien1,0007lop200
2monhoc4008nganh50
3lophocphan20009khoa10
4hoc100,00010namhoc4
5chuongtrinh40211hocky8
6giangvien10012hedaotao3

3.2.2. Kết quả truy vấn chọn dữ liệu

a) Thời gian truy vấn danh sách học phần được đăng ký:

Kết quả thời gian truy vấn học phần được đăng ký như Hình 3.1 và Hình 3.2.

b) Thời gian truy vấn danh sách học phần được phép hủy:

Kết quả thời gian truy vấn học phần được hủy như Hình 3.3 và Hình 3.4.

c) Thời gian truy vấn danh sách điểm sinh viên:

Kết quả thời gian truy vấn điểm sinh viên như Hình 3.5 và Hình 3.6.

d) Thời gian truy vấn danh sách danh sách xét học bổng:

Kết quả thời gian truy vấn danh sách xét học bổng như Hình 3.7 và Hình 3.8.

e) Thời gian truy vấn danh sách nợ học phần:

Kết quả thời gian truy vấn danh sách nợ học phần như Hình 3.9 và Hình 3.10.

3.2.3. Kết quả truy vấn cập nhật dữ liệu

3.3. So sánh, đánh giá

3.3.1. So sánh, đánh giá các truy vấn chọn dữ liệu

Kết quả thống kê thời gian của các truy vấn chọn dữ liệu ở Mục 3.2 như Bảng 3.2.

Bảng 3.2. So sánh kết quả truy vấn chọn (select) dữ liệu

STTMục đích truy vấnThời gian thực hiệnKết quả so sánh T1/T2Hiệu quả
Theo truy vấn gốc (T1, ms)Theo truy vấn trên KNT (T2, ms)
1Danh sách học phần đang mở mà sinh viên có thể đăng ký7811784.39
2Danh sách học phần sinh viên có thể hủy đăng ký6601265.24
3Xem thống kê điểm của sinh viên367415923.11
4Lọc danh sách sinh viên xem xét cấp học bổng403626.5
5Danh sách nợ học phần486716.85

Qua bảng thống kê so sánh kết quả, ta thấy khi áp dụng KNT thì thời gian thực hiện để cho ra kết quả các truy vấn chọn (select) cho các chức năng có truy vấn phức tạp của hệ thống thông tin quản lý đào tạo rút ngắn đáng kể so với không dùng KNT.

3.3.2. So sánh, đánh giá các truy vấn cập nhật dữ liệu

Kết quả thống kê thời gian của các truy vấn cập nhật dữ liệu ở Mục 3.2 như Bảng 3.2.

Bảng 3.2. So sánh kết quả truy vấn cập nhật dữ liệu

STTCác KNT được áp dụngThời gian thực hiện truy vấn
InsertDeleteUpdate
1Không áp dụng KNT314166
2mv34045102
3mv3 + mv279121150
4mv3 +mv2 + mv1a + mv1b + mv1 (CNGT)78224120,139
5mv3 +mv2 + mv1a + mv1b + mv1 (cập nhật toàn phần)1,5041,5341,598

Đánh giá: Qua bảng thống kê so sánh kết quả, ta thấy:

– Khi áp dụng KNT thì thời gian thực hiện các truy vấn cập nhật dữ liệu trên bảng hoc tăng lên so với không dùng KNT; trong đó thời gian thực hiện CNGT cao hơn nhiều so với thời gian thực hiện cập nhật toàn phần. Tuy nhiên, để đảm bảo việc thực hiện select trong mùa đăng kí tín chỉ được diễn ra nhanh chóng ta dùng phương pháp cập nhật toàn phần, phương pháp này được sử dụng ta phải hi sinh thời gian update, delete để không phụ thuộc vào lượng dữ liệu, diễn ra với một tốc độ cố định, và không mắc phải vấn đề như ở CNGT khi các KNT cập nhật lẫn nhau.

3.4. Kết luận Chương 3

Trong chương này, luận văn đã trình bày các kết quả cài đặt KNT cho 05 chức năng đã được thiết kế KNT ở Chương 2. Sau đó, luận văn cũng đã trình bày kết quả thời gian thực hiện truy vấn trước và sau khi áp dụng KNT trên các câu truy vấn. Đồng thời, kết quả này cũng chứng minh cho sự hiệu quả thật sự của việc áp dụng KNT với các chiến lược CNGT đồng bộ, CNGT toàn phần đồng bộ. Và đánh giá kết quả đạt được.

KẾT LUẬN

Luận văn đã đạt được một số kết quả như sau:

1) Nghiên cứu tổng quan về KNT, các cơ chế, phương pháp cập nhật KNT và KNT trong HQT CSDL PostgreSQL.

2) Phân tích yêu cầu hệ thống thông tin quản lý đào tạo của Trường Đại học Tài chính – Kế toán, mô tả thiết kế mô hình CSDL gồm mô hình ER và mô hình quan hệ, mô tả mô tả chi tiết các chức năng dưới dạng biểu đồ tuần tự, xác định được 05 chức năng có truy vấn dữ liệu phức tạp kèm theo các phân tích, đánh giá câu lệnh SQL truy vấn được sử dụng cho chức năng và thiết kế 05 KNT nhằm hỗ trợ hệ thống xử lý tốt hơn cho 05 chức năng đưa ra.

3) Đã cài đặt thành công 05 KNT trên HQT CSDL PostgreSQL và chạy thử nghiệm một số câu truy vấn trên máy tính cá nhân.

Quá trình thử nghiệm cho thấy KNT giúp hệ thống tối ưu thời gian truy vấn chọn dữ liệu, đặc biệt là trong các truy vấn chọn có các phép nối phức tạp. KNT lại làm tăng thời gian truy vấn của các truy vấn cập nhật dữ liệu. Tuy nhiên để đảm bảo việc thực hiện select trong mùa đăng kí tín chỉ được diễn ra nhanh chóng ta dùng phương pháp cập nhật toàn phần, phương pháp này được sử dụng ta phải hi sinh thời gian update, delete để không phụ thuộc vào lượng dữ liệu, diễn ra với một tốc độ cố định, và không mắc phải vấn đề như ở CNGT khi các KNT cập nhật lẫn nhau, tăng tốc độ thực thi của truy vấn lên nhiều lần, đặc biệt là các truy vấn phức tạp sử dụng lượng dữ liệu lớn, đáp ứng được tính tức thời đối với kết quả thực thi truy vấn trong HTTT.

Kết quả này phần nào chứng minh cho tính đúng đắn của việc lựa chọn và áp dụng KNT vào hệ thống.

LIỆN HỆ:

SĐT+ZALO: 0935568275

E:\DỮ LIỆU COP CỦA CHỊ YẾN\DAI HOC DA NANG\HE THONG THONG TIN\LE THI THANH CHAU

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *