Trắc nghiệm Tin học 11 Kết nối tri thức Bài 19: Thực hành tạo lập cơ sở dữ liệu và các bảng - Đề 04
Trắc nghiệm Tin học 11 Kết nối tri thức Bài 19: Thực hành tạo lập cơ sở dữ liệu và các bảng - Đề 04 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 cơ sở dữ liệu quan hệ, ràng buộc tham chiếu (referential integrity constraint) giữa hai bảng được thiết lập thông qua khóa nào?
- A. Khóa chính (Primary Key)
- B. Khóa ngoại (Foreign Key)
- C. Khóa duy nhất (Unique Key)
- D. Chỉ mục (Index)
Câu 2: Xét hai bảng `SinhVien` và `Khoa`, bảng `SinhVien` có khóa ngoại `maKhoa` tham chiếu đến khóa chính `maKhoa` của bảng `Khoa`. Điều gì xảy ra nếu bạn cố gắng xóa một bản ghi từ bảng `Khoa` mà `maKhoa` đó vẫn đang được tham chiếu bởi ít nhất một bản ghi trong bảng `SinhVien`?
- A. Bản ghi trong bảng `Khoa` sẽ bị xóa, và các bản ghi liên quan trong `SinhVien` cũng tự động bị xóa.
- B. Bản ghi trong bảng `Khoa` sẽ bị xóa, nhưng khóa ngoại `maKhoa` trong bảng `SinhVien` sẽ trở thành NULL.
- C. Hệ thống sẽ ngăn chặn việc xóa bản ghi trong bảng `Khoa` và báo lỗi ràng buộc tham chiếu.
- D. Bản ghi trong bảng `Khoa` sẽ bị xóa, và khóa ngoại `maKhoa` trong `SinhVien` sẽ được đặt về giá trị mặc định.
Câu 3: Trong tình huống ở Câu 2, giả sử ràng buộc tham chiếu được cấu hình với tùy chọn `ON DELETE CASCADE`. Điều gì sẽ xảy ra khi bạn xóa một bản ghi từ bảng `Khoa`?
- A. Bản ghi trong bảng `Khoa` và tất cả các bản ghi trong bảng `SinhVien` có `maKhoa` tương ứng sẽ bị xóa.
- B. Bản ghi trong bảng `Khoa` sẽ bị xóa, nhưng các bản ghi trong `SinhVien` vẫn được giữ lại và khóa ngoại `maKhoa` trở thành NULL.
- C. Hệ thống sẽ ngăn chặn việc xóa bản ghi trong bảng `Khoa` do ràng buộc tham chiếu.
- D. Chỉ bản ghi trong bảng `Khoa` bị xóa; các bản ghi trong `SinhVien` không bị ảnh hưởng.
Câu 4: Tùy chọn `ON UPDATE CASCADE` trong ràng buộc tham chiếu có tác dụng gì khi bạn cập nhật giá trị khóa chính trong bảng cha?
- A. Ngăn chặn việc cập nhật khóa chính trong bảng cha nếu có bản ghi con tham chiếu đến nó.
- B. Tự động cập nhật giá trị khóa ngoại trong bảng con để khớp với giá trị khóa chính đã được cập nhật trong bảng cha.
- C. Xóa tất cả các bản ghi con trong bảng con trước khi cho phép cập nhật khóa chính trong bảng cha.
- D. Đặt giá trị khóa ngoại trong bảng con thành NULL khi khóa chính trong bảng cha được cập nhật.
Câu 5: Trong câu lệnh SQL `UPDATE SinhVien SET maKhoa = "CNTT" WHERE maSV = "SV001"`, điều gì có thể gây ra lỗi nếu có ràng buộc tham chiếu liên quan đến cột `maKhoa`?
- A. Lỗi cú pháp SQL trong câu lệnh UPDATE.
- B. Lỗi do trường `maSV` không phải là khóa chính.
- C. Lỗi do giá trị "SV001" không tồn tại trong bảng `SinhVien`.
- D. Lỗi do giá trị "CNTT" không tồn tại trong cột `maKhoa` của bảng `Khoa` (bảng tham chiếu).
Câu 6: Khi cập nhật dữ liệu trong bảng có khóa ngoại, thứ tự cập nhật bảng nào là quan trọng để tránh vi phạm ràng buộc tham chiếu?
- A. Cập nhật bảng có khóa ngoại trước, sau đó cập nhật bảng được tham chiếu.
- B. Thứ tự cập nhật không quan trọng, hệ thống sẽ tự động xử lý ràng buộc tham chiếu.
- C. Cập nhật bảng được tham chiếu (bảng cha) trước, sau đó cập nhật bảng có khóa ngoại (bảng con).
- D. Chỉ cần cập nhật một trong hai bảng, hệ thống sẽ tự động cập nhật bảng còn lại.
Câu 7: Giả sử bạn muốn thay đổi mã khoa của một khoa trong bảng `Khoa`. Để đảm bảo tính nhất quán dữ liệu, bạn cần xem xét điều gì liên quan đến bảng `SinhVien` (có khóa ngoại `maKhoa`)?
- A. Không cần xem xét gì cả, việc cập nhật bảng `Khoa` không ảnh hưởng đến bảng `SinhVien`.
- B. Cần đảm bảo rằng khóa ngoại `maKhoa` trong bảng `SinhVien` cũng được cập nhật tương ứng hoặc sử dụng `ON UPDATE CASCADE`.
- C. Cần xóa tất cả sinh viên thuộc khoa đó trước khi cập nhật mã khoa.
- D. Chỉ cần vô hiệu hóa ràng buộc tham chiếu trước khi cập nhật bảng `Khoa`.
Câu 8: Trong một hệ thống quản lý thư viện, bảng `Sach` có khóa chính `maSach` và bảng `MuonTra` có khóa ngoại `maSach` tham chiếu đến `Sach`. Nếu bạn muốn cập nhật tên một cuốn sách trong bảng `Sach`, điều gì sẽ xảy ra với các bản ghi mượn trả liên quan trong bảng `MuonTra`?
- A. Các bản ghi trong bảng `MuonTra` liên quan đến cuốn sách đó sẽ bị xóa.
- B. Khóa ngoại `maSach` trong bảng `MuonTra` sẽ trở thành NULL.
- C. Hệ thống sẽ ngăn chặn việc cập nhật tên sách trong bảng `Sach`.
- D. Không có ảnh hưởng trực tiếp đến bảng `MuonTra`, vì ràng buộc tham chiếu dựa trên `maSach` chứ không phải tên sách.
Câu 9: Khi thiết kế cơ sở dữ liệu, việc xác định và thiết lập ràng buộc tham chiếu giúp đảm bảo điều gì quan trọng nhất?
- A. Tăng tốc độ truy vấn dữ liệu.
- B. Giảm dung lượng lưu trữ cơ sở dữ liệu.
- C. Tính toàn vẹn dữ liệu (data integrity) và tính nhất quán giữa các bảng.
- D. Đơn giản hóa cấu trúc cơ sở dữ liệu.
Câu 10: Trong SQL, mệnh đề nào được sử dụng để thêm ràng buộc khóa ngoại khi tạo bảng?
- A. PRIMARY KEY
- B. FOREIGN KEY REFERENCES
- C. UNIQUE
- D. CHECK CONSTRAINT
Câu 11: Xét tình huống cập nhật điểm số của sinh viên trong bảng `KetQuaHocTap` có khóa ngoại `maSV` tham chiếu đến `SinhVien`. Nếu mã sinh viên `maSV` không tồn tại trong bảng `SinhVien`, điều gì sẽ xảy ra?
- A. Điểm số sẽ được cập nhật, nhưng `maSV` sẽ được đánh dấu là không hợp lệ.
- B. Điểm số sẽ được cập nhật và một bản ghi sinh viên mới với `maSV` đó sẽ tự động được tạo trong bảng `SinhVien`.
- C. Hệ thống sẽ từ chối cập nhật điểm số và báo lỗi ràng buộc tham chiếu.
- D. Điểm số sẽ được cập nhật, và `maSV` sẽ được tự động sửa thành một giá trị hợp lệ khác.
Câu 12: Khi nào việc cập nhật dữ liệu trong bảng có ràng buộc tham chiếu có thể dẫn đến tình trạng dữ liệu không nhất quán?
- A. Khi ràng buộc tham chiếu bị vô hiệu hóa hoặc bỏ qua trong quá trình cập nhật.
- B. Khi sử dụng `ON DELETE CASCADE` và xóa bản ghi trong bảng cha.
- C. Khi sử dụng `ON UPDATE CASCADE` và cập nhật khóa chính trong bảng cha.
- D. Khi cập nhật các trường không phải là khóa chính hoặc khóa ngoại.
Câu 13: Trong một cơ sở dữ liệu bán hàng, bảng `DonHang` có khóa ngoại `maKH` tham chiếu đến bảng `KhachHang`. Để xem thông tin chi tiết của đơn hàng cùng với tên khách hàng, bạn cần sử dụng phép kết nối (JOIN) nào?
- A. phép hợp (UNION)
- B. phép kết nối (JOIN)
- C. phép chọn (SELECT)
- D. phép chiếu (PROJECT)
Câu 14: Giả sử bạn có hai bảng `NhanVien` và `PhongBan`, với `NhanVien.maPB` là khóa ngoại tham chiếu `PhongBan.maPB`. Bạn muốn liệt kê tên tất cả nhân viên và tên phòng ban mà họ làm việc. Câu lệnh SQL nào sau đây là phù hợp nhất?
- A. SELECT TenNV, TenPB FROM NhanVien UNION PhongBan;
- B. SELECT TenNV, TenPB FROM NhanVien CROSS JOIN PhongBan;
- C. SELECT NhanVien.TenNV, PhongBan.TenPB FROM NhanVien INNER JOIN PhongBan ON NhanVien.maPB = PhongBan.maPB;
- D. SELECT TenNV, TenPB FROM NhanVien WHERE maPB IN (SELECT maPB FROM PhongBan);
Câu 15: Trong quá trình cập nhật dữ liệu, giao tác (transaction) đóng vai trò gì trong việc duy trì tính toàn vẹn dữ liệu, đặc biệt khi có ràng buộc tham chiếu?
- A. Tăng tốc độ thực thi các câu lệnh cập nhật.
- B. Giảm thiểu xung đột khi nhiều người dùng cùng truy cập dữ liệu.
- C. Tự động sửa lỗi dữ liệu khi có vi phạm ràng buộc tham chiếu.
- D. Đảm bảo tính nguyên tử (atomicity) của các thao tác cập nhật, hoặc thành công toàn bộ hoặc thất bại toàn bộ, tránh tình trạng dữ liệu không nhất quán.
Câu 16: Khi thiết kế cơ sở dữ liệu cho hệ thống quản lý sinh viên và môn học, mối quan hệ giữa bảng `SinhVien` và bảng `MonHoc` (nhiều sinh viên có thể học nhiều môn và ngược lại) thường được thể hiện thông qua bảng liên kết nào?
- A. Bảng `Khoa`
- B. Bảng `GiangVien`
- C. Bảng `DangKyMonHoc` (hoặc tương tự)
- D. Bảng `DiemThi`
Câu 17: Trong bảng liên kết `DangKyMonHoc` giữa `SinhVien` và `MonHoc`, khóa chính của bảng này thường được tạo thành từ những cột nào?
- A. Một cột tự tăng (auto-increment) duy nhất.
- B. Tổ hợp của khóa ngoại tham chiếu đến `SinhVien` và khóa ngoại tham chiếu đến `MonHoc`.
- C. Khóa chính của bảng `SinhVien` hoặc bảng `MonHoc`.
- D. Một cột chứa thông tin thời gian đăng ký.
Câu 18: Để đảm bảo rằng mỗi môn học phải thuộc về một khoa nhất định, bạn sẽ thiết lập ràng buộc khóa ngoại từ bảng `MonHoc` đến bảng nào?
- A. Bảng `Khoa`
- B. Bảng `SinhVien`
- C. Bảng `GiangVien`
- D. Bảng `DangKyMonHoc`
Câu 19: Khi cập nhật thông tin cá nhân của sinh viên trong bảng `SinhVien`, điều gì quan trọng cần kiểm tra để đảm bảo dữ liệu hợp lệ và nhất quán?
- A. Chỉ cần kiểm tra xem mã sinh viên có tồn tại hay không.
- B. Chỉ cần kiểm tra định dạng của các trường dữ liệu (ví dụ: định dạng ngày tháng).
- C. Kiểm tra tính hợp lệ của dữ liệu mới theo các quy tắc và ràng buộc đã định nghĩa (ví dụ: kiểu dữ liệu, miền giá trị, ràng buộc NOT NULL, UNIQUE).
- D. Không cần kiểm tra gì cả, hệ thống sẽ tự động điều chỉnh dữ liệu nếu cần.
Câu 20: Nếu bạn muốn cập nhật đồng thời thông tin của sinh viên và khoa mà sinh viên đó thuộc về trong một giao tác duy nhất, điều này có thể thực hiện được không?
- A. Có, giao tác cho phép thực hiện nhiều thao tác cập nhật trên nhiều bảng như một đơn vị duy nhất.
- B. Không, mỗi giao tác chỉ được phép cập nhật dữ liệu trên một bảng duy nhất.
- C. Chỉ có thể thực hiện nếu không có ràng buộc tham chiếu giữa các bảng.
- D. Chỉ có thể thực hiện bằng cách sử dụng các thủ tục lưu trữ phức tạp.
Câu 21: Trong ngữ cảnh cập nhật dữ liệu có tham chiếu, thuật ngữ "dữ liệu mồ côi" (orphaned data) dùng để chỉ tình trạng nào?
- A. Dữ liệu bị mất do lỗi phần cứng hoặc phần mềm.
- B. Bản ghi trong bảng con có khóa ngoại tham chiếu đến một bản ghi không còn tồn tại trong bảng cha.
- C. Dữ liệu không được cập nhật trong một khoảng thời gian dài.
- D. Dữ liệu bị trùng lặp trong cơ sở dữ liệu.
Câu 22: Để ngăn chặn tình trạng dữ liệu mồ côi, biện pháp nào sau đây là hiệu quả nhất?
- A. Thường xuyên sao lưu và phục hồi dữ liệu.
- B. Sử dụng các công cụ kiểm tra lỗi dữ liệu định kỳ.
- C. Thiết lập và duy trì ràng buộc tham chiếu (referential integrity constraints) với các tùy chọn `ON DELETE CASCADE` hoặc `ON DELETE SET NULL` phù hợp.
- D. Giới hạn quyền truy cập và cập nhật dữ liệu.
Câu 23: Khi cập nhật một bản ghi trong bảng cha, nếu có ràng buộc `ON UPDATE SET NULL` được thiết lập, điều gì sẽ xảy ra với khóa ngoại trong các bản ghi con liên quan?
- A. Các bản ghi con liên quan sẽ tự động bị xóa.
- B. Hệ thống sẽ ngăn chặn việc cập nhật bản ghi trong bảng cha.
- C. Khóa ngoại trong các bản ghi con sẽ tự động được cập nhật theo giá trị mới của khóa chính.
- D. Khóa ngoại trong các bản ghi con sẽ được đặt thành giá trị NULL.
Câu 24: Trong môi trường CSDL phân tán, việc duy trì ràng buộc tham chiếu trở nên phức tạp hơn do yếu tố nào?
- A. Tốc độ truy cập dữ liệu chậm hơn.
- B. Dữ liệu có thể được phân tán trên nhiều nút (nodes) vật lý khác nhau.
- C. Khả năng mở rộng hệ thống bị hạn chế.
- D. Chi phí lưu trữ dữ liệu tăng cao.
Câu 25: Để kiểm tra ràng buộc tham chiếu đã được thiết lập trên một bảng trong MySQL, bạn có thể sử dụng câu lệnh SQL nào?
- A. SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS;
- B. DESCRIBE table_name;
- C. SHOW CREATE TABLE table_name;
- D. SELECT * FROM mysql.innodb_foreigns;
Câu 26: Khi thiết kế cơ sở dữ liệu, việc lựa chọn tùy chọn `CASCADE`, `SET NULL`, `RESTRICT` (hoặc `NO ACTION`) cho ràng buộc tham chiếu `ON DELETE` và `ON UPDATE` phụ thuộc vào yếu tố nào?
- A. Hiệu suất truy vấn dữ liệu.
- B. Dung lượng lưu trữ cơ sở dữ liệu.
- C. Sự phức tạp của câu lệnh SQL.
- D. Yêu cầu nghiệp vụ và logic xử lý dữ liệu liên quan khi có thay đổi ở bảng cha.
Câu 27: Giả sử bạn có bảng `SanPham` và `PhieuNhap`. `PhieuNhap` có khóa ngoại `maSP` tham chiếu đến `SanPham`. Bạn muốn tính tổng số lượng sản phẩm đã nhập cho mỗi sản phẩm. Câu lệnh SQL nào sau đây phù hợp nhất?
- A. SELECT SUM(SoLuongNhap) FROM PhieuNhap;
- B. SELECT SanPham.TenSP, SUM(PhieuNhap.SoLuongNhap) FROM PhieuNhap INNER JOIN SanPham ON PhieuNhap.maSP = SanPham.maSP GROUP BY SanPham.TenSP;
- C. SELECT SanPham.TenSP, PhieuNhap.SoLuongNhap FROM PhieuNhap CROSS JOIN SanPham;
- D. SELECT SanPham.TenSP, AVG(PhieuNhap.SoLuongNhap) FROM PhieuNhap INNER JOIN SanPham ON PhieuNhap.maSP = SanPham.maSP;
Câu 28: Trong quá trình cập nhật dữ liệu, nếu bạn gặp lỗi vi phạm ràng buộc tham chiếu, thông báo lỗi thường cho biết điều gì?
- A. Bảng và cột nào gây ra lỗi vi phạm ràng buộc tham chiếu, cũng như loại ràng buộc (ví dụ: khóa ngoại).
- B. Nguyên nhân gây ra lỗi phần cứng.
- C. Hướng dẫn chi tiết cách khắc phục lỗi.
- D. Mức độ nghiêm trọng của lỗi đối với hệ thống.
Câu 29: Để tạm thời vô hiệu hóa kiểm tra ràng buộc khóa ngoại trong MySQL (ví dụ: để nhập dữ liệu ban đầu), bạn có thể sử dụng lệnh nào?
- A. DISABLE TRIGGER foreign_key_constraint;
- B. SET foreign_key_checks = 0;
- C. ALTER TABLE table_name DISABLE CONSTRAINT foreign_key_constraint;
- D. REMOVE FOREIGN KEY foreign_key_constraint ON table_name;
Câu 30: Sau khi hoàn thành việc nhập dữ liệu ban đầu và muốn kích hoạt lại kiểm tra ràng buộc khóa ngoại trong MySQL, bạn cần sử dụng lệnh nào?
- A. ENABLE TRIGGER foreign_key_constraint;
- B. ALTER TABLE table_name ENABLE CONSTRAINT foreign_key_constraint;
- C. SET foreign_key_checks = 1;
- D. ADD FOREIGN KEY foreign_key_constraint ON table_name;