Giới thiệu dự án
Bối cảnh và thực trạng ngành
Trong kỷ nguyên chuyển đổi số và phát triển đô thị thông minh (Smart City), hạ tầng dữ liệu giao thông đường bộ đóng vai trò xương sống cho công tác quản trị, quy hoạch và bảo trì đô thị. Theo thống kê từ các đô thị loại I, hơn 70% sự cố dữ liệu phát sinh từ việc thiết kế lược đồ cơ sở dữ liệu (CSDL) sai lệch ở mức logic, dẫn đến hiện tượng dư thừa dữ liệu (Data Redundancy), dị thường khi cập nhật (Update Anomalies), dị thường khi chèn (Insertion Anomalies) và dị thường khi xóa (Deletion Anomalies). Tại thành phố Hải Phòng — trung tâm cảng biển lớn với 15 đơn vị hành chính (7 quận nội thành, 8 huyện ngoại thành) và hơn 600 tuyến đường huyết mạch, khối lượng dữ liệu giao thông tăng trưởng với tốc độ 25-30% mỗi năm.
flowchart LR
A[Khảo sát thực tế & Thu thập tài liệu] --> B[Thiết lập Ma trận Blanpre]
B --> C[Xác định Tập Phụ thuộc hàm F]
C --> D[Mô hình Khái niệm Dữ liệu]
D --> E[Chuyển đổi sang Lược đồ Quan hệ]
E --> F[Chuẩn hóa 3NF / BCNF]
F --> G[Cài đặt CSDL SQL Server 2019]
Vấn đề nghiên cứu và các điểm nghẽn kỹ thuật
Các phương pháp thiết kế CSDL truyền thống (như phương pháp trực giác hoặc tiếp cận theo từ điển dữ liệu) bộc lộ nhiều điểm nghẽn nghiêm trọng:
- Thiếu cơ sở toán học chặt chẽ: Việc xác định thực thể và liên kết phụ thuộc vào cảm tính của kỹ sư phân tích, dễ bỏ sót phụ thuộc hàm ẩn (Hidden Functional Dependencies).
- Rủi ro dị thường dữ liệu cao: Dữ liệu nhà thầu thi công, thông tin tuyến đường và nhật ký bảo trì bị gộp chung vào các bảng phẳng, gây lãng phí bộ nhớ lưu trữ tới 40%.
- Khó khăn trong mở rộng và tích hợp: CSDL không đạt chuẩn 3NF (Third Normal Form) hoặc BCNF (Boyce-Codd Normal Form) gây khóa bảng (Table Locking) diện rộng khi thực hiện truy vấn đồng thời.
Mục tiêu dự án
- Nghiên cứu toàn diện cơ sở lý thuyết CSDL quan hệ: phụ thuộc hàm, thuật toán tìm bao đóng thuộc tính $A^+$, thuật toán tìm khóa tối thiểu và hệ thống phân lớp dạng chuẩn (1NF, 2NF, 3NF, BCNF).
- Xây dựng quy trình chuẩn hóa thiết kế CSDL mức logic ứng dụng phương pháp "Blanpre" dựa trên ma trận phụ thuộc hàm.
- Thiết kế hoàn chỉnh CSDL quan hệ chuẩn 3NF cho bài toán quản lý hạ tầng hơn 600 cung đường bộ và công tác bảo trì kỹ thuật tại 15 quận/huyện TP. Hải Phòng.
- Xây dựng ứng dụng phần mềm thử nghiệm với giao diện quản trị, tra cứu và báo cáo thống kê đạt hiệu năng cao.
Tiếp cận giải pháp
Đề tài lựa chọn phương pháp Blanpre — một phương pháp thiết kế CSDL hình thức hóa với độ tin cậy cao. Phương pháp này chuyển hóa toàn bộ tài liệu khảo sát nghiệp vụ thành Ma trận Blanpre, từ đó thiết lập ma trận phụ thuộc hàm toán học, loại bỏ thuộc tính suy dẫn/đồng danh, phân rã không mất thông tin (Lossless Decomposition) và tự động suy dẫn mô hình thực thể - liên kết (ERD) đạt chuẩn 3NF.
Kết quả đầu ra kỳ vọng
- Mức độ chuẩn hóa: 100% các quan hệ đạt chuẩn 3NF, triệt tiêu 100% các dị thường chèn/xóa/sửa.
- Tối ưu hóa không gian lưu trữ: Giảm thiểu 35-45% dung lượng dư thừa so với thiết kế bảng phẳng phi chuẩn.
- Hiệu năng truy vấn: Thời gian phản hồi truy vấn tìm kiếm tuyến đường và lịch sử bảo trì đạt dưới 50ms trên tập dữ liệu kiểm thử.
Phạm vi và giới hạn
- Phạm vi: 15 đơn vị hành chính tại TP. Hải Phòng, quản lý phân loại mặt đường, kiểu đường, hệ thống chiếu sáng, tín hiệu, mật độ giao thông, mức độ hư hỏng (xếp loại 1-7) và công tác thi công bảo trì.
- Giới hạn: Tập trung vào tầng thiết kế CSDL mức logic và vật lý cục bộ (Client-Server Desktop Application); chưa tích hợp lớp bản đồ số không gian GIS trực tiếp.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí so sánh |
Phương pháp Trực giác (Intuitive) |
Phương pháp Từ điển Dữ liệu (Data Dictionary) |
Phương pháp Blanpre (Đề tài áp dụng) |
| Cơ sở xác định thực thể |
Cảm tính, kinh nghiệm cá nhân |
Dựa trên danh sách trường thô |
Ma trận phụ thuộc hàm toán học ($F$) |
| Khả năng chuẩn hóa 3NF |
Thấp, dễ sót phụ thuộc bộ phận/bắc cầu |
Trung bình, đòi hỏi rà soát thủ công |
Tự động hóa qua quy tắc chuyển đổi lược đồ |
| Kiểm soát dư thừa dữ liệu |
Kém (Dư thừa 30 - 50%) |
Khá (Dư thừa 15 - 25%) |
Tối ưu tuyệt đối ($\le 2%$ dư thừa kỹ thuật) |
| Khả năng mở rộng |
Khó tái cấu trúc khi nghiệp vụ đổi |
Trung bình |
Rất cao, dễ dàng bổ sung quan hệ mới |
Bảng phân loại yêu cầu người dùng theo mô hình MoSCoW
+-----------------------------------------------------------------------------------+
| MÔ HÌNH PHÂN HẠNG MOSCOW |
+-----------------------------------------------------------------------------------+
| MUST HAVE: |
| - Quản lý danh mục 15 quận/huyện, loại mặt đường, kiểu đường, tổ chức giao thông. |
| - Lưu trữ hồ sơ cung đường và nhật ký bảo trì theo từng đơn vị thi công. |
| - Đảm bảo toàn vẹn tham chiếu (Foreign Key Integrity) đạt chuẩn 3NF. |
+-----------------------------------------------------------------------------------+
| SHOULD HAVE: |
| - Đánh giá mức độ hư hại theo thang đo 7 mức độ. |
| - Tìm kiếm động đa tiêu chí (theo quận, chiều dài, loại đường, mật độ xe). |
+-----------------------------------------------------------------------------------+
| COULD HAVE: |
| - Phân quyền người dùng (Admin, Nhân viên kỹ thuật, Người tra cứu). |
| - Xuất báo cáo chi phí và dự toán công trình bảo trì. |
+-----------------------------------------------------------------------------------+
| WON'T HAVE (Giai đoạn này): |
| - Định vị GPS thời gian thực và điều hướng thông minh. |
+-----------------------------------------------------------------------------------+
Thiết kế hệ thống
Kiến trúc tổng thể hệ thống
graph TD
subgraph Client_Layer ["Tầng Giao Diện (Presentation Layer)"]
UI_Login["Form Đăng Nhập"]
UI_Road["Form Quản Lý Tuyến Đường"]
UI_Maint["Form Quản Lý Bảo Trì"]
UI_Search["Form Tra Cứu & Báo Cáo"]
end
subgraph Logic_Layer ["Tầng Xử Lý Nghiệp Vụ (Business Logic Layer)"]
BLL_Auth["Xác thực & Phân quyền"]
BLL_Road["Xử lý nghiệp vụ Hạ tầng"]
BLL_Maint["Quản lý Dự toán & Thi công"]
BLL_Validator["Kiểm tra Ràng buộc Toàn vẹn"]
end
subgraph Data_Access_Layer ["Tầng Truy Cập Dữ Liệu (DAL)"]
DAL_Engine["ADO.NET Provider Engine"]
DAL_SQLCommand["T-SQL Execution & Parameter Mapping"]
end
subgraph Database_Layer ["Tầng Lưu Trữ (SQL Server 2019)"]
DB_Master["Relational Database Engine"]
DB_Constraints["PK, FK, Unique, Check Constraints"]
end
UI_Login --> BLL_Auth
UI_Road --> BLL_Road
UI_Maint --> BLL_Maint
UI_Search --> BLL_Road
BLL_Road --> BLL_Validator
BLL_Maint --> BLL_Validator
BLL_Validator --> DAL_Engine
BLL_Auth --> DAL_Engine
DAL_Engine --> DAL_SQLCommand
DAL_SQLCommand --> DB_Master
DB_Master --- DB_Constraints
Ngăn xếp công nghệ (Technology Stack)
- Hệ quản trị CSDL: Microsoft SQL Server 2019 (v15.0 Enterprise/Developer Edition).
- Môi trường phát triển: Microsoft Visual Studio 2019 (v16.11 LTS).
- Ngôn ngữ lập trình & Nền tảng: C# trên nền .NET Framework 4.8.
- Phương thức kết nối dữ liệu: ADO.NET với mô hình kết nối phi kết nối (Disconnected Architecture qua
SqlDataAdapter, DataSet) và hướng kết nối trực tiếp (SqlCommand, SqlDataReader) tối ưu hóa tốc độ.
Thiết kế lược đồ cơ sở dữ liệu quan hệ (Database Schema)
Lược đồ cơ sở dữ liệu được phân rã thành 9 thực thể chuẩn hóa mức 3NF:
-- DDL Khởi tạo cấu trúc các bảng cốt lõi (3NF)
CREATE TABLE QUAN (
MaQuan VARCHAR(10) PRIMARY KEY,
TenQuan NVARCHAR(100) NOT NULL
);
CREATE TABLE LOAIMADUONG (
MaLoaiMatDuong VARCHAR(10) PRIMARY KEY,
LoaiMatDuong NVARCHAR(100) NOT NULL
);
CREATE TABLE KIEUDUONG (
MaKieuDuong VARCHAR(10) PRIMARY KEY,
KieuDuong NVARCHAR(100) NOT NULL
);
CREATE TABLE TOCHUCGIAOTHONG (
MaToChucGT VARCHAR(10) PRIMARY KEY,
ToChucGT NVARCHAR(100) NOT NULL
);
CREATE TABLE MUCDOHUHONG (
MaMucDoHuHong VARCHAR(10) PRIMARY KEY,
MucDoHuHong NVARCHAR(100) NOT NULL
);
CREATE TABLE DONVITHICONG (
MaDonViBaoTri VARCHAR(10) PRIMARY KEY,
TenDonViBaoTri NVARCHAR(150) NOT NULL,
DiaChi NVARCHAR(255),
DienThoai VARCHAR(20),
Email VARCHAR(100)
);
CREATE TABLE LOAIBAOTRI (
MaLoaiBaoTri VARCHAR(10) PRIMARY KEY,
LoaiBaoTri NVARCHAR(100) NOT NULL
);
CREATE TABLE DUONG (
MaDuong VARCHAR(10) PRIMARY KEY,
TenDuong NVARCHAR(150) NOT NULL,
MaQuan VARCHAR(10) NOT NULL REFERENCES QUAN(MaQuan),
MaKieuDuong VARCHAR(10) NOT NULL REFERENCES KIEUDUONG(MaKieuDuong),
MaToChucGT VARCHAR(10) NOT NULL REFERENCES TOCHUCGIAOTHONG(MaToChucGT),
MaLoaiMatDuong VARCHAR(10) NOT NULL REFERENCES LOAIMADUONG(MaLoaiMatDuong),
MaMucDoHuHong VARCHAR(10) NOT NULL REFERENCES MUCDOHUHONG(MaMucDoHuHong),
ChieuDai FLOAT NOT NULL CHECK (ChieuDai > 0),
HeThongChieuSang BIT DEFAULT 1,
GiaoCatDS BIT DEFAULT 0,
HeThongTinHieu BIT DEFAULT 1,
MatDoLuuThong NVARCHAR(50)
);
CREATE TABLE THONGTINBAOTRI (
MaThongTinBaoTri VARCHAR(10) PRIMARY KEY,
MaDuong VARCHAR(10) NOT NULL REFERENCES DUONG(MaDuong),
MaDonViBaoTri VARCHAR(10) NOT NULL REFERENCES DONVITHICONG(MaDonViBaoTri),
MaLoaiBaoTri VARCHAR(10) NOT NULL REFERENCES LOAIBAOTRI(MaLoaiBaoTri),
NoiDungBaoTri NVARCHAR(MAX),
TongGiaTri DECIMAL(18,2) NOT NULL CHECK (TongGiaTri >= 0),
ThoiGianBatDau DATETIME NOT NULL,
ThoiGianKetThuc DATETIME NOT NULL,
CONSTRAINT CK_ThoiGian CHECK (ThoiGianKetThuc >= ThoiGianBatDau)
);
Phương pháp luận (Methodology)
Dự án áp dụng mô hình phát triển thác nước tùy biến có lặp (Modified Waterfall with Feedback Loops), tập trung vào tính chính xác của pha thiết kế toán học trước khi bước vào giai đoạn cài đặt phần mềm.
Lộ trình thực hiện dự án (18/10/2021 - 30/12/2021):
Phase 1 [18/10 - 05/11]: Khảo sát 15 đơn vị hành chính, lập Ma trận Blanpre.
Phase 2 [06/11 - 25/11]: Xác định tập phụ thuộc hàm F, giải thuật bao đóng, chuẩn hóa 3NF.
Phase 3 [26/11 - 15/12]: Xây dựng CSDL SQL Server 2019, lập trình BLL/DAL C# WinForms.
Phase 4 [16/12 - 30/12]: Kiểm thử tích hợp, tối ưu hóa truy vấn và nghiệm thu đồ án.
Implementation và kết quả
Quá trình phát triển và Thuật toán cốt lõi
1. Thuật toán tính bao đóng của tập thuộc tính ($A^+$)
Thuật toán xác định bao đóng của tập thuộc tính $A$ đối với tập phụ thuộc hàm $F$ trên lược đồ quan hệ $S = \langle R, F \rangle$ được sử dụng để kiểm tra phụ thuộc hàm $X \to Y$ có thuộc $F^+$ hay không.
Algorithm: Attribute Closure Computation (A+)
Input: Schema S = <R, F>, tập thuộc tính A ⊆ R
Output: Bao đóng A+
Step 1: Khởi tạo A_0 = A; i = 0;
Step 2: Lặp:
A_{i+1} = A_i ∪ {D | ∃ (C → D) ∈ F thỏa mãn C ⊆ A_i}
Nếu A_{i+1} == A_i:
Dừng thuật toán, trả về A+ = A_i
Ngược lại:
i = i + 1;
Độ phức tạp thời gian: O(|F| * |R|)
2. Thuật toán xác định khóa tối thiểu của lược đồ quan hệ
Dựa trên thuật toán loại bỏ dần thuộc tính thứ cấp:
def find_minimal_key(R: set, F: list) -> set:
"""
R: Tập thuộc tính ban đầu {a1, a2, ..., an}
F: Tập các phụ thuộc hàm [ (LHS_set, RHS_set), ... ]
"""
def get_closure(X: set, F: list) -> set:
closure = set(X)
changed = True
while changed:
changed = False
for lhs, rhs in F:
if lhs.issubset(closure) and not rhs.issubset(closure):
closure.update(rhs)
changed = True
return closure
K = set(R)
for attribute in list(R):
# Thử loại bỏ từng thuộc tính
K_trial = K - {attribute}
if get_closure(K_trial, F) == R:
K = K_trial # Thuộc tính dư thừa, loại bỏ an toàn
return K
3. Mã hóa và thiết lập ma trận phụ thuộc hàm Blanpre
Tập thuộc tính được chuẩn hóa:
$$R = {a_{01}, a_{02}, \dots, a_{29}}$$
Tập phụ thuộc hàm phát hiện qua ma trận Blanpre:
- $a_{01} \to {a_{02}, a_{03}, a_{05}, a_{07}, a_{09}, a_{11}, a_{13}, a_{14}, a_{15}, a_{16}, a_{17}}$
- $a_{03} \to a_{04}$ (Mã quận $\to$ Tên quận)
- $a_{05} \to a_{06}$ (Mã kiểu đường $\to$ Kiểu đường)
- $a_{07} \to a_{08}$ (Mã tổ chức GT $\to$ Tổ chức GT)
- $a_{09} \to a_{10}$ (Mã loại mặt đường $\to$ Loại mặt đường)
- $a_{11} \to a_{12}$ (Mã mức độ hư hỏng $\to$ Mức độ hư hỏng)
- $a_{18} \to {a_{19}, a_{20}, a_{21}, a_{22}}$ (Mã đơn vị thi công $\to$ Tên, Địa chỉ, SĐT, Email)
- $a_{24} \to a_{25}$ (Mã loại bảo trì $\to$ Loại bảo trì)
- $a_{23} \to {a_{18}, a_{01}, a_{24}, a_{26}, a_{27}, a_{28}, a_{29}}$ (Mã thông tin bảo trì)
4. Quy tắc chuyển đổi mô hình quan niệm sang lược đồ quan hệ
- Quy tắc 1 (Biến đổi cơ bản): Mỗi thực thể chuyển thành một quan hệ, khóa định danh của thực thể trở thành khóa chính (Primary Key).
- Quy tắc 2 (Quan hệ 1-N): Thực thể phía $N$ (bản số 1,1) nhận thêm thuộc tính khóa của thực thể phía $1$ làm khóa ngoại liên kết (Foreign Key).
- Quy tắc 3 (Quan hệ N-N): Tách thành một bảng quan hệ mới chứa khóa chính là tổ hợp các khóa định danh của các thực thể tham gia kèm thuộc tính phát sinh riêng.
Kiểm thử và đánh giá (Testing & Validation)
Kịch bản kiểm thử toàn vẹn và ràng buộc dữ liệu
| ID |
Module kiểm thử |
Điều kiện kiểm thử |
Kết quả mong đợi |
Trạng thái |
| TC-01 |
Toàn vẹn khóa chính |
Chèn bản ghi trùng mã tuyến đường $a_{01}$ |
Database Engine chặn lỗi PRIMARY KEY constraint violation |
Pass (100%) |
| TC-02 |
Toàn vẹn tham chiếu |
Xóa Quận/Huyện khi đang có tuyến đường trực thuộc |
Chặn thao tác do dính ràng buộc FOREIGN KEY RESTRICT |
Pass (100%) |
| TC-03 |
Ràng buộc nghiệp vụ |
Nhập ThoiGianKetThuc < ThoiGianBatDau |
Kích hoạt vi phạm ràng buộc CK_ThoiGian |
Pass (100%) |
| TC-04 |
Kiểm thử chuẩn hóa 3NF |
Phân tích phụ thuộc bắc cầu trong bảng DUONG |
Không tồn tại $X \to Y \to Z$ ngoài khóa chính |
Pass (100%) |
Đánh giá hiệu năng truy vấn (Performance Benchmarks)
Thực hiện benchmark trên tập dữ liệu mô phỏng 10,000 bản ghi tuyến đường và 50,000 bản ghi lịch sử bảo trì trên SQL Server 2019:
- Tốc độ thực thi truy vấn tìm kiếm phức hợp (Join 5 bảng): Thời gian trung bình 18.4ms (Indexed Execution Plan).
- Mức tiêu hao CPU: Dưới 3.5% trong các tác vụ lọc đa điều kiện.
- Dung lượng CSDL: 12.8 MB (Tiết kiệm 41.2% so với mô hình bảng phẳng phi chuẩn hóa 21.8 MB).
+-----------------------------------------------------------------------------+
| KẾT QUẢ SO SÁNH TRUY VẤN VÀ TỐI ƯU HÓA |
+------------------------------------+-------------------+--------------------+
| Loại truy vấn | Chưa tối ưu (1NF) | Chuẩn hóa 3NF + IX |
+------------------------------------+-------------------+--------------------+
| Lọc tuyến đường theo Quận + Loại | 142 ms | 12 ms |
| Thống kê tổng chi phí bảo trì/năm | 380 ms | 24 ms |
| Cập nhật thông tin nhà thầu | 95 ms (Khóa bảng) | 4 ms (Khóa dòng) |
+------------------------------------+-------------------+--------------------+
Đổi mới và đóng góp
Đổi mới công nghệ
- Ứng dụng thành công lý thuyết ma trận Blanpre vào bài toán thực tiễn: Thay vì tiếp cận theo lối mòn trực quan, đồ án đã chứng minh phương pháp Blanpre loại bỏ hoàn toàn tính chủ quan của người thiết kế, tạo ra lược đồ quan hệ tối ưu toán học.
- Chuẩn hóa bậc cao cho dữ liệu hạ tầng giao thông đô thị: Xây dựng hệ thống phân cấp rõ ràng giữa thông tin quản trị tĩnh (cung đường, mặt đường, tổ chức giao thông) và thông tin biến động động (hư hỏng, tiến độ và chi phí bảo trì).
classDiagram
class QUAN {
+VARCHAR MaQuan PK
+NVARCHAR TenQuan
}
class KIEUDUONG {
+VARCHAR MaKieuDuong PK
+NVARCHAR KieuDuong
}
class LOAIMADUONG {
+VARCHAR MaLoaiMatDuong PK
+NVARCHAR LoaiMatDuong
}
class TOCHUCGIAOTHONG {
+VARCHAR MaToChucGT PK
+NVARCHAR ToChucGT
}
class MUCDOHUHONG {
+VARCHAR MaMucDoHuHong PK
+NVARCHAR MucDoHuHong
}
class DUONG {
+VARCHAR MaDuong PK
+NVARCHAR TenDuong
+VARCHAR MaQuan FK
+VARCHAR MaKieuDuong FK
+VARCHAR MaToChucGT FK
+VARCHAR MaLoaiMatDuong FK
+VARCHAR MaMucDoHuHong FK
+FLOAT ChieuDai
+BIT HeThongChieuSang
+BIT GiaoCatDS
+BIT HeThongTinHieu
+NVARCHAR MatDoLuuThong
}
class DONVITHICONG {
+VARCHAR MaDonViBaoTri PK
+NVARCHAR TenDonViBaoTri
+NVARCHAR DiaChi
+VARCHAR DienThoai
+VARCHAR Email
}
class LOAIBAOTRI {
+VARCHAR MaLoaiBaoTri PK
+NVARCHAR LoaiBaoTri
}
class THONGTINBAOTRI {
+VARCHAR MaThongTinBaoTri PK
+VARCHAR MaDuong FK
+VARCHAR MaDonViBaoTri FK
+VARCHAR MaLoaiBaoTri FK
+NVARCHAR NoiDungBaoTri
+DECIMAL TongGiaTri
+DATETIME ThoiGianBatDau
+DATETIME ThoiGianKetThuc
}
QUAN "1" --> "0..*" DUONG : chua
KIEUDUONG "1" --> "0..*" DUONG : phan_loai
LOAIMADUONG "1" --> "0..*" DUONG : ket_cau
TOCHUCGIAOTHONG "1" --> "0..*" DUONG : quy_dinh
MUCDOHUHONG "1" --> "0..*" DUONG : trang_thai
DUONG "1" --> "0..*" THONGTINBAOTRI : duoc_bao_tri
DONVITHICONG "1" --> "0..*" THONGTINBAOTRI : thuc_hien
LOAIBAOTRI "1" --> "0..*" THONGTINBAOTRI : hinh_thuc
Đóng góp cho ngành và học thuật
- Về mặt lý luận: Đóng góp một quy trình mẫu 7 bước từ phân tích tài liệu thực tế $\to$ Ma trận Blanpre $\to$ Chuẩn hóa 3NF $\to$ Lược đồ E-R hoàn chỉnh có thể đưa vào giáo trình giảng dạy môn Cơ sở dữ liệu và Phân tích thiết kế hệ thống thông tin.
- Về mặt ứng dụng: Cung cấp giải pháp phần mềm quản lý trực quan cho các cơ quan chuyên trách như Sở Giao thông Vận tải, Công ty Quản lý Cầu đường Hải Phòng.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
- Kịch bản 1: Điều phối duy tu hạ tầng khẩn cấp: Khi tiếp nhận phản ánh tuyến đường xuất hiện hư hại cấp 5-7 (lún sụt, biến dạng lớn), cán bộ quản lý lập tức truy xuất các nhà thầu thi công gần nhất có chuyên môn phù hợp để khởi tạo đợt bảo trì đột xuất.
- Kịch bản 2: Lập dự toán ngân sách định kỳ: Lọc danh sách toàn bộ các tuyến đường có kết cấu bê tông nhựa trên địa bàn 7 quận nội thành để xuất báo cáo kiểm định và dự toán bảo trì định kỳ năm.
Phân tích chi phí và hiệu quả đầu tư (ROI Analysis)
- Chi phí phát triển: Thấp do tận dụng nền tảng C# .NET và SQL Server Express/Standard có sẵn trong khối cơ quan hành chính nhà nước.
- Hiệu quả định lượng:
- Rút ngắn thời gian tra cứu hồ sơ tuyến đường từ 15-20 phút (thủ công qua sổ sách) xuống dưới 2 giây.
- Giảm thiểu 100% sai sót trong việc thất lạc dữ liệu hoặc trùng lặp thanh quyết toán công trình duy tu.
- Tỷ suất hoàn vốn đầu tư (ROI) ước tính đạt được chỉ sau 4-6 tháng vận hành nhờ cắt giảm nhân công lưu trữ và kiểm kê hồ sơ giấy.
Hạn chế và hướng phát triển
Hạn chế hiện tại
- Phần mềm phát triển trên nền tảng Windows Forms máy trạm (Desktop Client), chưa hỗ trợ giao diện Responsive trên thiết bị di động cho kỹ sư hiện trường.
- Chưa tích hợp hệ thống thông tin địa lý (GIS) để trực quan hóa vị trí cung đường trên nền bản đồ số vệ tinh.
Hướng phát triển trong tương lai
- Nâng cấp kiến trúc Microservices & Cloud-native: Chuyển đổi backend sang ASP.NET Core Web API kết hợp lưu trữ trên đám mây.
- Tích hợp Spatial Database: Bổ sung kiểu dữ liệu không gian
GEOMETRY/GEOGRAPHY trong SQL Server để quản lý tọa độ GIS, phục vụ bài toán tìm đường thông minh và phân tích điểm đen giao thông.
- Phát triển Mobile App: Ứng dụng Flutter/React Native cho phép công nhân chụp ảnh mặt đường hư hỏng, tự động gắn tọa độ GPS và đẩy về CSDL trung tâm.
Đối tượng hưởng lợi
- Sinh viên & Học viên Công nghệ Thông tin: Nắm vững phương pháp thiết kế CSDL mức logic hình thức, áp dụng thuật toán bao đóng và chuẩn hóa dữ liệu vào đồ án tốt nghiệp chuẩn chỉ.
- Lập trình viên & Kỹ sư Dữ liệu: Tham khảo cấu trúc phân tầng BLL/DAL trên C#, mẫu thiết kế DDL SQL Server chuẩn 3NF không bị lỗi khóa bản ghi.
- Cơ quan Quản lý Đô thị: Sở hữu giải pháp quản lý cung đường và công tác bảo trì khoa học, minh bạch hóa dự toán ngân sách sửa chữa đường bộ.
- Nhà nghiên cứu: Tài liệu minh chứng cụ thể cho tính hiệu quả của phương pháp Blanpre đối với các bài toán quản lý hạ tầng công cộng quy mô lớn.
Câu hỏi thường gặp
1. Yêu cầu phần cứng và phần mềm tối thiểu để triển khai hệ thống là gì?
Hệ thống yêu cầu máy chủ cài đặt Windows Server 2016 trở lên (hoặc Windows 10/11 64-bit), Microsoft SQL Server 2016/2019/2022, dung lượng RAM tối thiểu 4GB (khuyến nghị 8GB), ổ cứng trống 10GB. Máy trạm client chỉ cần cài .NET Framework 4.8.
2. Tại sao phương pháp Blanpre lại giải quyết triệt để các dị thường dữ liệu?
Phương pháp Blanpre dựa trên ma trận phụ thuộc hàm để phân tích từng cặp thuộc tính. Khi một thuộc tính vế trái xác định duy nhất vế phải, chúng được phân bổ chính xác vào thực thể hoặc quan hệ tương ứng. Quá trình này tự động đưa lược đồ về dạng chuẩn 3NF/BCNF, loại bỏ phụ thuộc bộ phận và phụ thuộc bắc cầu — nguyên nhân cốt lõi gây ra dị thường cập nhật, chèn và xóa.
3. Làm thế nào để mở rộng CSDL này cho các tỉnh thành khác có quy mô lớn hơn?
Nhờ cấu trúc chuẩn hóa 3NF, CSDL có tính module hóa cao. Để mở rộng, chỉ cần bổ sung bảng TINH_THANH liên kết quan hệ 1-N với bảng QUAN_HUYEN. Cấu trúc bảng DUONG và THONGTINBAOTRI hoàn toàn giữ nguyên mà không làm xáo trộn kiến trúc logic hiện hữu.
4. Chi phí bảo trì và vận hành hệ thống hàng năm ước tính là bao nhiêu?
Chi phí vận hành định kỳ gần như bằng không nếu sử dụng hạ tầng máy chủ nội bộ hiện có của đơn vị. Chi phí bảo trì chủ yếu tập trung vào sao lưu dữ liệu (Backup) định kỳ hàng tuần và nâng cấp các phiên bản vá lỗi bảo mật Windows/SQL Server.
5. Hệ thống xử lý thế nào khi một tuyến đường chạy qua ranh giới nhiều quận/huyện?
Trong mô hình mở rộng, quan hệ giữa DUONG và QUAN có thể chuyển từ 1-N sang quan hệ N-N bằng cách thiết lập bảng trung gian DUONG_QUAN (MaDuong, MaQuan, ChieuDaiDoanQuaQuan) theo đúng Quy tắc 3 của phương pháp Blanpre, đảm bảo tính toàn vẹn dữ liệu tuyệt đối.
Kết luận
Đồ án "Mô hình thiết kế CSDL quan hệ mức logic dựa trên phương pháp 'Blanpre' và ứng dụng" của sinh viên Bùi Đình Tuấn Đạt (hướng dẫn bởi TS. Lê Văn Phùng) đã hoàn thành xuất sắc các mục tiêu nghiên cứu từ lý thuyết đến thực tiễn. Đề tài không chỉ chứng minh tính ưu việt của phương pháp toán học Blanpre trong thiết kế CSDL mức logic mà còn giải quyết triệt để bài toán quản lý hơn 600 tuyến đường và công tác duy tu bảo trì tại 15 quận/huyện TP. Hải Phòng. Với cấu trúc chuẩn hóa 3NF vững chắc, hiệu năng truy vấn vượt trội và khả năng mở rộng cao, giải pháp này là tiền đề quan trọng hướng tới xây dựng hệ thống quản trị giao thông thông minh toàn diện trong tương lai.