1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề tài quản lý khách hàng chuyến tàu sắtbắc nam

50 24 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Quản Lý Khách Hàng Chuyến Tàu Sắt Bắc Nam
Tác giả Sơn Hồng Đức, Đặng Thanh Huy, Nguyễn Trung Nguyên, Võ Thị Yến Oanh, Lê Vũ Thanh Trúc
Người hướng dẫn ThS. Hồ Thị Thanh Tuyến
Trường học Trường Đại Học Kinh Tế Tp.Hcm
Chuyên ngành Công Nghệ Thông Tin Kinh Doanh
Thể loại Báo Cáo Đồ Án Kết Thúc Học Phần
Năm xuất bản 2023
Thành phố Tp Hồ Chí Minh
Định dạng
Số trang 50
Dung lượng 5,39 MB

Cấu trúc

  • CHƯƠNG I. GIỚ I THI ỆU ĐỀ TÀI (6)
    • 1. MÔ T Ả H Ệ TH Ố NG (6)
  • Chương II. THIẾ T K Ế H Ệ TH Ố NG (8)
    • 1. THI Ế T K Ế VÀ MÔ T Ả DỮ LI Ệ U (8)
      • 2.2. Mô hình cơ sở d ữ liệu (16)
      • 3.6. Ràng buộc số điện thoại của khách hàng và nhân viên (19)
      • 3.7. Ràng buộc số căn cước công dân của khách hàng (19)
      • 3.8. Ràng buộc giờ đi và giờ đến của chuyến tàu (20)
      • 3.9. Ràng buộc giá vé (20)
      • 3.10. Ràng buộc số điện thoại khách hàng (20)
      • 3.11. Ràng buộc tuổi nhân viên (20)
      • 3.12. Ràng buộc mã đặt chỗ (21)
  • CHƯƠNG III. THỰ C HI Ệ N CÁC THAO TÁC TRÊN MICROSOFT SQL SERVER MANAGEMENT (22)
    • 1. MÔ T Ả DỮ LI Ệ U (22)
      • 1.1. T ạ o database (22)
      • 1.2. T ạ o các bả ng (22)
        • 1.2.1. T ạ o bả ng Khách hàng (22)
        • 1.2.2. T ạ o bả ng Nhân viên (22)
        • 1.2.3. T ạ o bả ng Tàu (22)
        • 1.2.4. T ạ o bả ng Vé tàu (23)
        • 1.2.5. T ạ o bả ng Nhà ga (23)
        • 1.2.6. T ạ o bả ng Chuyế n tàu (23)
        • 1.2.7. T ạ o bả ng Tuyế n tàu (23)
        • 1.2.8. T ạ o bả ng Phả n hồi (23)
      • 5.2. Viết store procedure (39)
      • 5.3. Viết ràng buộc (42)
  • CHƯƠNG IV. NHẬN XÉT VÀ ĐÁNH GIÁ HỆ THỐNG (45)
  • CHƯƠNG V. PHỤ LỤC (46)

Nội dung

GIỚ I THI ỆU ĐỀ TÀI

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 có thể mua vé trực tiếp tại các quầy bán vé ở ga tàu, nơi họ cần cung cấp thông tin cá nhân như Họ tên, Tuổi, Giới tính, Căn cước công dân, Số điện thoại và Địa chỉ Tất cả thông tin này sẽ được lưu trữ trong hệ thống, và mỗi khách hàng sẽ được cấp một Mã Khách hàng duy nhất để dễ dàng phân biệt.

Khi mua vé tàu, khách hàng cần chọn loại vé phù hợp với nhu cầu, có thể thanh toán bằng tiền mặt, chuyển khoản hoặc thẻ Vé sẽ bao gồm các thông tin như mã vé, loại vé (dành cho người lớn, trẻ em, sinh viên, v.v.), giá vé, trạng thái và phương thức thanh toán Mỗi loại vé có mức giá khác nhau tùy theo dịch vụ Mỗi vé chỉ áp dụng cho một chuyến tàu cụ thể, với thời gian xuất phát và kết thúc nhất định Thông tin chuyến tàu sẽ cung cấp mã chuyến, giờ đi, giờ đến và trạng thái của chuyến.

Khách hàng có thể mua vé tại ga tàu, nơi cung cấp thông tin về mã ga, tên ga và địa điểm Mỗi ga tàu sẽ quản lý thông tin liên quan đến các chuyến tàu, tuyến tàu và tàu Trong một khoảng thời gian nhất định, mỗi tàu chỉ thuộc về một chuyến tàu và một tuyến tàu cụ thể Thông tin về tàu bao gồm mã tàu, số toa, số buồng, loại buồng, số chỗ và loại toa.

• Các Chuyến tàu sẽ thuộc các Tuyến tàu BảngTuyế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 tại ga và trên chuyến tàu đóng vai trò quan trọng trong việc phục vụ hành khách Mỗi nhân viên được xác định bằng mã nhân viên riêng biệt, cùng với thông tin cá nhân như họ tên, tuổi, giới tính và số điện thoại Chức vụ của họ quyết định nhiệm vụ cụ thể, bao gồm bán vé tại ga hoặc phục vụ hành khách trên tàu Việc phân biệt nhân viên qua mã sẽ giúp quản lý và tổ chức công việc hiệu quả hơn.

Khách hàng sẽ để lại phản hồi sau khi trải nghiệm chuyến tàu, bao gồm loại phản hồi và trạng thái xử lý Những phản hồi này được lưu trữ để đánh giá chất lượng dịch vụ của các chuyến tàu.

2 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ữ.

THIẾ T K Ế H Ệ TH Ố NG

THI Ế T K Ế VÀ MÔ T Ả DỮ LI Ệ U

STT BẢNG THUỘC TÍNH KIỂU DỮ LIỆU MÔ TẢ DỮ

MAKH (Mã khách hàng) NVARCHAR(4)

Mã khách hàng có dạng KH+’Số’ (ví dụ như KH01) dùng để xác định khách hàng sử dụng dịch vụ. Mỗi mã khách hàng là duy nhất

HOTEN (Họ tên của Khách hàng) NVARCHAR(50)

Họ tên khách hàng là chuỗi ký tự có dấu và được giới hạn bởi 50 kí tự.

Ngày sinh được nhập liệu theo định dạng mm/dd/yyyy. Ngày sinh có thể trùng nhau.

Giới tính được ràng buộc trong hai lựa chọn là

CCCD (Căn cước công dân) VARCHAR(12)

Số căn cước công dân của khách hàng là một chuỗi ký tự duy nhất, bao gồm 12 ký tự số, đóng vai trò quan trọng trong việc xác định danh tính cá nhân.

SDT (Số điện thoại) VARCHAR(15) Số điện thoại là chuỗi ký tự được nhập bằng số và không được trùng nhau.

Là chuỗi ký tự có dấu và có thể trùng nhau giữa các khách hàng.

MA_CHUYEN_TAU (Mã chuyến tàu)

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

MANV (Mã nhân viên) VARCHAR(4)

Mã nhân viên có dạng ‘NV’+’Số’ (ví dụ như NV01) dùng để xác định các nhân viên. Mỗi mã nhân viên là duy nhất

HOTEN (Họ tên nhân viên) NVARCHAR(50)

Họ tên nhân viên là chuỗi ký tự có dấu và được giới hạn bởi 50 kí tự

Ngày sinh được nhập liệu theo định dạng mm/dd/yyyy. Ngày sinh có thể trùng nhau.

Giới tính được ràng buộc trong hai lựa chọn là

SDT (Số điện thoại) VARCHAR(15)

Số điện thoại là chuỗi ký tự được nhập bằng số và không được trùng nhau.

Chức vụ của nhân viên thể 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 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 các ga với nhau, mỗi mã ga là duy nhất Ví dụ như

MA_CHUYEN_TAU (Mã chuyến tàu) NVARCHAR(4)

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

MA_CHUYEN_TAU (Mã chuyến tàu) NVARCHAR(4)

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

Giờ đi được nhập theo định dạng yyyy/mm/dd hh:mm:ss

Giờ đến được nhập theo định dạng yyyy/mm/dd hh:mm:ss

Là một chuỗi các ký tự có dấu thể hiện trạng thái của chuyến tàu

MA_TUYEN_TAU (Mã tuyến tàu) NVARCHAR(10)

Mã tuyến tàu là một chuỗi các kí tự dùng để phân biệt các tuyến tàu với nhau và được giới hạn trong 10 ký tự

Mã tàu thể hiện số hiệu của tàu, là một chuỗi kí tự dùng để phân biệt các tàu với nhau và giới hạn trong

(Số toa) INT Tổng số toa của tàu.

(Số chỗ) INT Tổng số ghế của tàu.

(Số buồng) INT Tổng số buồng của tàu

Mã ga là một chuỗi các ký tự dùng để phân biệt các ga với nhau, mỗi mã ga là duy nhất Ví dụ như

MA_TUYEN_TAU (Mã tuyến tàu) NVARCHAR(10)

Mã tuyến tàu là một chuỗi các kí tự dùng để phân biệt các tuyến tàu với nhau và được giới hạn trong 10 ký tự

MA_TUYEN_TAU (Mã tuyến tàu)

Mã tuyến tàu là một chuỗi các kí tự dùng để phân biệt các tuyến tàu với nhau và được giới hạn trong 10 ký tự

Ga đi là một chuỗi kí tự có dấu

Ga đến là một chuỗi kí tự có dấu

Mã ga là một chuỗi các ký tự dùng để phân biệt các ga với nhau, mỗi mã ga là duy nhất Ví dụ như

Tên ga là một chuỗi kí tự có dấu

DIADIEM (Địa điểm) NVARCHAR(100) Địa điểm là một chuỗi kí tự có dấu

Mã vé là chuỗi ký tự độc nhất, bao gồm các số, được sử dụng để phân biệt giữa các vé Mỗi mã vé chỉ có 8 ký tự, đảm bảo tính duy nhất và dễ dàng nhận diện.

Mã khách hàng có dạng KH+’Số’ (ví dụ như KH01) dùng để xác định khách hàng sử dụng dịch vụ. Mỗi mã khách hàng là duy nhất

Loại vé là một chuỗi ký tự có dấu và có thể trùng nhau.

GIAVE (Giá vé) MONEY Là chuỗi ký tự số 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

MA_DAT_CHO (Mã đặt chỗ) VARCHAR(6) ngồi mềm điều hòa

‘Mã 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

MA_TUYEN_TAU (Mã tuyến tàu) NVARCHAR(10)

Mã tuyến tàu là một chuỗi các kí tự dùng để phân biệt các tuyến tàu với nhau và được giới hạn trong 10 ký tự

MA_CHUYEN_TAU (Mã chuyến tàu)

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

MAKH, MA_CHUYEN_TAU NVARCHAR(4)

Mã khách hàng có dạng KH+’Số’ (ví dụ như KH01) dùng để xác định khách hàng sử dụng dịch vụ. Mỗi mã khách hàng là duy nhất

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.

LOAIPHANHOI (Loại phản hồi) NVARCHAR(50)

Là một chuỗi ký tự có dấu thể hiện phản hồi của khách hàng.

TRANGTHAIXULY (Trạng thái xử lý) NVARCHAR(50)

Là một chuỗi ký tự có dấu thể hiện trạng thái xử lý phản hồi

Hình 1 B ả ng tóm t ắ t các mô t ả thu ộ c tính

Khung màu hồng; Khóa chính Khung màu xanh: K hóa ngoại

Khung màu tím: Vừa là khóa chính vừa là khóa ngoại

Mối quan hệ giữa KHACHHANG và CHUYENTAU là kiểu một-nhiều, trong đó mỗi KHACHHANG có thể liên kết với nhiều CHUYENTAU Để thể hiện điều này, chúng ta cần 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 của CHUYENTAU vào bảng KHACHHANG.

MA_CHUYEN_TAU của CHUYENTAU bỏ vào quan hệ KHACHHANG để làm khóa ngoại

Mối quan hệ giữa KHACHHANG và VETAU là mối quan hệ một-nhiều, trong đó VETAU là bên một và KHACHHANG là bên nhiều Để thiết lập mối quan hệ này, chúng ta sẽ thêm thuộc tính khóa của bên nhiều, cụ thể là MAKH của KHACHHANG, vào quan hệ VETAU để tạo thành khóa ngoại.

Mối quan hệ "Thuộc" giữa VETAU và CHUYENTAU là quan hệ một-nhiều, trong đó VETAU là bên một và CHUYENTAU là bên nhiều Để thể hiện mối quan hệ này, 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ệ giữa NHANVIEN và CHUYENTAU là mối quan hệ một-nhiều, trong đó mỗi NHANVIEN có thể liên kết với nhiều CHUYENTAU Để thể hiện mối quan hệ này, chúng ta cần thêm thuộc tính khóa của bên nhiều, cụ thể là MA_CHUYEN_TAU từ CHUYENTAU vào bảng NHANVIEN, nhằm tạo ra khóa ngoại.

Mối quan hệ giữa TUYENTAU và CHUYENTAU là mối quan hệ một-nhiều, trong đó CHUYENTAU là bên một và TUYENTAU là bên nhiều Để thể hiện mối quan hệ này, chúng ta cần 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_TUYEN_TAU từ TUYENTAU vào quan hệ CHUYENTAU để tạo thành khóa ngoại.

Mối quan hệ giữa TAU và TUYENTAU là một-nhiều, trong đó một TAU có thể liên kết với nhiều TUYENTAU Để thể hiện mối quan hệ này, chúng ta sẽ thêm thuộc tính khóa của bên nhiều, cụ thể là MA_TUYEN_TAU từ TUYENTAU vào quan hệ TAU, nhằm tạo thành khóa ngoại.

Mối quan hệ giữa GA và TAU là mối quan hệ một-nhiều, trong đó TAU là bên một và GA là bên nhiều Để thể hiện mối quan hệ này, chúng ta sẽ chuyển thuộc tính khóa của bên nhiều, cụ thể là MAGA của GA, vào quan hệ TAU để tạo thành khóa ngoại.

Mối quan hệ "Làm việc" giữa NHANVIEN và GA có tính chất một-nhiều, với NHANVIEN là một bên và nhiều bên GA Để thể hiện mối quan hệ này, chúng ta sẽ đưa thuộc tính khóa của bên nhiều, cụ thể là MAGA của GA, vào quan hệ NHANVIEN như một khóa ngoại.

Mối quan hệ "Phản hồi" giữa KHACHHANG và CHUYENTAU là mối quan hệ nhiều-nhiều Do đó, chúng ta sẽ thiết lập một quan hệ mới mang tên PHANHOI, với khóa chính là các thuộc tính liên quan, cụ thể là KHACH HANG và CHUYENTAU.

2.1 Mô hình thự c thể kế t hợ p

Hình 2 Mô hình th ự c th ể k ế t h ợ p

2.2 Mô hình cơ sở d ữ liệu

Hình 3 Mô hình cơ sở d ữ li ệ u

3.1.Ràngbuộc giới tính khách hàng, nhân viên

Ngôn ngữ tự nhiên : Giới tính phải thuộc nam hoặc nữ

Biểu diễn : (∀(t)(KHACHHANG(t) (t.GIOITINH=’ Nam’v t.GIOITINH=’ Nữ’))) (∀(n)( NHANVIEN(n) (n.GIOITINH=’ Nam’v n.GIOITINH=’ Nữ’)))

3.2 Ràng buộc họ tên khách hàng và nhân viên

Ngôn ngữ tự nhiên : Họ tên của khách hàng và nhân viên không được để trống

Biểu diễn : (∀(t)(KHACHHANG(t) (t.HOTEN ≠ NULL)))

Ngôn ngữ tự nhiên : Mã khách hàng phải có định dạng KH

Biểu diễn : ∀(t)(KHACHHANG(t) (t.MAKH LIKE (KH%)))

Ngôn ngữ tự nhiên : Mã nhân viên phải có định dạng NV

Biểu diễn : ∀(t)( NHANVIEN(t) (t.MANV LIKE (NV%)))

3.5 Ràng buộc mã khách hàng và mã nhân viên

Ngôn ngữ tự nhiên : Mã khách hàng và mã nhân viên là duy nhất

Biểu diễn : (∀t1, t2∊ KHACHHANG(t1 ≠ t2 t1.MAKH ≠ t2.MAKH)) (∀n1,n2∊ NHANVIEN(n1 ≠ n2 n1.MANV ≠ n2.MANV))

3.6 Ràng buộc số điện thoại của khách hàng và nhân viên

Ngôn ngữ tự nhiên : Số điện thoại của khách hàng và nhân viên là duy nhất

Biểu diễn : (∀t1, t2∊ KHACHHANG(t1 ≠ t2 t1.SDT ≠ t2.SDT)) (∀n1,n2

3.7 Ràng buộc số căn cước công dân của khách hàng

Ngôn ngữ tự nhiên : Số căn cước công dân của khách hàng là duy nhất

Biểu diễn : (∀t1, t2∊ KHACHHANG(t1 ≠ t2 t1.CCCD ≠ t2.CCCD))

3.8 Ràng buộc giờ đi và giờ đến của chuyến tàu

Ngôn ngữ tự nhiên : Giờ đi phải nhỏ hơn giờ đến của chuyến tàu

Biểu diễn : ∀(t)(CHUYENTAU(t)∧ (t.GIODI < t.GIODEN))

Ngôn ngữ tự nhiên : Giá vé phải lớn hơn 146,000 VND

3.10 Ràng buộc số điện thoại khách hàng

Ngôn ngữ tự nhiên : Ràng buộc số điện thoại của khách hàng lớn hơn hoặc bằng 10 số

Biểu diễn : ∀(t)(KHACHHANG(t) (LEN(t.SDT) ≥ 10))

3.11 Ràng buộc tuổi nhân viên

Ngôn ngữ tự nhiên : Nhân viên phải trên 18 tuổi

Biểu diễn : ∀(t)NHANVIEN(t) ((2023 - YEAR(NGAYSINHNV))≥ 18) Bảng tầm ảnh hưởng :

R11 Thêm Xóa Sửa NHANVIEN + - +(2023 - YEAR(NGAYSINH))

3.12 Ràng buộc mã đặt chỗ

Ngôn ngữ tự nhiên : Mã đặt chỗ phải gồm 6 ký tự

THỰ C HI Ệ N CÁC THAO TÁC TRÊN MICROSOFT SQL SERVER MANAGEMENT

MÔ T Ả DỮ LI Ệ U

CONSTRAINT PK_MAKHPRIMARY KEY(MAKH)

CONSTRAINT PK_MANVPRIMARY KEY(MANV)

CONSTRAINT PK_MATAUPRIMARY KEY(MATAU)

CONSTRAINT PK_MAVEPRIMARY KEY(MAVE)

CONSTRAINT PK_MAGAPRIMARY KEY(MAGA)

CONSTRAINT PK_MA_CHUYEN_TAUPRIMARY KEY(MA_CHUYEN_TAU) )

CONSTRAINT PK_MA_TUYEN_TAUPRIMARY KEY(MA_TUYEN_TAU)

CONSTRAINTPK_MAKH_MA_CHUYEN_TAU PRIMARY KEY

FK_KHACHHANG_MACHUYENTAUFOREIGN KEY(MA_CHUYEN_TAU) REFERENCES CHUYENTAU(MA_CHUYEN_TAU)

FK_NHANVIEN_MACHUYENTAUFOREIGN KEY(MA_CHUYEN_TAU)

REFERENCES CHUYENTAU(MA_CHUYEN_TAU)

ALTER TABLE NHANVIENADD CONSTRAINT FK_NHANVIEN_MAGA

FOREIGN KEY(MAGA) REFERENCES NHAGA(MAGA)

ALTER TABLE TAUADD CONSTRAINT FK_TAU_MAGAFOREIGN KEY

ALTER TABLE TAUADD CONSTRAINT FK_TAU_MATUYENTAUFOREIGN

KEY(MA_TUYEN_TAU) REFERENCES TUYENTAU(MA_TUYEN_TAU)

FK_CHUYENTAU_MATUYENTAUFOREIGN KEY(MA_TUYEN_TAU)

REFERENCES TUYENTAU(MA_TUYEN_TAU)

ALTER TABLE VETAUADD CONSTRAINT FK_VETAU_MAKHFOREIGN KEY (MAKH) REFERENCES KHACHHANG(MAKH)

ALTER TABLE VETAUADD CONSTRAINT FK_VETAU_MACHUYENTAU FOREIGN KEY(MA_CHUYEN_TAU) REFERENCES

3.THAO TÁC TRÊN DỮ LIỆU

3.1 Thêm d ữ liệu vào các table bằ ng l ệ nh SQL

3.1.1.Thêm d ữ liệu vào bảng Khách hàng

INSERT INTO KHACHHANG VALUES('KH01', N'Nguyễn Văn Anh Quốc',

'06/12/1995', N'Nam', '079195015539', '0901 234 567', N'123 Nguyễn Văn Cừ, Quận 5, TP.HCM', 'CT01')

INSERT INTO KHACHHANG VALUES('KH02', N'Nguyễn Thị Thanh Bình',

'09/08/1987', N'Nữ', '079093038628', '0978 653 321', N'567 Lê Lợi, Quận 1, TP.HCM', 'CT01')

INSERT INTO KHACHHANG VALUES('KH03', N'Trần Văn Chiến', '03/27/2001', N'Nam', '080302001503', '0357 656 789', N'456 Trần Hưng Đạo, Quận 1, TP.HCM', 'CT02')

INSERT INTO KHACHHANG VALUES('KH04', N'Lê Nguyễn Hoàng Thư',

'01/19/2014', N'Nữ', '097649399332', '0780 344 248', N'789 Lý Thường Kiệt, Quận 10,TP.HCM', 'CT03')

INSERT INTO KHACHHANG VALUES('KH05', N'Phạm Hoàng Quốc Bảo', '1992-11- 14', N'Nam', '078251294226', '0167 894 561', N'147 Bùi Thị Xuân, Quận 1, TP.HCM', 'CT03')

INSERT INTO KHACHHANG VALUES('KH06', N'Đặng Ngân Giang', '1985-05-01', N'Nữ', '085312498543', '0908 597 999', N'Ấp Trà Tro,Hàm Giang, TràCú, Trà Vinh', 'CT05')

INSERT INTO KHACHHANG VALUES('KH07', N'Phan Thị Minh Châu', '1961-02- 22', N'Nữ', '042301722155', '0913 755 333', N'Ấp Thạnh Điền, Xã Lý Văn Lâm, Thành phố Cà Mau', 'CT03')

INSERT INTO KHACHHANG VALUES('KH08', N'Nguyễn Hoàng Nhật Nam', '1976- 08-17', N'Nam', '025352838420', '0947 255 788', N'Khóm 3, Thị Trấn Mỹ An, Huyện Tháp Mười, Tỉnh Đồng Tháp', 'CT04')

INSERT INTO KHACHHANG VALUES('KH09', N'Tạ Bích Ngân', '2003-04-09', N'Nữ', '015125954814', '0918 119 623', N'Khóm 6,Thị trấn Đầm Dơi, Huyện Đầm Dơi,

INSERT INTO KHACHHANG VALUES('KH10', N'Đinh Hải Huyền', '1989-12-03', N'Nữ', '026352638430', '0903 246 878', N'20/4 -Lưu Khánh Đức-Khóm 3, Phường 2, Thành phố Sóc Trăng', 'CT05')

INSERT INTO KHACHHANG VALUES('KH11', N'Nguyễn Hoàng Minh An', '1990- 07-16', N'Nam', '089523563286', '0934 578 676', N'Xã Lưu Nghiệp Anh, , Huyện Trà Cú, Tỉnh Trà Vinh', 'CT03')

INSERT INTO KHACHHANG VALUES('KH12', N'Lâm Tịnh Như', '1983-10-25', N'Nữ', '025525626636', '0657 907 976', N'Xã Kim Sơn, , Huyện Trà Cú, Tỉnh Trà Vinh', 'CT03')

INSERT INTO KHACHHANG VALUES('KH13', N'Giang Quốc Dũng', '2000-06-07', N'Nam', '056525636663', '0978 987 098', N'Thị Trấn Đại Ngãi, Huyện Long Phú, tỉnh Sóc Trăng', 'CT05')

INSERT INTO KHACHHANG VALUES('KH14', N'Nguyễn Hồng Lộc', '1972-01-09', N'Nam', '045859937246', '0256 369 636', N'Xã Bù Gia Mập, Huyện Bù Gia Mập, Tỉnh Bình Phước', 'CT03')

INSERT INTO KHACHHANG VALUES('KH15', N'Tống Thị Ngọc Tuyền', '2015-03- 30', N'Nữ', '092874793253', '0978 234 564', N'Xã An Nhơn Tây, Huyện Củ Chi,

INSERT INTO KHACHHANG VALUES ('KH16', N'Trần Ngọc Thảo', '1997-01-11', 'Nam', '032246653325', '0789 125 636', N'Xã Thiện Mỹ,Huyện Trà Ôn, Tỉnh Vĩnh Long', 'CT05')

INSERT INTO KHACHHANG VALUES ('KH17', N'Hà Quốc Thảo', '1979-11-05', N'Nam', '031552255454', '0967 232 345', N'Xã Thạnh Ngãi,Huyện Mỏ Cày Bắc, Tỉnh Bến Tre', 'CT03')

INSERT INTO KHACHHANG VALUES ('KH18', N'Lâm Hải Triều', '1993-05-18', N'Nam', '023569840345', '0857 964 789', N'Xã An Thạnh Nam ,Huyện Cù Lao Dung, Tỉnh Sóc Trăng', 'CT05')

INSERT INTO KHACHHANG VALUES ('KH19', N'Trang Thanh Phong', '2002-02- 13', N'Nam', '056379270645', '0598 654 258', N'Xã Tân Bửu, Huyện Bến Lức, Tỉnh Long An', 'CT05')

INSERT INTO KHACHHANG VALUES ('KH20', N'Dương Thúy Hằng', '1981-08-29', N'Nữ', '056478355096', '0789 363 589', N'Xã Bình Đức,Huyện Bến Lức, Tỉnh Long An', 'CT05')

3.1.2.Thêm d ữ liệu vào bảng Nhân viên

INSERT INTO NHANVIENVALUES('NV01', N'Nguyễn Văn Huy', '1998-02-25', N'Nam', '0357624898', N'Nhân viên bán vé', N'HN', 'CT01')

INSERT INTO NHANVIENVALUES('NV02', N'Trần Thị Oanh Thư', '1975-07-02', N'Nữ', '0375675989', N'Nhân viên bán vé', N'TC', 'CT02')

INSERT INTO NHANVIENVALUES('NV03', N'Phạm Văn Toàn', '1986-11-11', N'Nam', '0978217936', N'Nhân viên soát vé', N'ĐN', 'CT03')

INSERT INTO NHANVIENVALUES('NV04', N'Lê Ngọc Hoàng Trúc', '2001-04-05', N'Nữ', '0965345676', N'Nhân viên phục vụ khách hàng', N'SG', 'CT04')

INSERT INTO NHANVIENVALUES('NV05', N'Đỗ Nguyễn Quang Phú', '1991-09- 20', N'Nam', '0782345879', N'Nhân viên phục vụ khách hàng', N'TH', 'CT05')

INSERT INTO NHANVIENVALUES('NV06', N'Trần Vũ Như Uyên', '1979-12-08', N'Nữ', '0678234564', N'Nhân viên bán vé', N'VIN', 'CT03')

INSERT INTO NHANVIENVALUES('NV07', N'Lê Thị Trà My', '2002-06-13', N'Nữ', '0987254656', N'Nhân viên phục vụ khách hàng', N'SG', 'CT03')

INSERT INTO NHANVIENVALUES('NV08', N'Nguyễn Hữu Hoàng', '1984-01-17', N'Nam', '0358696721', N'Nhân viên soát vé', N'HN', 'CT02')

INSERT INTO NHANVIENVALUES('NV09', N'Bùi Dương Gia Huy', '1996-08-30', N'Nam', '0967232898', N'Nhân viên soát vé', N'SG', 'CT02')

INSERT INTO NHANVIENVALUES('NV10', N'Lưu Trần Uyên Ngọc', '1977-03-22', N'Nữ', '0969217939', N'Nhân viên phục vụ khách hàng', N'HN', 'CT02')

3.1.3.Thêm d ữ liệu vào bảng Nhà ga

INSERT INTO NHAGA VALUES( N'HN', N'HÀ NỘI', N'Hà Nội')

INSERT INTO NHAGA VALUES( N'VIN', N'VINH', N'Nghệ An')

INSERT INTO NHAGA VALUES( N'ĐN', N'ĐÀ NẴNG', N'Đà Nẵng')

INSERT INTO NHAGA VALUES( N'TH', N'TUY HÒA', N'Phú Yên')

INSERT INTO NHAGA VALUES( N'TC', N'THÁP CHÀM', N'Ninh Thuận')

INSERT INTO NHAGA VALUES( N'SG', N'SÀI GÒN', N'Tp Hồ Chí Minh')

3.1.4 Thêm d ữ liệu vào bảng Vé tàu

INSERT INTO VETAUVALUES('90874920', 'KH01', N'Đoàn viên công đoàn',

INSERT INTO VETAUVALUES('90874921', 'KH02', N'Người lớn', N'256,000', 'SE2A17', 'CT01')

INSERT INTO VETAUVALUES('90874922', 'KH03', N'Sinh viên', N'339,000', 'SE4A15', 'CT02')

INSERT INTO VETAUVALUES('90874923', 'KH04', N'Trẻ em', N'234,000',

INSERT INTO VETAUVALUES('90874924', 'KH05', N'Người lớn', N'311,000', 'SE6B06', 'CT03')

INSERT INTO VETAUVALUES('90874925', 'KH06', N'Người lớn', N'344,000', 'TN4A24', 'CT05')

INSERT INTO VETAUVALUES('90874926', 'KH07', N'Người cao tuổi', N'265,000', 'SE6B07', 'CT03')

INSERT INTO VETAUVALUES('90874927', 'KH08', N'Người lớn', N'146,000', 'TN2B01', 'CT04')

INSERT INTO VETAUVALUES('90874928', 'KH09', N'Sinh viên', N'235,000', 'SE6A10', 'CT03')

INSERT INTO VETAUVALUES('90874929', 'KH10', N'Người lớn', N'468,000', 'TN4B14', 'CT05')

INSERT INTO VETAUVALUES('90874930', 'KH11', N'Người lớn', N'261,000', 'SE6A09', 'CT03')

INSERT INTO VETAUVALUES('90874931', 'KH12', N'Đoàn viên công đoàn',

INSERT INTO VETAUVALUES('90874932', 'KH13', N'Sinh viên', N'310,000', 'TN4A12', 'CT05')

INSERT INTO VETAUVALUES('90874933', 'KH14', N'Người lớn', N'311,000', 'SE6B01', 'CT03')

INSERT INTO VETAUVALUES('90874934', 'KH15', N'Trẻ em', N'234,000',

INSERT INTO VETAUVALUES('90874935', 'KH16', N'Người lớn', N'468,000', 'TN4B03', 'CT05')

INSERT INTO VETAUVALUES('90874936', 'KH17', N'Người lớn', N'311,000', 'SE6B10', 'CT03')

INSERT INTO VETAUVALUES('90874937', 'KH18', N'Đoàn viên công đoàn',

INSERT INTO VETAUVALUES('90874938', 'KH19', N'Sinh viên', N'421,000', 'TN4B10', 'CT05')

INSERT INTO VETAUVALUES('90874939', 'KH20', N'Người lớn', N'468,000', 'TN4B11', 'CT05')

3.1.5 Thêm d ữ liệu vào bảng Chuyế n tàu

INSERT INTO CHUYENTAUVALUES('CT01', '2023-03-15 13:00:00', '2023-03-16 14:00:00', N'Đã hoàn thành', N'HN-VIN')

INSERT INTO CHUYENTAUVALUES('CT02', '2023-03-15 13:00:00', '2023-03-16 14:30:00', N'Đã hoàn thành', N'VIN-ĐN')

INSERT INTO CHUYENTAUVALUES('CT03', '2023-03-26 12:00:00', '2023-03-26 15:00:00', N'Đang hoạt động', N'ĐN-TH')

INSERT INTO CHUYENTAUVALUES('CT04', '2023-03-15 14:00:00', '2023-03-15 21:00:00', N'Chưa khởi hành', N'TH-TC')

INSERT INTO CHUYENTAUVALUES('CT05', '2023-03-29 16:00:00', '2023-03-29 18:30:00', N'Chưa khởi hành', N'TC-SG')

3.1.6 Thêm d ữ liệu vào bảng Tuyế n tàu

INSERT INTO TUYENTAUVALUES( N'HN-VIN', N'HÀ NỘI', N'VINH')

INSERT INTO TUYENTAUVALUES( N'VIN-ĐN', N'VINH', N'ĐÀ NẴNG')

INSERT INTO TUYENTAUVALUES( N'ĐN-TH', N'ĐÀ NẴNG', N'TUY HÒA') INSERT INTO TUYENTAUVALUES( N'TH-TC', N'TUY HÒA', N'THÁP CHÀM') INSERT INTO TUYENTAUVALUES( N'TC-SG', N'THÁP CHÀM', N'SÀI GÒN')

3.1.7 Thêm d ữ liệu vào bảng Tàu

INSERT INTO TAUVALUES('SE2', '12', '768', '10', N'HN', N'HN-VIN')

INSERT INTO TAUVALUES('SE4', '12', '768', '9', N'VIN', N'VIN-ĐN')

INSERT INTO TAUVALUES('SE6', '11', '704', '8', N'ĐN', N'ĐN-TH')

INSERT INTO TAUVALUES('TN2', '13', '805', '9', N'TH', N'TH-TC')

INSERT INTO TAUVALUES('TN4', '13', '821', '10', N'TC', N'TC-SG')

3.1.8 Thêm d ữ liệu vào bảng Phản hồi

The database entries illustrate various performance evaluations for different projects For instance, 'KH01' and 'KH02' under 'CT01' have been marked as 'Completed' with positive and negative assessments, respectively Meanwhile, 'KH03' associated with 'CT02' is also 'Completed' and rated positively In contrast, 'KH04' linked to 'CT03' is still 'Incomplete' and holds a neutral evaluation.

The database entries demonstrate the status of various tasks associated with specific identifiers For instance, the task with ID 'KH05' related to 'CT03' is marked as 'Completed,' while 'KH06' for 'CT05' is also 'Completed.' However, the task 'KH07' linked to 'CT03' is noted as 'Not Completed.'

The database entries reflect various project statuses, categorized by sentiment For instance, 'KH08' and 'KH12' indicate a negative sentiment with completed tasks, while 'KH09' and 'KH14' show positive and neutral sentiments, respectively, with incomplete tasks Conversely, 'KH10', 'KH11', and 'KH13' demonstrate positive sentiment with completed statuses Overall, the data highlights a mix of completed and pending tasks across different sentiment categories.

The database entries indicate the completion status of various tasks For instance, the task associated with 'KH15' and 'CT03' has been marked as 'Completed', while 'KH16' linked to 'CT05' is also 'Completed' However, the task for 'KH17' related to 'CT03' remains 'Incomplete'.

To update data in tables using SQL commands, the following entries were made: 'KH18' with a status of 'Completed' marked as 'Negative', 'KH19' with a status of 'Not Completed' marked as 'Positive', and 'KH20' with a status of 'Completed' marked as 'Positive' This process is essential for maintaining accurate and up-to-date information in the database.

V ớ i nhữ ng dòng có phản hồi là tiêu cực, đổ i thành tích cự c update PHANHOI set LOAIPHANHOI= N'Tích cực'

3.3 Xóa d ữ liệuở các bả ng table bằ ng l ệ nh SQL

Xóa toàn bộ d ữ liệu trong bảng Nhân viên

Xóa toàn bộ d ữ liệu trong bảng Khách hàng delete from KHACHHANG

4 LỆNH TRUY VẤN DỮ LIỆU

Xuất thông tin những khách hàng có giới tính ‘Nữ’, hiển thị Mã KH, Tên KH, Địa chỉ và SĐT

SELECT K MAKH, K HOTEN, K DIACHI, K SDT

Xuất thông tin những nhân viên phụ trách việc bán vé

WHERE N.CHUCVU= N'Nhân viên bán vé'

4.2 Truy vấ n nhiều bả ng (Phép kế t)

Tìm thông tin của Khách hàng có loại vé là Sinh viên

SELECT KHACHHANG.MAKH, KHACHHANG.HOTEN

INNER JOIN VETAUON KHACHHANG.MAKH= VETAU.MAKH WHERE VETAU.LOAIVE= N'sinh viên'

Tìm khách hàng đánh giá tiêu cực

SELECT KHACHHANG.HOTEN, PHANHOI.LOAIPHANHOI

INNER JOIN PHANHOION KHACHHANG.MAKH=

WHERE PHANHOI.LOAIPHANHOI= N'Tiêu cực'

4.3 Truy vấn có điều kiệ n (and, or, like, between, )

In ra danh sách khách hàng và mã khách hàng tương ứng nằm trong độ tuổi gen Z Biết Gen Z là nhóm người có năm sinh từ 1997 đến 2012

WHERE K NGAYSINHBETWEEN'1-1-1997'AND '12-31-2012' Kết quả hiển thị:

In ra danh sách các nhân viên nam làm công việc Nhân viên bán vé

SELECT N.MANV, N.HOTEN, N NGAYSINH, N.GIOITINH, N.SDT, N.CHUCVU, N.MAGA

WHERE GIOITINH= 'NAM' AND CHUCVU= 'Nhân viên bán vé'

Tính tổng doanh thu mà chuyến tàu CT05 mang lại:

SELECT SUM (GIAVE) as N'Tổng doanh thu'

WHERE MA_CHUYEN_TAU ='CT05'

In ra MANV, HOTEN và tuổi của tất cả các nhân viên của tuyến tàu sắt Bắc Nam

DATEDIFF (year, NGAYSINH, GETDATE()) AS N'Tuổi'

4.5 Truy vấ n có gom nhóm (group by)

Đếm số khách hàng đi trên từng chuyến tàu select K MA_CHUYEN_TAU as' Chuyến tàu', count(K makh) as 'Số lượng' from KHACHHANG K group by K.MA_CHUYEN_TAU

Đếm số lượng của từng loại phản hồi select P.LOAIPHANHOI AS 'Loại phản hồi', count(p.makh) as 'Số lượng' from PHANHOI P group by P.LOAIPHANHOI

4.6.Truy vấn gom nhóm có điều kiệ n (having)

Tìm mãchuyến tàu có số vé đặt nhiều hơn 5

SELECT VETAU.MA_CHUYEN_TAU, COUNT(*) AS SoVeDat

INNER JOIN CHUYENTAU ON VETAU.MA_CHUYEN_TAU CHUYENTAU.MA_CHUYEN_TAU

GROUP BY VETAU.MA_CHUYEN_TAU

Tìm mã chuyến tàu có nhiều hơn hai nhân viên phục vụ

GROUP BY MA_CHUYEN_TAU

4.7 Truy vấ n có sử d ụ ng phép giao, hội, trừ

In ra danh sách khách hàng mua vé người lớn và có giá trên 300.000 đồng

SELECT K.MAKH, K.HOTEN, V.LOAIVE, V.GIAVE

JOIN VETAU V ON K.MAKH = V.MAKH

WHERE V.LOAIVE = N'Người lớn' AND V.GIAVE > N'300000'

– Lấy ra tất cả các khách hàng đã mua vé ngoại trừ chuyến CT03

SELECT K.MAKH, K.HOTEN, V.MAVE, V.MA_CHUYEN_TAU FROM KHACHHANG K

JOIN VETAU V ON K.MAKH = V.MAKH

WHERE V.MA_CHUYEN_TAU NOT IN (SELECT

MA_CHUYEN_TAU FROM CHUYENTAU WHERE

In ra họ tên và địa chỉ của những khách hàng đi trên chuyến tàu có mã CT01

WHERE MAKH IN (SELECT MAKH

WHERE MA_CHUYEN_TAU = 'CT01');

5 VIẾT STORE PROCEDURE, FUNCTION VÀ RÀNG BUỘC

1 Function lấy thông tin khách hàng theo mã khách hàng:

CREATE FUNCTION dbo.THONG_TIN_KHACH_HANG (@MAKH

Gọi hàm : Thông tin khách hàng có mã khách hàng là : KH01

SELECT * FROM dbo.THONG_TIN_KHACH_HANG('KH01');

- 2 Function tính số lượng nhân viên trong từng nhà ga :

CREATE FUNCTION dbo.SO_LUONG_NHAN_VIEN(@MAGA NVARCHAR (5)) RETURNS INT

JOIN NHAGA gON n.MAGA= g.MAGA

GROUP BY n.MAGA, g.TENGA, g.DIADIEM

Gọi hàm : Tính số lượng nhân viên trong từng nhà ga

SELECT G.MAGAas 'Mã ga', G.TENGAas 'Tên ga', G.DIADIEMas 'Địa điểm', COUNT( NHANVIEN.MANV) AS 'Số lượngnhân viên'

JOIN NHANVIENON G.MAGA= NHANVIEN.MAGA

GROUP BY G.MAGA, G.TENGA, G.DIADIEM

Gọi hàm : Tính số lượng nhân viên trong một nhà ga, cụ thể : Số lượng nhân viên trong nhà ga Hà Nội

SELECT dbo.SO_LUONG_NHAN_VIEN('HN') as 'Số lượng nhân viên nhà ga Hà Nội'

3 Function lấy danh sách nhân viên theo chức vụ:

CREATE FUNCTION dbo.DANH_SACH_NHAN_VIEN (@CHUCVU

Gọi hàm : Danh sách nhân viên có chức vụ là : Nhân viên bán vé

SELECT * FROM dbo.DANH_SACH_NHAN_VIEN('Nhân viên bán vé');

4 Function lấy danh sách các chuyến tàu trong khoảng thời gian cụ thể:

CREATE FUNCTION dbo.DANH_SACH_CHUYEN_TAU (@GIODIDATETIME,

WHERE GIODI>= @GIODIAND GIODEN= 10);

11 Ràng buộc tuổi nhân viên alter table NHANVIENadd constraint KT_TUOIcheck

12 Ràng buộc mã đặt chỗ phải gồm 6 ký tự alter table VETAUadd constraint KYTU_MADATCHO check(LEN(MA_DAT_CHO) = 6);

NHẬN XÉT VÀ ĐÁNH GIÁ HỆ THỐNG

Hệ thống quản lý bán vé tàu sắt được thiết kế để triển khai rộng rãi, nhấn mạnh tầm quan trọng của quản lý trong lĩnh vực này Hệ thống đáp ứng các yêu cầu cơ bản với sơ đồ dữ liệu và lược đồ quan hệ chi tiết, cùng với cấu trúc dữ liệu rõ ràng Nó giúp giảm thiểu công việc quản lý, tiết kiệm thời gian và nhân lực nhờ vào việc cập nhật dữ liệu liên tục và chính xác Thông tin liên quan đến hoạt động bán vé được thống kê chi tiết, hỗ trợ quản lý đánh giá tình hình kinh doanh của tàu sắt một cách hiệu quả.

Hệ thống hiện tại vẫn gặp một số lỗi nhỏ trong việc nhập dữ liệu và chỉ quản lý thông tin liên quan đến hoạt động bán vé Để nâng cao hiệu quả áp dụng thực tế, cần phát triển và mở rộng hệ thống nhằm quản lý các dịch vụ khác mà khách hàng thường sử dụng trên tàu sắt.

Hệ thống thông tin quản lý tàu sắt giúp hiểu rõ hơn về khách hàng và phản hồi của họ về chuyến tàu, từ đó cải thiện các vấn đề tiêu cực và phát huy những điểm tích cực nhằm nâng cao hiệu quả quản lý và tăng doanh thu Để khắc phục phản hồi tiêu cực từ khách hàng, có một số giải pháp mà doanh nghiệp có thể thực hiện.

Lắng nghe và thấu hiểu nhu cầu của khách hàng là điều quan trọng nhất Hãy thể hiện sự nghiêm túc và quan tâm đến ý kiến của họ để xây dựng mối quan hệ tốt đẹp.

Xác nhận vấn đề là bước đầu tiên quan trọng; sau khi lắng nghe, bạn nên nhắc lại vấn đề mà khách hàng đã trình bày và đặt thêm câu hỏi để làm rõ tình huống Tiếp theo, hãy đưa ra giải pháp phù hợp nhằm mang lại sự hài lòng cho khách hàng, có thể là điều chỉnh chính sách hoặc cung cấp thêm dịch vụ cần thiết.

Để phục vụ khách hàng một cách tận tâm, bạn cần đảm bảo rằng họ nhận được sự chăm sóc chu đáo và đầy đủ thông tin Hãy luôn sẵn sàng giải đáp mọi thắc mắc của khách hàng để tạo sự hài lòng và tin tưởng.

Theo dõi và cải tiến là bước quan trọng sau khi giải quyết vấn đề của khách hàng Bạn cần kiểm tra tình trạng của khách hàng để đảm bảo họ hài lòng với giải pháp đã đưa ra Nếu vấn đề vẫn chưa được khắc phục, hãy điều chỉnh và cải tiến giải pháp của bạn nhằm đạt được sự hài lòng tối đa từ phía khách hàng.

Ngày đăng: 12/12/2023, 15:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w