Bối cảnh và vấn đề nghiên cứu

Từ những năm cuối thế kỷ 20, công nghệ thông tin tại Việt Nam đã có sự phát triển mạnh mẽ và được ứng dụng sâu rộng vào các lĩnh vực kinh tế, văn hóa, xã hội và khoa học kỹ thuật. Trong công cuộc đổi mới giáo dục, ngành Giáo dục và Đào tạo từng bước đưa tin học vào công tác giảng dạy, học tập và quản lý.

Trong bối cảnh đó, phương thức quản lý sinh viên truyền thống dựa trên sổ sách và văn bản giấy tờ bộc lộ nhiều điểm hạn chế:

  • Hồ sơ, giấy tờ phát sinh với số lượng lớn gây rắc rối trong việc lưu trữ và bảo quản.
  • Không gian lưu trữ bị chiếm dụng nhiều, nguy cơ thất lạc dữ liệu cao.
  • Việc tra cứu, tìm kiếm, thống kê và cập nhật thông tin thủ công tốn nhiều nhân lực và thời gian, không còn đáp ứng được yêu cầu phát triển kinh tế - xã hội.

Để giải quyết tình trạng này, việc xây dựng một hệ thống phần mềm quản lý là yêu cầu cấp thiết nhằm tin học hóa quy trình quản lý thông tin trong nhà trường.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài:

  1. Nghiên cứu tổng quan lý thuyết về cơ sở dữ liệu quan hệ, các phương pháp chuẩn hóa dữ liệu, lý thuyết phụ thuộc hàm và ngôn ngữ truy vấn có cấu trúc SQL.
  2. Tìm hiểu nền tảng công nghệ Microsoft .NET Framework và các đặc tính hướng đối tượng của ngôn ngữ lập trình Visual Basic .NET (VB.NET).
  3. Khảo sát và phân tích bài toán nghiệp vụ quản lý sinh viên tại môi trường đại học.
  4. Xây dựng mô hình nghiệp vụ, biểu đồ phân rã chức năng (BFD) và biểu đồ luồng dữ liệu (DFD) các mức (mức 0, mức 1, mức 3).
  5. Thiết kế cơ sở dữ liệu, chuẩn hóa bảng dữ liệu và lập trình xây dựng phần mềm Quản lý sinh viên hoàn chỉnh với các mô-đun đăng nhập, kết nối, quản lý thông tin và tìm kiếm dữ liệu.

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

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ quản lý hồ sơ sinh viên, thông tin lớp học, danh sách giảng viên, môn thi và phân công giảng dạy trong trường đại học.
  • Phạm vi không gian và thời gian: Đề tài được thực hiện tại Khoa Công nghệ Thông tin, hoàn thành ngày 22 tháng 04 năm 2009 tại Hà Nội dưới sự hướng dẫn của thầy Trần Văn Lộc.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và công nghệ sử dụng

Tác giả dựa trên hai trụ cột lý thuyết và công nghệ nền tảng:

  1. Lý thuyết cơ sở dữ liệu quan hệ (Relational Database Theory):
    • Dựa trên mô hình dữ liệu quan hệ do E. F. Codd đề xuất năm 1970. Dữ liệu được tổ chức dưới dạng các bảng hai chiều gồm các dòng (bản ghi - record/tuple) và các cột (trường dữ liệu - data field/attribute).
    • Khái niệm khóa: Khóa chính (Primary Key), khóa ngoại lai (Foreign Key), khóa dự tuyển (Candidate Key).
    • Các mối quan hệ dữ liệu: Quan hệ một - một (1-1), một - nhiều (1-$\infty$), nhiều - nhiều ($\infty$-$\infty$).
    • Lý thuyết phụ thuộc hàm và hệ công lý Armstrong gồm 3 tính chất: tính phản xạ ($Y \subseteq X \Rightarrow X \rightarrow Y$), tính tăng trưởng ($Z \subseteq U \wedge X \rightarrow Y \Rightarrow XZ \rightarrow YZ$), tính bắc cầu ($X \rightarrow Y \wedge Y \rightarrow Z \Rightarrow X \rightarrow Z$).
    • Các thuật toán xác định khóa tối thiểu của lược đồ quan hệ và quan hệ.
    • Các dạng chuẩn hóa dữ liệu: Dạng chuẩn 1 (1NF - các thuộc tính chứa giá trị nguyên tố), Dạng chuẩn 2 (2NF - đạt 1NF và mọi thuộc tính không khóa phụ thuộc đầy đủ vào khóa chính), Dạng chuẩn 3 (3NF - đạt 2NF và không có thuộc tính không khóa nào phụ thuộc bắc cầu vào khóa chính).
    • Ngôn ngữ truy vấn dữ liệu SQL (Structured Query Language): Các nhóm lệnh thao tác dữ liệu (DML), định nghĩa dữ liệu (DDL), điều khiển truy cập (DCL), quản lý giao tác (Transaction Management) và lập trình.
Nhóm câu lệnh SQL Danh sách câu lệnh tiêu biểu trong văn bản
Thao tác dữ liệu (DML) SELECT, INSERT, UPDATE, DELETE, TRUNCATE
Định nghĩa dữ liệu (DDL) CREATE/ALTER/DROP TABLE, CREATE/ALTER/DROP VIEW, CREATE/DROP INDEX, CREATE/DROP SCHEMA, CREATE/ALTER/DROP PROCEDURE, CREATE/ALTER/DROP FUNCTION, CREATE/ALTER/DROP TRIGGER
Điều khiển truy cập (DCL) GRANT, REVOKE
Quản lý giao tác COMMIT, ROLLBACK, SAVE TRANSACTION
Lập trình CSDL DECLARE, OPEN, FETCH, CLOSE, EXECUTE
  1. Nền tảng .NET Framework và ngôn ngữ Visual Basic .NET (VB7):
    • Lịch sử hình thành: Dự án Next Generation Windows Services (NGWS) khởi động từ đầu năm 1998, kết hợp dự án Visual Studio 7 và universal runtime từ COM+/MTS, công bố bản Beta 1 vào tháng 11/2000.
    • Cơ chế hướng đối tượng hoàn toàn (Fully Object-Oriented), kế thừa (Inheritance), nạp chồng, đóng gói.
    • Quản lý không gian tên (Namespaces): phân chia thứ bậc cục bộ (Local) và toàn cục (Global), hỗ trợ gom nhóm class rõ ràng.
    • Cấu trúc xử lý ngoại lệ có cấu trúc: khối lệnh Try...Catch...Finally thay thế cho cơ chế xử lý lỗi On Error GoTo trong VB6.
    • Cơ chế đánh giá biểu thức ngắn (Short-Circuit) với toán tử AndAlso và OrElse.
    • Hệ thống kiểu dữ liệu mới: Byte, Short, Integer, Long, Decimal (128-bit thay thế cho Currency), Char (Unicode 16-bit), và Object thay thế cho Variant.
    • Các cấu trúc tập hợp trong thư viện System.Collections: ArrayList, BitArray, HashTable, Queue, Stack, SortedList.

Phương pháp nghiên cứu và phát triển hệ thống

  • Phương pháp phân tích và thiết kế có cấu trúc: Phân tích thực thể, khảo sát hồ sơ nghiệp vụ, xác định tác nhân và lập ma trận chức năng.
  • Phương pháp mô hình hóa luồng dữ liệu: Xây dựng biểu đồ luồng dữ liệu (DFD) phân cấp từ mức khung cảnh (mức 0) đến mức chi tiết nghiệp vụ (mức 1 và mức 3).
  • Phương pháp chuẩn hóa cơ sở dữ liệu: Áp dụng thuật toán phụ thuộc hàm và chuẩn hóa dữ liệu đạt dạng chuẩn 3 (3NF).
  • Phương pháp thiết kế và lập trình hướng sự kiện: Xây dựng giao diện đồ họa người dùng WinForms trên Visual Studio .NET kết nối cơ sở dữ liệu qua thư viện System.Data.

Nguồn dữ liệu

Nguồn dữ liệu đầu vào phục vụ phân tích bao gồm các biểu mẫu, hồ sơ nghiệp vụ thực tế trong trường đại học:

  • Phiếu thông tin cá nhân sinh viên
  • Danh sách lớp học
  • Danh sách giáo viên/giảng viên
  • Bảng phân công giảng dạy
  • Danh mục môn thi và bảng điểm

Nội dung chính theo từng chương

Phần 1: Cơ sở lý thuyết

Chương 1: Lý thuyết cơ sở dữ liệu

Nội dung chương tập trung trình bày các khái niệm nền tảng về cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu (HQT CSDL), bao gồm khả năng lưu trữ, duy trì cấu trúc, hỗ trợ bảo mật, chỉ mục (index), kiểm soát tính nhất quán và cơ chế sao lưu/phục hồi (backup/recovery).

Tác giả đi sâu vào mô hình cơ sở dữ liệu quan hệ với các khái niệm cấu thành:

  • Trường dữ liệu (Data Field): Đơn vị dữ liệu nguyên tố nhỏ nhất.
  • Bản ghi dữ liệu (Record): Tập hợp các trường có liên quan biểu diễn cho một đối tượng thực thể.
  • Bảng dữ liệu (DataTable): Tập hợp các bản ghi có cùng cấu trúc thuộc tính, có khóa chính xác định tính duy nhất của từng dòng.
  • Mối quan hệ và khóa ngoài: Cơ chế ràng buộc tham chiếu nhằm đảm bảo tính toàn vẹn dữ liệu giữa các thực thể (như quan hệ giữa bảng LOP và bảng KHOA thông qua trường MAKHOA).

Chương này cũng trình bày lý thuyết thiết kế CSDL qua 3 bước (tạo lớp thực thể, chuẩn hóa CSDL, phi chuẩn hóa), định nghĩa hình thức về quan hệ, định nghĩa phụ thuộc hàm, bao đóng thuộc tính, hệ tiêu đề Armstrong, các thuật toán tìm khóa tối thiểu và tiêu chuẩn của các dạng chuẩn 1NF, 2NF, 3NF. Phần cuối chương khái quát về ngôn ngữ SQL, bảng phân loại câu lệnh, các kiểu dữ liệu hỗ trợ (chuỗi ký tự, số nguyên, số thực, ngày giờ, nhị phân) và ý nghĩa của giá trị NULL.

Chương 2: Giới thiệu VB.NET

Chương 2 phân tích quá trình chuyển dịch từ Visual Basic 6.0 sang Visual Basic .NET (VB7). Tác giả so sánh chi tiết các đặc điểm kỹ thuật:

Tiêu chí Visual Basic 6.0 Visual Basic .NET
Mô hình lập trình Dựa trên đối tượng (Object-based), COM Hướng đối tượng hoàn chỉnh (OOP), kế thừa đầy đủ
Không gian tên PROGID đơn cấp, gắn cứng với COM DLL Phân cấp phân tầng thông qua Namespace
Kiểu dữ liệu Variant Hỗ trợ kiểu Variant linh động nhưng dễ lỗi Loại bỏ Variant, thay thế bằng kiểu Object
Kiểu số nguyên Integer (16-bit), Long (32-bit) Short (16-bit), Integer (32-bit), Long (64-bit)
Kiểu tiền tệ / Số thực Dùng Currency Thay bằng Decimal (128-bit, chính xác đến 28 chữ số)
Khởi tạo đối tượng Dùng lệnh Set (Set x = New Class) Khởi tạo trực tiếp không dùng Set (x = New Class())
Khai báo thuộc tính Tách biệt Property Let, Get, Set Gộp chung trong một khối Property với Get và Set
Toán tử gán rút gọn Không hỗ trợ Hỗ trợ +=, -=, *=, /=, \=, ^=, &=
Đánh giá biểu thức logic Luôn tính toán toàn bộ vế Hỗ trợ Short-circuit với AndAlso, OrElse
Xử lý lỗi Cấu trúc On Error GoTo Cấu trúc bẫy lỗi Try...Catch...Finally
Tham số hàm mặc định Mặc định truyền tham biến (ByRef) Mặc định truyền tham trị (ByVal)
Chỉ số mảng Tùy chọn qua Option Base Luôn bắt đầu từ chỉ số 0 (Zero-based)

Chương này cũng tổng hợp các thư viện không gian tên thông dụng như System.IO, System.Drawing, System.Data, System.Collections, System.Math, System.Diagnostics, System.XML, System.Security.


Phần 2: Xây dựng chương trình

Chương 1: Mô tả bài toán nghiệp vụ

Tác giả mô tả chi tiết quy trình quản lý thông tin sinh viên tại trường đại học. Các quy trình nghiệp vụ bao gồm:

  • Tiếp nhận sinh viên mới nhập học và ghi nhận thông tin vào hệ thống.
  • Theo dõi quá trình phân lớp, phân công giảng dạy cho giáo viên bộ môn.
  • Quản lý danh mục các môn học, môn thi và cập nhật dữ liệu học tập.
  • Lưu trữ và phân loại các mẫu hồ sơ nghiệp vụ liên quan: Phiếu thông tin cá nhân, Bảng phân công giảng dạy, Danh sách lớp, Danh sách giáo viên.

Chương 2: Mô hình nghiệp vụ

Tác giả thiết lập các mô hình nghiệp vụ chuẩn hóa:

  • Bảng phân tích xác định chức năng, tác nhân, hồ sơ: Xác lập mối liên hệ tương tác giữa người dùng (cán bộ quản lý, giáo viên, sinh viên) với hệ thống phần mềm và các luồng văn bản hồ sơ.
  • Biểu đồ ngữ cảnh: Xác định ranh giới hệ thống Quản lý sinh viên với các thực thể môi trường bên ngoài.
  • Biểu đồ phân rã chức năng (BFD): Phân rã cấu trúc hệ thống thành các khối chức năng từ mức tổng quát đến chi tiết.
  • Mô tả chức năng lá: Làm rõ quy trình xử lý của các chức năng cơ sở, trọng tâm là chức năng Tiếp nhận sinh viên và Cập nhật hồ sơ.

Chương 3: Phân tích thiết kế

Chương này hoàn thiện phần thiết kế kỹ thuật và cài đặt mã nguồn cho hệ thống:

  • Biểu đồ luồng dữ liệu (DFD): Xây dựng chi tiết DFD mức 0 (tổng quát), DFD mức 1 (phân rã luồng xử lý chính) và DFD mức 3 (luồng xử lý dữ liệu chi tiết ở mức thực thi).
  • Phân tích mô hình khái niệm và chuẩn hóa dữ liệu: Thiết lập các bảng dữ liệu đã được tối ưu hóa về cấu trúc 3NF để loại trừ dư thừa dữ liệu và dị thường khi thêm, sửa, xóa.
  • Thiết kế giao diện và mã nguồn chương trình: Xây dựng hệ thống giao diện WinForms và viết code xử lý cho từng mô-đun:
    • Modul chính: Khai báo các biến toàn cục, chuỗi kết nối và các hàm dùng chung.
    • Code xử lý Form Giảng viên: Xử lý thêm, sửa, xóa, hiển thị thông tin giáo viên.
    • Code xử lý Form Môn thi: Quản lý danh mục môn thi và thông tin học phần.
    • Code xử lý Form Đăng nhập: Xác thực tài khoản người dùng và phân quyền truy cập.
    • Code xử lý Form Kết nối: Thiết lập thông số kết nối cơ sở dữ liệu máy chủ.
    • Code xử lý Form Tìm kiếm: Lập trình các thuật toán truy vấn và lọc dữ liệu sinh viên.

Thiết kế và triển khai

Kiến trúc phân tích và thiết kế hệ thống

Hệ thống Quản lý sinh viên được xây dựng theo mô hình ứng dụng máy trạm (Desktop Application) trên nền tảng .NET:

[Người dùng / Cán bộ quản lý]
    [Giao diện WinForms]
  (Đăng nhập, Kết nối, Giảng viên, Môn thi, Tìm kiếm)
   [Mô-đun xử lý nghiệp vụ]
 (VB.NET Functions & Subroutines, Error Handling Try...Catch)
   [Tầng dữ liệu System.Data]
    [Cơ sở dữ liệu quan hệ SQL]
(Các bảng dữ liệu chuẩn hóa 3NF: LOP, KHOA, SINHVIEN, MONHOC...)

Danh mục các mô-đun và chức năng phần mềm

Phần mềm bao gồm các mô-đun và màn hình chức năng chính:

Tên Mô-đun / Form Nhiệm vụ kỹ thuật và nghiệp vụ
Modul chính Lưu trữ tham số hệ thống, cấu hình biến dùng chung và các hàm tiện ích toàn cục
Form Đăng nhập Kiểm tra thông tin xác thực người dùng, bảo mật truy cập hệ thống
Form Kết nối Cấu hình chuỗi kết nối tới hệ quản trị cơ sở dữ liệu
Form Giảng viên Quản lý hồ sơ giảng viên, cập nhật thông tin và danh sách phân công giảng dạy
Form Môn thi Cập nhật, chỉnh sửa danh mục môn thi và các thông tin liên quan
Form Tìm kiếm Thực hiện các câu lệnh truy vấn tìm kiếm nhanh thông tin sinh viên và hồ sơ
Hệ thống Help Hỗ trợ người dùng tra cứu hướng dẫn sử dụng phần mềm trực tiếp

Kết quả và đóng góp

Kết quả đạt được

  1. Đã hệ thống hóa toàn diện cơ sở lý thuyết về thiết kế cơ sở dữ liệu quan hệ, các dạng chuẩn hóa (1NF, 2NF, 3NF), hệ công lý Armstrong và ngôn ngữ SQL.
  2. Phân tích chi tiết sự khác biệt kỹ thuật giữa Visual Basic .NET và Visual Basic 6.0, làm cơ sở ứng dụng công nghệ hướng đối tượng vào phát triển phần mềm quản lý.
  3. Hoàn thành bộ hồ sơ phân tích thiết kế hệ thống Quản lý sinh viên, bao gồm bảng phân tích chức năng - tác nhân - hồ sơ, biểu đồ BFD và các biểu đồ luồng dữ liệu DFD từ mức 0 đến mức 3.
  4. Xây dựng và cài đặt hoàn chỉnh phần mềm Quản lý sinh viên bằng VB.NET với các chức năng phân cấp rõ ràng, giao diện hỗ trợ tìm kiếm nhanh và tích hợp phần trợ giúp (Help).

Đóng góp thực tiễn theo tác giả tự nêu

  • Giảm nhẹ khối lượng công việc và công sức của cán bộ quản lý so với phương pháp quản lý giấy tờ truyền thống.
  • Thu hẹp không gian lưu trữ vật lý, hạn chế tối đa nguy cơ thất lạc dữ liệu hồ sơ.
  • Từng bước tự động hóa quy trình quản lý, cung cấp công cụ tìm kiếm và tra cứu thông tin sinh viên đầy đủ, chính xác và nhanh chóng.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Do thời gian và kiến thức còn hạn chế, chương trình vẫn còn chứa đựng những thiếu sót nhất định trong quá trình xử lý nghiệp vụ thực tế.
  • Phạm vi triển khai chủ yếu tập trung vào các chức năng cơ bản như quản lý hồ sơ sinh viên, giảng viên, môn thi, đăng nhập và tìm kiếm.

Hướng nghiên cứu tiếp

  • Tiếp thu các ý kiến đóng góp từ giảng viên hướng dẫn và hội đồng đánh giá để khắc phục các thiếu sót trong mã nguồn và giao diện.
  • Nghiên cứu mở rộng, hoàn thiện thêm các phân hệ nghiệp vụ quản lý chuyên sâu khác để nâng cao hiệu quả ứng dụng trong trường đại học.

Giá trị tham khảo

Tài liệu đồ án có giá trị tham khảo thiết thực cho:

  • Sinh viên ngành Công nghệ thông tin, Hệ thống thông tin: Làm tài liệu tham khảo về quy trình phân tích thiết kế hệ thống thông tin theo phương pháp truyền thống (từ khảo sát bài toán, lập biểu đồ phân rã BFD, biểu đồ DFD phân cấp đến thiết kế CSDL quan hệ).
  • Lập trình viên nghiên cứu công nghệ .NET: Phần đối sánh chi tiết giữa VB6 và VB.NET (về kiểu dữ liệu, cơ chế hướng đối tượng, xử lý ngoại lệ Try...Catch, Namespaces và các cấu trúc Collections) cung cấp nguồn tài liệu kỹ thuật có giá trị tham khảo rõ ràng.
  • Người thực hiện các đề tài quản lý trường học: Tham khảo cách tổ chức thực thể dữ liệu cho bài toán quản lý sinh viên, giảng viên và môn học.

Câu hỏi thường gặp

1. Đề tài đồ án do ai thực hiện, dưới sự hướng dẫn của cán bộ nào và hoàn thành vào thời gian nào?

Đồ án do sinh viên Phạm Tuấn Dũng (mã số sinh viên: 505101006) thực hiện tại Khoa Công nghệ Thông tin, dưới sự hướng dẫn của thầy giáo Trần Văn Lộc, hoàn thành vào ngày 22 tháng 04 năm 2009 tại Hà Nội.

2. Trong phần cơ sở lý thuyết, tác giả đã trình bày những dạng chuẩn nào và dựa vào đâu để tính bao đóng phụ thuộc hàm?

Tác giả đã trình bày 3 dạng chuẩn: Dạng chuẩn 1 (1NF), Dạng chuẩn 2 (2NF) và Dạng chuẩn 3 (3NF). Việc xác định bao đóng của tập phụ thuộc hàm $F^+$ được thực hiện dựa trên Hệ tiêu đề Armstrong (gồm tính phản xạ, tính tăng trưởng và tính bắc cầu).

3. Những điểm khác biệt căn bản giữa VB.NET và VB6 được phân tích trong đồ án là gì?

VB.NET chuyển đổi hoàn toàn sang mô hình hướng đối tượng (hỗ trợ kế thừa đầy đủ), thay thế kiểu Variant bằng Object, thay thế Currency bằng Decimal, sử dụng không gian tên Namespace, đưa vào cấu trúc bắt lỗi Try...Catch...Finally, hỗ trợ toán tử gán tắt (+=, -=,...), cơ chế Short-Circuit (AndAlso, OrElse), quy định mặc định tham số truyền vào là ByVal và chỉ số mảng luôn bắt đầu từ 0.

4. Hệ thống Quản lý sinh viên trong đồ án phân tích những hồ sơ nghiệp vụ nào?

Hệ thống khảo sát 4 nhóm hồ sơ nghiệp vụ chính: Phiếu thông tin cá nhân, Bảng phân công giảng dạy, Danh sách lớp và Danh sách giáo viên.

5. Phần mềm Quản lý sinh viên bao gồm các mô-đun và form giao diện xử lý chính nào?

Phần mềm bao gồm: Modul chính (chứa cấu hình và biến toàn cục), Form Đăng nhập, Form Kết nối cơ sở dữ liệu, Form Giảng viên, Form Môn thi và Form Tìm kiếm thông tin.


Kết luận

Đồ án tốt nghiệp "Quản lý sinh viên" của sinh viên Phạm Tuấn Dũng đã hoàn thành mục tiêu xây dựng một ứng dụng tin học hóa công tác quản lý đào tạo trong trường đại học. Tác giả đã trình bày có hệ thống nền tảng lý thuyết về cơ sở dữ liệu quan hệ, kỹ thuật chuẩn hóa 3NF cùng những đặc tính kỹ thuật cốt lõi của nền tảng .NET và ngôn ngữ VB.NET. Thông qua việc phân tích mô hình nghiệp vụ, biểu đồ luồng dữ liệu và lập trình các mô-đun chức năng, đồ án đã mang lại một giải pháp phần mềm quản trị thông tin sinh viên, giảng viên và môn thi một cách khoa học, thay thế hiệu quả cho các quy trình thủ công trên giấy tờ.