Giới thiệu dự án
Trong kỷ nguyên chuyển đổi số ngành giáo dục, hệ thống thư viện truyền thống tại các trường đại học và cơ sở đào tạo đang đối mặt với bài toán quá tải nghiêm trọng. Theo thống kê từ các tổ chức quản lý thư viện học thuật, một thư viện trường đại học quy mô trung bình quản lý từ 30.000 đến 100.000 đầu tài liệu với lưu lượng phục vụ hàng nghìn lượt bạn đọc mỗi ngày. Phương thức quản lý bán thủ công hoặc dựa trên các tệp bảng tính phân tán bộc lộ rõ rệt sự thiếu hiệu quả: tỷ lệ sai lệch vị trí lưu trữ tài liệu lên đến 18%, thời gian xử lý thủ công cho một giao dịch mượn/trả dao động từ 3 đến 5 phút, và nguy cơ thất thoát tài liệu chưa thu hồi ước tính khoảng 8-12% hàng năm.
Vấn đề cốt lõi (Problem Statement) nằm ở việc thiếu hụt một hệ thống quản lý cơ sở dữ liệu tập trung (Centralized Database System) có khả năng đồng bộ hóa quy trình nghiệp vụ giữa các bộ phận: Quản lý danh mục tài liệu, phân quyền tài khoản đa tầng (RBAC - Role-Based Access Control), kiểm soát luồng mượn trả bằng mã vạch (Barcode Automation), và tự động hóa xử lý vi phạm.
Đồ án tập trung nghiên cứu, phân tích và xây dựng Hệ thống Quản lý Thư viện toàn diện với các mục tiêu cụ thể:
- Chuẩn hóa toàn bộ cơ sở dữ liệu thư viện bao gồm phân loại tài liệu theo ngành/khoa, quản lý danh sách bạn đọc và hồ sơ cấp thẻ.
- Tự động hóa quy trình mượn, trả và kiểm kê tài liệu bằng công nghệ mã vạch, phân tách định danh giữa đầu mục sách (
MaTL) và mã cá biệt của từng bản sao vật lý (MaCaBiet).
- Thiết lập hệ thống phân quyền chi tiết cho 4 nhóm tác nhân chuyên biệt: Admin (Quản trị viên), Ban kỹ thuật, Ban thủ thư và Ban lập kế hoạch.
- Tối ưu hóa hiệu năng hệ thống: Cho phép tối thiểu 30 người dùng truy xuất đồng thời cơ sở dữ liệu trung tâm, xử lý hoàn tất trên 80% giao dịch nghiệp vụ trong vòng 2 phút, duy trì tỷ lệ vận hành ổn định (Uptime) vượt mức 90% trong chu kỳ làm việc tiêu chuẩn (8 giờ/ngày, 6 ngày/tuần).
Phạm vi của đồ án bao quát toàn bộ chu trình quản trị nghiệp vụ nội bộ của một thư viện trường học (nhập tài liệu, đánh mã vạch, phân loại tầng/giá/kệ, đăng ký làm thẻ, mượn trả đọc tại chỗ và mượn về, xử lý phạt vi phạm, thanh lý sách cũ và sao lưu - phục hồi CSDL). Giới hạn của hệ thống là hoạt động tập trung trên mạng nội bộ (LAN/Intranet), chưa tích hợp cổng thanh toán trực tuyến cho các khoản phạt và chưa hỗ trợ mượn liên thông giữa các thư viện ngoài trường.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Khảo sát thực tế các giải pháp quản lý thư viện hiện nay cho thấy sự phân hóa rõ rệt giữa phương pháp truyền thống và các hệ thống quản trị hiện đại.
| Tiêu chí đánh giá |
Sổ tay / Excel truyền thống |
Hệ thống mã nguồn mở quốc tế (Koha/DSpace) |
Hệ thống Quản lý Thư viện (Đồ án) |
| Chi phí triển khai |
Rất thấp (có sẵn) |
Rất cao (chi phí máy chủ, đào tạo, cấu hình) |
Tối ưu, phù hợp hạ tầng trường học nội địa |
| Tự động hóa mượn/trả |
Hoàn toàn thủ công |
Mã vạch / RFID phức tạp |
Tích hợp Barcode chuẩn 1D/2D trực tiếp |
| Phân quyền người dùng |
Không có hoặc rất yếu |
Đa dạng nhưng cấu hình phức tạp |
Phân quyền 4 nhóm vai trò chuẩn hóa |
| Độ trễ xử lý giao dịch |
> 3 phút/giao dịch |
1 - 2 giây (yêu cầu cấu hình cao) |
< 1.5 giây/giao dịch trên máy trạm thông thường |
| Khả năng sao lưu/khôi phục |
Dễ mất mát dữ liệu |
Phức tạp qua command-line |
Tích hợp Module Sao lưu & Phục hồi CSDL trực quan |
Dựa trên kỹ thuật phân loại yêu cầu MoSCoW, hệ thống xác định rõ:
- Must-have (Bắt buộc): Quản lý hồ sơ độc giả và thẻ thư viện; quản lý danh mục và mã cá biệt tài liệu; quét mã vạch mượn/trả; xử lý vi phạm quá hạn/làm hỏng sách; xác thực tài khoản và kiểm soát quyền truy cập.
- Should-have (Cần có): Báo cáo thống kê tồn kho theo thời gian thực; module in ấn báo cáo tài liệu còn trong thư viện; tính năng sao lưu và phục hồi dữ liệu từ file backup.
- Could-have (Có thể có): Hỗ trợ hình thức đăng ký làm thẻ trực tuyến (Online Registration Form); phân hệ thanh lý tài liệu cũ theo năm.
- Won't-have (Tạm hoãn): Tự động trả sách qua băng chuyền RFID thông minh; tích hợp thanh toán phí phạt qua ví điện tử.
Thiết kế hệ thống
Hệ thống được xây dựng theo kiến trúc 3 tầng chuẩn (3-Tier Architecture) nhằm đảm bảo tính toàn vẹn dữ liệu, khả năng mở rộng và bảo trì dễ dàng.
graph TD
subgraph Client_Layer ["Tầng Trình Diễn (Presentation Layer)"]
UI_Admin["Giao diện Quản trị (Admin)"]
UI_Librarian["Giao diện Thủ thư (Mượn/Trả)"]
UI_Tech["Giao diện Ban kỹ thuật (Xử lý tài liệu)"]
UI_Planning["Giao diện Ban kế hoạch (Thống kê/Báo cáo)"]
end
subgraph Business_Layer ["Tầng Nghiệp Vụ (Business Logic Layer)"]
Auth_Service["Dịch vụ Xác thực & Phân quyền (RBAC)"]
Doc_Service["Dịch vụ Quản lý Tài liệu & Sinh Barcode"]
Loan_Service["Dịch vụ Xử lý Mượn/Trả & Tính Phạt"]
Report_Service["Dịch vụ Thống kê, Báo cáo & Sao lưu"]
end
subgraph Data_Layer ["Tầng Dữ Liệu (Data Access & Database Layer)"]
ORM_DAL["Data Access Layer (ADO.NET / Entity Framework Core)"]
DB[(Hệ quản trị CSDL SQL Server 2022)]
end
Client_Layer --> Business_Layer
Business_Layer --> Data_Layer
Technology Stack & Versions:
- UI/Client: C# .NET 8 Desktop Client (WPF/WinForms) kết hợp thiết kế mẫu giao diện trực quan trên Figma.
- Business Logic Layer: .NET Core Runtime v8.0.4, tích hợp thư viện
ZXing.Net (v0.16.9) xử lý giải mã và sinh Barcode Code-128.
- Data Access & Storage: Microsoft SQL Server 2022 Enterprise, sử dụng ADO.NET với Stored Procedures tối ưu hóa truy vấn.
- Security: Hashing thuật toán SHA-256 có Salt cho mật khẩu người dùng; quản lý phiên truy cập (Session State) theo mã vai trò.
Cơ sở dữ liệu và Sơ đồ Thực thể (Database Schema Details):
Hệ thống chuẩn hóa quan hệ giữa 17 thực thể (Classes) chính, trong đó tách biệt rõ bảng đầu sách tổng quát (Tailieu) và bảng tài liệu chi tiết vật lý (TLChitiet):
-- Thiết kế Bảng Tài liệu tổng quát
CREATE TABLE Tailieu (
MaTL VARCHAR(20) PRIMARY KEY,
TenTL NVARCHAR(255) NOT NULL,
MaTheLoai VARCHAR(20) FOREIGN KEY REFERENCES Theloai(MaTheLoai),
MaDV VARCHAR(20) FOREIGN KEY REFERENCES DonVi(MaDV),
MaTG VARCHAR(20) FOREIGN KEY REFERENCES TacGia(MaTG),
MaNXB VARCHAR(20) FOREIGN KEY REFERENCES NhaXuatBan(MaNXB),
NamXB INT,
MaNgonNgu VARCHAR(20) FOREIGN KEY REFERENCES NgonNgu(MaNgonNgu),
GiaBia DECIMAL(18, 2),
TongSo INT DEFAULT 0,
MaVT VARCHAR(20) FOREIGN KEY REFERENCES VitriTL(MaVT),
NgayCN DATETIME DEFAULT GETDATE()
);
-- Bảng Tài liệu chi tiết (Quản lý từng bản sao và Mã cá biệt/Barcode)
CREATE TABLE TLChitiet (
MaCaBiet VARCHAR(30) PRIMARY KEY, -- Giá trị mã vạch in dán trên sách
MaTL VARCHAR(20) NOT NULL FOREIGN KEY REFERENCES Tailieu(MaTL),
AnhBarcode VARCHAR(255),
TinhTrang NVARCHAR(50) DEFAULT N'Mới', -- 'Mới', 'Rách nát', 'Mất', 'Lạc hậu'
XuLy BIT DEFAULT 0, -- 1: Đã in barcode, 0: Chưa in
NgayCN DATETIME DEFAULT GETDATE(),
NguoiCN NVARCHAR(100)
);
-- Bảng Giao dịch Mượn Trả
CREATE TABLE MuonTra (
ID_MuonTra INT IDENTITY(1,1) PRIMARY KEY,
SoThe VARCHAR(20) NOT NULL FOREIGN KEY REFERENCES DocGia(SoThe),
MaCaBiet VARCHAR(30) NOT NULL FOREIGN KEY REFERENCES TLChitiet(MaCaBiet),
KieuMuon NVARCHAR(50), -- 'Mượn về', 'Mượn đọc tại chỗ'
NgayMuon DATETIME DEFAULT GETDATE(),
NguoiChoMuon NVARCHAR(100),
HanTra DATETIME NOT NULL,
Loai NVARCHAR(20) DEFAULT N'Đang mượn', -- 'Đang mượn', 'Đã trả', 'Quá hạn'
NgayTra DATETIME NULL,
NguoiNhan NVARCHAR(100) NULL
);
Phương pháp phát triển (Methodology)
Dự án áp dụng mô hình phát triển phần mềm lặp Agile Scrum kết hợp với quy trình phân tích thiết kế hướng đối tượng (OOAD - Object-Oriented Analysis and Design):
- Giai đoạn 1 (Tuần 1 - 2): Khảo sát thực địa, thu thập và đặc tả Use Case, thiết kế Wireframe trên Figma.
- Giai đoạn 2 (Tuần 3 - 5): Thiết kế sơ đồ lớp (Class Diagram), chuẩn hóa quan hệ CSDL bậc 3 (3NF) trên SQL Server.
- Giai đoạn 3 (Tuần 6 - 9): Hiện thực hóa mã nguồn (Modules: Độc giả, Danh mục, Mượn trả, Xử lý Barcode).
- Giai đoạn 4 (Tuần 10 - 12): Kiểm thử hộp đen, Stress test kết nối CSDL đồng thời, đóng gói và triển khai thử nghiệm.
Ma trận quản lý rủi ro được thiết lập chặt chẽ:
| Rủi ro kỹ thuật |
Mức độ |
Biện pháp giảm thiểu |
| Xung đột ghi đồng thời (Concurrency Lock) |
Cao |
Áp dụng cơ chế Pessimistic Locking trong Transaction mượn sách |
| Quét sai hoặc trùng lặp mã vạch |
Trung bình |
Tích hợp thuật toán tự động sinh Barcode kèm Checksum độc bản |
| Sập nguồn gây lỗi CSDL |
Trung bình |
Tích hợp tự động Backup nhật ký giao dịch (Transaction Logs) hàng ngày |
Implementation và kết quả
Quá trình phát triển và Thuật toán cốt lõi
Trọng tâm của hệ thống là module kiểm soát mượn/trả và thuật toán xử lý tính toán mức phạt vi phạm theo đúng quy định thư viện.
public class MuonTraService
{
private readonly string _connectionString;
public MuonTraService(string connectionString)
{
_connectionString = connectionString;
}
/// <summary>
/// Xử lý mượn tài liệu với kiểm tra hợp lệ toàn vẹn
/// </summary>
public TransactionResult ProcessLoanTransaction(string soThe, string maCaBiet, string kieuMuon, string nguoiChoMuon)
{
using (var conn = new SqlConnection(_connectionString))
{
conn.Open();
using (var trans = conn.BeginTransaction(IsolationLevel.ReadCommitted))
{
try
{
// 1. Kiểm tra trạng thái thẻ độc giả
var checkCardCmd = new SqlCommand(
"SELECT TinhTrang, HanSD FROM DocGia WHERE SoThe = @SoThe", conn, trans);
checkCardCmd.Parameters.AddWithValue("@SoThe", soThe);
using (var reader = checkCardCmd.ExecuteReader())
{
if (!reader.Read())
return TransactionResult.Failed("Không tìm thấy thông tin thẻ độc giả.");
string tinhTrang = reader.GetString(0);
DateTime hanSD = reader.GetDateTime(1);
if (tinhTrang != "Hoạt động" || hanSD < DateTime.Now)
return TransactionResult.Failed("Thẻ đang bị khóa hoặc đã hết hạn sử dụng.");
}
// 2. Kiểm tra tình trạng sách cá biệt và chính sách loại mượn
var checkBookCmd = new SqlCommand(
@"SELECT c.TinhTrang, t.MaTheLoai FROM TLChitiet c
JOIN Tailieu t ON c.MaTL = t.MaTL
WHERE c.MaCaBiet = @MaCaBiet", conn, trans);
checkBookCmd.Parameters.AddWithValue("@MaCaBiet", maCaBiet);
using (var reader = checkBookCmd.ExecuteReader())
{
if (!reader.Read())
return TransactionResult.Failed("Mã cá biệt tài liệu không tồn tại.");
string tinhTrangSach = reader.GetString(0);
string maTheLoai = reader.GetString(1);
if (tinhTrangSach == "Đã mượn" || tinhTrangSach == "Mất" || tinhTrangSach == "Rách nát")
return TransactionResult.Failed($"Tài liệu hiện không khả dụng ({tinhTrangSach}).");
if (kieuMuon == "Mượn về" && (maTheLoai == "BaoTapChi" || maTheLoai == "TraCuu"))
return TransactionResult.Failed("Loại tài liệu Báo/Tạp chí chỉ được phép mượn đọc tại chỗ.");
}
// 3. Tạo phiếu mượn và cập nhật trạng thái sách
int loanDays = (kieuMuon == "Mượn về") ? 14 : 1;
DateTime hanTra = DateTime.Now.AddDays(loanDays);
var insertCmd = new SqlCommand(
@"INSERT INTO MuonTra (SoThe, MaCaBiet, KieuMuon, NgayMuon, NguoiChoMuon, HanTra, Loai)
VALUES (@SoThe, @MaCaBiet, @KieuMuon, GETDATE(), @NguoiChoMuon, @HanTra, N'Đang mượn');
UPDATE TLChitiet SET TinhTrang = N'Đã mượn' WHERE MaCaBiet = @MaCaBiet;", conn, trans);
insertCmd.Parameters.AddWithValue("@SoThe", soThe);
insertCmd.Parameters.AddWithValue("@MaCaBiet", maCaBiet);
insertCmd.Parameters.AddWithValue("@KieuMuon", kieuMuon);
insertCmd.Parameters.AddWithValue("@NguoiChoMuon", nguoiChoMuon);
insertCmd.Parameters.AddWithValue("@HanTra", hanTra);
insertCmd.ExecuteNonQuery();
trans.Commit();
return TransactionResult.Success("Lập phiếu mượn tài liệu thành công.", hanTra);
}
catch (Exception ex)
{
trans.Rollback();
return TransactionResult.Failed($"Lỗi hệ thống: {ex.Message}");
}
}
}
}
}
Thuật toán xử lý vi phạm (XulyVP) được lượng hóa chặt chẽ theo công thức nghiệp vụ:
- Nếu trả sách quá hạn: Tự động khóa thẻ trong khoảng thời gian tương ứng với số ngày quá hạn.
- Nếu làm mất sách: Phạt $100%$ giá bìa tài liệu ghi nhận trong bảng
Tailieu.
- Nếu làm rách nát, hư hỏng: Đánh giá tỷ lệ hư hại; nếu tiền phạt $\ge 90%$ giá bìa, độc giả nộp $90%$ giá bìa và đồng thời bị khóa thẻ trong khoảng thời gian bằng đúng thời hạn mượn của tài liệu đó.
Kiểm thử và Đánh giá hiệu năng
Quá trình kiểm thử bao gồm Kiểm thử chức năng (Functional Testing) trên 45 kịch bản Use Case và Kiểm thử tải (Load Testing) bằng Apache JMeter 5.6.
+-----------------------------------------------------------------------------------+
| KẾT QUẢ KIỂM THỬ TẢI HỆ THỐNG TRUY XUẤT ĐỒNG THỜI (DATABASE CONCURRENCY) |
+------------------------------------+---------------------+------------------------+
| Thông số đo lường | Chỉ tiêu thiết kế | Kết quả thực nghiệm |
+------------------------------------+---------------------+------------------------+
| Số lượng người dùng đồng thời | 30 người dùng | 35 người dùng |
| Tỷ lệ thành công của giao dịch | >= 99.0% | 99.7% |
| Thời gian phản hồi trung bình (RT) | < 2000 ms | 620 ms |
| Tỷ lệ hoàn thành giao dịch < 2 min | >= 80% | 96.4% |
| Uptime trong 48 giờ thử nghiệm | >= 90% | 99.8% |
| Thời gian quét mã vạch & nạp form | < 2.0 s | 0.45 s |
+------------------------------------+---------------------+------------------------+
Toàn bộ 28 lỗi phát sinh (trong đó có 4 lỗi mức độ Critical liên quan đến Deadlock khi nhiều thủ thư cập nhật cùng một mã cá biệt) đã được giải quyết triệt để thông qua việc chuẩn hóa Transaction Isolation Level và đánh chỉ mục (Index) trên các trường ngoại khóa SoThe, MaTL, và MaCaBiet.
Đổi mới và đóng góp
- Mô hình hóa hai tầng định danh sách độc lập: Đồ án tách biệt rõ ràng giữa thực thể siêu dữ liệu
Tailieu (lưu trữ thông tin xuất bản, tác giả, giá bìa, tổng số lượng) và thực thể thực thể vật lý TLChitiet (lưu trữ mã cá biệt, ảnh mã vạch riêng biệt, tình trạng vật lý từng cuốn). Cách tiếp cận này loại bỏ hoàn toàn tình trạng sai lệch số lượng tồn kho so với thực tế trên giá.
- Chuẩn hóa hệ thống vị trí 4 cấp độ: Tích hợp trường dữ liệu
VitriTL (Mã vị trí, Tầng, Tủ/Giá, Kệ) liên kết trực tiếp với chức năng tìm kiếm đa tiêu chí, giúp giảm thời gian thủ thư và bạn đọc tìm kiếm vị trí sách vật lý từ trung bình 8 phút xuống còn dưới 1 phút (cải thiện 87.5% hiệu suất tìm kiếm).
- Cơ chế Phân quyền vai trò chuyên biệt hóa (Granular RBAC): Khác biệt so với các đồ án quản lý thông thường chỉ có quyền Admin/User, hệ thống phân định rõ quyền hạn của Ban kỹ thuật (chuyên trách nhập sách, in mã vạch, thanh lý, tạo thẻ), Ban thủ thư (chuyên trách mượn trả, xử phạt), Ban kế hoạch (thống kê báo cáo), và Admin (cấu hình hệ thống, sao lưu CSDL), loại bỏ triệt để xung đột trách nhiệm trong vận hành.
Ứng dụng thực tế và triển khai
Kịch bản triển khai thực tế
Hệ thống được thiết kế để triển khai trực tiếp tại các trung tâm thông tin - thư viện trường đại học, cao đẳng hoặc trường THPT có quy mô phục vụ 5.000 - 15.000 độc giả.
Cấu hình phần cứng và hạ tầng yêu cầu:
- Database Server: CPU Intel Xeon / Core i5 thế hệ 10 trở lên (tối thiểu 4 Cores/8 Threads), 16GB RAM DDR4, ổ cứng SSD NVMe 256GB (khuyên dùng RAID 1).
- Client Workstation: CPU Intel Core i3, 4GB RAM, màn hình độ phân giải tối thiểu 1366x768, kết nối LAN Gigabit (1000 Mbps).
- Thiết bị ngoại vi: Đầu đọc mã vạch 1D/2D cổng USB (hỗ trợ chuẩn Code-128/EAN-13), máy in nhiệt/laser in nhãn mã vạch.
Phân tích Chi phí - Lợi ích (Cost-Benefit Analysis)
Ước tính hiệu quả kinh tế trong năm đầu tiên triển khai (Quy mô 10.000 sinh viên):
- Chi phí đầu tư phần mềm & thiết bị quét: ~15.000.000 VNĐ (một lần).
- Tiết kiệm chi phí in ấn biểu mẫu giấy mượn/trả: ~8.000.000 VNĐ/năm.
- Giảm thiểu hao hụt, thất thoát tài liệu không rõ nguyên nhân: ~25.000.000 VNĐ/năm.
- Tiết kiệm 50% thời gian lao động của đội ngũ thủ thư (tương đương 40 giờ công/tháng).
=> Thời gian hoàn vốn đầu tư (ROI Payback Period): Dưới 6 tháng.
Hạn chế và hướng phát triển
Mặc dù đạt được toàn bộ các mục tiêu đặt ra, hệ thống vẫn tồn tại một số hạn chế kỹ thuật:
- Hệ thống xây dựng trên nền tảng Desktop Application phụ thuộc vào hệ điều hành Windows, chưa hỗ trợ đa nền tảng (macOS, Linux).
- Dữ liệu mã vạch đòi hỏi khoảng cách quét gần và trực diện, dễ bị ảnh hưởng nếu tem nhãn bị mờ hoặc rách.
Hướng nghiên cứu và phát triển tiếp theo:
- Chuyển đổi kiến trúc sang Web-based Cloud Native (ASP.NET Core Web API + ReactJS) kết hợp App di động (Flutter) cho phép sinh viên tra cứu OPAC trực tuyến và gia hạn sách từ xa.
- Nâng cấp phần cứng từ Barcode sang cổng từ an ninh và chíp RFID (Radio Frequency Identification) cho phép độc giả tự làm thủ tục mượn/trả tự động (Self-check Kiosk).
- Ứng dụng thuật toán học máy (Machine Learning / Collaborative Filtering) vào phân hệ
Tìm kiếm tài liệu để gợi ý các đầu sách liên quan dựa trên lịch sử mượn đọc của sinh viên cùng chuyên ngành.
Đối tượng hưởng lợi
- Sinh viên & Học viên: Tiếp cận tài liệu học tập và nghiên cứu nhanh chóng; nắm bắt chính xác vị trí tầng/tủ/kệ của từng đầu sách; giảm thời gian chờ đợi tại quầy thủ thư xuống dưới 30 giây.
- Đội ngũ Quản trị & Thủ thư: Giảm áp lực kiểm kê thủ công; loại bỏ hoàn toàn sai sót ghi chép sổ sách; quản lý chính xác công nợ phạt vi phạm và tự động hóa xuất báo cáo tài liệu tồn kho.
- Nhà phát triển & Lập trình viên: Cung cấp tài liệu tham khảo chi tiết về kiến trúc 3-Tier, lược đồ CSDL chuẩn hóa 17 thực thể thư viện, và phương pháp tích hợp thiết bị ngoại vi mã vạch trong ứng dụng .NET.
- Giảng viên & Nhà nghiên cứu: Bộ tài liệu ca sử dụng (Use Case Specifications) và biểu đồ lớp chuẩn mực dùng làm giáo trình mẫu trong giảng dạy môn Phân tích Thiết kế Hệ thống Thông tin.
Câu hỏi thường gặp
1. Hệ thống đáp ứng yêu cầu kỹ thuật tối thiểu như thế nào để triển khai?
Hệ thống yêu cầu máy chủ cơ sở dữ liệu cài đặt SQL Server 2016 trở lên trên hệ điều hành Windows Server hoặc Windows 10/11 64-bit với RAM tối thiểu 8GB. Các máy trạm của thủ thư chỉ cần cài đặt .NET Framework 4.8 hoặc .NET 8 Runtime, kết nối mạng LAN thông suốt với máy chủ và một đầu đọc mã vạch chuẩn USB cắm nhận trực tiếp (Plug-and-Play).
2. Khả năng chịu tải đồng thời có bị giới hạn khi số lượng bạn đọc tăng đột biến đầu năm học?
Kiến trúc đã được kiểm nghiệm chịu tải tốt với 35 kết nối đồng thời liên tục mà không gây khóa chết bảng dữ liệu (Deadlock). Khi số lượng truy cập vượt quá 100 người dùng đồng thời, hệ thống có thể mở rộng thông qua cấu hình Connection Pooling trên ADO.NET và kích hoạt bộ nhớ đệm In-Memory Caching cho các bảng danh mục ít thay đổi như Theloai, DonVi, VitriTL.
3. Quy trình xử lý khi phát hiện độc giả làm mất hoặc làm hỏng sách diễn ra như thế nào?
Thủ thư mở Use Case Xử lý độc giả vi phạm, quét thẻ thư viện của độc giả. Hệ thống tự động truy xuất giá bìa gốc từ bảng Tailieu. Nếu mất sách, hệ thống xuất phiếu phạt $100%$ giá bìa; nếu rách hỏng mức độ nặng ($\ge 90%$), hệ thống tính phạt $90%$ giá bìa và tự động kích hoạt cờ khóa thẻ (TinhTrang = 'Khóa') trên bảng DocGia.
4. Dữ liệu mượn trả có bị mất mát nếu máy chủ gặp sự cố mất điện đột ngột?
Hệ thống được thiết kế toàn bộ các giao dịch mượn/trả/nhập sách dưới cơ chế ACID Transaction. Đồng thời, module Sao lưu và Phục hồi dữ liệu cho phép quản trị viên thiết lập lịch sao lưu tự động Full Backup vào cuối ngày và Differential Backup định kỳ mỗi giờ sang ổ đĩa vật lý riêng biệt.
5. Dự án này có thể tích hợp với cổng thông tin đào tạo của trường đại học không?
Hoàn toàn khả thi. Bảng DocGia và DSDKTaoThe đã được chuẩn hóa với các trường MaDK (Mã sinh viên), MaDV (Khoa), MaLop. Hệ thống có thể tích hợp trực tiếp qua Database Linked Server hoặc viết thêm các RESTful API endpoints để đồng bộ danh sách sinh viên nhập học hàng năm từ phòng Đào tạo.
Kết luận
Hệ thống Quản lý Thư viện do nhóm nghiên cứu phát triển đã giải quyết trọn vẹn các thách thức lớn trong công tác quản trị thư viện học thuật hiện đại. Bằng việc kết hợp chặt chẽ giữa phương pháp phân tích thiết kế hướng đối tượng, kiến trúc dữ liệu chuẩn hóa 17 thực thể, và công nghệ tự động hóa mã vạch, đồ án mang lại giải pháp toàn diện với hiệu năng ấn tượng: xử lý 96.4% giao dịch dưới 2 phút, chịu tải 35 người dùng đồng thời, và giảm 87.5% thời gian tìm kiếm tài liệu. Đây không chỉ là một công trình nghiên cứu ứng dụng có giá trị thực tiễn cao cho các cơ sở giáo dục mà còn là tài liệu tham khảo kỹ thuật chuẩn mực cho cộng đồng phát triển phần mềm quản lý.