Up5me
Trang chủ > Câu hỏi lẻ > iXXDBCSpE1xX

Đề bài

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:

1. Khi một khách hàng mới (chưa có trong cơ sở dữ liệu) đến siêu thị mua hàng và thanh toán 2 mặt hàng khác nhau thì dữ liệu giao dịch này sẽ được nhập vào chỉ trong một bảng giaodich.
2. Câu lệnh SQL để lấy ra giao dịch liên quan một khách hàng có idKhachhang bằng 3 là:SELECT idKhachhang = 3 FROM giaodich
3. Câu lệnh SQL lấy ra tất cả mặt hàng trong giao dịch có idGiaodich bằng 8 là:SELECT mh.idMathang, mh.tenMathang, mh.giaban, bh.soluong FROM banhang AS bh INNER JOIN mathang AS mh ON bh.idMathang = mh.idMathang WHERE giaodich.idGiaodich = 8
4. Trong các trường (cột) dữ liệu của cơ sở dữ liệu trên, trường dữ liệu sotien trong bảng giaodich là vị trí phù hợp để lưu thừa dữ liệu
Đáp án đúng: 1S, 2S, 3Đ, 4Đ

Xem lời giải

Phương pháp giải

Lời giải chi tiết

a) Sai. Dữ liệu nhập vào 2 bảng: giaodich và banhang.
b) Sai. Đáp án là: SELECT * FROM giaodich WHERE idKhachhang =3
d) Đúng. Trường hợp dư thừa này nhằm tăng hiệu năng truy vấn cơ sở dữ liệu.

Chú ý khi giải