CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI 1. MÔ TẢ HỆ THỐNG Hệ thống quản lý khách hàng mua vé tại ga và đi trên tuyến đường sắt Bắc Nam, dữ liệu được mô tả cụ thể như sau: • Khách hàng sẽ mua vé trực tiếp tại các quầy bán vé được đặt ở các ga tàu. Khi mua vé, khách hàng sẽ cung cấp đầy đủ Họ tên, Tuổi, Giới tính, Căn cước công dân, Số điện thoại, Địa chỉ.
Các thông tin này sẽ được lưu trữ lại trong hệ thống. Mỗi khách hàng sẽ có một Mã Khách hàng duy nhất để phân biệt. • Khi mua vé, Khách hàng sẽ lựa chọn mua loại vé của chuyến tàu mà mình muốn đi và phù hợp với nhu cầu của bản thân. Khách hàng có thể thanh toán tiền vé bằng nhiều hình thức thanh toán như: tiền mặt, chuyển khoản, quẹt thẻ.
Các thông tin được thể hiện trên Vé gồm có Mã vé, Loại vé (dành cho từng đối tượng khác nhau như Người lớn, Trẻ em, Sinh viên, Người .) Giá vé, Trạng thái và Phương thức thanh toán. Tùy vào từng loại vé sẽ có các mức giá khác nhau tùy theo dịch vụ mà khách hàng chọn lựa. Mỗi vé xuất ra chỉ thuộc duy nhất một Chuyến tàu cụ thể. Mỗi chuyến tàu sẽ có một thời gian xuất phát và kết thúc nhất định.
Thông tin trên Chuyến tàu sẽ cho Khách hàng biết về Mã chuyến tàu, Giờ đi, Giờ đến và Trạng thái của chuyến tàu. • Khách hàng sẽ mua vé tại ga tàu. Mỗi Ga tàu sẽ gồm có các thông tin về Mã ga, Tên ga và Địa điểm của ga đó. Ga tàu sẽ quản lý thông tin của các Chuyến tàu, Tuyến tàu và Tàu.
Mỗi tàu trong một khoảng thời gian nhất định sẽ chỉ thuộc 1 chuyến tàu và 1 tuyến tàu nhất định. Tàu gồm có: Mã tàu, Số toa, Số buồng, Loại buồng, Số chỗ, Loại toa. • Các Chuyến tàu sẽ thuộc các Tuyến tàu. Bảng Tuyến tàu sẽ gồm các thông tin về Mã tuyến, Ga đi và ga đến.
Giả sử mỗi tàu chỉ chạy trên một tuyến tàu cố định. • Nhân viên làm việc tại ga và chuyến tàu. Nhân viên gồm có Mã nhân viên, Họ tên, Tuổi, Giới tính, Số điện thoại, Chức vụ. Chức vụ của nhân viên sẽ quyết định việc họ làm việc ở ga tàu để bán vé hay làm việc trên chuyến tàu để phục vụ hành khách.
Mỗi nhân viên sẽ có một mã khác nhau để dễ dàng phân biệt. • Khách hàng sau khi đi trên Chuyến tàu sẽ để lại phản hồi của mình về chuyến tàu đó. Thông tin về Phản hồi gồm có Loại phản hồi, Trạng thái xử lý. Phản hồi của Khách hàng sẽ được lưu trữ để phục vụ cho việc đánh giá chất lượng của các chuyến tàu.
YÊU CẦU CỦA HỆ THỐNG • Cung cấp thông tin đầy đủ, chính xác và dễ hiểu để giúp cho việc quản lý và theo dõi thông tin được dễ dàng và thuận tiện hơn. • Đảm bảo tính bảo mật cao để bảo vệ thông tin khách hàng tránh khỏi các nguy cơ bị lộ thông tin hoặc tấn công từ bên ngoài. • Thông tin cần thỏa các ràng buộc toàn vẹn và liên kết với nhau để đảm bảo tính logic và chính xác của dữ liệu. • Thao tác nhập dữ liệu nhanh chóng, dễ dàng và hiệu quả để giảm thiểu các sai sót và tăng tính chính xác của thông tin được lưu trữ.
2 Chương II. THIẾT KẾ HỆ THỐNG 1. THIẾT KẾ VÀ MÔ TẢ DỮ LIỆU STT BẢNG THUỘC TÍNH KIỂU DỮ LIỆU MÔ TẢ DỮ LIỆU Mã khách hàng có dạng KH+’Số’ (ví dụ như KH01) dùng để xác định MAKH NVARCHAR(4) khách hàng sử (Mã khách hàng) dụng dịch vụ. Mỗi mã khách hàng là duy nhất.
Họ tên khách HOTEN hàng là chuỗi ký (Họ tên của Khách NVARCHAR(50) tự có dấu và được hàng) giới hạn bởi 50 kí tự. Ngày sinh được nhập liệu theo NGAYSINH DATE định dạng (Ngày sinh) mm/dd/yyyy. Ngày sinh có thể trùng nhau. Giới tính được 1 GIOITINH NVARCHAR(3) ràng buộc trong KHACHHANG (Giới tính) hai lựa chọn là ‘Nam’ và ‘Nữ’.
Số căn cước công dân của khách hàng, là chuỗi ký tự được nhập CCCD VARCHAR(12) bằng số và được (Căn cước công dân) giới hạn bởi 12 ký tự và số căn cước công dân của mỗi người là duy nhất. SDT VARCHAR(15) Số điện thoại là (Số điện thoại) chuỗi ký tự được nhập bằng số và không được trùng nhau. 3 Là chuỗi ký tự có DIACHI NVARCHAR(100) dấu và có thể (Địa chỉ) trùng nhau giữa các khách hàng. Mã chuyến tàu có dạng ‘CT’+’Số”, MA_CHUYEN_TAU NVARCHAR(4) ví dụ như CT01, (Mã chuyến tàu) dùng để phân biệt các chuyến tàu với nhau.
Mã nhân viên có dạng ‘NV’+’Số’ (ví dụ như NV01) MANV VARCHAR(4) dùng để xác định (Mã nhân viên) các nhân viên. Mỗi mã nhân viên là duy nhất. Họ tên nhân viên HOTEN NVARCHAR(50) là chuỗi ký tự có (Họ tên nhân viên) dấu và được giới hạn bởi 50 kí tự Ngày sinh được 2 NHANVIEN nhập liệu theo NGAYSINH DATE định dạng (Ngày sinh) mm/dd/yyyy. Ngày sinh có thể trùng nhau.
Giới tính được GIOITINH NVARCHAR(3) ràng buộc trong (Giới tính) hai lựa chọn là ‘Nam’ và ‘Nữ’. Số điện thoại là SDT chuỗi ký tự được (Số điện thoại) VARCHAR(15) nhập bằng số và không được trùng nhau. Chức vụ của CHUCVU nhân viên thể (Chức vụ) NVARCHAR(50) hiện công việc của họ, là một chuỗi gồm các ký tự có dấu và được 4 giới hạn trong 50 ký tự. Mã ga là một chuỗi các ký tự dùng để phân biệt MAGA NVARCHAR(5) các ga với nhau, (Mã ga) mỗi mã ga là duy nhất.
Ví dụ như HN, VIN, SG,. Mã chuyến tàu có dạng ‘CT’+’Số”, MA_CHUYEN_TAU NVARCHAR(4) ví dụ như CT01, (Mã chuyến tàu) dùng để phân biệt các chuyến tàu với nhau. Mã chuyến tàu có dạng ‘CT’+’Số”, MA_CHUYEN_TAU NVARCHAR(4) ví dụ như CT01, (Mã chuyến tàu) dùng để phân biệt các chuyến tàu với nhau. Giờ đi được nhập theo định dạng GIODI DATETIME yyyy/mm/dd (Giờ đi) hh:mm:ss Giờ đến được nhập theo định 3 CHUYENTAU GIODEN DATETIME dạng (Giờ đến) yyyy/mm/dd hh:mm:ss Là một chuỗi các TRANGTHAI NVARCHAR(50) ký tự có dấu thể (Trạng thái) hiện trạng thái của chuyến tàu.
Mã tuyến tàu là một chuỗi các kí MA_TUYEN_TAU NVARCHAR(10) tự dùng để phân (Mã tuyến tàu) biệt các tuyến tàu với nhau và được giới hạn trong 10 ký tự. 5 Mã tàu thể hiện số hiệu của tàu, là một chuỗi kí tự MATAU VARCHAR(3) dùng để phân biệt (Mã tàu) các tàu với nhau và giới hạn trong 3 kí tự. SOTOA INT Tổng số toa của (Số toa) tàu. SOCHO INT Tổng số ghế của (Số chỗ) tàu.
SOBUONG INT Tổng số buồng 4 TAU (Số buồng) của tàu Mã ga là một chuỗi các ký tự dùng để phân biệt MAGA NVARCHAR(5) các ga với nhau, (Mã ga) mỗi mã ga là duy nhất. Ví dụ như HN, VIN, SG,. Mã tuyến tàu là một chuỗi các kí tự dùng để phân MA_TUYEN_TAU NVARCHAR(10) biệt các tuyến tàu (Mã tuyến tàu) với nhau và được giới hạn trong 10 ký tự. Mã tuyến tàu là một chuỗi các kí tự dùng để phân MA_TUYEN_TAU NVARCHAR(10) biệt các tuyến tàu (Mã tuyến tàu) với nhau và được TUYENTAU giới hạn trong 10 5 ký tự.
Ga đi là một GADI NVARCHAR(50) chuỗi kí tự có (Ga đi) dấu. Ga đến là một GADEN NVARCHAR(50) chuỗi kí tự có (Ga đến) dấu. 6 Mã ga là một chuỗi các ký tự dùng để phân biệt MAGA NVARCHAR(5) các ga với nhau, (Mã ga) mỗi mã ga là duy 6 NHAGA nhất. Ví dụ như HN, VIN, SG,.
Tên ga là một TENGA NVARCHAR(50) chuỗi kí tự có (Tên ga) dấu. Địa điểm là một DIADIEM NVARCHAR(100) chuỗi kí tự có (Địa điểm) dấu. Mã vé là một chuỗi kí tự gồm các số dùng để phân biệt các vé MAVE VARCHAR(8) với nhau. Mỗi mã (Mã vé) vé là duy nhất và được giới hạn trong 8 kí tự.
Mã khách hàng VETAU có dạng KH+’Số’ 7 (ví dụ như KH01) dùng để xác định MAKH NVARCHAR(4) khách hàng sử (Mã khách hàng) dụng dịch vụ. Mỗi mã khách hàng là duy nhất. Loại vé là một LOAIVE chuỗi ký tự có (Loại vé) NVARCHAR(30) dấu và có thể trùng nhau. GIAVE MONEY Là chuỗi ký tự số (Giá vé) và có thể trùng nhau giữa các vé.
Là chuỗi được giới hạn trong 6 ký tự và có dạng: ‘Mã tàu’+’A’+’xx’: nếu KH đi toa 7 ngồi mềm điều hòa MA_DAT_CHO VARCHAR(6) ‘Mã (Mã đặt chỗ) tàu’+’B’+’xx’: nếu KH đi toa giường nằm điều hòa. ‘xx’ là số thứ tự của chỗ trong toa KH đi. Ví dụ: SE2A09, TN4B14,. Mã tuyến tàu là một chuỗi các kí MA_TUYEN_TAU NVARCHAR(10) tự dùng để phân (Mã tuyến tàu) biệt các tuyến tàu với nhau và được giới hạn trong 10 ký tự.
Mã chuyến tàu có dạng ‘CT’+’Số”, MA_CHUYEN_TAU NVARCHAR(10) ví dụ như CT01, (Mã chuyến tàu) dùng để phân biệt các chuyến tàu với nhau. Mã khách hàng có dạng KH+’Số’ (ví dụ như KH01) dùng để xác định khách hàng sử MAKH, NVARCHAR(4) dụng dịch vụ. MA_CHUYEN_TAU Mỗi mã khách hàng là duy nhất. 8 PHANHOI Mã chuyến tàu có dạng ‘CT’+’Số”, ví dụ như CT01, dùng để phân biệt các chuyến tàu với nhau.
Là một chuỗi ký LOAIPHANHOI NVARCHAR(50) tự có dấu thể hiện (Loại phản hồi) phản hồi của khách hàng. 8 Là một chuỗi ký TRANGTHAIXULY NVARCHAR(50) tự có dấu thể hiện (Trạng thái xử lý) trạng thái xử lý phản hồi. Bảng tóm tắt các mô tả thuộc tính • Chú thích: Khung màu hồng; Khóa chính Khung màu xanh: Khóa ngoại Khung màu tím: Vừa là khóa chính vừa là khóa ngoại Giải thích khóa ngoại - Mối quan hệ “Đi” giữa KHACHHANG - CHUYENTAU là mối quan hệ một - nhiều: một bên KHACHHANG và nhiều bên CHUYENTAU. Nên chúng ta sẽ thêm thuộc tính khóa của bên nhiều vào bên một, cụ thể là đưa thuộc tính MA_CHUYEN_TAU của CHUYENTAU bỏ vào quan hệ KHACHHANG để làm khóa ngoại - Mối quan hệ “Mua” giữa KHACHHANG - VETAU là mối quan hệ một -nhiều: một bên VETAU và nhiều bên KHACHHANG.
Nên chúng ta sẽ thêm thuộc tính khóa của bên nhiều vào bên một, cụ thể là đưa thuộc tính MAKH của KHACHHANG vào quan hệ VETAU để làm khóa ngoại. - Mối quan hệ “Thuộc” giữa VETAU – CHUYENTAU là mối quan hệ một - nhiều: một bên VETAU và nhiều bên CHUYENTAU. Nên chúng ta sẽ thêm thuộc tính khóa của bên nhiều vào bên một, cụ thể là đưa thuộc tính MA_CHUYEN_TAU của CHUYENTAU vào quan hệ VETAU để làm khóa ngoại. - Mối quan hệ “Làm việc” giữa NHANVIEN – CHUYENTAU là quan hệ một - nhiều: một bên NHANVIEN và nhiều bên CHUYENTAU.
Nên chúng ta sẽ thêm thuộc tính khóa của bên nhiều vào bên một, cụ thể là đưa thuộc tính MA_CHUYEN_TAU của CHUYENTAU vào quan hệ NHANVIEN để làm khóa ngoại. - Mối quan hệ “Thuộc” giữa TUYENTAU – CHUYENTAU là mối quan hệ một-nhiều: một bên CHUYENTAU và nhiều bên TUYENTAU.