Trường đại học
Trường Đại Học Khoa HọcChuyên ngành
Công Nghệ Thông TinNgười đăng
Ẩn danhThể loại
Đồ Án Giữa Kỳ2023
Phí lưu trữ
30 PointMục lục chi tiết
Tóm tắt
Đề tài hệ thống quản lý bán vé tàu hỏa là một lựa chọn phổ biến và giá trị cho đồ án giữa kỳ ngành công nghệ thông tin. Hệ thống này giải quyết bài toán thực tiễn trong ngành vận tải đường sắt, một lĩnh vực đòi hỏi khả năng quản lý hiệu quả lượng thông tin khổng lồ. Việc số hóa quy trình bán vé không chỉ giúp giải phóng sức lao động con người khỏi các thao tác thủ công mà còn khẳng định vai trò trung tâm của cơ sở dữ liệu trong vận hành kinh doanh hiện đại. Một đồ án mẫu công nghệ thông tin về chủ đề này thường tập trung vào việc xây dựng một mô hình cơ sở dữ liệu thông minh để quản lý toàn diện các hoạt động, từ đăng ký tài khoản, đặt vé, thanh toán cho đến quản lý lịch trình và nhân sự. Mục tiêu cốt lõi là tạo ra một nền tảng trực tuyến, nơi hành khách có thể dễ dàng truy cập, tìm kiếm thông tin chuyến tàu, đặt vé trực tuyến và thực hiện thanh toán điện tử một cách nhanh chóng. Đối với nhà quản lý, hệ thống cung cấp công cụ để theo dõi hoạt động, quản lý lịch trình tàu, giám sát số lượng ghế trống và tạo các báo cáo thống kê doanh thu chính xác. Phạm vi của một đồ án giữa kỳ thường bao gồm các giai đoạn chính: phân tích thiết kế hệ thống, xây dựng cơ sở dữ liệu SQL, và hiện thực hóa các chức năng cơ bản. Đây là cơ hội để sinh viên áp dụng kiến thức lý thuyết vào một dự án có tính ứng dụng cao.
Công nghệ thông tin đã trở thành một phần không thể thiếu trong mọi hoạt động của đời sống. Các hệ thống như cửa hàng, ngân hàng, bệnh viện đều vận hành dựa trên cơ sở dữ liệu để theo dõi khách hàng, hàng tồn kho, và nhân viên. Đề tài xây dựng mô hình cơ sở dữ liệu về quản lý bán vé tàu hỏa trực tuyến được chọn vì nó phản ánh đúng tầm quan trọng của việc quản lý dữ liệu thông minh. Ngành vận tải đường sắt yêu cầu khả năng xử lý một lượng lớn thông tin một cách hiệu quả. Việc xây dựng hệ thống này giúp khẳng định vai trò của công nghệ thông tin trong việc giải phóng sức lao động, thay thế các thao tác thủ công bằng quy trình tự động hóa.
Mục tiêu chính của đề tài là xây dựng một hệ thống quản lý bán vé tàu hỏa hoàn chỉnh, cho phép người dùng đăng ký tài khoản, đặt vé và thanh toán trực tuyến. Hệ thống phải quản lý được thông tin chi tiết về hành khách, vé tàu, lịch trình, trạm tàu và nhân viên. Phạm vi đồ án tập trung vào các giai đoạn cốt lõi: phân tích yêu cầu, thiết kế cơ sở dữ liệu, xây dựng các lược đồ quan hệ, định nghĩa các ràng buộc toàn vẹn và hiện thực hóa hệ thống trên MS SQL Server. Các chức năng cụ thể bao gồm quản lý người dùng và phân quyền, đặt vé trực tuyến, và thanh toán điện tử qua các cổng như MoMo hoặc VNPay.
Xây dựng một hệ thống quản lý bán vé tàu hỏa hiệu quả đối mặt với nhiều thách thức, đặc biệt là trong việc xử lý dữ liệu lớn và đảm bảo tính nhất quán. Quy trình thủ công truyền thống thường gặp phải các vấn đề như sai sót trong ghi nhận thông tin, khó khăn trong việc cập nhật số lượng ghế trống theo thời gian thực, và sự phức tạp khi quản lý hàng ngàn giao dịch mỗi ngày. Thách thức lớn nhất nằm ở việc thiết kế một cơ sở dữ liệu SQL có khả năng chịu tải cao và bảo mật. Dữ liệu cần được tổ chức một cách logic để hỗ trợ các truy vấn phức tạp, chẳng hạn như tìm kiếm chuyến tàu theo lộ trình, thời gian và giá vé. Hơn nữa, việc đảm bảo các ràng buộc nghiệp vụ là cực kỳ quan trọng. Ví dụ, hệ thống phải ngăn chặn việc đặt vé vào ghế đã có người, đảm bảo thời gian thanh toán không vượt quá giới hạn cho phép (24 giờ), và cập nhật chính xác số lượng ghế trống sau mỗi giao dịch hủy hoặc đặt vé. Các yêu cầu này đòi hỏi một quá trình phân tích thiết kế hệ thống kỹ lưỡng, từ việc vẽ sơ đồ use case để xác định các tác nhân và hành động, đến việc xây dựng sơ đồ ERD để mô hình hóa các thực thể và mối quan hệ giữa chúng. Việc không giải quyết triệt để những thách thức này có thể dẫn đến một hệ thống thiếu ổn định, không đáp ứng được nhu cầu thực tế.
Một trong những thách thức cốt lõi là quản lý đồng thời thông tin của hàng ngàn khách hàng và giao dịch đặt vé trực tuyến. Mỗi khách hàng có thể đặt nhiều vé, và mỗi vé phải được liên kết duy nhất với một khách hàng. Hệ thống cần đảm bảo tính duy nhất của mã tài khoản, mã vé, và mã phiếu đăng ký. Thêm vào đó, việc xử lý các quy tắc nghiệp vụ như giới hạn số lượng vé mỗi lần đặt (không quá 10 vé) hay phân biệt giá giữa vé phổ thông và vé VIP đòi hỏi logic phức tạp trong cả thiết kế cơ sở dữ liệu và lập trình ứng dụng.
Dữ liệu trong hệ thống quản lý bán vé tàu hỏa phải luôn chính xác và nhất quán. Thách thức ở đây là làm sao để các thao tác như đặt vé, hủy vé, thanh toán không gây ra xung đột dữ liệu. Ví dụ, khi một hành khách đặt vé, số lượng ghế trống trên tàu phải được cập nhật ngay lập tức. Tương tự, một vé chỉ hợp lệ khi trạm đón và trạm dừng trên vé khớp với lộ trình của tàu. Việc đảm bảo các ràng buộc toàn vẹn này, ví dụ như "thời gian thanh toán không được vượt quá 24 giờ kể từ thời gian đặt vé", đòi hỏi phải thiết kế và triển khai các trigger và quy tắc chặt chẽ trong cơ sở dữ liệu SQL.
Quá trình phân tích thiết kế hệ thống là nền tảng cho một đồ án thành công. Giai đoạn này bắt đầu bằng việc xác định rõ ràng các yêu cầu chức năng và phi chức năng của hệ thống quản lý bán vé tàu hỏa. Quy trình hệ thống cần được mô tả chi tiết, từ lúc hành khách đăng ký tài khoản, đăng nhập, tìm kiếm chuyến đi, chọn vé, cho đến khi hoàn tất thanh toán và nhận phiếu đăng ký. Để trực quan hóa các yêu cầu này, việc sử dụng các sơ đồ UML là rất cần thiết. Sơ đồ use case giúp xác định các tác nhân (hành khách, quản trị viên) và các hành động tương ứng của họ với hệ thống. Tiếp theo, mô hình hóa dữ liệu là bước quan trọng nhất. Dựa trên mô tả dữ liệu, các thực thể chính như TAI_KHOAN, TAU, VE, HOA_DON được xác định. Sau đó, sơ đồ ERD (Mô hình quan hệ thực thể) được xây dựng để biểu diễn các thực thể, thuộc tính và mối quan hệ giữa chúng. Ví dụ, mối quan hệ một-nhiều giữa TAI_KHOAN và VE cho thấy một tài khoản có thể đặt nhiều vé. Giai đoạn thiết kế cũng bao gồm việc lựa chọn công nghệ lập trình, như Java hoặc C#, và quyết định kiến trúc hệ thống, thường là mô hình MVC để tách biệt logic nghiệp vụ, dữ liệu và giao diện.
Quy trình hệ thống bắt đầu khi hành khách đăng ký tài khoản với các thông tin cá nhân. Sau khi đăng nhập, hành khách có thể tìm kiếm chuyến tàu, xem thông tin chi tiết và thực hiện đặt vé trực tuyến. Các chức năng chính bao gồm: quản lý người dùng và phân quyền, quản lý thông tin tàu và trạm, quản lý nhân viên, xử lý đặt vé, và tích hợp cổng thanh toán điện tử. Mỗi chức năng cần được mô tả rõ ràng để làm cơ sở cho việc thiết kế cơ sở dữ liệu và giao diện sau này. Ví dụ, chức năng đặt vé phải xử lý được việc chọn loại vé (phổ thông/VIP) và tự động tính toán giá tiền tương ứng.
Mô hình hóa dữ liệu là bước chuyển hóa các yêu cầu nghiệp vụ thành một cấu trúc logic. Sơ đồ ERD là công cụ chính trong giai đoạn này. Các thực thể chính trong hệ thống bán vé tàu hỏa bao gồm TAI_KHOAN, TAU, TRAM_TAU, NHAN_VIEN, VE, PHIEU_DANGKY, và HOA_DON. Các mối quan hệ được xác định rõ ràng, ví dụ: một TAU có nhiều VE, một NHAN_VIEN phụ trách một TAU. Việc xác định chính xác các khóa chính (ID, matau, mave) và khóa ngoại là cực kỳ quan trọng để đảm bảo tính liên kết và toàn vẹn dữ liệu. Một sơ đồ ERD được thiết kế tốt sẽ là kim chỉ nam cho việc tạo các bảng trong cơ sở dữ liệu SQL.
Từ sơ đồ ERD, bước tiếp theo là hiện thực hóa cơ sở dữ liệu SQL. Quá trình này bao gồm việc chuyển đổi các thực thể và mối quan hệ thành các lược đồ quan hệ (bảng) và áp dụng các kỹ thuật chuẩn hóa để loại bỏ sự dư thừa dữ liệu. Mỗi bảng được định nghĩa với các thuộc tính, kiểu dữ liệu, khóa chính và khóa ngoại tương ứng. Ví dụ, bảng TAI_KHOAN bao gồm các cột như ID (khóa chính), hoten, tuoi, sodienthoai. Chuẩn hóa dữ liệu, thường là đến dạng chuẩn 3 (3NF), giúp đảm bảo rằng mỗi thuộc tính không khóa đều phụ thuộc hoàn toàn vào khóa chính, tránh các dị thường khi cập nhật dữ liệu. Tuy nhiên, phần quan trọng nhất là việc thiết lập các ràng buộc toàn vẹn. Các ràng buộc này là những quy tắc mà dữ liệu phải tuân theo, được trích xuất từ yêu cầu nghiệp vụ. Có nhiều loại ràng buộc: UNIQUE (đảm bảo ID tài khoản, mã nhân viên là duy nhất), FOREIGN KEY (liên kết bảng VE với TAI_KHOAN thông qua ID), và CHECK (giới tính chỉ là 'Nam' hoặc 'Nữ', loại vé là 'PT' hoặc 'VIP'). Đặc biệt, các ràng buộc phức tạp hơn, như "số năm kinh nghiệm của lái chính phải >= 5" (Ràng buộc 15), cần được hiện thực bằng các Trigger trong SQL. Một cơ sở dữ liệu SQL được xây dựng tốt không chỉ lưu trữ dữ liệu mà còn chủ động bảo vệ tính đúng đắn của nó.
Từ sơ đồ ERD, các lược đồ quan hệ (bảng) được tạo ra. Ví dụ, thực thể VE và các thuộc tính của nó được chuyển thành bảng VE(mave, thoigiandi, vitrighe, loaive, giave, ID, maphieu, matau,...). Kỹ thuật chuẩn hóa được áp dụng để tối ưu hóa cấu trúc. Ví dụ, thuộc tính giave phụ thuộc vào loaive (vé VIP đắt hơn vé phổ thông). Theo quy tắc chuẩn hóa, điều này có thể dẫn đến việc tách thành một bảng riêng về loại vé và giá vé để tránh dư thừa. Tuy nhiên, trong nhiều trường hợp thực tế, để đơn giản hóa truy vấn, thuộc tính này vẫn được giữ lại trong bảng VE. Việc cân bằng giữa chuẩn hóa và hiệu suất là một quyết định thiết kế quan trọng.
Ràng buộc toàn vẹn là các quy tắc logic để đảm bảo dữ liệu luôn hợp lệ. Tài liệu gốc đã xác định 27 ràng buộc quan trọng. Ví dụ, Ràng buộc 1 đảm bảo ID tài khoản là duy nhất (UNIQUE). Ràng buộc 5 dùng khóa ngoại để liên kết VE.ID với TAI_KHOAN.ID. Các ràng buộc phức tạp hơn như Ràng buộc 20, "hành khách phải thanh toán trong vòng 24 giờ kể từ thời gian đặt vé", đòi hỏi phải so sánh hai thuộc tính thoigianthanhtoan và thoigiandatve trên hai bảng khác nhau. Những ràng buộc này thường được hiện thực hóa bằng cách sử dụng các câu lệnh CHECK hoặc các TRIGGER trong MS SQL Server.
Hiện thực hóa hệ thống quản lý bán vé tàu hỏa trên MS SQL Server là giai đoạn biến thiết kế thành một sản phẩm hoạt động. Giai đoạn này tập trung vào hai nhiệm vụ chính: viết các lệnh truy vấn dữ liệu (Query) và tạo các trình kích hoạt (Trigger). Các lệnh truy vấn SQL được sử dụng để tương tác với cơ sở dữ liệu, phục vụ cho các chức năng của hệ thống như tìm kiếm, hiển thị thông tin, và tạo báo cáo. Các truy vấn có thể từ đơn giản như lấy thông tin một tài khoản, đến phức tạp như kết hợp nhiều bảng để tìm "họ tên khách hàng đã thanh toán số tiền lớn nhất". Việc sử dụng các mệnh đề JOIN, GROUP BY, HAVING và các truy vấn con là kỹ năng thiết yếu. Ví dụ, để tìm nhân viên lái chính của một chuyến tàu cụ thể, một truy vấn con (subquery) được dùng để lọc manhanvien từ bảng LAI_CHINH. Nhiệm vụ thứ hai là viết các Trigger để tự động hóa việc thực thi các ràng buộc nghiệp vụ phức tạp. Trigger là các thủ tục được tự động thực thi khi có một sự kiện (INSERT, UPDATE, DELETE) xảy ra trên một bảng. Ví dụ, một trigger được tạo trên bảng VE để tự động giảm soluongghetrong trong bảng TAU mỗi khi một vé mới được thêm vào (Ràng buộc 26). Việc có source code đồ án hoàn chỉnh với các truy vấn và trigger này là minh chứng cho việc đã hiện thực thành công logic của hệ thống.
Viết truy vấn SQL là kỹ năng cơ bản để lấy thông tin từ cơ sở dữ liệu. Tài liệu gốc cung cấp nhiều ví dụ: truy vấn một bảng (SELECT * FROM TAI_KHOAN WHERE gioitinh = N'Nữ'), truy vấn nhiều bảng (JOIN TAI_KHOAN và VE), truy vấn có điều kiện (WHERE...BETWEEN...), và truy vấn gom nhóm (GROUP BY, HAVING). Các kỹ thuật này giúp trả lời các câu hỏi nghiệp vụ, ví dụ như "mã tàu nào có nhiều hành khách đăng ký nhất". Việc tối ưu hóa các câu lệnh này rất quan trọng để đảm bảo hệ thống phản hồi nhanh chóng.
Trigger là công cụ mạnh mẽ trong MS SQL Server để thực thi các ràng buộc toàn vẹn phức tạp. Ví dụ, Ràng buộc 15 yêu cầu sonamkinhnghiem của lái chính phải lớn hơn 5. Một trigger AFTER INSERT, UPDATE trên bảng LAI_CHINH sẽ kiểm tra giá trị này. Nếu không hợp lệ, giao dịch sẽ bị hủy bỏ (ROLLBACK TRANSACTION). Tương tự, Ràng buộc 26 yêu cầu cập nhật soluongghetrong khi đặt hoặc hủy vé. Hai trigger riêng biệt, một cho INSERT (đặt vé) và một cho DELETE (hủy vé) trên bảng VE, được tạo ra để tự động cộng hoặc trừ số ghế tương ứng trong bảng TAU.
Đồ án giữa kỳ hệ thống quản lý bán vé tàu hỏa đã đạt được những mục tiêu cốt lõi, từ việc phân tích yêu cầu, thiết kế cơ sở dữ liệu cho đến hiện thực hóa trên MS SQL Server. Kết quả là một mô hình cơ sở dữ liệu vững chắc, có khả năng quản lý các nghiệp vụ cơ bản của việc bán vé tàu. Hệ thống đã thành công trong việc định nghĩa cấu trúc dữ liệu qua các lược đồ quan hệ, đảm bảo tính toàn vẹn thông qua hệ thống 27 ràng buộc và tự động hóa các quy tắc nghiệp vụ bằng Trigger. Các lệnh truy vấn SQL cho thấy khả năng khai thác thông tin hiệu quả từ dữ liệu đã lưu trữ. Đây là một nền tảng vững chắc, một đồ án mẫu công nghệ thông tin có thể được phát triển và mở rộng trong tương lai. Hướng phát triển tiềm năng bao gồm việc xây dựng một giao diện người dùng (UI/UX) hoàn chỉnh cho cả hành khách và quản trị viên, sử dụng các công nghệ lập trình hiện đại như .NET hoặc Java với mô hình MVC. Các tính năng nâng cao có thể được thêm vào như hệ thống gợi ý chuyến đi, quản lý chương trình khuyến mãi, tích hợp bản đồ theo dõi vị trí tàu theo thời gian thực, và phân tích dữ liệu lớn để tối ưu hóa lịch trình và giá vé. Việc hoàn thiện các tính năng này sẽ biến đồ án giữa kỳ thành một sản phẩm phần mềm hoàn chỉnh, sẵn sàng cho ứng dụng thực tế.
Đồ án đã hoàn thành xuất sắc các nhiệm vụ chính: xây dựng một cơ sở dữ liệu SQL có cấu trúc tốt, áp dụng chuẩn hóa để tối ưu lưu trữ, và định nghĩa các ràng buộc toàn vẹn chặt chẽ. Việc hiện thực hóa thành công các truy vấn và trigger phức tạp trên MS SQL Server chứng tỏ sự nắm vững kiến thức chuyên môn. Hệ thống đã mô phỏng thành công quy trình nghiệp vụ cốt lõi của việc bán vé tàu, từ quản lý thông tin cơ bản đến xử lý các giao dịch phức tạp, tạo ra một báo cáo thống kê doanh thu sơ bộ.
Để trở thành một ứng dụng hoàn chỉnh, hệ thống cần được bổ sung nhiều tính năng. Ưu tiên hàng đầu là phát triển giao diện người dùng (UI/UX) thân thiện trên nền tảng web hoặc di động. Các chức năng nâng cao bao gồm: hệ thống quản lý ghế ngồi trực quan (chọn ghế trên sơ đồ toa tàu), tích hợp đa dạng các cổng thanh toán điện tử, module quản lý khách hàng thân thiết, và hệ thống thông báo tự động (qua email, SMS). Về mặt kỹ thuật, có thể nghiên cứu áp dụng các công nghệ mới như NoSQL để lưu trữ các loại dữ liệu phi cấu trúc và Machine Learning để dự báo nhu cầu đi lại.
Bạn đang xem trước tài liệu:
Tiểu luận đồ án giữa kỳ đề tài hệ thống quản lý bán vé tàu hỏa