Professional Documents
Culture Documents
Nhom 9.baocaodean
Nhom 9.baocaodean
Nhom 9.baocaodean
HCM
Chúng em muốn gửi lời cảm ơn chân thành đến cô Hồ Thị Thanh Tuyến - giảng viên bộ
môn Cơ Sở Dữ Liệu, vì đã giảng dạy và hướng dẫn chúng em trong học phần này. Cô đã
truyền đạt kiến thức và kinh nghiệm của mình một cách chân thành và tận tâm, giúp chúng
em có thể nghiên cứu và tự xây dựng một cơ sở dữ liệu riêng cho mình. Qua đó, chúng em
đã hiểu rõ hơn về cách xây dựng và phát triển một cơ sở dữ liệu. Chúng em– hy vọng rằng
những kiến thức và kỹ năng mà cô đã truyền đạt sẽ giúp chúng em chuẩn bị tốt hơn cho
các học phần tiếp theo và trong tương lai. Chúng em rất trân trọng và cảm kích sự hỗ trợ
của cô. Chúc cô luôn thành công và hạnh phúc.
LỜI MỞ ĐẦU
Môn học cơ sở dữ liệu là một trong những môn học quan trọng trong ngành công nghệ
thông tin. Cơ sở dữ liệu là một hệ thống lưu trữ thông tin và cho phép truy xuất thông tin
một cách dễ dàng và hiệu quả. Việc sử dụng cơ sở dữ liệu đã trở thành một phần không
thể thiếu trong các ứng dụng và hệ thống thông tin hiện đại.
Với tốc độ phát triển của công nghệ thông tin, việc số hóa và hệ thống hóa, phát triển mọi
thứ theo hướng công nghệ số là điều tất yếu khách quan mà các ngành hàng phải thực
hiện nếu không muốn bị bỏ lại phía sau.
Việc quản lý khách hàng trong hệ thống đường sắt Bắc Nam là một thách thức lớn đối
với các nhà quản lý và chuyên gia trong lĩnh vực công nghệ thông tin. Hệ thống đường
sắt Bắc Nam bao gồm nhiều yếu tố phức tạp như các tuyến đường, ga tàu, lịch trình chạy
tàu và các thông tin liên quan khác. Do đó, việc sử dụng cơ sở dữ liệu là một giải pháp
hiệu quả và bắt kịp thời đại giúp cho việc quản lý khách hàng được hiệu quả và nhanh
chóng hơn.
Với bài toán thực tế đã được nêu như trên, chúng em xin đưa ra một hệ thống ứng dụng
cơ sở dữ liệu trong việc quản lý khách hàng trong hệ thống đường sắt Bắc Nam của Việt
Nam. Cuối bài, chúng ta sẽ đánh giá ưu điểm và hạn chế của hệ thống kèm theo đó là giải
pháp để khắc phục hoặc hoàn thiện những hạn chế trên.
MỤC LỤC
NỘI DUNG CHÍNH BÁO CÁO ĐỒ ÁN
CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI ............................................................................................................1
1. MÔ TẢ HỆ THỐNG ............................................................................................................................1
2. YÊU CẦU CỦA HỆ THỐNG ..............................................................................................................2
Chương II. THIẾT KẾ HỆ THỐNG ..........................................................................................................3
1. THIẾT KẾ VÀ MÔ TẢ DỮ LIỆU ...................................................................................................3
2. MÔ HÌNH THỰC THỂ .....................................................................................................................10
2.1. Mô hình thực thể kết hợp ...........................................................................................................10
2.2. Mô hình cơ sở dữ liệu .................................................................................................................11
2.3.Mô hình quan hệ ..........................................................................................................................12
3.RÀNG BUỘC TOÀN VẸN .................................................................................................................12
3.1.Ràng buộc giới tính khách hàng, nhân viên...............................................................................12
3.2. Ràng buộc họ tên khách hàng và nhân viên..............................................................................13
3.3. Ràng buộc mã khách hàng .........................................................................................................13
3.4. Ràng buộc mã nhân viên ............................................................................................................13
3.5. Ràng buộc mã khách hàng và mã nhân viên.............................................................................14
3.6. Ràng buộc số điện thoại của khách hàng và nhân viên ............................................................14
3.7. Ràng buộc số căn cước công dân của khách hàng ...................................................................14
3.8. Ràng buộc giờ đi và giờ đến của chuyến tàu .............................................................................15
3.9. Ràng buộc giá vé .........................................................................................................................15
3.10. Ràng buộc số điện thoại khách hàng .......................................................................................15
3.11.Ràng buộc tuổi nhân viên ..........................................................................................................15
3.12. Ràng buộc mã đặt chỗ...............................................................................................................16
CHƯƠNG III. THỰC HIỆN CÁC THAO TÁC TRÊN MICROSOFT SQL SERVER MANAGEMENT
....................................................................................................................................................................17
1. MÔ TẢ DỮ LIỆU ..............................................................................................................................17
1.1.Tạo database .................................................................................................................................17
1.2.Tạo các bảng ................................................................................................................................17
1.2.1.Tạo bảng Khách hàng...........................................................................................................17
1.2.2.Tạo bảng Nhân viên ..............................................................................................................17
1.2.3.Tạo bảng Tàu ........................................................................................................................17
1.2.4.Tạo bảng Vé tàu ....................................................................................................................18
1.2.5.Tạo bảng Nhà ga ...................................................................................................................18
1.2.6.Tạo bảng Chuyến tàu ............................................................................................................18
1.2.7.Tạo bảng Tuyến tàu ..............................................................................................................18
1.2.8.Tạo bảng Phản hồi ................................................................................................................18
2.TẠO KHÓA NGOẠI ...........................................................................................................................19
3.THAO TÁC TRÊN DỮ LIỆU.............................................................................................................19
3.1. Thêm dữ liệu vào các table bằng lệnh SQL ...............................................................................19
3.1.1.Thêm dữ liệu vào bảng Khách hàng ....................................................................................19
3.1.2.Thêm dữ liệu vào bảng Nhân viên .......................................................................................21
3.1.3.Thêm dữ liệu vào bảng Nhà ga ............................................................................................22
3.1.4. Thêm dữ liệu vào bảng Vé tàu .............................................................................................22
3.1.5. Thêm dữ liệu vào bảng Chuyến tàu ....................................................................................23
3.1.6. Thêm dữ liệu vào bảng Tuyến tàu .......................................................................................23
3.1.7. Thêm dữ liệu vào bảng Tàu .................................................................................................24
3.1.8. Thêm dữ liệu vào bảng Phản hồi ........................................................................................24
3.2. Update dữ liệu vào các table bằng lệnh SQL .............................................................................24
3.3. Xóa dữ liệu ở các bảng table bằng lệnh SQL ............................................................................24
4. LỆNH TRUY VẤN DỮ LIỆU ...........................................................................................................25
4.1.Truy vấn 1 bảng ...........................................................................................................................25
4.2. Truy vấn nhiều bảng (Phép kết) .................................................................................................25
4.3. Truy vấn có điều kiện (and, or, like, between,....) ......................................................................26
4.4. Truy vấn tính toán.......................................................................................................................27
4.5. Truy vấn có gom nhóm (group by) .............................................................................................28
4.6.Truy vấn gom nhóm có điều kiện (having) .................................................................................29
4.7. Truy vấn có sử dụng phép giao, hội, trừ. ...................................................................................30
4.8. Truy vấn con................................................................................................................................31
5. VIẾT STORE PROCEDURE, FUNCTION VÀ RÀNG BUỘC .......................................................31
5.1 Viết Function................................................................................................................................31
5.2.Viết store procedure .....................................................................................................................34
5.3. Viết ràng buộc .............................................................................................................................37
CHƯƠNG IV. NHẬN XÉT VÀ ĐÁNH GIÁ HỆ THỐNG .......................................................................40
CHƯƠNG V. PHỤ LỤC ............................................................................................................................41
NỘI DUNG CHÍNH BÁO CÁO ĐỒ ÁN
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.
1
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ữ.
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ự.
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.
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
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ự.
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.
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
có dạng KH+’Số’
VETAU
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.
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.
• Chú thích:
- Mối quan hệ “Có” giữa TAU – TUYENTAU là mối quan hệ một-nhiều: một
bên TAU và nhiều bên TUYENTAU. Nên chúng ta sẽ thêm thuộc tính khóa của bên
9
nhiều vào bên một, cụ thể là đưa thuộc tính MA_TUYEN_TAU của TUYENTAU vào
quan hệ TAU để làm khóa ngoại.
- Mối quan hệ “Quản lí” giữa GA – TAU là mối quan hệ một-nhiều: một bên
TAU và nhiều bên GA. Nên chúng ta sẽ đem thuộc tính khóa của bên nhiều bỏ vào bên
một, cụ thể là đưa MAGA của GA bỏ vào quan hệ TAU để làm khóa ngoại
- Mối quan hệ “Phản hồi” giữa KHACHHANG – CHUYENTAU là mối quan hệ nhiều-
nhiều. Nên chúng ta sẽ tạo một quan hệ mới có tên là PHANHOI có khóa chính là khóa
của các thuộc tính liên quan, cụ thể ở đây là KHACH HANG và CHUYENTAU.
2. MÔ HÌNH THỰC THỂ
2.1. Mô hình thực thể kết hợp
10
2.2. Mô hình cơ sở dữ liệu
11
2.3.Mô hình quan hệ
KHACHHANG + - +(GIOITINH)
NHANVIEN + - +(GIOITINH)
12
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
Bối cảnh : KHACHHANG, NHANVIEN
Biểu diễn : (∀(t)(KHACHHANG(t) ∧ (t.HOTEN ≠ NULL))) ∧
(∀(n)(NHANVIEN(n) ∧ (n.HOTEN ≠ NULL)))
Bảng tầm ảnh hưởng:
KHACHHANG + - +(HOTEN)
KHACHHANG + - +(MAKH)
13
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
Bối cảnh : KHACHHANG, NHANVIEN
Biểu diễn : (∀t1, t2 ∊ KHACHHANG(t1 ≠ t2 ∧ t1.MAKH ≠ t2.MAKH))
∧ (∀n1,n2 ∊ NHANVIEN(n1 ≠ n2 ∧ n1.MANV ≠ n2.MANV))
Bảng tầm ảnh hưởng :
KHACHHANG + - +(MAKH)
NHANVIEN + - +(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
Bối cảnh : KHACHHANG, NHANVIEN
Biểu diễn : (∀t1, t2 ∊ KHACHHANG(t1 ≠ t2 ∧ t1.SDT ≠ t2.SDT)) ∧ (∀n1,n2
∊ NHANVIEN(n1 ≠ n2 ∧ n1.MANV ≠ n2.MANV))
Bảng tầm ảnh hưởng :
KHACHHANG + - +(SDT)
NHANVIEN + - +(SDT)
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
Bối cảnh : KHACHHANG
Biểu diễn : (∀t1, t2 ∊ KHACHHANG(t1 ≠ t2 ∧ t1.CCCD ≠ t2.CCCD))
Bảng tầm ảnh hưởng :
KHACHHANG + - +(CCCD)
14
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
Bối cảnh : CHUYENTAU
Biểu diễn : ∀(t)(CHUYENTAU(t) ∧ (t.GIODI < t.GIODEN))
Bảng tầm ảnh hưởng :
KHACHHANG + - +(SDT)
15
R11 Thêm Xóa Sửa
VETAU + - +(MADATCHO)
16
CHƯƠNG III. THỰC HIỆN CÁC THAO TÁC TRÊN
MICROSOFT SQL SERVER MANAGEMENT
1. MÔ TẢ DỮ LIỆU
1.1.Tạo database
CREATE DATABASE TAUSAT
17
1.2.4.Tạo bảng Vé tàu
CREATE TABLE VETAU (
MAVE VARCHAR(8),
MAKH NVARCHAR(4) ,
LOAIVE NVARCHAR(30),
GIAVE MONEY,
MA_DAT_CHO VARCHAR(6),
MA_TUYEN_TAU NVARCHAR(10)
CONSTRAINT PK_MAVE PRIMARY KEY (MAVE)
)
1.2.5.Tạo bảng Nhà ga
CREATE TABLE NHAGA (
MAGA NVARCHAR(5),
TENGA NVARCHAR(50) ,
DIADIEM NVARCHAR(100)
CONSTRAINT PK_MAGA PRIMARY KEY (MAGA)
)
1.2.6.Tạo bảng Chuyến tàu
CREATE TABLE CHUYENTAU (
MA_CHUYEN_TAU NVARCHAR(4),
GIODI DATETIME,
GIODEN DATETIME,
TRANGTHAI NVARCHAR(50),
MA_TUYEN_TAU NVARCHAR(10) ,
CONSTRAINT PK_MA_CHUYEN_TAU PRIMARY KEY (MA_CHUYEN_TAU)
)
1.2.7.Tạo bảng Tuyến tàu
CREATE TABLE TUYENTAU (
MA_TUYEN_TAU NVARCHAR(10) ,
GADI NVARCHAR(50),
GADEN NVARCHAR(50)
CONSTRAINT PK_MA_TUYEN_TAU PRIMARY KEY (MA_TUYEN_TAU)
)
1.2.8.Tạo bảng Phản hồi
CREATE TABLE PHANHOI (
MAKH NVARCHAR(4) ,
LOAIPHANHOI NVARCHAR(50),
TRANGTHAIXULI NVARCHAR(50),
MA_CHUYEN_TAU NVARCHAR(4)
CONSTRAINT PK_MAKH_MA_CHUYEN_TAU PRIMARY KEY
(MAKH,MA_CHUYEN_TAU ))
18
2.TẠO KHÓA NGOẠI
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 ('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 ('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,
TP.HCM', 'CT03')
20
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 NHANVIEN VALUES ('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 NHANVIEN VALUES ('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 NHANVIEN VALUES ('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 NHANVIEN VALUES ('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 NHANVIEN VALUES ('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 NHANVIEN VALUES ('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')
21
3.1.3.Thêm dữ liệu vào bảng Nhà ga
INSERT INTO VETAU VALUES ('90874920', 'KH01', N'Đoàn viên công đoàn',
N'243,000', 'SE2A09', 'CT01')
INSERT INTO VETAU VALUES ('90874926', 'KH07', N'Người cao tuổi', N'265,000',
'SE6B07', 'CT03')
INSERT INTO VETAU VALUES ('90874931', 'KH12', N'Đoàn viên công đoàn',
N'296,000', 'SE6B15', 'CT03')
22
INSERT INTO VETAU VALUES ('90874932', 'KH13', N'Sinh viên', N'310,000',
'TN4A12', 'CT05')
INSERT INTO VETAU VALUES ('90874937', 'KH18', N'Đoàn viên công đoàn',
N'445,000', 'TN4B04', 'CT05')
23
3.1.7. Thêm dữ liệu vào bảng Tàu
INSERT INTO TAU VALUES ('SE2', '12', '768', '10', N'HN', N'HN-VIN')
update PHANHOI
set LOAIPHANHOI=N'Tích cực'
WHERE LOAIPHANHOI=N'Tiêu 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
-- Xuất thông tin những nhân viên phụ trách việc bán vé
SELECT *
FROM KHACHHANG K
WHERE K.NGAYSINH BETWEEN'1-1-1997'AND '12-31-2012'
Kết quả hiển thị:
26
-- 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é
-- 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
SELECT MANV, HOTEN,
DATEDIFF (year, NGAYSINH, GETDATE()) AS N'Tuổi'
FROM NHANVIEN
Kết quả hiển thị:
27
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
Kết quả hiển thị:
28
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
29
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
– 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
MA_CHUYEN_TAU = 'CT03')
30
4.8. Truy vấn con
--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.
SELECT HOTEN, DIACHI
FROM KHACHHANG
WHERE MAKH IN (SELECT MAKH
FROM VETAU
WHERE MA_CHUYEN_TAU = 'CT01');
Kết quả hiển thị:
-- 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
--3. Function lấy danh sách nhân viên theo chức vụ:
-- Gọi hàm : Danh sách nhân viên có chức vụ là : 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ể:
-- Gọi hàm : Danh sách các chuyến tàu trong khoảng thời gian từ '2023-03-15 13:00:00'
đến '2023-03-16 14:00:00'
-- 5. Function để lấy thông tin tất cả các khách hàng đặt vé trên một chuyến tàu cụ thể:
33
CREATE FUNCTION dbo.THONG_TIN_KHACH_HANG_DAT_VE
(@MA_CHUYEN_TAU NVARCHAR(4))
RETURNS TABLE
AS
RETURN
(
SELECT K.MAKH, K.HOTEN, K.NGAYSINH, K.GIOITINH, K.CCCD,
K.SDT, K.DIACHI, V.MAVE, V.LOAIVE, V.GIAVE,V.MA_DAT_CHO
FROM KHACHHANG K
INNER JOIN VETAU V ON K.MAKH = V.MAKH
INNER JOIN CHUYENTAU ON CHUYENTAU.MA_CHUYEN_TAU =
V.MA_CHUYEN_TAU
WHERE CHUYENTAU.MA_CHUYEN_TAU = @MA_CHUYEN_TAU
)
-- Gọi hàm : Thông tin tất cả các khách hàng đặt vé trên chuyến tàu CT05
--1. Thủ tục để lấy thông tin khách hàng theo mã khách hàng trong bảng KHACHHANG
--Gọi hàm : Thủ tục để lấy thông tin khách hàng có mã 'KH01' trong bảng
KHACHHANG
34
--2. Thủ tục để cập nhật thông tin khách hàng trong bảng KHACHHANG:
-- Gọi hàm : cập nhật thông tin khách hàng có mã 'KH01' trong bảng KHACHHANG
EXEC Cap_Nhat_Khach_Hang
@MAKH = N'KH01',
@HOTEN = N'Lê Bá Học',
@NGAYSINH = '1988-07-25',
@GIOITINH = N'Nam',
@CCCD = '065988010745',
@SDT = '0985145785',
@DIACHI = N'48 Nguyễn Đình Chiểu, phường Tân Lợi, TP. Buôn Ma Thuột, tỉnh Đắk
Lắk',
@MA_CHUYEN_TAU = N'CT04'
SELECT *
FROM KHACHHANG K
35
WHERE K.MAKH = 'KH01'
-- Gọi hàm : Thêm thông tin khách hàng mới có mã khách hàng là 'KH21'
EXEC Them_Khach_Hang_Moi
@MAKH = N'KH21',
@HOTEN = N'Hồ Hoàng Robin',
@NGAYSINH = '2000-02-20',
@GIOITINH = N'Nam',
@CCCD = '066208060931',
@SDT = '0903554345',
@DIACHI = N'15/88A Y Ngông, Tân Tiến, TP. Buôn Ma Thuột, tỉnh Đắk Lắk',
@MA_CHUYEN_TAU = N'CT01'
36
-- 4. Thủ tục để lấy danh sách nhân viên theo chức vụ trong bảng NHANVIEN:
--Gọi hàm : lấy danh sách nhân viên có chức vụ là 'Nhân viên phục vụ khách hàng' trong
bảng NHANVIEN
--1. Ràng buộc giới tính khách hàng, nhân viên phải thuộc nam hoặc nữ
--2. Ràng buộc họ tên khách hàng và nhân viên không được để trống
--6. Ràng buộc số điện thoại của khách hàng và nhân viên là duy nhất
--7. Ràng buộc số căn cước công dân của khách hàng là duy nhất
--8. Ràng buộc giờ đi phải nhỏ hơn giờ đến của chuyến tàu
--10. Ràng buộc số điện thoại khách hàng lớn hơn hoặc bằng 10 số
39
CHƯƠNG IV. NHẬN XÉT VÀ ĐÁNH GIÁ HỆ THỐNG
Hệ thống quản lý hoạt động bán vé tàu sắt được thiết kế rất khả thi và có thể được triển
khai rộng rãi do tính quan trọng của việc quản lý trong lĩnh vực này. Hệ thống đã đáp ứng
được các yêu cầu cơ bản bao gồm cung cấp các sơ đồ dữ liệu và lược đồ quan hệ chi tiết,
cũng như các cấu trúc dữ liệu chi tiết. Nó giúp giảm thiểu công việc quản lý và tiết kiệm
thời gian và nhân lực bằng cách 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ũng được thống kê chi tiết, giúp quản lý đánh giá tình hình kinh
doanh của tàu sắt một cách dễ dàng.
Tuy nhiên, hệ thống cũng còn một số lỗi nhỏ trong quá trình nhập dữ liệu và đang dừng lại
ở mức quản lý thông tin liên quan nhất đến hoạt động bán vé. Để có thể áp dụng thực tế,
hệ thống cần được phát triển và mở rộng để quản lý các hoạt động dịch vụ khác mà khách
hàng thường sử dụng tại tàu sắt.
Dựa vào hệ thống thông tin quản lý tàu sắt,ta có thể hiểu hơn về khách hàng và những phản
hồi của khách hàng về chuyến tàu mà họ sử dụng để đưa ra cách khắc phục các mặt tiêu
cực cũng như phát huy các mặt tích cực để từ đó quản lý tàu sắt được tốt hơn và tăng doanh
thu.
Để khắc phục phản hồi tiêu cực của khách hàng về chuyến tàu khách đã đi, có một số
hướng khắc phục khách hàng có thể thực hiện như sau:
Lắng nghe và thấu hiểu: Đầu tiên, bạn cần lắng nghe và thấu hiểu những gì khách
hàng muốn truyền đạt. Hãy cho khách hàng biết rằng bạn đang nghiêm túc và quan tâm
đến ý kiến của họ.
Xác nhận vấn đề: Sau khi lắng nghe, hãy xác nhận lại vấn đề mà khách hàng đã nêu
ra. Bạn có thể hỏi thêm chi tiết để hiểu rõ hơn về tình huống mà họ đã trải qua.
Đưa ra giải pháp: Sau khi hiểu vấn đề, hãy đưa ra giải pháp để khách hàng có thể
cảm thấy hài lòng. Giải pháp có thể là thay đổi chính sách hoặc cung cấp thêm dịch vụ cho
khách hàng.
Tận tâm phục vụ: Bạn cần đảm bảo rằng khách hàng được phục vụ tận tình và chu
đáo. Hãy chắc chắn rằng họ nhận được thông tin cần thiết và được giải đáp mọi thắc mắc
của mình.
Theo dõi và cải tiến: Cuối cùng, bạn nên theo dõi lại tình trạng của khách hàng sau
khi giải quyết vấn đề. Điều này giúp bạn đảm bảo rằng khách hàng đã hài lòng với giải
pháp của bạn. Nếu vấn đề vẫn còn tồn tại, hãy cải tiến giải pháp của mình để đảm bảo
khách hàng hài lòng.
40
CHƯƠNG V. PHỤ LỤC
5.1.Các bảng sau khi được nhập liệu