Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành tạo lập các bảng có khóa ngoài - Đề 10
Trắc nghiệm Tin học 11 Kết nối tri thức Bài 20: Thực hành tạo lập các bảng có khóa ngoài - Đề 10 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.
Câu 1: Trong mô hình cơ sở dữ liệu quan hệ, khóa ngoài (foreign key) được sử dụng để thiết lập mối quan hệ giữa các bảng. Phát biểu nào sau đây mô tả đúng nhất mục đích chính của khóa ngoài?
- A. Đảm bảo rằng dữ liệu trong một bảng được sắp xếp theo thứ tự nhất định.
- B. Duy trì tính toàn vẹn tham chiếu bằng cách liên kết các bản ghi giữa hai bảng.
- C. Tăng tốc độ truy vấn dữ liệu trong các bảng lớn.
- D. Ngăn chặn việc tạo ra các bản ghi trùng lặp trong cùng một bảng.
Câu 2: Cho hai bảng "SinhVien" và "Khoa" trong một cơ sở dữ liệu quản lý sinh viên. Bảng "SinhVien" có cột "MaKhoa" tham chiếu đến cột "MaKhoa" (khóa chính) của bảng "Khoa". Điều gì xảy ra khi bạn cố gắng xóa một bản ghi Khoa từ bảng "Khoa" mà vẫn còn sinh viên thuộc khoa đó trong bảng "SinhVien" nếu ràng buộc khóa ngoài được thiết lập với tùy chọn mặc định?
- A. Bản ghi Khoa sẽ bị xóa và cột "MaKhoa" của các sinh viên thuộc khoa đó trong bảng "SinhVien" sẽ tự động được đặt thành NULL.
- B. Bản ghi Khoa sẽ bị xóa và các bản ghi sinh viên thuộc khoa đó trong bảng "SinhVien" cũng sẽ tự động bị xóa.
- C. Hệ thống sẽ ngăn chặn thao tác xóa bản ghi Khoa để duy trì tính toàn vẹn tham chiếu.
- D. Bản ghi Khoa sẽ bị xóa, nhưng hệ thống sẽ không thực hiện bất kỳ thay đổi nào đối với bảng "SinhVien".
Câu 3: Trong SQL, để tạo một khóa ngoài cho cột "MaSach" trong bảng "MuonSach" tham chiếu đến cột "IDSach" (khóa chính) của bảng "Sach", cú pháp nào sau đây là đúng?
- A. FOREIGN KEY (IDSach) REFERENCES Sach(MaSach)
- B. FOREIGN KEY (MaSach) REFERENCES Sach(IDSach)
- C. PRIMARY KEY (MaSach) REFERENCES Sach(IDSach)
- D. UNIQUE KEY (MaSach) REFERENCES Sach(IDSach)
Câu 4: Xét lược đồ cơ sở dữ liệu gồm bảng "DonHang" (MaDH, NgayDatHang, MaKH) và "KhachHang" (MaKH, TenKH, DiaChi). "MaKH" trong bảng "DonHang" là khóa ngoài tham chiếu đến "MaKH" trong "KhachHang". Loại quan hệ giữa "DonHang" và "KhachHang" là gì?
- A. Một - Nhiều (Một khách hàng có thể có nhiều đơn hàng)
- B. Một - Một (Một khách hàng chỉ có một đơn hàng)
- C. Nhiều - Nhiều (Nhiều khách hàng có thể có nhiều đơn hàng)
- D. Không xác định (Không đủ thông tin để xác định quan hệ)
Câu 5: Khi thiết kế cơ sở dữ liệu cho hệ thống quản lý thư viện, bạn có bảng "Sach" và "TheLoai". Mỗi cuốn sách thuộc về một thể loại. Bạn nên sử dụng loại khóa nào trong bảng "Sach" để liên kết đến bảng "TheLoai"?
- A. Khóa chính (Primary Key)
- B. Khóa duy nhất (Unique Key)
- C. Khóa ngoài (Foreign Key)
- D. Khóa chỉ mục (Index Key)
Câu 6: Giả sử bạn có bảng "NhanVien" với cột "MaPhongBan" là khóa ngoài tham chiếu đến bảng "PhongBan". Nếu bạn muốn hiển thị danh sách nhân viên và tên phòng ban của họ, bạn cần thực hiện phép toán nào trên cơ sở dữ liệu?
- A. Phép chọn (Select)
- B. Phép kết nối (Join)
- C. Phép chiếu (Project)
- D. Phép hợp (Union)
Câu 7: Trong quá trình tạo bảng "SinhVien", bạn muốn cột "DiaChi" có thể để trống (NULL) nếu sinh viên chưa cung cấp địa chỉ. Tuy nhiên, cột "MaKhoa" (khóa ngoài) bắt buộc phải có giá trị tham chiếu đến bảng "Khoa". Phát biểu nào sau đây là đúng về thuộc tính NULL của khóa ngoài?
- A. Khóa ngoài có thể chấp nhận giá trị NULL, cho phép bản ghi trong bảng hiện tại không cần tham chiếu đến bản ghi nào trong bảng tham chiếu.
- B. Khóa ngoài không bao giờ được phép có giá trị NULL để đảm bảo tính toàn vẹn tham chiếu.
- C. Thuộc tính NULL của khóa ngoài phụ thuộc vào kiểu dữ liệu của cột khóa ngoài.
- D. Giá trị NULL trong khóa ngoài tự động được thay thế bằng giá trị mặc định từ bảng tham chiếu.
Câu 8: Xét tình huống bảng "SanPham" có cột "MaNCC" là khóa ngoài liên kết đến bảng "NhaCungCap". Nếu bạn muốn thay đổi mã nhà cung cấp ("MaNCC") của một nhà cung cấp trong bảng "NhaCungCap", điều gì có thể xảy ra nếu có các sản phẩm trong bảng "SanPham" vẫn đang tham chiếu đến mã nhà cung cấp cũ?
- A. Mã nhà cung cấp trong bảng "NhaCungCap" sẽ tự động được cập nhật và giá trị "MaNCC" trong bảng "SanPham" cũng tự động cập nhật theo.
- B. Mã nhà cung cấp trong bảng "NhaCungCap" sẽ được phép cập nhật và giá trị "MaNCC" trong bảng "SanPham" sẽ trở thành không hợp lệ.
- C. Hệ thống có thể ngăn chặn việc cập nhật mã nhà cung cấp trong bảng "NhaCungCap" để đảm bảo tính toàn vẹn tham chiếu (tùy thuộc vào ràng buộc ON UPDATE).
- D. Việc cập nhật mã nhà cung cấp trong bảng "NhaCungCap" sẽ không ảnh hưởng đến dữ liệu trong bảng "SanPham".
Câu 9: Trong một cơ sở dữ liệu bán hàng, bảng "HoaDon" có khóa ngoài "MaKH" tham chiếu đến bảng "KhachHang". Để đảm bảo rằng mỗi hóa đơn luôn liên kết với một khách hàng hợp lệ, bạn nên thiết lập ràng buộc nào cho khóa ngoài "MaKH"?
- A. Ràng buộc UNIQUE
- B. Ràng buộc NOT NULL và tham chiếu đến khóa chính của bảng "KhachHang"
- C. Ràng buộc CHECK
- D. Ràng buộc DEFAULT
Câu 10: Khi thiết kế cơ sở dữ liệu, việc sử dụng khóa ngoài mang lại lợi ích chính nào liên quan đến chất lượng dữ liệu?
- A. Giảm dung lượng lưu trữ của cơ sở dữ liệu.
- B. Tăng tốc độ truy xuất dữ liệu.
- C. Đơn giản hóa cấu trúc bảng.
- D. Đảm bảo tính nhất quán và toàn vẹn dữ liệu giữa các bảng.
Câu 11: Trong bảng "SinhVien", cột "MaLop" là khóa ngoài tham chiếu đến bảng "Lop". Để xem thông tin chi tiết của sinh viên bao gồm cả tên lớp, bạn cần thực hiện thao tác nào?
- A. Sắp xếp bảng "SinhVien" theo "MaLop".
- B. Kết nối bảng "SinhVien" và "Lop" dựa trên cột "MaLop".
- C. Lọc bảng "SinhVien" theo một điều kiện cụ thể.
- D. Nhóm các bản ghi trong bảng "SinhVien" theo "MaLop".
Câu 12: Bạn có hai bảng: "PhieuNhap" (MaPN, NgayNhap, MaNCC) và "NhaCungCap" (MaNCC, TenNCC). "MaNCC" trong "PhieuNhap" là khóa ngoài. Nếu bạn muốn tìm tất cả phiếu nhập từ nhà cung cấp có tên "Công ty A", bạn cần kết hợp điều kiện lọc trên bảng nào?
- A. Chỉ lọc trên bảng "PhieuNhap" với điều kiện "MaNCC" = "Mã NCC của Công ty A".
- B. Chỉ lọc trên bảng "NhaCungCap" với điều kiện "TenNCC" = "Công ty A".
- C. Lọc trên cả hai bảng "PhieuNhap" và "NhaCungCap" với điều kiện "MaPN" chứa "Công ty A".
- D. Kết nối hai bảng và lọc trên bảng "NhaCungCap" với điều kiện "TenNCC" = "Công ty A".
Câu 13: Trong cơ sở dữ liệu quản lý bán hàng, bảng "ChiTietDonHang" chứa khóa ngoài "MaDH" tham chiếu đến "DonHang" và "MaSP" tham chiếu đến "SanPham". Mục đích của việc sử dụng hai khóa ngoài trong bảng "ChiTietDonHang" là gì?
- A. Để tăng tốc độ truy vấn dữ liệu trong bảng "ChiTietDonHang".
- B. Để giảm dung lượng lưu trữ của bảng "ChiTietDonHang".
- C. Để thiết lập mối quan hệ giữa "ChiTietDonHang" với cả "DonHang" và "SanPham", đảm bảo mỗi chi tiết đơn hàng thuộc về một đơn hàng và một sản phẩm cụ thể.
- D. Để phân loại dữ liệu trong bảng "ChiTietDonHang" theo đơn hàng và sản phẩm.
Câu 14: Khi xóa một bản ghi từ bảng cha (bảng được tham chiếu) mà có các bản ghi con (bảng tham chiếu) liên kết thông qua khóa ngoài, ràng buộc "ON DELETE CASCADE" có tác dụng gì?
- A. Ngăn chặn việc xóa bản ghi từ bảng cha nếu có bản ghi con liên kết.
- B. Tự động xóa các bản ghi con trong bảng tham chiếu khi bản ghi tương ứng trong bảng cha bị xóa.
- C. Đặt giá trị khóa ngoài trong các bản ghi con thành NULL khi bản ghi cha bị xóa.
- D. Chỉ xóa bản ghi cha và giữ nguyên các bản ghi con, gây ra lỗi toàn vẹn tham chiếu.
Câu 15: Trong ngữ cảnh cơ sở dữ liệu, "tính toàn vẹn tham chiếu" (Referential Integrity) mà khóa ngoài đảm bảo có nghĩa là gì?
- A. Dữ liệu trong tất cả các bảng phải được chuẩn hóa đến mức cao nhất.
- B. Các bản ghi trong một bảng phải được sắp xếp theo thứ tự khóa chính.
- C. Giá trị của khóa ngoài trong bảng con phải tương ứng với giá trị tồn tại của khóa chính trong bảng cha.
- D. Dữ liệu trong cơ sở dữ liệu phải được sao lưu định kỳ để tránh mất mát.
Câu 16: Để tạo mối quan hệ giữa bảng "GiaoVien" và "MonHoc" sao cho mỗi giáo viên có thể dạy nhiều môn học và mỗi môn học có thể được dạy bởi nhiều giáo viên, bạn cần thiết kế thêm bảng trung gian nào và sử dụng khóa ngoài như thế nào?
- A. Không cần bảng trung gian, chỉ cần thêm một khóa ngoài vào bảng "GiaoVien" tham chiếu đến "MonHoc".
- B. Cần bảng trung gian "GiaoVien_MonHoc" với hai khóa ngoài, một tham chiếu đến "GiaoVien" và một tham chiếu đến "MonHoc".
- C. Cần bảng trung gian "MonHoc_GiaoVien" chỉ với một khóa ngoài tham chiếu đến cả "GiaoVien" và "MonHoc".
- D. Không thể tạo mối quan hệ nhiều-nhiều bằng khóa ngoài.
Câu 17: Xét bảng "PhieuXuat" (MaPX, NgayXuat, MaKho) và "Kho" (MaKho, TenKho). "MaKho" trong "PhieuXuat" là khóa ngoài. Nếu bạn muốn liệt kê tất cả phiếu xuất và tên kho tương ứng, bạn cần thực hiện truy vấn SQL nào?
- A. SELECT * FROM PhieuXuat WHERE MaKho IN (SELECT MaKho FROM Kho);
- B. SELECT * FROM PhieuXuat INTERSECT SELECT * FROM Kho;
- C. SELECT PhieuXuat.*, Kho.TenKho FROM PhieuXuat INNER JOIN Kho ON PhieuXuat.MaKho = Kho.MaKho;
- D. SELECT PhieuXuat.*, Kho.TenKho FROM PhieuXuat WHERE PhieuXuat.MaKho = Kho.MaKho;
Câu 18: Trong một cơ sở dữ liệu về đặt phòng khách sạn, bảng "DatPhong" có khóa ngoài "MaKH" tham chiếu "KhachHang" và "MaPhong" tham chiếu "Phong". Nếu bạn muốn biết số lượng đặt phòng cho mỗi loại phòng (bảng "LoaiPhong" liên kết với "Phong"), bạn cần truy vấn như thế nào?
- A. SELECT COUNT(*) FROM DatPhong;
- B. SELECT MaPhong, COUNT(*) FROM DatPhong GROUP BY MaPhong;
- C. SELECT LoaiPhong.TenLoaiPhong, COUNT(*) FROM Phong INNER JOIN LoaiPhong ON Phong.MaLoaiPhong = LoaiPhong.MaLoaiPhong;
- D. SELECT LoaiPhong.TenLoaiPhong, COUNT(*) FROM DatPhong INNER JOIN Phong ON DatPhong.MaPhong = Phong.MaPhong INNER JOIN LoaiPhong ON Phong.MaLoaiPhong = LoaiPhong.MaLoaiPhong GROUP BY LoaiPhong.TenLoaiPhong;
Câu 19: Khi thiết kế cơ sở dữ liệu cho một trang web thương mại điện tử, bạn cần bảng "GioHang" để lưu thông tin giỏ hàng của khách hàng. Bảng "GioHang" nên có khóa ngoài nào?
- A. Khóa ngoài "MaKH" tham chiếu đến bảng "KhachHang" để liên kết giỏ hàng với khách hàng.
- B. Khóa ngoài "MaSP" tham chiếu đến bảng "SanPham" để liên kết giỏ hàng với sản phẩm.
- C. Khóa ngoài "MaDH" tham chiếu đến bảng "DonHang" để liên kết giỏ hàng với đơn hàng.
- D. Không cần khóa ngoài trong bảng "GioHang".
Câu 20: Trong một cơ sở dữ liệu quản lý dự án, bảng "CongViec" có cột "NguoiPhuTrach" là khóa ngoài tham chiếu đến bảng "NhanVien". Nếu một nhân viên bị xóa khỏi bảng "NhanVien", và bạn muốn các công việc mà nhân viên đó phụ trách không còn ai phụ trách nữa (đặt "NguoiPhuTrach" thành NULL), bạn nên sử dụng ràng buộc "ON DELETE" nào?
- A. ON DELETE CASCADE
- B. ON DELETE SET NULL
- C. ON DELETE RESTRICT
- D. ON DELETE NO ACTION
Câu 21: Xét sơ đồ CSDL với bảng "BaiHat" (MaBH, TenBH, MaAlbum) và "Album" (MaAlbum, TenAlbum, MaCaSi). "MaAlbum" trong "BaiHat" và "MaCaSi" trong "Album" là khóa ngoài. Để liệt kê tên bài hát và tên ca sĩ thể hiện album chứa bài hát đó, bạn cần kết nối bao nhiêu bảng?
- A. 1 bảng ("BaiHat")
- B. 2 bảng ("BaiHat" và "Album")
- C. 3 bảng ("BaiHat", "Album" và "CaSi")
- D. Không cần kết nối bảng nào.
Câu 22: Trong quá trình thiết kế CSDL, khi nào thì việc sử dụng khóa ngoài trở nên đặc biệt quan trọng?
- A. Khi cơ sở dữ liệu chỉ có một bảng duy nhất.
- B. Khi có mối quan hệ giữa các bảng và cần duy trì tính toàn vẹn dữ liệu.
- C. Khi cần tăng tốc độ truy vấn dữ liệu.
- D. Khi muốn giảm dung lượng lưu trữ cơ sở dữ liệu.
Câu 23: Bảng "SinhVien" có "MaKhoa" là khóa ngoài tham chiếu "Khoa". Nếu bạn cố gắng nhập một sinh viên mới vào bảng "SinhVien" với "MaKhoa" không tồn tại trong bảng "Khoa", điều gì sẽ xảy ra?
- A. Hệ thống sẽ tự động tạo một bản ghi "Khoa" mới với "MaKhoa" vừa nhập.
- B. Hệ thống sẽ cảnh báo nhưng vẫn cho phép nhập sinh viên.
- C. Hệ thống sẽ từ chối thao tác nhập dữ liệu để đảm bảo tính toàn vẹn tham chiếu.
- D. Hệ thống sẽ đặt "MaKhoa" của sinh viên mới thành NULL.
Câu 24: Trong SQL, mệnh đề nào được sử dụng để thêm ràng buộc khóa ngoài vào một cột đã tồn tại trong bảng?
- A. CREATE FOREIGN KEY
- B. ALTER TABLE ... ADD FOREIGN KEY
- C. UPDATE TABLE ... SET FOREIGN KEY
- D. INSERT FOREIGN KEY
Câu 25: Khi thiết kế cơ sở dữ liệu, bạn nên chọn cột nào trong bảng con để làm khóa ngoài?
- A. Cột chứa dữ liệu tham chiếu đến khóa chính của bảng cha.
- B. Cột có kiểu dữ liệu TEXT để chứa mô tả về mối quan hệ.
- C. Cột được sử dụng nhiều nhất trong các truy vấn.
- D. Bất kỳ cột nào cũng có thể được chọn làm khóa ngoài.
Câu 26: Trong một cơ sở dữ liệu về quản lý nhân sự, bảng "NhanVien" có khóa ngoài "MaPhongBan" tham chiếu "PhongBan". Nếu bạn muốn tìm tất cả nhân viên thuộc phòng ban "Kinh doanh", bạn cần thực hiện truy vấn như thế nào?
- A. SELECT * FROM NhanVien WHERE MaPhongBan = "Mã phòng ban Kinh doanh";
- B. SELECT * FROM PhongBan WHERE TenPhongBan = "Kinh doanh";
- C. SELECT * FROM NhanVien INTERSECT SELECT * FROM PhongBan;
- D. SELECT NhanVien.* FROM NhanVien INNER JOIN PhongBan ON NhanVien.MaPhongBan = PhongBan.MaPhongBan WHERE PhongBan.TenPhongBan = "Kinh doanh";
Câu 27: Ràng buộc "ON UPDATE CASCADE" khi thiết lập khóa ngoài có ý nghĩa gì khi giá trị khóa chính trong bảng cha được cập nhật?
- A. Ngăn chặn việc cập nhật giá trị khóa chính trong bảng cha.
- B. Tự động cập nhật giá trị khóa ngoài tương ứng trong bảng con khi giá trị khóa chính trong bảng cha được cập nhật.
- C. Đặt giá trị khóa ngoài trong bảng con thành NULL khi giá trị khóa chính trong bảng cha được cập nhật.
- D. Chỉ cập nhật giá trị khóa chính trong bảng cha và không ảnh hưởng đến bảng con.
Câu 28: Trong một cơ sở dữ liệu về quản lý khóa học trực tuyến, bảng "KhoaHoc" có khóa chính "MaKH" và bảng "BaiHoc" có khóa ngoài "MaKH" tham chiếu "KhoaHoc". Để xem thông tin khóa học và tổng số bài học trong mỗi khóa, bạn cần sử dụng phép toán nào?
- A. Phép chọn (SELECT) và lọc (WHERE).
- B. Phép chiếu (PROJECT).
- C. Phép kết nối (JOIN) và phép nhóm (GROUP BY) với hàm đếm (COUNT).
- D. Phép hợp (UNION).
Câu 29: Khi nào thì việc sử dụng thuộc tính "AUTO_INCREMENT" (tự động tăng) là phù hợp cho cột khóa chính được tham chiếu bởi khóa ngoài?
- A. Khi khóa chính là một số nguyên và bạn muốn hệ thống tự động tạo giá trị duy nhất cho mỗi bản ghi mới.
- B. Khi khóa chính là một chuỗi ký tự và bạn muốn tự động tạo mã duy nhất.
- C. Khi khóa chính là ngày tháng và bạn muốn tự động ghi lại thời điểm tạo bản ghi.
- D. Thuộc tính "AUTO_INCREMENT" không phù hợp cho khóa chính được tham chiếu bởi khóa ngoài.
Câu 30: Trong mô hình quan hệ, một khóa ngoài có thể tham chiếu đến cột nào của bảng cha?
- A. Bất kỳ cột nào trong bảng cha.
- B. Chỉ cột khóa chính hoặc khóa duy nhất trong bảng cha.
- C. Chỉ cột không phải khóa trong bảng cha.
- D. Chỉ cột có kiểu dữ liệu số trong bảng cha.