CASE STUDY 12:
HỆ THỐNG QUẢN LÝ XE KHÁCH CHO BẾN XE NAM KHÁNH
Công ty phần mềm B-Shop mới nhận được dự án Xây dựng hệ thống quản lý xe khách cho bến xe Nam Khánh cách đây hơn 3 tháng. Bến xe phục vụ vận chuyển khách liên tỉnh nên có các tuyến đi và về các địa điểm trên cả nước. Trong đó phục vụ nhu cầu của khách đi Hà Nội chiếm tỷ lệ khá lớn, ngoài ra còn phục vụ đi các tỉnh khác như: Hải Phòng, Thái Bình, Nghệ An,...
Chức năng nhiệm vụ của bến xe gồm: - Xử lý đơn đặt hàng của khách hàng - Quản lý hoạt động điều hành vận tải - Quản lý bán vé
Nhóm BS được giao nhiệm vụ phát triển cơ sở dữ liệu cho dự án. Sau hơn 2 tháng phân tích và thiết kế. Nhóm đã đưa ra bản thiết kế logic và vật lý của hệ thống như sau:
Thiết kế chi tiết các bảng
1. Bảng XE_OTO
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaSoXe Nvarchar2 10 XExxxx Khóa chính Mã số xe
BienSo Nvarchar2 20 Not Null Biển số xe
SoGhe Number 4 Số ghế
MaChuXe Nvarchar2 10 Not Null Mã chủ xe
MaSoTuyen Nvarchar2 10 Mã số
tuyến
MaChatLuong Nvarchar2 10 Mã chất
lượng
2. Bảng CHU_XE
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaChuXe Nvarchar2 10 CXxxxx Khóa chính Mã chủ xe
TenChuXe Nvarchar2 20 Not Null Tên chủ xe
SoCMT Nvarchar2 20 Not Null Số chứng
minh thư
DiaChi Nvarchar2 30 Địa chỉ
DienThoai Nvarchar2 20 Số điện
thoại
3. Bảng TUYEN
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaSoTuyen Nvarchar2 10 TNxxxx Khóa chính Mã số tuyến
DiaDiem1 Nvarchar2 30 Địa điểm
bắt đầu
DiaDiem2 Nvarchar2 30 Địa điểm
đích
DoDai Nvarchar2 10 Độ dài
đoạn đường giữa 2 địa điểm
Thuộc tính Kiểu dữ liệu Kích thước Định dạng
Ràng buộc Chú thích
MaPDT Nvarchar2 20 PDTxxxx Khóa chính Mã phiếu đăng tải
MaSoXe Nvarchar2 20 Mã số xe
MaSoTuyen Nvarchar2 20 Mã số
tuyến
Ngay Date Ngày tháng
5. Bảng CHAT_LUONG
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaChatLuong Nvarchar2 20 CLxxxx Khóa chính Mã chất lượng
ChatLuong Nvarchar2 30 Chất lượng
xe
6. Bảng VE
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaSoVe Nvarchar2 20 Vexxxx Khóa chính Mã số vé
MaSoXe Nvarchar2 20 Mã số xe
SoGhe Number 4 Số ghế mà
khách ngồi trên xe
7. Bảng NHAN_VIEN
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaNhanVien Nvarchar2 20 NVxxxx Khóa chính Mã nhân viên TenNhanVien Nvarchar2 30 GioiTinh Nvarchar2 10 NgaySinh Date DiaChi Nvarchar2 30 SoDienThoai Nvarchar2 30 MaChucVu Nvarchar2 20 Mã chức vụ MaSoLuong Nvarchar2 10 Mã số lương MaPhongBan Nvarchar2 15
8. Bảng HOADON_BANVE
Thuộc tính Kiểu dữ liệu Kích thước Định
dạng
Ràng buộc Chú thích
MaHDB Nvarchar2 20 HDBxxxx Khóa chính Mã hóa đơn bán
MaSoXe Nvarchar2 20 Mã số xe
MaKhach Number 4 Mã khách
MaNhanVien Nvarchar2 20
SoLuong Number 4 Số lượng
NgayLap Date Ngày lập
hóa đơn
DonGia Number 10 Đơn giá
9. Bảng HOADON_DIADIEM
Thuộc tính Kiểu dữ liệu Kích thước Định dạng Ràng buộc Chú thích
MaHDDD Nvarchar2 20 HDDDxxxx Khóa chính Mã hóa đơn địa điểm
MaSoXe Nvarchar2 20 Mã số xe
MaNhanVien Nvarchar2 20
SoLuong Number 4 Số lượng
NgayLap Date Ngày lập
hóa đơn
SoTien Number 10 Số tiền
10. Bảng CHUC_VU
Thuộc tính Kiểu dữ liệu Kích thước Định dạng Ràng buộc Chú thích
MaChucVu Nvarchar2 20 CVxxxx Khóa chính Mã chức vụ
ChucVu Nvarchar2 20 Chức vụ
11. Bảng PHONG_BAN
Thuộc tính Kiểu dữ liệu Kích thước Định dạng Ràng buộc Chú thích
MaPhongBan Nvarchar2 20 PBxxxx Khóa chính Mã phòng ban
TenPhongBan Nvarchar2 30 Tên phòng
ban
Thuộc tính Kiểu dữ liệu Kích thước Định dạng Ràng buộc Chú thích MaSoLuong Nvarchar2 20 LGxxxx Khóa chính Mã số
lương
HeSoLuong Nvarchar2 10 Hệ số
lương
13. Bảng LENH_XUAT_BEN
Thuộc tính Kiểu dữ liệu Kích
thước Định dạng Ràng buộc Chú thích
MaLenhXuatBen Nvarchar2 20 LXBxxxx Khóa chính Mã lệnh xuất bến
NgayCap Date Ngày cấp
NhanVienCap Nvarchar2 20 Nhân viên
cấp
Giả sử anh/chị là thành viên của đội CS3 và được giao nhiệm vụ phát triển cơ sở dữ liệu này trên hệ quản trị CSDL Oracle 11g. Anh/chị hãy thực hiện những công việc cần thiết sau đây để giải quyết công việc được giao:
1. Tạo cơ sở dữ liệu với tên phù hợp
Chú ý: Lượng dữ liệu lưu trữ của bến xe khoảng 400 bản ghi mỗi ngày, trừ những ngày đặc biệt như ngày lễ, tết,... thì lượng dữ liệu lưu trữ nhiều hơn khoảng 100 bản ghi. Anh/chị hãy lựa chọn các thông số để tạo cơ sở dữ liệu cho phù hợp. 2. Với số lượng bảng như trên, theo anh/chị có cần thiết phải tạo nhiều tablespace không? Hãy đưa ra những giải thích cho lựa chọn của anh/chị?
3. Tạo các tablespace cần thiết, các bảng như đã thiết kế và mối quan hệ giữa chúng.
4. Ban quản lý xe thường xuyên thực hiện các truy vấn như sau: - Hiển thị thông tin về các xe chạy trên cùng một tuyến cụ thể nào đó - Số xe ra vào trong một ngày lễ đặc biệt
- Xe có số ghế ngồi nhiều nhất - Các tuyến có cùng địa điểm đến - Số vé trên một xe bất kỳ
Để cải thiện hiệu năng hoạt động của hệ thống thì cần phải cải thiện tốc độ thực hiện của những truy vấn này trước tiên. Anh/chị hãy vận dụng những kiến thức đã học để tối ưu tốc độ thực hiện của những truy vấn đã nêu, đồng thời thực hiện truy vấn đã nêu.
5. Ban giám đốc của bến xe Nam Khánh được quyền xem thông tin về các tuyến xe, lịch trình, nhân viên, vé xe,... Ngoài ra phòng điều hành còn có một số nhân viên IT làm nhiệm vụ quản lý các hệ thống thông tin và hỗ trợ nhân viên nghiệp vụ nếu gặp trục trặc trong qua trình sử dụng các hệ thống. Những nhân viên IT này sẽ quản trị cơ sở dữ liệu. Ngoài ra, nhân viên ở phòng hành chính có thể thực hiện các thao tác chỉnh sửa (bao gồm thêm mới, sửa đổi, xóa) dữ liệu trong các bảng.
Anh/chị hãy thiết lập cơ chế bảo mật phù hợp với chi nhánh.
6. Để tăng hiệu năng hoạt động của hệ thống, một số quy tắc nghiệp vụ được xử lý ở tầng cơ sở dữ liệu. Anh/chị hãy triển khai những yêu cầu nghiệp vụ này bằng những đối tượng phù hợp:
- Không cho phép thay đổi mã vé trong bảng vé - Chủ xe nào đó sở hữu bao nhiêu xe
- Mỗi phòng ban trong bến xe có bao nhiêu nhân viên - Có bao nhiêu xe có chất lượng dưới trung bình
- Theo quy định của bến xe: một xe nào đó muốn được xuất bến thì xe đó phải có lệnh xuất bến từ ban điều hành. Kiểm tra xem có bao nhiêu xe vi phạm quy định này trong một ngày nào đó.
7. Ban giám đốc yêu cầu backup dữ liệu vào 15h chiều thứ 7 của tuần cuối cùng mỗi tháng. Tuy nhiên do tính chất công việc, không phải ngày cuối cùng nào trong tháng nhân viên cũng có mặt ở văn phòng để backup dữ liệu. Anh chị hãy thiết lập và thực thi phương án backup dữ liệu phù hợp.
8. Giả sử hệ thống đã đi vào hoạt động ổn định. Đột nhiên một ngày, nhân viên trong phòng hành chính không thể sử dụng EMC để kết nối tới CSDL. Anh/chị thử phỏng đoán những nguyên và đề ra phương án giải quyết cho những nguyên đó.