Cho cơ sở dữ liệu của một siêu thị gồm các bảng sau:
- Bảng mathang (idMathang, tenMathang, gianhap, giaban, soluong) lưu danh sách các mặt hàng của siêu thị: id mặt hàng, tên mặt hàng, giá nhập vào, giá bán ra, số lượng còn lại trong siêu thị.
- Bảng khachhang (idKhachhang, hoten, tel, diachi) lưu thông tin khách hàng: id khách hàng, họ tên, số điện thoại, địa chỉ.
- Bảng giaodich (idGiaodich, idKhachhang, ngayGiaodich, sotien) lưu giao dịch một lần mua hàng của khách hàng: id giao dịch, id khách hàng, ngày giao dịch, tổng số tiền của giao dịch.
- Bảng banhang (idMathang, idGiaodich, soluong) lưu các mặt hàng đã được bán theo từng giao dịch: id mặt hàng, id giao dịch, số lượng.
Một số bạn học sinh đưa ra các ý kiến về việc khai thác cơ sở dữ liệu trên như sau:
Lời giải chi tiết
a) Sai. Khi nhập mặt hàng mới thì dữ liệu được cập nhật vào bảng mathang.
b) Sai. Cột soluong trong bảng mathang và bảng banhang mang ý nghĩa khác nhau, không tham chiếu đến nhau và cũng không phải cột khoá chính và khoá ngoài của bảng.
c) Đúng. Khi một giao dịch được thực hiện thì thông tin về giao dịch được cập nhật vào bảng giaodich, danh sách các mặt hàng của giao dịch được cập nhật vào bảng banhang, số lượng còn lại của mặt hàng được cập nhật trong bảng mathang. Nếu khách hàng chưa có trong cơ sở dữ liệu thì thông tin khách hàng được cập nhật vào bảng khachhang.
d) Đúng. Để lấy ra các mặt hàng mua bởi khách hàng có idKhachhang bằng 1 thì cần kết nối (inner join) 3 bảng: giaodich, mathang, banhang.