Trắc nghiệm Tin học 11 Kết nối tri thức Bài 18: Thực hành xác định cấu trúc bảng và các trường khóa - Đề 04
Trắc nghiệm Tin học 11 Kết nối tri thức Bài 18: Thực hành xác định cấu trúc bảng và các trường khóa - Đề 04 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!
Câu 1: Trong mô hình cơ sở dữ liệu quan hệ, vai trò chính của Khóa ngoài (Foreign Key) là gì?
- A. Xác định duy nhất một bản ghi trong bảng.
- B. Tăng tốc độ truy vấn dữ liệu.
- C. Thiết lập mối quan hệ giữa hai bảng và đảm bảo tính toàn vẹn dữ liệu.
- D. Giảm dung lượng lưu trữ của cơ sở dữ liệu.
Câu 2: Cho hai bảng: `PHONG_BAN (MaPB PK, TenPB)` và `NHAN_VIEN (MaNV PK, TenNV, MaPB FK)`. Trong mối quan hệ này, bảng nào chứa Khóa chính được tham chiếu bởi khóa ngoài?
- A. Bảng PHONG_BAN
- B. Bảng NHAN_VIEN
- C. Cả hai bảng đều chứa khóa chính được tham chiếu.
- D. Không bảng nào chứa khóa chính được tham chiếu.
Câu 3: Vẫn với hai bảng `PHONG_BAN (MaPB PK, TenPB)` và `NHAN_VIEN (MaNV PK, TenNV, MaPB FK)`, nếu bạn cố gắng thêm một nhân viên mới vào bảng `NHAN_VIEN` với giá trị `MaPB` không tồn tại trong bảng `PHONG_BAN`, điều gì sẽ xảy ra (với ràng buộc khóa ngoài mặc định là RESTRICT hoặc NO ACTION)?
- A. Bản ghi nhân viên sẽ được thêm vào bình thường.
- B. Thao tác thêm bản ghi sẽ bị lỗi và không thực hiện được.
- C. Giá trị `MaPB` sẽ tự động được thay thế bằng NULL.
- D. Bản ghi phòng ban mới với `MaPB` tương ứng sẽ tự động được tạo ra.
Câu 4: Cho ba bảng: `KHACH_HANG (MaKH PK, TenKH)`, `DON_HANG (MaDH PK, NgayDH, MaKH FK)`, `CHI_TIET_DON_HANG (MaCTDH PK, MaDH FK, MaSP FK, SoLuong)`. Bảng nào thể hiện mối quan hệ giữa các đơn hàng và khách hàng?
- A. Bảng KHACH_HANG
- B. Bảng DON_HANG
- C. Bảng CHI_TIET_DON_HANG
- D. Không có bảng nào thể hiện mối quan hệ trực tiếp.
Câu 5: Để quản lý thông tin về các tỉnh/thành phố và các quận/huyện thuộc tỉnh/thành phố đó trong CSDL, với giả định mỗi quận/huyện chỉ thuộc về một tỉnh/thành phố duy nhất, bạn nên thiết kế hai bảng `TINH_TP (MaTinh PK, TenTinh)` và `QUAN_HUYEN (MaHuyen PK, TenHuyen)`. Cần thêm trường nào vào bảng `QUAN_HUYEN` để thể hiện mối quan hệ này?
- A. Thêm trường `MaHuyen` vào bảng `TINH_TP`.
- B. Thêm trường `TenTinh` vào bảng `QUAN_HUYEN`.
- C. Thêm trường `MaTinh` làm khóa ngoài vào bảng `QUAN_HUYEN`.
- D. Thêm trường `TenHuyen` vào bảng `TINH_TP`.
Câu 6: Trong một CSDL quản lý thư viện, để thể hiện mối quan hệ "Một cuốn sách có thể được viết bởi nhiều tác giả, và một tác giả có thể viết nhiều cuốn sách" (quan hệ Nhiều-Nhiều), bạn cần sử dụng một bảng trung gian. Bảng trung gian này sẽ chứa những loại khóa nào?
- A. Chỉ chứa khóa chính.
- B. Chỉ chứa khóa ngoài.
- C. Chứa một khóa chính và một khóa ngoài.
- D. Chứa hai khóa ngoài (tham chiếu đến hai bảng gốc) và có thể có thêm khóa chính riêng hoặc dùng kết hợp hai khóa ngoài làm khóa chính.
Câu 7: Xét hai bảng `KHOA_HOC (MaKHoc PK, TenKHoc)` và `SINH_VIEN (MaSV PK, TenSV)`. Để ghi nhận việc sinh viên đăng ký học các khóa học (một sinh viên có thể đăng ký nhiều khóa, một khóa có nhiều sinh viên), bạn tạo bảng trung gian `DANG_KY (MaSV_FK, MaKHoc_FK, NgayDK)`. Loại khóa của các trường `MaSV_FK` và `MaKHoc_FK` trong bảng `DANG_KY` là gì?
- A. Khóa chính
- B. Khóa ngoài
- C. Khóa ứng viên
- D. Không phải khóa chính hay khóa ngoài
Câu 8: Tính toàn vẹn tham chiếu (Referential Integrity) trong CSDL quan hệ, được đảm bảo chủ yếu thông qua Khóa ngoài, có mục đích chính là gì?
- A. Đảm bảo rằng giá trị trong cột khóa ngoài của một bảng luôn tham chiếu đến một giá trị hợp lệ trong khóa chính của bảng khác.
- B. Đảm bảo tất cả các giá trị trong cột khóa chính là duy nhất.
- C. Đảm bảo tất cả các trường trong một bản ghi đều có giá trị (không NULL).
- D. Tăng tốc độ tìm kiếm dữ liệu bằng cách tạo chỉ mục tự động.
Câu 9: Cho hai bảng `SAN_PHAM (MaSP PK, TenSP, MaLoaiSP FK)` và `LOAI_SAN_PHAM (MaLoaiSP PK, TenLoai)`. Nếu ràng buộc khóa ngoài trên `MaLoaiSP` trong bảng `SAN_PHAM` có thuộc tính `ON DELETE CASCADE`, điều gì sẽ xảy ra khi bạn xóa một bản ghi trong bảng `LOAI_SAN_PHAM`?
- A. Thao tác xóa sẽ bị lỗi do có sản phẩm thuộc loại đó.
- B. Giá trị `MaLoaiSP` trong các bản ghi `SAN_PHAM` tương ứng sẽ được đặt thành NULL.
- C. Giá trị `MaLoaiSP` trong các bản ghi `SAN_PHAM` tương ứng sẽ được đặt thành giá trị mặc định.
- D. Tất cả các bản ghi `SAN_PHAM` thuộc loại sản phẩm bị xóa cũng sẽ tự động bị xóa.
Câu 10: Cho hai bảng `NHAN_VIEN (MaNV PK, TenNV, MaPhongBan FK)` và `PHONG_BAN (MaPB PK, TenPB)`. Nếu bạn muốn tìm tên phòng ban của một nhân viên cụ thể, bạn sẽ cần kết nối (JOIN) hai bảng này dựa trên trường nào?
- A. `MaPhongBan` của bảng `NHAN_VIEN` và `MaPB` của bảng `PHONG_BAN`.
- B. `MaNV` của bảng `NHAN_VIEN` và `MaPB` của bảng `PHONG_BAN`.
- C. `TenNV` của bảng `NHAN_VIEN` và `TenPB` của bảng `PHONG_BAN`.
- D. `MaNV` của bảng `NHAN_VIEN` và `MaPhongBan` của bảng `NHAN_VIEN`.
Câu 11: Khi thiết kế CSDL, việc xác định đúng Khóa chính và Khóa ngoài giúp đạt được điều gì quan trọng?
- A. Chỉ giúp việc nhập liệu nhanh hơn.
- B. Chỉ giúp việc xóa dữ liệu dễ dàng hơn.
- C. Giúp cấu trúc CSDL hợp lý, tránh dư thừa dữ liệu và đảm bảo tính nhất quán (toàn vẹn dữ liệu).
- D. Không ảnh hưởng đến cấu trúc, chỉ là quy ước đặt tên trường.
Câu 12: Trong một CSDL quản lý đơn hàng, bảng `DON_HANG (MaDH PK, NgayDH, MaKH FK)` liên kết với bảng `KHACH_HANG (MaKH PK, TenKH)`. Nếu một khách hàng có nhiều đơn hàng, và mỗi đơn hàng chỉ thuộc về một khách hàng, đây là loại mối quan hệ nào?
- A. Quan hệ Một-Một (One-to-One)
- B. Quan hệ Một-Nhiều (One-to-Many)
- C. Quan hệ Nhiều-Nhiều (Many-to-Many)
- D. Không có mối quan hệ nào được thể hiện rõ ràng.
Câu 13: Xét hai bảng: `TAC_GIA (MaTG PK, TenTG)` và `SACH (MaSach PK, TenSach, MaTG FK)`. Ràng buộc khóa ngoài trên `MaTG` trong bảng `SACH` đảm bảo điều gì?
- A. Mỗi cuốn sách phải được liên kết với một tác giả có thật trong bảng `TAC_GIA`.
- B. Mỗi tác giả phải có ít nhất một cuốn sách trong bảng `SACH`.
- C. Mã sách (`MaSach`) và Mã tác giả (`MaTG`) phải là duy nhất trong bảng `SACH`.
- D. Tên sách (`TenSach`) và Tên tác giả (`TenTG`) phải là duy nhất.
Câu 14: Khi tạo ràng buộc Khóa ngoài, bạn có thể chỉ định các hành động (Action) khi dữ liệu ở bảng "cha" (chứa khóa chính) bị xóa hoặc cập nhật. Thuộc tính `ON DELETE RESTRICT` có ý nghĩa gì?
- A. Khi bản ghi ở bảng "cha" bị xóa, các bản ghi liên quan ở bảng "con" cũng tự động bị xóa.
- B. Khi bản ghi ở bảng "cha" bị xóa, giá trị khóa ngoài ở các bản ghi liên quan ở bảng "con" được đặt thành NULL.
- C. Ngăn chặn việc xóa bản ghi ở bảng "cha" nếu có bản ghi liên quan tồn tại ở bảng "con".
- D. Cho phép xóa bản ghi ở bảng "cha" mà không ảnh hưởng đến bảng "con".
Câu 15: Cho bảng `NHAN_VIEN (MaNV PK, TenNV, MaPhongBan FK, MaChucVu FK)`. Bảng này có hai khóa ngoài. Điều này cho thấy một nhân viên có mối quan hệ trực tiếp với những thực thể nào khác trong cơ sở dữ liệu (dựa trên các khóa ngoại)?
- A. PhongBan và ChucVu.
- B. Chỉ PhongBan.
- C. Chỉ ChucVu.
- D. Không có mối quan hệ nào được thể hiện rõ ràng.
Câu 16: Trong CSDL quản lý sinh viên và lớp học, mỗi sinh viên có thể học nhiều lớp, và mỗi lớp có nhiều sinh viên. Để mô hình hóa mối quan hệ này, bạn sử dụng bảng trung gian `SV_LOP (MaSV FK, MaLop FK)`. Để đảm bảo mỗi cặp (Sinh viên, Lớp) chỉ xuất hiện một lần (nghĩa là một sinh viên không đăng ký cùng một lớp nhiều lần), bạn nên thiết lập loại khóa nào cho bảng `SV_LOP`?
- A. Chỉ `MaSV` làm khóa chính.
- B. Kết hợp `MaSV` và `MaLop` làm khóa chính.
- C. Chỉ `MaLop` làm khóa chính.
- D. Không cần khóa chính cho bảng trung gian.
Câu 17: Khi tạo ràng buộc Khóa ngoài, thuộc tính `ON UPDATE CASCADE` có ý nghĩa gì?
- A. Khi giá trị khóa chính ở bảng "cha" được cập nhật, giá trị khóa ngoài tương ứng ở các bản ghi liên quan ở bảng "con" cũng tự động cập nhật theo.
- B. Khi giá trị khóa ngoài ở bảng "con" được cập nhật, giá trị khóa chính tương ứng ở bảng "cha" cũng tự động cập nhật theo.
- C. Ngăn chặn việc cập nhật giá trị khóa chính ở bảng "cha" nếu có bản ghi liên quan tồn tại ở bảng "con".
- D. Cho phép cập nhật giá trị khóa chính ở bảng "cha" mà không ảnh hưởng đến bảng "con".
Câu 18: Một trường trong bảng có thể là Khóa ngoài nhưng đồng thời cũng là một phần của Khóa chính của bảng đó. Trường hợp này thường xảy ra trong thiết kế nào?
- A. Trong bảng "cha" của mối quan hệ Một-Nhiều.
- B. Trong bảng trung gian của mối quan hệ Nhiều-Nhiều, nơi khóa chính là khóa phức hợp từ các khóa ngoại.
- C. Trong bất kỳ bảng nào có trường tự động tăng (AUTO_INCREMENT).
- D. Trong các trường lưu trữ ngày tháng.
Câu 19: Cho hai bảng `QUOC_GIA (MaQG PK, TenQG)` và `THU_DO (MaTD PK, TenTD, MaQG FK)`. Nếu ràng buộc khóa ngoài trên `MaQG` trong bảng `THU_DO` có thuộc tính `ON DELETE SET NULL`, điều gì sẽ xảy ra khi bạn xóa một bản ghi trong bảng `QUOC_GIA`?
- A. Thao tác xóa sẽ bị lỗi do có thủ đô thuộc quốc gia đó.
- B. Giá trị `MaQG` trong bản ghi `THU_DO` tương ứng sẽ được đặt thành NULL.
- C. Bản ghi `THU_DO` tương ứng cũng tự động bị xóa.
- D. Giá trị `MaQG` trong bản ghi `THU_DO` tương ứng sẽ được giữ nguyên.
Câu 20: Giả sử bạn có bảng `HOA_DON (SoHD PK, NgayLap, MaKhachHang FK)` và bảng `KHACH_HANG (MaKhachHang PK, TenKhachHang)`. Nếu bạn cố gắng cập nhật `MaKhachHang` trong bảng `KHACH_HANG` cho một khách hàng đã có hóa đơn liên quan (với ràng buộc khóa ngoài mặc định là RESTRICT hoặc NO ACTION), điều gì sẽ xảy ra?
- A. Thao tác cập nhật sẽ bị lỗi và không thực hiện được.
- B. Giá trị `MaKhachHang` trong các bản ghi `HOA_DON` tương ứng sẽ tự động cập nhật theo.
- C. Giá trị `MaKhachHang` trong các bản ghi `HOA_DON` tương ứng sẽ được đặt thành NULL.
- D. Thao tác cập nhật sẽ thành công mà không ảnh hưởng đến bảng `HOA_DON`.
Câu 21: Trong thiết kế CSDL, việc sử dụng Khóa ngoài giúp giải quyết vấn đề gì liên quan đến việc lưu trữ dữ liệu lặp lại (redundancy)?
- A. Khóa ngoài tự động xóa các bản ghi trùng lặp.
- B. Khóa ngoài cho phép lưu trữ nhiều bản sao của cùng một dữ liệu.
- C. Khóa ngoài chỉ giúp tăng tốc độ truy vấn, không liên quan đến lặp lại dữ liệu.
- D. Khóa ngoài cho phép lưu trữ thông tin của một thực thể ở một nơi duy nhất (bảng "cha") và chỉ cần tham chiếu đến nó từ các bảng khác (bảng "con"), giảm lặp lại thông tin chi tiết.
Câu 22: Cho hai bảng `GIAO_VIEN (MaGV PK, TenGV)` và `MON_HOC (MaMH PK, TenMH, MaGVPhuTrach FK)`. Mối quan hệ này mô hình hóa việc mỗi môn học có một giáo viên phụ trách (nhưng một giáo viên có thể phụ trách nhiều môn). Nếu một giáo viên nghỉ hưu và bạn xóa bản ghi của giáo viên đó khỏi bảng `GIAO_VIEN`, điều gì xảy ra với các môn học mà giáo viên đó phụ trách nếu ràng buộc khóa ngoài có thuộc tính `ON DELETE SET DEFAULT`?
- A. Các môn học liên quan sẽ tự động bị xóa.
- B. Thao tác xóa giáo viên sẽ bị lỗi.
- C. Giá trị `MaGVPhuTrach` trong các bản ghi `MON_HOC` tương ứng sẽ được đặt thành giá trị mặc định.
- D. Giá trị `MaGVPhuTrach` trong các bản ghi `MON_HOC` tương ứng sẽ được đặt thành NULL.
Câu 23: Trong một CSDL quản lý dự án, có bảng `DU_AN (MaDA PK, TenDA)` và bảng `NHAN_VIEN_DU_AN (MaNV FK, MaDA FK, VaiTro)`. Bảng `NHAN_VIEN_DU_AN` thể hiện mối quan hệ Nhiều-Nhiều giữa nhân viên và dự án (một nhân viên tham gia nhiều dự án, một dự án có nhiều nhân viên). Nếu bạn xóa một dự án khỏi bảng `DU_AN` và ràng buộc khóa ngoài `MaDA` trong bảng `NHAN_VIEN_DU_AN` có thuộc tính `ON DELETE CASCADE`, điều gì sẽ xảy ra?
- A. Tất cả các bản ghi trong bảng `NHAN_VIEN_DU_AN` liên quan đến dự án bị xóa cũng sẽ tự động bị xóa.
- B. Thao tác xóa dự án sẽ bị lỗi.
- C. Giá trị `MaDA` trong các bản ghi `NHAN_VIEN_DU_AN` liên quan sẽ được đặt thành NULL.
- D. Chỉ bản ghi dự án trong bảng `DU_AN` bị xóa, các bản ghi trong `NHAN_VIEN_DU_AN` vẫn giữ nguyên.
Câu 24: Một cột được chọn làm Khóa ngoài có bắt buộc phải có cùng tên với Khóa chính mà nó tham chiếu tới ở bảng khác không?
- A. Có, bắt buộc phải có cùng tên để hệ thống nhận diện được mối quan hệ.
- B. Không, tên có thể khác nhau nhưng kiểu dữ liệu và miền giá trị phải tương thích.
- C. Chỉ bắt buộc cùng tên nếu cả hai trường đều là kiểu số nguyên.
- D. Tên phải khác nhau để tránh nhầm lẫn.
Câu 25: Cột Khóa ngoài có thể chứa giá trị NULL không?
- A. Có, nếu cột khóa ngoài không được định nghĩa là NOT NULL.
- B. Không bao giờ, vì khóa ngoài phải luôn tham chiếu đến một giá trị khóa chính.
- C. Chỉ khi nó cũng là khóa chính của bảng đó.
- D. Chỉ khi bảng "cha" không có bản ghi nào.
Câu 26: Khi thiết kế CSDL cho một hệ thống bán hàng, bạn có bảng `KHACH_HANG (MaKH PK, TenKH)` và `DON_HANG (MaDH PK, NgayDH, MaKH FK)`. Để đảm bảo mỗi đơn hàng phải thuộc về một khách hàng đã tồn tại, ràng buộc khóa ngoài trên `MaKH` trong bảng `DON_HANG` cần được thiết lập với thuộc tính nào?
- A. Cho phép NULL.
- B. Chỉ cần là khóa ngoài là đủ.
- C. Ràng buộc `ON DELETE CASCADE`.
- D. Ràng buộc `NOT NULL` trên cột `MaKH FK`.
Câu 27: Mục tiêu chính của việc chuẩn hóa cơ sở dữ liệu, trong đó có việc sử dụng Khóa ngoài để loại bỏ các nhóm lặp lại và phụ thuộc hàm từng phần, là gì?
- A. Tăng tốc độ truy vấn dữ liệu.
- B. Giảm thiểu dư thừa dữ liệu và cải thiện tính toàn vẹn dữ liệu.
- C. Làm cho cấu trúc bảng phức tạp hơn.
- D. Chỉ có tác dụng với cơ sở dữ liệu nhỏ.
Câu 28: Xét hai bảng `SAN_PHAM (MaSP PK, TenSP, Gia)` và `KHO (MaKho PK, TenKho)`. Để theo dõi số lượng của từng sản phẩm tại từng kho (một sản phẩm có thể có ở nhiều kho, một kho chứa nhiều sản phẩm), bạn cần một bảng trung gian `TON_KHO (MaSP FK, MaKho FK, SoLuongTon)`. Khóa chính của bảng `TON_KHO` nên là gì để đảm bảo tính duy nhất cho mỗi cặp (Sản phẩm, Kho)?
- A. Chỉ `MaSP`.
- B. Chỉ `MaKho`.
- C. Kết hợp `MaSP` và `MaKho`.
- D. Một trường tự tạo (`ID` tự tăng).
Câu 29: Trong một CSDL quản lý nhân sự, bảng `HOP_DONG (MaHD PK, NgayKy, MaNV FK)` liên kết với bảng `NHAN_VIEN (MaNV PK, TenNV)`. Nếu ràng buộc khóa ngoài trên `MaNV` trong bảng `HOP_DONG` có thuộc tính `ON UPDATE SET DEFAULT`, điều gì sẽ xảy ra khi bạn cập nhật `MaNV` cho một bản ghi trong bảng `NHAN_VIEN`?
- A. Thao tác cập nhật sẽ bị lỗi.
- B. Giá trị `MaNV` trong các bản ghi `HOP_DONG` liên quan sẽ được đặt thành giá trị mặc định.
- C. Các bản ghi `HOP_DONG` liên quan sẽ tự động bị xóa.
- D. Giá trị `MaNV` trong các bản ghi `HOP_DONG` liên quan sẽ tự động cập nhật theo giá trị mới.
Câu 30: Tại sao việc xác định và sử dụng Khóa ngoài lại là một bước quan trọng trong quá trình thiết kế cơ sở dữ liệu quan hệ?
- A. Vì nó thiết lập mối quan hệ giữa các bảng, đảm bảo tính toàn vẹn dữ liệu và hỗ trợ truy vấn liên kết.
- B. Vì nó giúp ẩn đi các trường không quan trọng.
- C. Vì nó là cách duy nhất để tạo chỉ mục cho bảng.
- D. Vì nó tự động tạo ra các báo cáo thống kê.