Đối với cộng đồng sinh viên Ứng dụng phần mềm (UDPM) tại FPT Polytechnic TP HCM, giai đoạn làm Dự án 1 hay Dự án Tốt nghiệp luôn là khoảng thời gian thử thách nhất. Giao diện người dùng thiết kế đẹp mắt, mã logic vận hành mượt mà, nhưng cứ hễ đụng đến việc ghép nối cơ sở dữ liệu chung với đồng đội là hệ thống lại rơi vào trạng thái bất ổn.

Thực trạng khủng hoảng dữ liệu lúc ba giờ sáng
Kịch bản quen thuộc của nhiều nhóm đồ án là thành viên thứ nhất viết mã nguồn trên môi trường nội bộ máy A, thành viên thứ hai lưu trữ tệp dữ liệu ở máy B, còn thành viên thứ ba thì xuất tệp định dạng lệnh SQL gửi qua các ứng dụng tin nhắn cho máy C. Đến khi ráp mã nguồn vào lúc rạng sáng, dữ liệu giữa các máy bắt đầu lệch nhau hoàn toàn, ứng dụng bị xung đột hệ thống và cả nhóm phải đối mặt với nguy cơ chậm tiến độ.
Series này được xây dựng nhằm mục đích giúp các bạn tiếp cận kiến thức quản trị cơ sở dữ liệu thực chiến một cách trực quan, đóng vai trò như một quản trị viên cơ sở dữ liệu để giải quyết bài toán cốt lõi của sinh viên ngành lập trình thông qua một mô phỏng dự án mang tên: FPoly Swagger.

Bối cảnh hệ sinh thái đa nền tảng của FPoly Swagger
Hãy tưởng tượng nhóm của bạn đang thực hiện một dự án tốt nghiệp quy mô lớn: Xây dựng hệ sinh thái bán lẻ thời trang đường phố có tên là FPoly Swagger. Do khối lượng công việc lớn, dự án được chia cho ba nhóm lập trình viên vận hành trên ba nền tảng hoàn toàn khác nhau.
Đầu tiên là nhóm phát triển Web sử dụng Java Spring Boot để phụ trách trang thương mại điện tử phục vụ khách hàng mua sắm và chốt đơn. Tiếp theo là nhóm ứng dụng Desktop sử dụng C# Winform để xây dựng phần mềm quản lý kho, nhập xuất hàng hóa và chấm công cho nhân viên nội bộ. Cuối cùng là nhóm ứng dụng di động sử dụng Android và Kotlin để thiết kế ứng dụng dành riêng cho đội ngũ giao hàng cập nhật trạng thái đơn hàng.

Bài toán đặt ra là khi khách hàng mua sắm trên nền tảng Web, hệ thống kho trên nền tảng Desktop phải lập tức trừ số lượng, đồng thời ứng dụng di động phải nhận được thông báo điều phối giao hàng theo thời gian thực. Để làm được điều này, cả ba ứng dụng bắt buộc phải truy cập vào một cơ sở dữ liệu tập trung duy nhất. Từ đây, hàng loạt vấn đề kỹ thuật sẽ phát sinh: Làm sao để ba nền tảng truy cập chung mà không gây nghẽn mạng? Làm sao để phân quyền không cho mã nguồn ứng dụng di động can thiệp vào bảng dữ liệu nhân sự của hệ thống Desktop? Làm sao để xử lý tình trạng nhiều người cùng mua một sản phẩm giới hạn mà không bị âm kho?
Lộ trình vượt qua các thách thức quản trị dữ liệu
Để giúp các nhóm đồ án tối ưu hóa hệ thống dữ liệu và vận hành cỗ máy quản trị một cách bền bỉ, series sẽ lần lượt đưa ra giải pháp cho năm bài toán kinh điển trong các kỳ đồ án tiếp theo.
Bài học thứ nhất tập trung vào việc giải quyết sự chia cắt dữ liệu giữa các máy trạm nội bộ. Nội dung sẽ hướng dẫn cách thiết lập một máy chủ trung tâm từ chính máy tính cá nhân trong nhóm, thực hiện mở cổng kết nối tường lửa để cả ba nhóm lập trình cùng tương tác trên một nguồn dữ liệu duy nhất.
Bài học thứ hai giải quyết vấn đề phân quyền bảo mật hệ thống. Thay vì sử dụng chung một tài khoản quản trị tối cao dẫn đến nguy cơ một thành viên vô tình gõ nhầm lệnh xóa sạch dữ liệu của phân hệ khác, nội dung sẽ hướng dẫn thiết lập cơ chế phân vùng cấu trúc dữ liệu và cấp quyền nghiêm ngặt cho từng tài khoản kỹ thuật theo đúng phạm vi công việc.
Bài học thứ ba tối ưu hóa hiệu năng truy vấn trước hội đồng bảo vệ. Khi ứng dụng phát sinh hàng ngàn câu lệnh truy vấn tự động làm máy chủ quá tải, giải pháp sử dụng thủ tục lưu trữ sẵn (Stored Procedure) sẽ được áp dụng. Phương pháp này giúp che giấu toàn bộ logic xử lý, tăng tốc độ phản hồi và nâng cao khả năng phòng chống các cuộc tấn công mạng.
Bài học thứ tư xử lý xung đột dữ liệu trong các chiến dịch bán hàng quy mô lớn. Khi khách hàng nhấn thanh toán trên Web cùng lúc nhân viên kho cập nhật số lượng trên ứng dụng Desktop, kỹ thuật giao tác (Transaction) và cơ chế khóa (Locking) của hệ quản trị cơ sở dữ liệu sẽ đứng ra điều phối, loại bỏ hoàn toàn lỗi tranh chấp số lượng tồn kho.
Bài học cuối cùng là giải pháp cứu vớt dữ liệu trong các tình huống khẩn cấp trước giờ bảo vệ. Nếu một thành viên lỡ tay xóa mất toàn bộ lịch sử đơn hàng demo, kỹ thuật phục hồi dữ liệu theo mốc thời gian dựa trên nhật ký giao tác sẽ giúp hệ thống quay ngược thời gian về thời điểm trước khi xảy ra sự cố, cứu sống toàn bộ công sức của nhóm.

Hành trình nâng cấp từ một lập trình viên thông thường thành một người làm chủ hệ thống cơ sở dữ liệu đã bắt đầu. Hãy chuẩn bị sẵn sàng công cụ quản trị hệ thống để bước vào bài học đầu tiên của series công nghệ thực chiến này.
Giảng viên Trần Quang Bình
Bộ môn Ứng dụng phần mềm
FPT Polytechnic TP HCM

