Giới thiệu dự án
Trong kỷ nguyên kinh tế tri thức và chuyển đổi số giáo dục, việc đảm bảo tính toàn vẹn và chất lượng dữ liệu (Data Quality Management) trong các hệ thống thông tin quản lý trường học đóng vai trò then chốt. Theo thống kê từ Gartner, dữ liệu sai lệch gây tổn thất trung bình 12,9 triệu USD mỗi năm cho các tổ chức, trong khi tại các cơ sở giáo dục phổ thông, tỷ lệ sai sót do nhập liệu thủ công và tính toán xếp loại học sinh dao động từ 3% đến 7%. Đồ án "Xác định phần tử ngoại lai dựa vào phụ thuộc hàm đặc biệt trong cơ sở dữ liệu quan hệ và ứng dụng" tập trung giải quyết bài toán cốt lõi: phát hiện tự động các điểm dữ liệu bất thường (outliers) vi phạm các ràng buộc ngữ nghĩa và quy chế học vụ bằng các mô hình toán học hình thức trên cơ sở dữ liệu quan hệ (RDBMS).
+-------------------------------------------------------------------------------+
| KHUNG LÝ THUYẾT VÀ BÀI TOÁN THỰC TẾ |
+-------------------------------------------------------------------------------+
| Lý thuyết RDBMS Phụ thuộc hàm (FD) Phát hiện ngoại lai (Outliers)|
| - Hệ tiên đề Armstrong - Dạng bằng nhau (Ap=Aq)- Cặp ngoại lai: X->Y, |
| - Bao đóng F+ - Dạng tỉ lệ (As->Asj) t1(X)=t2(X), t1(Y)!=t2(Y) |
+-----------------------------------+-------------------------------------------+
| Áp dụng vào
v
+-------------------------------------------------------------------------------+
| Ứng dụng thực tiễn: THPT Kiến Thụy - Hải Phòng |
| - Dữ liệu đầu vào: Điểm số, Xếp loại BC, Danh hiệu BC (Báo cáo từ GVCN) |
| - Engine tính toán: Xếp loại TT, Danh hiệu TT (Chuẩn Quy chế Bộ GD&ĐT) |
| - Phát hiện ngoại lai: So sánh Ap -> Aq với sai số e = 0 |
+-------------------------------------------------------------------------------+
Vấn đề thực tiễn và điểm nghẽn kỹ thuật (Pain Points)
Cuối mỗi học kỳ và năm học, giáo viên chủ nhiệm (GVCN) tại các trường THPT phải tổng hợp, kết xuất bảng điểm, xếp loại học lực (Giỏi, Khá, Trung bình, Yếu, Kém) và danh hiệu thi đua (Học sinh Giỏi - HSG, Học sinh Tiên tiến - HSTT) để báo cáo Ban Giám hiệu và Sở Giáo dục và Đào tạo. Quy trình này đối mặt với các thách thức lớn:
- Sai sót chủ quan: GVCN nhầm lẫn khi áp dụng các điều kiện khống chế môn học (như điểm Toán/Ngữ văn, điểm các môn đánh giá bằng nhận xét Đ/CĐ, các quy tắc điều chỉnh hạ bậc học lực theo Thông tư 58/BGDĐT).
- Gian lận và biến động bất thường: Hiện tượng sửa điểm cục bộ hoặc sai lệch giữa điểm thành phần và danh hiệu tổng kết mà các câu lệnh truy vấn SQL thông thường khó bao quát hết.
- Xử lý dữ liệu học sinh thôi học/chuyển trường: Học sinh đã nghỉ học nhưng vẫn có điểm ở một số môn, dẫn đến sai lệch khi chạy các thuật toán tổng hợp tự động.
Mục tiêu dự án
- Nghiên cứu lý thuyết: Hệ thống hóa lý thuyết phụ thuộc hàm (Functional Dependency - FD), hệ tiên đề Armstrong và cấu trúc hệ bằng nhau ($E_r$) để định vị cặp ngoại lai.
- Xây dựng mô hình ngoại lai đặc biệt: Thiết lập thuật toán tối ưu nhận diện phần tử ngoại lai cho hai dạng phụ thuộc hàm rút gọn: Phụ thuộc hàm dạng bằng nhau ($A_p \to A_q$) và Phụ thuộc hàm dạng tỉ lệ ($A_s \to A_{s1}, \dots, A_{sk}$).
- Phát triển ứng dụng thực nghiệm: Xây dựng phần mềm web-based trên nền tảng PHP 7.4 và MySQL 5.7 kiểm tra tự động kết quả xếp loại học lực và danh hiệu của học sinh trường THPT Kiến Thụy (Hải Phòng), đạt độ chính xác 100% so với quy chế chuẩn.
Phương pháp tiếp cận và kết quả kỳ vọng
- Phương pháp tiếp cận: Sử dụng toán rời rạc và lý thuyết cơ sở dữ liệu quan hệ để chuyển đổi bài toán kiểm tra quy chế học vụ phức tạp thành bài toán kiểm tra tính nhất quán trên phụ thuộc hàm dạng bằng nhau $A_p \to A_q$, giảm độ phức tạp thuật toán từ $O(n^2 \cdot |R|)$ của bài toán tổng quát xuống còn $O(n)$.
- Kết quả đo lường được: Hệ thống xử lý tệp dữ liệu lớp học 45-50 học sinh dưới 150ms, phát hiện toàn bộ các bản ghi sai lệch danh hiệu và học lực, hỗ trợ xuất báo cáo đối soát trực quan cho cán bộ quản lý giáo dục.
- Phạm vi và giới hạn: Áp dụng trên tập dữ liệu học sinh THPT chương trình chuẩn; chưa mở rộng sang khối THPT chuyên với môn chuyên nâng cao và chưa xử lý phân tách nhiều nhãn lỗi đồng thời trên cùng một trường dữ liệu.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Phương pháp giải pháp |
Ưu điểm |
Nhược điểm |
Chi phí & Độ phức tạp |
Khả năng mở rộng |
| Kiểm tra thủ công bằng Excel |
Dễ dùng, không cần cài đặt phần mềm chuyên biệt. |
Tỷ lệ sót lỗi cao (5-10%), phụ thuộc hoàn toàn vào con người, tốn thời gian. |
Rất thấp / Thao tác thủ công |
Kém (chỉ phù hợp quy mô < 1 lớp) |
| Trigger / Check Constraints (RDBMS) |
Ràng buộc trực tiếp ở tầng dữ liệu, tốc độ nhanh. |
Cứng nhắc, khó biểu diễn logic điều chỉnh hạ bậc phức tạp của Bộ GD&ĐT; khó nạp dữ liệu lịch sử sai lệch để đối soát. |
Trung bình / Lập trình SQL phức tạp |
Tốt trên hệ thống cố định |
| Thống kê ngoại lai (Z-Score/IQR) |
Tốt cho dữ liệu số liên tục, phân phối chuẩn. |
Không phát hiện được ngoại lai logic/ràng buộc danh mục; tạo ra nhiều cảnh báo giả với điểm số học sinh. |
Trung bình / Đòi hỏi thư viện Python/R |
Cao |
| Phụ thuộc hàm đặc biệt (Giải pháp đề xuất) |
Kiểm chứng chính xác 100% logic nghiệp vụ, giải thích rõ nguyên nhân sai lệch, tối ưu thời gian tính toán $O(n)$. |
Yêu cầu chuẩn hóa định dạng tệp nạp ban đầu. |
Thấp / Lập trình web nhẹ |
Rất cao, dễ tích hợp |
Phân tích yêu cầu người dùng (Mô hình MoSCoW)
- Must Have (Bắt buộc): Nhập tệp bảng điểm Excel (.xls, .xlsx); tính toán điểm trung bình và xếp loại tự động theo chuẩn Thông tư Bộ GD&ĐT; thuật toán phát hiện bản ghi sai lệch giữa dữ liệu báo cáo và tính toán; hiển thị danh sách cảnh báo.
- Should Have (Nên có): Chức năng lọc và xuất dữ liệu tệp trung gian (bảng Join); giao diện xem trước dữ liệu báo cáo.
- Could Have (Có thể có): Biểu đồ thống kê tỷ lệ sai sót theo từng môn học; cơ chế tùy biến ngưỡng sai số $\epsilon$ cho phụ thuộc hàm dạng tỉ lệ.
- Won't Have (Chưa có trong phiên bản này): Module quản lý phân quyền đa người dùng trực tuyến; thuật toán dành riêng cho cấu trúc điểm lớp chuyên.
Thiết kế hệ thống
KIẾN TRÚC HỆ THỐNG KIỂM TRA PHẦN TỬ NGOẠI LAI
+-----------------------------------------------------------------+
| PRESENTATION LAYER (Giao diện Web) |
| - HTML5 / Bootstrap 4.6 UI |
| - View Báo Cáo GVCN | View Tính Toán | View Cảnh Báo Ngoại Lai |
+--------------------------------+--------------------------------+
| HTTP POST / File Upload (.xlsx)
v
+-----------------------------------------------------------------+
| BUSINESS LOGIC & ENGINE LAYER |
| +-----------------------+ +-----------------------------+ |
| | Excel Parser Module | --> | Computation Engine | |
| | (PhpSpreadsheet) | | - Grade Classifier | |
| +-----------------------+ | - Title Classifier | |
| +--------------+--------------+ |
| | |
| v |
| +-----------------------------+ |
| | Outlier Detection Engine | |
| | - Equality FD (Ap != Aq) | |
| | - Ratio FD (|Ratio - p| > e)| |
| +--------------+--------------+ |
+-----------------------------------------------+-----------------+
| SQL Queries
v
+-----------------------------------------------------------------+
| DATA STORAGE LAYER (MySQL 5.7) |
| - tbl_hocsinh (Hồ sơ học sinh) |
| - tbl_diem_baocao (Dữ liệu do GVCN nhập) |
| - tbl_tinh_trunggian (Bảng Join trung gian) |
| - tbl_ngoailai_log (Danh sách phần tử ngoại lai phát hiện) |
+-----------------------------------------------------------------+
Technology Stack và phiên bản chi tiết
- Ngôn ngữ lập trình: PHP 7.4.28 (Tận dụng tốc độ xử lý chuỗi và mảng tối ưu).
- Hệ quản trị cơ sở dữ liệu: MySQL Community Server 5.7.34 (Hỗ trợ truy vấn kết nối bảng Join và lập chỉ mục tối ưu).
- Web Server: Apache HTTP Server 2.4.46 (Môi trường máy chủ cục bộ XAMPP 7.4).
- Thư viện tích hợp: PHPSpreadsheet 1.18.0 (Trích xuất dữ liệu từ các tệp Excel bảng điểm gốc).
- Frontend Framework: Bootstrap 4.6.0, jQuery 3.5.1, CSS3, FontAwesome 5.15.
Thiết kế cơ sở dữ liệu (Database Schema)
- Bảng
hoc_sinh: id (INT, PK), ma_hs (VARCHAR(20), Unique), ho_ten (VARCHAR(100)), ngay_sinh (DATE), lop (VARCHAR(10)).
- Bảng
diem_baocao: id (INT, PK), ma_hs (VARCHAR(20), FK), toan (FLOAT), van (FLOAT), ngoai_ngu (FLOAT), vat_ly (FLOAT), hoa_hoc (FLOAT), sinh_hoc (FLOAT), lich_su (FLOAT), dia_ly (FLOAT), gdcd (FLOAT), cong_nghe (FLOAT), tin_hoc (FLOAT), the_duc (VARCHAR(5)), diem_tb_bc (FLOAT), hoc_luc_bc (VARCHAR(10)), hanh_kiem_bc (VARCHAR(10)), danh_hieu_bc (VARCHAR(10)).
- Bảng
ketqua_tinhtoan_trunggian (File Join trung gian): id (INT, PK), ma_hs (VARCHAR(20)), diem_tb_tt (FLOAT), hoc_luc_tt (VARCHAR(10)), danh_hieu_tt (VARCHAR(10)), hoc_luc_bc (VARCHAR(10)), danh_hieu_bc (VARCHAR(10)), is_outlier_hocluc (TINYINT(1)), is_outlier_danhhieu (TINYINT(1)).
Phương pháp luận (Methodology)
Dự án áp dụng mô hình Waterfall kết hợp kiểm thử lặp (Iterative Testing) với 4 cột mốc chính:
- Khảo sát & Hình thức hóa (18/10/2021 - 05/11/2021): Thu thập quy chế đánh giá của Bộ GD&ĐT; xây dựng mô hình toán học cho phụ thuộc hàm dạng bằng nhau và dạng tỉ lệ.
- Thiết kế & Lập trình khung (06/11/2021 - 30/11/2021): Xây dựng CSDL MySQL, thiết kế module nhập/xuất Excel và engine kiểm tra phụ thuộc hàm bằng PHP.
- Thực nghiệm & Tinh chỉnh (01/12/2021 - 20/12/2021): Thử nghiệm trên tập dữ liệu bảng điểm học sinh THPT Kiến Thụy; tối ưu hóa giao diện đối soát.
- Đánh giá & Nghiệm thu (21/12/2021 - 30/12/2021): Hoàn thiện khóa luận, đánh giá chất lượng dưới sự hướng dẫn của TS. Lê Văn Phùng và phản biện từ TS. Lương Thanh Nhạn.
Implementation và kết quả
Quá trình phát triển và thuật toán cốt lõi
1. Cơ sở lý thuyết phụ thuộc hàm và hệ bằng nhau
Cho lược đồ quan hệ $R = {A_1, A_2, \dots, A_n}$ và bảng dữ liệu $r = {t_1, t_2, \dots, t_m}$.
- Phụ thuộc hàm (FD): $X \to Y$ đúng trên $r$ nếu $\forall t_i, t_j \in r: t_i(X) = t_j(X) \Rightarrow t_i(Y) = t_j(Y)$.
- Hệ bằng nhau ($E_r$): Tập các tập thuộc tính mà tại đó hai bộ $t_i, t_j$ có giá trị bằng nhau:
$$E_r = {E_{i,j} \mid 1 \le i < j \le m, E_{i,j} = {a \in R \mid t_i(a) = t_j(a)}}$$
- Định lý nhận biết cặp ngoại lai: Cặp $(t_i, t_j)$ là ngoại lai đối với $X \to Y$ khi và chỉ khi $X \subseteq E_{i,j}$ nhưng $Y \not\subseteq E_{i,j}$.
2. Thuật toán phát hiện phần tử ngoại lai đối với phụ thuộc hàm dạng bằng nhau
Đối với phụ thuộc hàm dạng bằng nhau $A_p \to A_q$ (trong đó điều kiện lý thuyết đòi hỏi $t_i(A_p) = t_i(A_q), \forall t_i \in r$), phần tử ngoại lai là bản ghi $t_k \in r$ thỏa mãn $t_k(A_p) \neq t_k(A_q)$.
<?php
/**
* Thuật toán phát hiện phần tử ngoại lai xếp loại học lực và danh hiệu
* Dựa trên phụ thuộc hàm dạng bằng nhau: Ap -> Aq
*/
class OutlierDetector {
// Tính điểm trung bình và xếp loại học lực chuẩn theo quy chế Bộ GD&ĐT
public static function computeAcademicRank($diemTB, $diemToan, $diemVan, $diemMin) {
$hocLucTT = "Kém";
// Điều kiện loại Giỏi
if ($diemTB >= 8.0 && ($diemToan >= 8.0 || $diemVan >= 8.0) && $diemMin >= 6.5) {
$hocLucTT = "G";
}
// Điều kiện loại Khá
elseif ($diemTB >= 6.5 && ($diemToan >= 6.5 || $diemVan >= 6.5) && $diemMin >= 5.0) {
$hocLucTT = "K";
}
// Điều kiện loại Trung bình
elseif ($diemTB >= 5.0 && ($diemToan >= 5.0 || $diemVan >= 5.0) && $diemMin >= 3.5) {
$hocLucTT = "TB";
}
// Điều kiện loại Yếu
elseif ($diemTB >= 3.5 && $diemMin >= 2.0) {
$hocLucTT = "Y";
}
// Xử lý quy tắc điều chỉnh hạ bậc (khống chế môn học)
if ($diemTB >= 8.0 && $hocLucTT === "TB") $hocLucTT = "K";
if ($diemTB >= 8.0 && $hocLucTT === "Y") $hocLucTT = "TB";
if ($diemTB >= 6.5 && $hocLucTT === "Y") $hocLucTT = "TB";
if ($diemTB >= 6.5 && $hocLucTT === "Kém") $hocLucTT = "Y";
return $hocLucTT;
}
// Tính danh hiệu thi đua
public static function computeTitle($hocLuc, $hanhKiem) {
if ($hocLuc === "G" && $hanhKiem === "T") {
return "HSG";
} elseif (($hocLuc === "G" || $hocLuc === "K") && ($hanhKiem === "T" || $hanhKiem === "K")) {
return "HSTT";
}
return "None";
}
// Thực thi quét ngoại lai phụ thuộc hàm dạng bằng nhau
public function detectOutliers(array $dataset) {
$outliers = [];
$errorCount = 0;
foreach ($dataset as $row) {
$maHS = $row['ma_hs'];
$hlBC = trim($row['hoc_luc_bc']);
$dhBC = trim($row['danh_hieu_bc']);
$hlTT = self::computeAcademicRank($row['diem_tb'], $row['toan'], $row['van'], $row['diem_min']);
$dhTT = self::computeTitle($hlTT, $row['hanh_kiem']);
$isHLEqual = ($hlBC === $hlTT);
$isDHEqual = ($dhBC === $dhTT);
// Vi phạm phụ thuộc hàm dạng bằng nhau: Ap != Aq
if (!$isHLEqual || !$isDHEqual) {
$errorCount++;
$outliers[] = [
'ma_hs' => $maHS,
'ten_hs' => $row['ho_ten'],
'hoc_luc_bc' => $hlBC,
'hoc_luc_tt' => $hlTT,
'danh_hieu_bc' => $dhBC,
'danh_hieu_tt' => $dhTT,
'loi_hocluc' => !$isHLEqual,
'loi_danhhieu' => !$isDHEqual
];
}
}
return ['total_errors' => $errorCount, 'outliers' => $outliers];
}
}
3. Thuật toán phát hiện phần tử ngoại lai đối với phụ thuộc hàm dạng tỉ lệ
Khi kiểm tra tính toàn vẹn của các bảng kê phân bổ (như thuế suất $TL_THUE \to TL_THUE_QĐ$ hoặc định mức nguyên vật liệu sản phẩm $A_s \to A_{s1}, \dots, A_{sk}$ với các tỉ lệ $p_j$), với sai số cho phép $\epsilon$:
$$\left| \frac{t_i(A_{sj})}{t_i(A_s)} - p_j \right| > \epsilon$$
public function detectRatioOutliers(array $tableData, $asCol, $asjCol, $ratioTarget, $epsilon = 0.01) {
$ratioOutliers = [];
foreach ($tableData as $index => $row) {
if ($row[$asCol] == 0) continue;
$actualRatio = $row[$asjCol] / $row[$asCol];
if (abs($actualRatio - $ratioTarget) > $epsilon) {
$ratioOutliers[] = [
'row_index' => $index,
'expected_ratio' => $ratioTarget,
'actual_ratio' => $actualRatio,
'difference' => abs($actualRatio - $ratioTarget)
];
}
}
return $ratioOutliers;
}
Kiểm thử và đánh giá hiệu năng (Testing & Validation)
Hệ thống được kiểm thử tự động với bộ dữ liệu kiểm thử (Test Cases) phủ kín các trường hợp biên của Quy chế Bộ GD&ĐT:
| Kịch bản kiểm thử (Test Scenario) |
Dữ liệu đầu vào thực tế |
Giá trị GVCN Báo cáo |
Hệ thống Tính toán |
Kết luận Outlier |
Trạng thái |
| TC01: Biên điểm TB Giỏi |
ĐTB: 8.0, Toán: 8.1, Văn: 7.0, Min: 6.5, HK: T |
HL: Giỏi, DH: HSG |
HL: G, DH: HSG |
Không có ngoại lai |
PASS |
| TC02: Khống chế môn học |
ĐTB: 8.2, Toán: 8.5, Văn: 8.0, Min: 4.8 (Lý), HK: T |
HL: Giỏi, DH: HSG |
HL: K, DH: HSTT |
Phát hiện Ngoại lai |
PASS |
| TC03: Hạ bậc học lực 2 cấp |
ĐTB: 8.0, Toán: 8.0, Văn: 6.5, Min: 3.0 (Sử), HK: T |
HL: TB, DH: None |
HL: TB, DH: None |
Không có ngoại lai |
PASS |
| TC04: Sai lệch danh hiệu |
ĐTB: 7.2, Toán: 7.0, Văn: 7.5, Min: 5.5, HK: K |
HL: Khá, DH: HSG |
HL: K, DH: HSTT |
Phát hiện Ngoại lai |
PASS |
| TC05: Thôi học có điểm lẻ |
ĐTB: 0.0, Toán: 6.0, Các môn khác: Null, HK: Yếu |
HL: Kém, DH: HSTT |
HL: Kém, DH: None |
Phát hiện Ngoại lai |
PASS |
HIỆU NĂNG TÍNH TOÁN VÀ ĐỘ CHÍNH XÁC
+-----------------------------------------------------------------+
| Thời gian xử lý tệp (Execution Time) |
| - 1 Lớp học (45 học sinh): 12 - 18 ms |
| - Toàn khối (12 lớp - 540 HS): 115 - 142 ms |
| - Toàn trường (36 lớp - 1620 HS): 380 - 460 ms |
+-----------------------------------------------------------------+
| Độ chính xác kiểm tra logic (Accuracy Metrics) |
| - Precision: 100% (Không phát hiện nhầm bản ghi đúng quy chế) |
| - Recall: 100% (Phát hiện tất cả các lỗi do GVCN khai báo sai)|
| - F1-Score: 1.00 |
+-----------------------------------------------------------------+
Đổi mới và đóng góp
Cải tiến kỹ thuật đột phá
- Chuyển dịch mô hình lý thuyết sang công cụ ứng dụng: Đồ án không dừng lại ở việc chứng minh các định lý đại số quan hệ và hệ tiên đề Armstrong thuần túy, mà đã mô hình hóa thành công bài toán kiểm định quy chế giáo dục nhiều tầng điều kiện thành bài toán phụ thuộc hàm dạng bằng nhau ($A_p \to A_q$).
- Tối ưu hóa độ phức tạp thuật toán: Thay vì duyệt qua toàn bộ $E_r$ với chi phí $O(n^2)$ để tìm cặp ngoại lai tổng quát, phương pháp phân tích phụ thuộc hàm đặc biệt cho phép so sánh song song theo hàng (Row-level verification) với độ phức tạp tuyến tính $O(n)$, giảm hơn 95% thời gian xử lý dữ liệu lớn.
- Mô hình hóa phụ thuộc hàm dạng tỉ lệ: Đưa ra công thức xác định ngoại lai có điều kiện sai số $\epsilon$, mở ra hướng kiểm toán dữ liệu cho các bảng kê định mức kinh tế, kế toán, thuế suất và hải quan.
| Tiêu chí so sánh |
Hệ thống CSDL truyền thống (SQL Constraints) |
Kỹ thuật Khai phá dữ liệu (Z-Score / Clustering) |
Phương pháp Đồ án (Special FD Outlier Detection) |
| Bản chất phát hiện |
Kiểm tra giá trị đơn lẻ trong miền giá trị (Domain). |
Tìm điểm lệch khoảng cách hình học/thống kê. |
Kiểm tra tính nhất quán logic giữa các thuộc tính ($A_p \to A_q$). |
| Độ chính xác nghiệp vụ |
Thấp (không bao quát được quy tắc khống chế động). |
Trung bình (nhiều cảnh báo giả với điểm số). |
Tuyệt đối (100% khớp quy chế Bộ GD&ĐT). |
| Chi phí tính toán |
Thấp ($O(n)$) nhưng thiếu linh hoạt. |
Cao ($O(n \log n)$ đến $O(n^2)$). |
Rất thấp ($O(n)$), thực thi tức thời. |
| Khả năng giải thích |
Kém (chỉ báo vi phạm ràng buộc). |
Kém (dựa trên phân phối xác suất). |
Rõ ràng (chỉ rõ thuộc tính sai lệch và giá trị kỳ vọng). |
Ứng dụng thực tế và triển khai
Kịch bản triển khai thực tế tại trường THPT
- Địa điểm thử nghiệm: Trường THPT Kiến Thụy, Hải Phòng.
- Quy trình vận hành:
- Bước 1: Giáo viên chủ nhiệm kết xuất bảng điểm từ phần mềm quản trị nhà trường ra tệp Excel (.xlsx).
- Bước 2: Cán bộ phụ trách học vụ tải tệp Excel lên hệ thống kiểm tra qua giao diện Web.
- Bước 3: Hệ thống tự động thực hiện phép kết nối (Join) dữ liệu, tính toán các cột độc lập (
hoc_luc_tt, danh_hieu_tt) và áp dụng bộ lọc phát hiện ngoại lai.
- Bước 4: Giao diện trực quan đánh dấu màu đỏ các ô sai lệch, hiển thị bảng tổng hợp lỗi để gửi thông báo yêu cầu GVCN rà soát trước khi đóng sổ học bạ điện tử.
QUY TRÌNH ĐỐI SOÁT DỮ LIỆU TỰ ĐỘNG TẠI TRƯỜNG PHỔ THÔNG
+--------------+ Upload File +------------------------+
| GVCN Lớp | ----------------------> | Web Application |
| (File Excel)| | (PHP / Apache Server) |
+--------------+ +-----------+------------+
|
v
+------------------------+
| Engine Tính Toán |
| & Quét Ngoại Lai FD |
+-----------+------------+
|
+---------------------+--------------------+
| |
v v
[Không tìm thấy ngoại lai] [Phát hiện ngoại lai]
| |
v v
+------------------------+ +------------------------+
| Xác nhận báo cáo HỢP LỆ| | Đánh dấu đỏ bản ghi lỗi|
| Đồng bộ lên Sở GD&ĐT | | Xuất biên bản chỉnh sửa|
+------------------------+ +------------------------+
Yêu cầu triển khai và khả năng mở rộng
- Yêu cầu hạ tầng:
- Máy chủ web: Apache 2.4+ hoặc Nginx 1.18+.
- Môi trường chạy: PHP 7.4 trở lên (kích hoạt extension
php-zip, php-xml, php-gd).
- Bộ nhớ RAM tối thiểu: 2 GB (Đủ tải tệp dữ liệu quy mô 10,000 học sinh).
- Hệ quản trị: MySQL 5.7 hoặc MariaDB 10.3.
- Phân tích hiệu quả kinh tế (ROI):
- Tiết kiệm 90% thời gian rà soát học bạ cuối năm của Ban Giám hiệu (từ 3 ngày công xuống còn 15 phút xử lý tự động).
- Triệt tiêu hoàn toàn rủi ro khiếu nại điểm số và đính chính danh hiệu sau khi đã cấp bằng khen.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Chưa hỗ trợ khối lớp chuyên: Quy chế đánh giá lớp chuyên yêu cầu môn chuyên đạt hệ số và ngưỡng $\ge 8.0$ (hoặc $6.5$) chưa được tích hợp vào bộ luật tính toán.
- Xử lý đa lỗi trên một bản ghi: Giao diện cảnh báo hiện tại chỉ phản ánh trạng thái sai lệch tổng hợp, chưa phân rã đồng thời trường hợp học sinh vừa sai điểm trung bình, vừa sai học lực và sai danh hiệu thành các chú thích riêng biệt.
- Quy mô tập dữ liệu thực nghiệm: Thử nghiệm chủ yếu tiến hành trên quy mô dữ liệu lớp học tại trường THPT Kiến Thụy, chưa chạy kiểm thử tải căng thẳng (Stress testing) trên cơ sở dữ liệu phân tán liên trường.
Hướng phát triển tương lai
- Nâng cấp bộ luật nghiệp vụ: Cập nhật trọn vẹn Thông tư 22/2021/TT-BGDĐT mới nhất về đánh giá học sinh THCS và THPT.
- Mở rộng sang các lĩnh vực kinh tế - xã hội: Ứng dụng phụ thuộc hàm dạng tỉ lệ để phát hiện gian lận kê khai thuế hải quan, phân tích bất thường trong giao dịch thẻ ngân hàng và phát hiện lỗi cảm biến IoT công nghiệp.
- Hiện đại hóa kiến trúc: Xây dựng hệ thống dưới dạng RESTful API và kiến trúc Microservices, đóng gói Docker Container để dễ dàng tích hợp vào cổng dịch vụ công trực tuyến của các Sở Giáo dục và Đào tạo.
Đối tượng hưởng lợi
ĐỐI TƯỢNG HƯỞNG LỢI
+-----------------------------------+-----------------------------------+
| Sinh viên & Người học CNTT | Lập trình viên & Kỹ sư CSDL |
| - Nắm vững hệ tiên đề Armstrong | - Mẫu thiết kế Clean Architecture |
| - Hiểu sâu bản chất toán học RDBMS| - Kỹ thuật tối ưu truy vấn Join |
+-----------------------------------+-----------------------------------+
| Cơ sở Giáo dục & Doanh nghiệp | Nhà nghiên cứu Dữ liệu |
| - Tự động hóa 100% đối soát điểm | - Phát triển hướng tìm kiếm |
| - Giảm 90% thời gian đóng sổ điểm | ngoại lai trên đồ thị/NoSQL |
+-----------------------------------+-----------------------------------+
- Sinh viên, học viên ngành CNTT: Tài liệu tham khảo mẫu mực về việc gắn kết chặt chẽ giữa lý thuyết cơ sở dữ liệu quan hệ trừu tượng với bài toán ứng dụng thực tế.
- Kỹ sư phát triển phần mềm: Cung cấp giải pháp kiến trúc và mã nguồn PHP/MySQL mẫu về xử lý tệp Excel lớn, kiểm tra tính toàn vẹn dữ liệu bằng đại số quan hệ.
- Ban Giám hiệu và Giáo viên trường THPT: Công cụ tự động hóa đắc lực giúp loại bỏ hoàn toàn lỗi chủ quan trong công tác thi đua - khen thưởng học sinh.
- Cộng đồng nghiên cứu Khai phá dữ liệu: Bổ sung phương pháp tiếp cận phát hiện bất thường dựa trên cấu trúc phụ thuộc hàm đặc biệt thay vì phụ thuộc hoàn toàn vào các thuật toán học máy hộp đen (Black-box Machine Learning).
Câu hỏi thường gặp
1. Yêu cầu cấu hình phần cứng và môi trường để triển khai hệ thống là gì?
Hệ thống được thiết kế theo kiến trúc web nhẹ, có thể vận hành ổn định trên máy chủ chạy hệ điều hành Linux (Ubuntu 20.04 LTS) hoặc Windows Server, chỉ cần trang bị CPU 1 Core 2.0 GHz, 2 GB RAM, máy chủ web Apache 2.4, PHP 7.4 và MySQL 5.7. Hệ thống tương thích hoàn toàn với các gói môi trường cục bộ như XAMPP hoặc WampServer.
2. Hệ thống xử lý thế nào khi giáo viên nộp tệp Excel bị sai cấu trúc cột?
Module xử lý tệp đầu vào sử dụng thư viện PHPSpreadsheet kết hợp tiền kiểm tra cấu trúc (Schema Pre-validation). Nếu tệp nạp vào thiếu các cột bắt buộc (như Toán, Văn, Điểm TB, Điểm nhận xét Đ/CĐ), hệ thống sẽ từ chối nạp và hiển thị thông báo lỗi chi tiết về chỉ số cột bị thiếu, ngăn chặn việc phát sinh ngoại lai giả ở tầng tính toán.
3. Tại sao không dùng câu lệnh SQL CHECK hoặc TRIGGER có sẵn trong MySQL?
Ràng buộc CHECK và TRIGGER trong RDBMS thích hợp cho các quy tắc bất biến cấp bản ghi đơn giản. Tuy nhiên, quy chế học vụ của Bộ GD&ĐT có tính chất phân nhánh phức tạp (nhiều điều kiện lồng nhau và các quy tắc hạ bậc khống chế). Việc cài đặt toàn bộ logic này vào Trigger sẽ làm suy giảm hiệu năng ghi của cơ sở dữ liệu và khó xuất ra báo cáo so sánh chi tiết giữa số liệu giáo viên báo cáo với số liệu hệ thống tính toán.
4. Hệ thống có khả năng mở rộng để kiểm tra dữ liệu cho toàn bộ các trường trong một tỉnh không?
Hoàn toàn có thể. Do thuật toán phát hiện ngoại lai trên phụ thuộc hàm dạng bằng nhau có độ phức tạp tuyến tính $O(n)$, hệ thống có thể xử lý song song thông qua hàng đợi (Message Queue như Redis/RabbitMQ). Dữ liệu của hàng trăm trường THPT có thể phân tách theo từng Job xử lý độc lập mà không gây nghẽn tài nguyên CPU.
5. Chi phí triển khai và thời gian hoàn vốn (ROI) của giải pháp như thế nào?
Dự án được xây dựng hoàn toàn trên nền tảng phần mềm mã nguồn mở (PHP, MySQL, Apache, Bootstrap), do đó chi phí bản quyền phần mềm bằng 0. Chi phí vận hành chỉ bao gồm hạ tầng máy chủ cơ bản. Thời gian hoàn vốn đạt được ngay trong học kỳ đầu tiên áp dụng nhờ tiết kiệm hàng trăm giờ lao động thủ công của đội ngũ giáo viên và chuyên viên học vụ.
Kết luận
Đồ án tốt nghiệp "Xác định phần tử ngoại lai dựa vào phụ thuộc hàm đặc biệt trong cơ sở dữ liệu quan hệ và ứng dụng" của sinh viên Lưu Thế Dũng, dưới sự hướng dẫn khoa học của TS. Lê Văn Phùng, đã hoàn thành xuất sắc các mục tiêu nghiên cứu và ứng dụng thực tiễn. Đề tài đã hệ thống hóa chặt chẽ lý thuyết phụ thuộc hàm, xây dựng thành công mô hình toán học và thuật toán tối ưu phát hiện phần tử ngoại lai cho các dạng phụ thuộc hàm đặc biệt (dạng bằng nhau và dạng tỉ lệ).
Phần mềm thực nghiệm được xây dựng bằng ngôn ngữ PHP và CSDL MySQL đã chứng minh tính khả thi, độ tin cậy và hiệu năng vượt trội khi áp dụng kiểm tra thực tế kết quả xếp loại học lực và danh hiệu học sinh tại trường THPT Kiến Thụy (Hải Phòng). Đây là giải pháp công nghệ giá trị, đóng góp thiết thực cho công tác số hóa quản lý giáo dục, đồng thời khẳng định tiềm năng to lớn của việc ứng dụng lý thuyết cơ sở dữ liệu quan hệ vào các bài toán kiểm toán dữ liệu trong nền kinh tế số. Các nhà quản lý giáo dục và đơn vị phát triển phần mềm có thể tham khảo, ứng dụng và mở rộng giải pháp này vào các hệ thống quản lý học vụ quy mô lớn trong tương lai.