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 - Đề 05
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 - Đề 05 đượ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ệ, Khóa ngoài (Foreign Key) được sử dụng với mục đích chính nào sau đây?
- A. Đảm bảo mỗi bản ghi trong bảng là duy nhất.
- B. Tăng tốc độ tìm kiếm dữ liệu trong bảng.
- C. Thiết lập mối quan hệ giữa hai bảng và duy trì tính toàn vẹn tham chiếu.
- D. Xác định thứ tự hiển thị các bản ghi.
Câu 2: Giả sử bạn có hai bảng: `LopHoc` (Mã lớp, Tên lớp) và `HocSinh` (Mã học sinh, Tên học sinh, Mã lớp). Để thể hiện rằng mỗi học sinh thuộc về một lớp học, bạn cần thiết lập khóa ngoài như thế nào?
- A. `Mã lớp` trong bảng `LopHoc` là khóa ngoài tham chiếu đến `Mã lớp` trong bảng `HocSinh`.
- B. `Mã lớp` trong bảng `HocSinh` là khóa ngoài tham chiếu đến `Mã lớp` trong bảng `LopHoc`.
- C. `Mã học sinh` trong bảng `HocSinh` là khóa ngoài tham chiếu đến `Mã lớp` trong bảng `LopHoc`.
- D. `Mã lớp` trong cả hai bảng đều là khóa chính.
Câu 3: Khi thiết lập khóa ngoài, kiểu dữ liệu của trường khóa ngoài ở bảng con (bảng chứa khóa ngoài) phải như thế nào so với kiểu dữ liệu của trường được tham chiếu ở bảng cha (bảng chứa khóa chính/duy nhất)?
- A. Phải giống hoặc tương thích về kiểu dữ liệu.
- B. Không cần giống kiểu dữ liệu.
- C. Phải khác hoàn toàn về kiểu dữ liệu.
- D. Kiểu dữ liệu của khóa ngoài phải là chuỗi (VARCHAR).
Câu 4: Bảng nào được gọi là "bảng cha" (parent table) trong mối quan hệ khóa ngoài?
- A. Bảng chứa trường được thiết lập làm khóa ngoài.
- B. Bảng có nhiều bản ghi hơn.
- C. Bảng được tạo ra sau.
- D. Bảng chứa khóa chính hoặc khóa duy nhất mà khóa ngoài tham chiếu đến.
Câu 5: Điều kiện nào sau đây là bắt buộc để có thể thiết lập một trường làm khóa ngoài tham chiếu đến một bảng khác?
- A. Trường ở bảng cha phải có kiểu dữ liệu là INT.
- B. Trường ở bảng con phải có giá trị NULL.
- C. Trường được tham chiếu ở bảng cha phải là khóa chính hoặc khóa duy nhất (UNIQUE KEY).
- D. Tên của trường khóa ngoài phải giống tên trường được tham chiếu.
Câu 6: Giả sử bạn có bảng `DonHang` (Mã đơn hàng, Ngày đặt, Mã khách hàng) và bảng `KhachHang` (Mã khách hàng, Tên khách hàng). `Mã khách hàng` trong bảng `KhachHang` là khóa chính. Nếu bạn muốn thêm một đơn hàng mới vào bảng `DonHang` với `Mã khách hàng` là "KH005", nhưng trong bảng `KhachHang` không tồn tại khách hàng nào có `Mã khách hàng` là "KH005". Điều gì sẽ xảy ra nếu `Mã khách hàng` trong bảng `DonHang` được thiết lập là khóa ngoài tham chiếu đến `KhachHang`?
- A. Hệ quản trị cơ sở dữ liệu sẽ báo lỗi và từ chối thêm bản ghi đơn hàng này.
- B. Bản ghi đơn hàng sẽ được thêm vào, nhưng trường `Mã khách hàng` sẽ bị để trống (NULL).
- C. Hệ thống sẽ tự động tạo một khách hàng mới với `Mã khách hàng` là "KH005" trong bảng `KhachHang`.
- D. Bản ghi đơn hàng sẽ được thêm vào mà không có vấn đề gì.
Câu 7: Trong giao diện làm việc với cơ sở dữ liệu (ví dụ: phpMyAdmin), khi tạo bảng, thao tác nào thường được sử dụng để thêm một trường (cột) mới vào định nghĩa bảng?
- A. Nhấn phím Delete.
- B. Nhấn phím Insert hoặc sử dụng tùy chọn "Add column".
- C. Kéo và thả từ bảng khác.
- D. Chỉ có thể thêm trường khi bảng chưa có dữ liệu.
Câu 8: Giả sử bảng `SanPham` (Mã SP, Tên SP, Mã loại) và bảng `LoaiSP` (Mã loại, Tên loại). `Mã loại` trong `LoaiSP` là khóa chính. `Mã loại` trong `SanPham` là khóa ngoài tham chiếu đến `LoaiSP`. Nếu bạn xóa một bản ghi trong bảng `LoaiSP` mà `Mã loại` đó vẫn còn được sử dụng trong một số bản ghi của bảng `SanPham`, điều gì có khả năng xảy ra nhất theo mặc định của hệ quản trị CSDL (ví dụ: MySQL)?
- A. Hệ thống sẽ báo lỗi và không cho phép xóa bản ghi loại sản phẩm đó.
- B. Các bản ghi sản phẩm liên quan sẽ tự động bị xóa theo.
- C. Trường `Mã loại` trong các bản ghi sản phẩm liên quan sẽ được đặt giá trị NULL.
- D. Việc xóa sẽ thành công mà không ảnh hưởng đến bảng `SanPham`.
Câu 9: Khi thiết kế cơ sở dữ liệu cho một thư viện, bạn có các bảng `Sach` (Mã sách, Tên sách, Mã tác giả) và `TacGia` (Mã tác giả, Tên tác giả). Mối quan hệ giữa hai bảng này là gì?
- A. Một - Một (One-to-One).
- B. Nhiều - Nhiều (Many-to-Many).
- C. Một - Nhiều (One-to-Many).
- D. Không có mối quan hệ nào.
Câu 10: Để thể hiện mối quan hệ Một - Nhiều (One-to-Many) giữa bảng `TacGia` và bảng `Sach` trong câu 9, bạn cần thiết lập khóa ngoài như thế nào?
- A. Thiết lập `Mã tác giả` trong bảng `TacGia` làm khóa ngoài tham chiếu đến `Mã tác giả` trong bảng `Sach`.
- B. Thiết lập cả `Mã tác giả` trong cả hai bảng làm khóa chính.
- C. Thiết lập `Mã sách` trong bảng `Sach` làm khóa ngoài tham chiếu đến `Mã tác giả` trong bảng `TacGia`.
- D. Thiết lập `Mã tác giả` trong bảng `Sach` làm khóa ngoài tham chiếu đến `Mã tác giả` trong bảng `TacGia`.
Câu 11: Vai trò của Khóa duy nhất (UNIQUE KEY) khác với Khóa chính (PRIMARY KEY) ở điểm nào khi được sử dụng làm trường tham chiếu cho khóa ngoài?
- A. Khóa chính không cho phép giá trị NULL, trong khi Khóa duy nhất có thể cho phép một giá trị NULL duy nhất (tùy thuộc vào hệ quản trị CSDL).
- B. Khóa chính cho phép giá trị trùng lặp, Khóa duy nhất thì không.
- C. Một bảng chỉ có thể có Khóa duy nhất, không thể có Khóa chính.
- D. Khóa duy nhất bắt buộc phải là trường tự động tăng (AUTO_INCREMENT).
Câu 12: Khi bạn tạo một bảng mới và định nghĩa các trường, bước nào thường đi kèm với việc thiết lập khóa chính và khóa ngoài?
- A. Nhập dữ liệu mẫu vào bảng.
- B. Xuất cấu trúc bảng ra file.
- C. Chọn loại chỉ mục (Index Type) cho trường đó hoặc thiết lập ràng buộc tham chiếu.
- D. Xóa các trường không cần thiết.
Câu 13: Giả sử bạn có bảng `Khoa` (Mã khoa, Tên khoa) và bảng `GiaoVien` (Mã GV, Tên GV, Mã khoa). Bạn đã thiết lập `Mã khoa` trong bảng `GiaoVien` làm khóa ngoài tham chiếu đến `Mã khoa` trong bảng `Khoa`. Nếu bạn cố gắng thêm một giáo viên mới với `Mã khoa` là "CNTT" nhưng không có khoa nào có `Mã khoa` "CNTT" trong bảng `Khoa`, hệ thống sẽ thực hiện hành động nào để bảo vệ tính toàn vẹn tham chiếu?
- A. Ngăn chặn việc thêm bản ghi giáo viên này.
- B. Tự động thêm khoa "CNTT" vào bảng `Khoa`.
- C. Chuyển `Mã khoa` của giáo viên này thành NULL.
- D. Thêm bản ghi giáo viên bình thường và bỏ qua lỗi.
Câu 14: Bạn cần thiết kế cơ sở dữ liệu quản lý bán hàng với các thông tin về sản phẩm và nhà cung cấp. Mỗi sản phẩm chỉ do một nhà cung cấp cung cấp, nhưng một nhà cung cấp có thể cung cấp nhiều sản phẩm. Bạn sẽ thiết lập khóa ngoài như thế nào để thể hiện mối quan hệ này giữa bảng `SanPham` và bảng `NhaCungCap`?
- A. Thêm trường `MaSP` vào bảng `NhaCungCap` làm khóa ngoài tham chiếu đến `SanPham`.
- B. Thêm trường `MaNCC` vào bảng `SanPham` làm khóa ngoài tham chiếu đến `NhaCungCap`.
- C. Tạo một bảng trung gian mới liên kết `SanPham` và `NhaCungCap`.
- D. Không cần khóa ngoài vì mối quan hệ này không cần ràng buộc.
Câu 15: Khi sử dụng giao diện đồ họa (ví dụ: trong phpMyAdmin) để tạo khóa ngoài, bạn thường phải chỉ định những thông tin gì?
- A. Tên cơ sở dữ liệu.
- B. Số lượng bản ghi tối đa cho phép.
- C. Ngôn ngữ lập trình sử dụng.
- D. Trường trong bảng hiện tại (bảng con), bảng tham chiếu (bảng cha), và trường được tham chiếu trong bảng cha.
Câu 16: Mục đích của việc sử dụng khóa DUY NHẤT (UNIQUE) trên một trường hoặc một tập hợp các trường trong một bảng là gì?
- A. Để trường đó là khóa chính.
- B. Để trường đó có thể chứa giá trị NULL.
- C. Để đảm bảo các giá trị trong trường hoặc tập hợp các trường đó không bị trùng lặp.
- D. Để tự động tăng giá trị cho trường đó.
Câu 17: Trong ngữ cảnh cơ sở dữ liệu quan hệ, "tính toàn vẹn tham chiếu" (referential integrity) được đảm bảo chủ yếu nhờ vào khái niệm nào?
- A. Khóa chính (Primary Key).
- B. Khóa ngoài (Foreign Key).
- C. Kiểu dữ liệu (Data Type).
- D. Chỉ mục (Index).
Câu 18: Giả sử bảng `SinhVien` (MaSV, TenSV, MaLop) và bảng `MonHoc` (MaMH, TenMH). Nếu bạn muốn ghi lại việc sinh viên đăng ký môn học, mối quan hệ giữa `SinhVien` và `MonHoc` là gì, và cần làm gì để thể hiện mối quan hệ này trong cơ sở dữ liệu?
- A. Mối quan hệ Một-Nhiều; Thêm `MaSV` làm khóa ngoài vào bảng `MonHoc`.
- B. Mối quan hệ Một-Một; Thêm `MaMH` làm khóa ngoài vào bảng `SinhVien`.
- C. Mối quan hệ Một-Nhiều; Thêm `MaMH` làm khóa ngoài vào bảng `SinhVien`.
- D. Mối quan hệ Nhiều-Nhiều; Tạo bảng trung gian (ví dụ: `DangKy`) chứa khóa ngoài tham chiếu đến `SinhVien` và `MonHoc`.
Câu 19: Khi bạn thiết kế một bảng, trường nào thường được chọn làm khóa chính và có thuộc tính AUTO_INCREMENT (tự động tăng)?
- A. Trường định danh duy nhất (ID) có kiểu số nguyên.
- B. Trường lưu tên của đối tượng.
- C. Trường lưu ngày tháng.
- D. Bất kỳ trường nào có kiểu dữ liệu chuỗi.
Câu 20: Xét hai bảng `HoaDon` (MaHD, NgayLapHD, MaKH) và `ChiTietHoaDon` (MaCTHD, MaHD, MaSP, SoLuong, DonGia). `MaHD` trong `HoaDon` là khóa chính. `MaCTHD` trong `ChiTietHoaDon` là khóa chính. Để liên kết chi tiết hóa đơn với hóa đơn tương ứng, bạn cần thiết lập khóa ngoài như thế nào?
- A. `MaCTHD` trong `ChiTietHoaDon` tham chiếu đến `MaHD` trong `HoaDon`.
- B. `MaHD` trong `HoaDon` tham chiếu đến `MaCTHD` trong `ChiTietHoaDon`.
- C. `MaHD` trong `ChiTietHoaDon` tham chiếu đến `MaHD` trong `HoaDon`.
- D. `MaSP` trong `ChiTietHoaDon` tham chiếu đến `MaHD` trong `HoaDon`.
Câu 21: Giả sử bạn đã tạo hai bảng `PhongBan` (MaPB, TenPB) và `NhanVien` (MaNV, TenNV, MaPB) và thiết lập `MaPB` trong `NhanVien` làm khóa ngoài tham chiếu đến `MaPB` trong `PhongBan`. Nếu bạn cố gắng xóa một phòng ban khỏi bảng `PhongBan` mà phòng ban đó vẫn có nhân viên trong bảng `NhanVien`, điều gì sẽ xảy ra nếu ràng buộc khóa ngoài có hành động ON DELETE RESTRICT (hạn chế xóa)?
- A. Tất cả nhân viên thuộc phòng ban đó sẽ bị xóa.
- B. Hệ thống sẽ từ chối yêu cầu xóa phòng ban.
- C. Trường `MaPB` của các nhân viên thuộc phòng ban đó sẽ được đặt giá trị NULL.
- D. Phòng ban sẽ bị xóa, nhưng các nhân viên vẫn giữ nguyên `MaPB` cũ.
Câu 22: Trong quá trình tạo bảng bằng giao diện đồ họa, sau khi đã định nghĩa các trường và kiểu dữ liệu, bước tiếp theo quan trọng để hoàn tất việc tạo bảng là gì?
- A. Nhập ngay dữ liệu vào bảng.
- B. Đóng cửa sổ làm việc.
- C. Sao chép cấu trúc bảng.
- D. Lưu cấu trúc bảng đã định nghĩa.
Câu 23: Khi thiết kế cơ sở dữ liệu, việc xác định và thiết lập các mối quan hệ giữa các bảng bằng khóa ngoài giúp ích gì?
- A. Giảm thiểu sự dư thừa dữ liệu và đảm bảo tính nhất quán.
- B. Làm cho kích thước cơ sở dữ liệu lớn hơn.
- C. Chỉ có ích cho việc hiển thị dữ liệu.
- D. Làm cho việc truy vấn dữ liệu phức tạp hơn.
Câu 24: Giả sử bạn có bảng `QuocGia` (MaQG, TenQG) và bảng `ThanhPho` (MaTP, TenTP, MaQG). `MaQG` trong `QuocGia` là khóa chính. `MaQG` trong `ThanhPho` là khóa ngoài tham chiếu đến `QuocGia`. Nếu bạn muốn thêm một thành phố mới vào bảng `ThanhPho`, giá trị của trường `MaQG` trong bản ghi thành phố mới phải tuân theo quy tắc nào?
- A. Phải là một số nguyên bất kỳ.
- B. Phải khác với tất cả các `MaQG` đã tồn tại trong bảng `ThanhPho`.
- C. Phải tồn tại là một giá trị `MaQG` trong bảng `QuocGia`.
- D. Phải là một chuỗi ký tự duy nhất.
Câu 25: Trong phpMyAdmin, khi bạn vào phần "Structure" (Cấu trúc) của một bảng và muốn xem các ràng buộc khóa ngoài đã thiết lập, bạn thường tìm kiếm thông tin này ở đâu?
- A. Phần "Relation view" hoặc "Foreign key constraints".
- B. Phần "Indexes".
- C. Phần "Operations".
- D. Phần "Browse".
Câu 26: Phân tích cấu trúc bảng `Sach` (MaSach PK, TenSach, NamXuatBan, MaTacGia FK) và `TacGia` (MaTacGia PK, TenTacGia). Quan hệ khóa ngoài ở đây được thiết lập từ bảng nào đến bảng nào?
- A. Từ `TacGia` đến `Sach`.
- B. Từ `Sach` đến `TacGia`.
- C. Không có quan hệ khóa ngoài.
- D. Cả hai bảng tham chiếu lẫn nhau.
Câu 27: Giả sử bạn có bảng `NhanVien` (MaNV PK, TenNV, MaChucVu FK) và bảng `ChucVu` (MaChucVu PK, TenChucVu). Bạn đã thiết lập khóa ngoài và muốn cập nhật `MaChucVu` cho một nhân viên từ "CV01" sang "CV02". Nếu `CV02` không tồn tại trong bảng `ChucVu`, điều gì sẽ xảy ra?
- A. Hệ thống sẽ báo lỗi vi phạm ràng buộc khóa ngoài và từ chối cập nhật.
- B. Giá trị `MaChucVu` của nhân viên đó sẽ được cập nhật thành NULL.
- C. Hệ thống sẽ tự động thêm chức vụ "CV02" vào bảng `ChucVu`.
- D. Việc cập nhật sẽ thành công mà không có vấn đề gì.
Câu 28: Khi thiết kế cơ sở dữ liệu, việc sử dụng khóa ngoài giúp tránh được tình trạng nào sau đây?
- A. Dữ liệu bị trùng lặp trong cùng một bảng.
- B. Không thể tìm thấy bản ghi theo khóa chính.
- C. Có các bản ghi ở bảng con tham chiếu đến các giá trị không tồn tại ở bảng cha.
- D. Không thể sắp xếp dữ liệu theo thứ tự mong muốn.
Câu 29: Bạn đang tạo một bảng mới trong cơ sở dữ liệu. Bạn đã thêm các trường cần thiết. Bước tiếp theo để định nghĩa khóa chính cho trường `ID` là gì?
- A. Chọn trường `ID` và thiết lập nó làm khóa ngoài.
- B. Chọn trường `ID` và thiết lập nó làm khóa chính (Primary Key).
- C. Chọn trường `ID` và thiết lập nó làm khóa duy nhất (Unique Key).
- D. Để trống phần khóa cho trường `ID`.
Câu 30: Hãy phân tích tình huống: Bạn có bảng `DonVi` (MaDV PK, TenDV) và bảng `NhanVien` (MaNV PK, TenNV, MaDV FK). Bạn muốn xóa một đơn vị khỏi bảng `DonVi`. Nếu ràng buộc khóa ngoài giữa `NhanVien` và `DonVi` được thiết lập với hành động ON DELETE CASCADE (xóa theo), điều gì sẽ xảy ra?
- A. Các bản ghi nhân viên thuộc đơn vị đó trong bảng `NhanVien` sẽ tự động bị xóa theo.
- B. Hệ thống sẽ từ chối yêu cầu xóa đơn vị.
- C. Trường `MaDV` của các nhân viên thuộc đơn vị đó sẽ được đặt giá trị NULL.
- D. Đơn vị sẽ bị xóa, nhưng các nhân viên vẫn giữ nguyên `MaDV` cũ.