Một công ty vận tải đường bộ quản lí dữ liệu vận chuyển hành khách với cơ sở dữ liệu gồm các bảng sau:
- HANH_KHACH(maHK, tenHK) lưu mã hành khách, tên hành khách; Mỗi mã hành khách xác định duy nhất một hành khách.
- XE(maXe, bienSo, soLuongGhe) lưu mã xe, biển số xe, số lượng ghế của xe; Mỗi mã xe xác định duy nhất một xe. Mỗi xe có một biển số duy nhất được cấp bởi cơ quan có thẩm quyền.
- VE_XE(maVe, maHK, maXe, soGhe, ngayDi, gioDi, diemDon, diemTra) lưu mã vé, mã hành khách, mã xe, số ghế, ngày đi, giờ đi, điểm đón, điểm trả khách; Mỗi hành khách đi xe cần mua một vé, mỗi vé có mã duy nhất. Với mỗi vé, hành khách được xếp một ghế ngồi trên xe.
Có một số nhận xét như sau về việc sử dụng phần mềm để tạo và khai thác cơ sở dữ liệu trên:
- a)Đúng
Để tạo cấu trúc bảng HANH_KHACH, có các thao tác sau cần thực hiện: Tạo bảng mới; Đặt tên bảng; Tạo và xác định kiểu dữ liệu cho các trường; Thiết lập khóa chính.
- b)Đúng
Để đảm bảo tính nhất quán của dữ liệu, trước khi nhập dữ liệu cho bảng VE_XE, cần nhập dữ liệu cho bảng HANH_KHACH và XE.
- c)Đúng
Trong bảng XE, không thể thiết lập bienSo làm khóa chính và tự động tăng.
- d)Sai
Để đưa ra thông tin gồm tên và số ghế của hành khách đi xe có biển số “10A-123.45” và có điểm trả là “Hà Nội”, cần thực hiện truy vấn với các thành phần sau:
- Các trường và bảng được chọn: HANH_KHACH.tenHK, VE_XE.soGhe.
- Các cặp bảng được liên kết qua khóa tương ứng: HANH_KHACH và VE_XE qua maHK; HANH_KHACH và XE qua maXe.
- Điều kiện truy vấn: XE.bienSo = “10A-123.45” và VE_XE.diemTra = “Hà Nội”.
Lời giải
a) Đúng: tạo cấu trúc bảng gồm tạo bảng mới, đặt tên, tạo trường và chọn kiểu dữ liệu, thiết lập khóa chính.
b) Đúng: VE_XE tham chiếu maHK và maXe (khóa ngoài), nên cần nhập dữ liệu cho HANH_KHACH và XE trước.
c) Đúng: bienSo là chuỗi kí tự do cơ quan có thẩm quyền cấp, không thể là trường số tự động tăng.
d) Sai: bảng HANH_KHACH không có trường maXe nên không thể liên kết trực tiếp với bảng XE. Cần liên kết HANH_KHACH với VE_XE qua maHK và VE_XE với XE qua maXe.