Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành cập nhật bảng dữ liệu có tham chiếu - Đề 06
Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành cập nhật bảng dữ liệu có tham chiếu - Đề 06 đượ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ột hệ quản trị cơ sở dữ liệu (CSDL) có hai bảng `TacGia` (MãTG, TenTG) và `Sach` (MaSach, TenSach, NamXuatBan, MaTG). Trường `MaTG` trong bảng `Sach` là khóa ngoại tham chiếu đến `MaTG` trong bảng `TacGia`. Khi bạn muốn thêm một cuốn sách mới vào bảng `Sach`, điều gì sẽ xảy ra nếu bạn nhập giá trị `MaTG` không tồn tại trong bảng `TacGia`?
- A. Hệ thống sẽ tự động thêm một tác giả mới với `MaTG` đó vào bảng `TacGia`.
- B. Dữ liệu cuốn sách sẽ được thêm vào bình thường, nhưng trường `MaTG` sẽ bị bỏ trống.
- C. Hệ quản trị CSDL sẽ báo lỗi và không cho phép thêm bản ghi mới này.
- D. Hệ thống sẽ thêm bản ghi vào, nhưng đánh dấu là dữ liệu không hợp lệ.
Câu 2: Giả sử bảng `SanPham` (MaSP, TenSP, Gia, MaLoaiSP) và bảng `LoaiSanPham` (MaLoaiSP, TenLoai). `MaLoaiSP` trong `SanPham` là khóa ngoại đến `LoaiSanPham`. Bạn muốn cập nhật `MaLoaiSP` của một sản phẩm từ "LSP001" sang "LSP005". Điều kiện nào sau đây là cần thiết để thao tác này thành công?
- A. Sản phẩm đó phải là sản phẩm đầu tiên được thêm vào bảng `SanPham`.
- B. Giá của sản phẩm phải lớn hơn 100.000 VNĐ.
- C. Bảng `LoaiSanPham` phải trống dữ liệu.
- D. Giá trị "LSP005" phải tồn tại trong trường `MaLoaiSP` của bảng `LoaiSanPham`.
Câu 3: Trong ngữ cảnh của cơ sở dữ liệu quan hệ, ràng buộc toàn vẹn tham chiếu (referential integrity) được đảm bảo chủ yếu thông qua cơ chế nào?
- A. Thuộc tính AUTO_INCREMENT.
- B. Khóa ngoại (Foreign Key).
- C. Khóa chính (Primary Key).
- D. Kiểu dữ liệu của trường.
Câu 4: Bạn đang làm việc với bảng `HoaDon` (SoHD, NgayLap, MaKhachHang) và bảng `KhachHang` (MaKhachHang, TenKhachHang). `MaKhachHang` trong `HoaDon` là khóa ngoại đến `KhachHang`. Bạn cố gắng xóa một khách hàng khỏi bảng `KhachHang`. Tại sao thao tác này có thể thất bại?
- A. Vì có ít nhất một hóa đơn trong bảng `HoaDon` đang tham chiếu đến khách hàng này.
- B. Vì khách hàng này có tên quá dài.
- C. Vì bảng `HoaDon` đang chứa quá nhiều bản ghi.
- D. Vì trường `MaKhachHang` trong bảng `KhachHang` có thuộc tính AUTO_INCREMENT.
Câu 5: Trường có thuộc tính `AUTO_INCREMENT` trong một bảng cơ sở dữ liệu thường được sử dụng cho mục đích gì?
- A. Tự động tính toán tổng giá trị của các trường khác.
- B. Lưu trữ ngày giờ hệ thống một cách tự động.
- C. Tự động gán một giá trị duy nhất, tăng dần cho mỗi bản ghi mới được thêm vào.
- D. Tự động kiểm tra tính hợp lệ của địa chỉ email.
Câu 6: Khi sử dụng giao diện đồ họa của hệ quản trị CSDL để thêm dữ liệu vào một bảng có khóa ngoại (ví dụ: thêm bản nhạc vào bảng `bannhac` có khóa ngoại `idNhacsi` tham chiếu đến bảng `nhacsi`), cách phổ biến và an toàn nhất để nhập giá trị cho trường khóa ngoại là gì?
- A. Nhập trực tiếp một số ngẫu nhiên.
- B. Chọn giá trị từ một danh sách thả xuống (dropdown list) hiển thị dữ liệu từ bảng được tham chiếu.
- C. Sao chép giá trị từ một bản ghi bất kỳ trong bảng đang nhập.
- D. Để trống trường đó, hệ thống sẽ tự động điền.
Câu 7: Bạn cần tìm tất cả các đơn hàng được đặt bởi khách hàng có `MaKhachHang` là "KH007" trong bảng `DonHang` (SoDH, NgayDH, MaKhachHang). Giả sử `MaKhachHang` trong `DonHang` là khóa ngoại đến bảng `KhachHang`. Thao tác nào sau đây trong giao diện CSDL là phù hợp nhất để thực hiện việc này?
- A. Sửa tất cả các bản ghi trong bảng `DonHang` có `MaKhachHang` khác "KH007".
- B. Xóa tất cả các bản ghi trong bảng `DonHang` có `MaKhachHang` khác "KH007".
- C. Áp dụng bộ lọc (filter) trên trường `MaKhachHang` của bảng `DonHang` với giá trị "KH007".
- D. Thêm một trường mới vào bảng `DonHang` để đánh dấu các đơn hàng của "KH007".
Câu 8: Khi sửa dữ liệu trong một ô của bảng bằng giao diện đồ họa, thao tác cơ bản nhất thường là gì?
- A. Nháy đúp chuột vào ô cần sửa, nhập giá trị mới và xác nhận.
- B. Kéo và thả ô dữ liệu đến vị trí khác.
- C. Nhấn phím Delete để xóa toàn bộ dòng chứa ô đó.
- D. Tạo một bảng mới với dữ liệu đã sửa.
Câu 9: Giả sử bảng `LopHoc` (MaLop, TenLop) và bảng `HocSinh` (MaHS, TenHS, MaLop). `MaLop` trong `HocSinh` là khóa ngoại đến `LopHoc`. Nếu bạn xóa một lớp học khỏi bảng `LopHoc` mà trong bảng `HocSinh` vẫn còn học sinh thuộc lớp đó, điều gì có khả năng xảy ra nhất (với cấu hình khóa ngoại mặc định)?
- A. Tất cả học sinh thuộc lớp đó trong bảng `HocSinh` cũng sẽ bị xóa tự động.
- B. Trường `MaLop` của các học sinh thuộc lớp đó trong bảng `HocSinh` sẽ được đặt thành NULL.
- C. Hệ quản trị CSDL sẽ ngăn chặn việc xóa lớp học đó và báo lỗi.
- D. Tên lớp trong bảng `LopHoc` sẽ bị đổi thành "Đã xóa".
Câu 10: Trong bài thực hành, trường `idBannhac` trong bảng `bannhac` có thuộc tính `AUTO_INCREMENT`. Khi thêm một bản nhạc mới, bạn không cần nhập giá trị cho trường này. Nếu bạn thêm 3 bản nhạc liên tiếp vào một bảng trống, giá trị của trường `idBannhac` cho 3 bản nhạc đó có thể là gì?
- A. 1, 1, 1
- B. NULL, NULL, NULL
- C. Các giá trị ngẫu nhiên không liên quan.
- D. Các giá trị tăng dần như 1, 2, 3 (hoặc bắt đầu từ giá trị cấu hình ban đầu).
Câu 11: Bạn cần sửa tên của một nhạc sĩ trong bảng `nhacsi`. Tên nhạc sĩ là trường `tenNhacsi`. Thao tác cập nhật này có ảnh hưởng trực tiếp đến dữ liệu trong bảng `bannhac` (liên kết qua khóa ngoại `idNhacsi`) không?
- A. Không, việc sửa tên nhạc sĩ chỉ ảnh hưởng đến bảng `nhacsi`.
- B. Có, tên nhạc sĩ trong bảng `bannhac` cũng sẽ tự động cập nhật theo.
- C. Có, tất cả các bản nhạc của nhạc sĩ đó trong bảng `bannhac` sẽ bị xóa.
- D. Có, trường `idNhacsi` trong bảng `bannhac` sẽ bị đặt thành NULL.
Câu 12: Mục đích chính của việc sử dụng khóa ngoại (Foreign Key) trong thiết kế CSDL là gì?
- A. Tăng tốc độ truy vấn dữ liệu.
- B. Giảm dung lượng lưu trữ của cơ sở dữ liệu.
- C. Đảm bảo tính toàn vẹn tham chiếu giữa các bảng (dữ liệu liên quan phải tồn tại).
- D. Mã hóa dữ liệu để bảo mật.
Câu 13: Khi thêm một bản ghi mới vào bảng `bannhac`, giả sử bảng `nhacsi` đã có các nhạc sĩ với `idNhacsi` là 1, 5, 8. Bạn đang nhập dữ liệu cho một bản nhạc mới. Giá trị nào sau đây là hợp lệ để nhập vào trường `idNhacsi` của bản nhạc này?
Câu 14: Bạn muốn xem danh sách tất cả các bản nhạc và tên của nhạc sĩ sáng tác chúng. Để làm được điều này, bạn cần kết hợp dữ liệu từ bảng `bannhac` và bảng `nhacsi`. Mối liên hệ giữa hai bảng này để thực hiện truy vấn kết hợp (JOIN) là dựa vào trường nào?
- A. Trường `tenBannhac` trong `bannhac` và `tenNhacsi` trong `nhacsi`.
- B. Trường `idNhacsi` (khóa ngoại) trong `bannhac` và trường `idNhacsi` (khóa chính) trong `nhacsi`.
- C. Trường `idBannhac` trong `bannhac` và bất kỳ trường nào trong `nhacsi`.
- D. Không có mối liên hệ nào giữa hai bảng này theo mô tả.
Câu 15: Khi xóa một bản nhạc khỏi bảng `bannhac`, thao tác này có ảnh hưởng đến dữ liệu của nhạc sĩ tương ứng trong bảng `nhacsi` không (với cấu hình khóa ngoại mặc định)?
- A. Không, việc xóa bản nhạc chỉ ảnh hưởng đến bảng `bannhac`.
- B. Có, nhạc sĩ đó cũng sẽ bị xóa khỏi bảng `nhacsi`.
- C. Có, tên nhạc sĩ trong bảng `nhacsi` sẽ bị đổi thành "Không xác định".
- D. Có, trường `idNhacsi` của nhạc sĩ trong bảng `nhacsi` sẽ bị đặt thành NULL.
Câu 16: Bạn nhận thấy có một lỗi chính tả trong tên một bản nhạc trong bảng `bannhac`. Để sửa lỗi này bằng giao diện đồ họa, bước đầu tiên bạn thường làm là gì?
- A. Xóa toàn bộ bản nhạc đó và nhập lại.
- B. Tìm nhạc sĩ của bản nhạc đó trong bảng `nhacsi`.
- C. Tìm bản ghi của bản nhạc bị lỗi trong bảng `bannhac`.
- D. Thêm một bản ghi mới với tên đúng.
Câu 17: Giả sử bạn muốn lọc các bản nhạc được sáng tác sau năm 1975 trong bảng `bannhac` (có trường `namSangTac`). Thao tác nào sau đây thể hiện đúng logic lọc?
- A. Lọc trường `namSangTac` với điều kiện `= 1975`.
- B. Lọc trường `namSangTac` với điều kiện `> 1975`.
- C. Lọc trường `namSangTac` với điều kiện `< 1975`.
- D. Lọc trường `tenBannhac` với từ khóa "sau 1975".
Câu 18: Trong một hệ CSDL có bảng `DonHang` (SoDH, NgayDH, MaKH) và `ChiTietDonHang` (SoDH, MaSP, SoLuong, DonGia). `SoDH` trong `ChiTietDonHang` là khóa ngoại đến `DonHang`. Nếu bạn muốn xóa một đơn hàng khỏi bảng `DonHang`, điều gì cần xảy ra trước tiên để tránh lỗi ràng buộc toàn vẹn (với cấu hình mặc định)?
- A. Thay đổi `MaKH` trong đơn hàng đó thành NULL.
- B. Cập nhật `NgayDH` thành ngày hiện tại.
- C. Thêm một bản ghi mới vào bảng `DonHang`.
- D. Xóa tất cả các chi tiết đơn hàng liên quan trong bảng `ChiTietDonHang` trước.
Câu 19: Khi nhập dữ liệu vào một trường có kiểu dữ liệu là số nguyên (INTEGER), điều gì sẽ xảy ra nếu bạn cố gắng nhập một chuỗi văn bản?
- A. Hệ quản trị CSDL sẽ báo lỗi kiểu dữ liệu và từ chối nhập.
- B. Chuỗi văn bản sẽ được tự động chuyển đổi thành số 0.
- C. Hệ thống sẽ lưu trữ chuỗi văn bản đó như bình thường.
- D. Trường đó sẽ bị bỏ trống.
Câu 20: Giả sử bạn có bảng `SinhVien` (MaSV, TenSV, MaKhoa) và bảng `Khoa` (MaKhoa, TenKhoa). `MaKhoa` trong `SinhVien` là khóa ngoại đến `Khoa`. Bạn muốn cập nhật `MaKhoa` cho một sinh viên từ "CNTT" sang "DIENTU". Thao tác này là một ví dụ của việc cập nhật dữ liệu trong bảng con (bảng chứa khóa ngoại). Để thành công, giá trị mới ("DIENTU") phải:
- A. Là giá trị duy nhất trong toàn bộ cơ sở dữ liệu.
- B. Phải tồn tại như một giá trị `MaKhoa` trong bảng `Khoa`.
- C. Phải khác với giá trị `MaSV` của sinh viên đó.
- D. Phải có thuộc tính AUTO_INCREMENT.
Câu 21: Trong quá trình thực hành cập nhật dữ liệu có tham chiếu, việc kiểm tra lại dữ liệu sau khi thêm, sửa hoặc xóa là rất quan trọng. Mục đích chính của việc kiểm tra này là gì?
- A. Để đếm số lượng bản ghi mới được thêm.
- B. Để đảm bảo dữ liệu mới có màu sắc đẹp trên giao diện.
- C. Để xác nhận rằng thao tác đã thành công, dữ liệu đúng như mong đợi và không vi phạm các ràng buộc (như khóa ngoại).
- D. Để hệ thống tự động tạo báo cáo.
Câu 22: Khi bạn cần tìm tất cả các bản nhạc của một nhạc sĩ cụ thể trong bảng `bannhac` bằng cách sử dụng giao diện lọc dữ liệu, bạn sẽ sử dụng trường nào để lọc và giá trị nào?
- A. Lọc trên trường `idNhacsi` với giá trị là `idNhacsi` của nhạc sĩ đó.
- B. Lọc trên trường `tenBannhac` với tên của nhạc sĩ.
- C. Lọc trên trường `idBannhac` với giá trị là `idNhacsi` của nhạc sĩ.
- D. Lọc trên trường `tenNhacsi` trong bảng `bannhac` (nếu có).
Câu 23: Bạn muốn thêm một nhạc sĩ mới vào bảng `nhacsi`. Trường `idNhacsi` có thuộc tính `AUTO_INCREMENT`. Khi nhập dữ liệu cho nhạc sĩ mới này, bạn cần làm gì với trường `idNhacsi`?
- A. Nhập một số ngẫu nhiên lớn.
- B. Nhập giá trị 0.
- C. Nhập giá trị 1.
- D. Để trống hoặc nhập giá trị đặc biệt cho phép hệ thống tự động gán (ví dụ: NULL hoặc bỏ qua trong giao diện).
Câu 24: Giả sử cấu hình khóa ngoại giữa `bannhac.idNhacsi` và `nhacsi.idNhacsi` có tùy chọn `ON DELETE CASCADE`. Điều này có nghĩa là gì khi bạn xóa một nhạc sĩ khỏi bảng `nhacsi`?
- A. Hệ thống sẽ ngăn chặn việc xóa nhạc sĩ.
- B. Tất cả các bản nhạc của nhạc sĩ đó trong bảng `bannhac` cũng sẽ tự động bị xóa theo.
- C. Trường `idNhacsi` của các bản nhạc liên quan trong bảng `bannhac` sẽ được đặt thành NULL.
- D. Tên nhạc sĩ trong bảng `bannhac` sẽ được cập nhật thành "Không rõ".
Câu 25: Giả sử cấu hình khóa ngoại giữa `bannhac.idNhacsi` và `nhacsi.idNhacsi` có tùy chọn `ON UPDATE CASCADE`. Điều này có nghĩa là gì khi bạn cập nhật giá trị `idNhacsi` của một nhạc sĩ trong bảng `nhacsi`?
- A. Hệ thống sẽ ngăn chặn việc cập nhật `idNhacsi` của nhạc sĩ.
- B. Tất cả các bản nhạc của nhạc sĩ đó trong bảng `bannhac` sẽ bị xóa.
- C. Giá trị `idNhacsi` tương ứng trong tất cả các bản nhạc của nhạc sĩ đó trong bảng `bannhac` cũng sẽ tự động cập nhật theo giá trị mới.
- D. Tên nhạc sĩ trong bảng `nhacsi` sẽ được đặt thành NULL.
Câu 26: Trong giao diện quản lý CSDL, khi bạn xem dữ liệu của một bảng có khóa ngoại, đôi khi trường khóa ngoại được hiển thị dưới dạng một liên kết hoặc một danh sách chọn thay vì chỉ là một số ID. Mục đích của việc hiển thị này là gì?
- A. Giúp người dùng dễ dàng xem thông tin chi tiết của bản ghi được tham chiếu hoặc chọn giá trị từ bảng cha, tăng tính thân thiện và giảm lỗi nhập liệu.
- B. Để mã hóa dữ liệu khóa ngoại.
- C. Để tăng tốc độ tải dữ liệu của bảng.
- D. Để ngăn chặn người dùng sửa đổi giá trị khóa ngoại.
Câu 27: Bạn cần xóa một số bản nhạc cũ khỏi bảng `bannhac`. Điều kiện nào sau đây là không liên quan đến việc xóa một bản ghi trong bảng `bannhac` (với cấu hình khóa ngoại mặc định như trong bài thực hành)?
- A. Có bản ghi khác trong bảng `bannhac` tham chiếu đến bản ghi này (không xảy ra trong cấu trúc này).
- B. Có bản ghi trong bảng khác tham chiếu đến bản ghi này (không xảy ra trong cấu trúc này).
- C. Bản ghi đó có trường khóa ngoại (`idNhacsi`) tham chiếu đến bảng `nhacsi`.
- D. Bản ghi đó có trường khóa chính (`idBannhac`) được tham chiếu bởi một bảng khác (không xảy ra trong cấu trúc này).
Câu 28: Trong một tình huống thực tế, việc nhập sai dữ liệu vào trường khóa ngoại (`idNhacsi`) trong bảng `bannhac` (ví dụ: nhập một số không tồn tại trong bảng `nhacsi`) sẽ gây ra hậu quả gì về mặt dữ liệu?
- A. Vi phạm ràng buộc toàn vẹn tham chiếu, dẫn đến lỗi và không cho phép nhập dữ liệu (với cấu hình khóa ngoại được bật).
- B. Dữ liệu sẽ được nhập bình thường, nhưng bản nhạc đó sẽ không liên kết với nhạc sĩ nào.
- C. Trường `idNhacsi` sẽ tự động được sửa lại thành 0.
- D. Bảng `nhacsi` sẽ tự động thêm một nhạc sĩ mới với ID đó.
Câu 29: Bạn muốn xem danh sách các nhạc sĩ và số lượng bản nhạc mà mỗi người đã sáng tác. Để thực hiện truy vấn này, bạn cần sử dụng kỹ thuật gì trong CSDL?
- A. Chỉ cần xem dữ liệu trong bảng `nhacsi`.
- B. Kết hợp (JOIN) hai bảng `nhacsi` và `bannhac`, nhóm theo nhạc sĩ và đếm số bản nhạc.
- C. Xóa tất cả dữ liệu trong bảng `bannhac`.
- D. Sửa trường `tenNhacsi` trong bảng `nhacsi`.
Câu 30: Nếu bạn cần thay đổi giá trị của trường `idNhacsi` cho một bản nhạc đã tồn tại trong bảng `bannhac` (ví dụ: gán bản nhạc cho một nhạc sĩ khác), thao tác này là một ví dụ của:
- A. Thêm mới bản ghi.
- B. Xóa bản ghi.
- C. Thay đổi cấu trúc bảng.
- D. Cập nhật dữ liệu (sửa giá trị của một trường).