Trắc nghiệm Tin học 11 Tin học ứng dụng Kết nối Bài 20 Thực hành tạo lập các bảng có khóa ngoại
1. Giả sử bạn có bảng "Khoa" (MaKhoa, TenKhoa) và bảng "SinhVien" (MSSV, HoTen, MaKhoa). Nếu MaKhoa trong "SinhVien" là khóa ngoại tham chiếu đến MaKhoa trong "Khoa", và bạn muốn mỗi sinh viên phải thuộc về một khoa, bạn cần thêm điều kiện gì cho khóa ngoại này?
A. Khai báo cột MaKhoa trong bảng "SinhVien" là NOT NULL.
B. Khai báo cột MaKhoa trong bảng "Khoa" là NOT NULL.
C. Sử dụng hành động ON DELETE CASCADE.
D. Sử dụng hành động ON UPDATE SET NULL.
2. Trong SQL, khi tạo một bảng với khóa ngoại, nếu không chỉ định rõ hành động ON DELETE hoặc ON UPDATE, hành vi mặc định là gì?
A. NO ACTION (hoặc RESTRICT tùy hệ thống).
B. CASCADE.
C. SET NULL.
D. SET DEFAULT.
3. Trong SQL, khi sử dụng lệnh `ALTER TABLE` để thêm ràng buộc khóa ngoại, nếu bạn muốn tên của ràng buộc là "FK_NhanVien_PhongBan", bạn sẽ thêm nó như thế nào?
A. ALTER TABLE NhanVien ADD CONSTRAINT FK_NhanVien_PhongBan FOREIGN KEY (MaPB) REFERENCES PhongBan(MaPB);
B. ALTER TABLE NhanVien ADD FK_NhanVien_PhongBan (MaPB) REFERENCES PhongBan(MaPB);
C. ALTER TABLE NhanVien ADD FOREIGN KEY (MaPB) REFERENCES PhongBan(MaPB) AS FK_NhanVien_PhongBan;
D. ALTER TABLE NhanVien ADD CONSTRAINT (MaPB) REFERENCES PhongBan(MaPB) NAME FK_NhanVien_PhongBan;
4. Điều gì xảy ra nếu bạn cố gắng chèn một giá trị vào cột khóa ngoại mà giá trị đó không tồn tại trong cột khóa chính của bảng tham chiếu?
A. Lệnh INSERT sẽ bị từ chối và báo lỗi vi phạm ràng buộc khóa ngoại.
B. Hệ thống sẽ tự động thêm bản ghi tương ứng vào bảng tham chiếu.
C. Cột khóa ngoại sẽ nhận giá trị NULL.
D. Hệ thống sẽ bỏ qua giá trị đó và tiếp tục thực thi.
5. Trong thiết kế cơ sở dữ liệu, khi nào thì nên sử dụng tùy chọn ON DELETE CASCADE cho một ràng buộc khóa ngoại?
A. Khi việc xóa một bản ghi trong bảng cha phải kéo theo việc xóa tất cả các bản ghi liên quan trong bảng con.
B. Khi muốn giữ lại các bản ghi trong bảng con và đặt giá trị khóa ngoại thành NULL khi bản ghi cha bị xóa.
C. Khi muốn cập nhật giá trị khóa ngoại trong bảng con thành một giá trị mặc định khi bản ghi cha bị xóa.
D. Khi bảng con không chứa dữ liệu quan trọng và có thể bị xóa độc lập.
6. Đâu là một lợi ích của việc sử dụng khóa ngoại trong thiết kế cơ sở dữ liệu?
A. Giúp mô tả rõ ràng mối quan hệ giữa các bảng.
B. Tăng kích thước của cơ sở dữ liệu.
C. Làm giảm tính linh hoạt trong việc truy vấn dữ liệu.
D. Chỉ có tác dụng trang trí cho cấu trúc bảng.
7. Khi tạo một ràng buộc khóa ngoại, hành động mặc định của hệ quản trị cơ sở dữ liệu (DBMS) khi bản ghi trong bảng cha (bảng được tham chiếu bởi khóa chính) bị xóa là gì?
A. Tự động xóa các bản ghi tương ứng trong bảng con.
B. Ngăn chặn việc xóa bản ghi trong bảng cha.
C. Đặt giá trị khóa ngoại trong bảng con thành NULL.
D. Cập nhật giá trị khóa ngoại trong bảng con thành giá trị mặc định.
8. Trong trường hợp nào thì một khóa ngoại có thể tham chiếu đến một khóa duy nhất (UNIQUE constraint) thay vì khóa chính (PRIMARY KEY)?
A. Khi cột tham chiếu trong bảng cha cần đảm bảo tính duy nhất nhưng không phải là định danh chính.
B. Khóa ngoại chỉ có thể tham chiếu đến khóa chính.
C. Khi bảng cha chỉ có một cột duy nhất và cột đó không phải khóa chính.
D. Khi bảng con cần liên kết với nhiều bảng khác nhau.
9. Khi định nghĩa một ràng buộc khóa ngoại, có thể chỉ định một hành động khác ngoài CASCADE và SET NULL cho việc xóa bản ghi cha không?
A. Có, có thể sử dụng hành động NO ACTION hoặc RESTRICT.
B. Không, chỉ có CASCADE và SET NULL được hỗ trợ.
C. Chỉ có thể sử dụng SET DEFAULT nếu có giá trị mặc định.
D. Hành động xóa bản ghi cha luôn bị ngăn chặn.
10. Tại sao việc xóa một khóa ngoại khỏi bảng lại quan trọng trong một số trường hợp?
A. Để cho phép các bản ghi trong bảng con không cần liên kết với bảng cha hoặc để thay đổi cấu trúc quan hệ dữ liệu.
B. Để tăng hiệu suất truy vấn dữ liệu.
C. Để làm cho cơ sở dữ liệu đơn giản hơn.
D. Để ngăn chặn việc nhập dữ liệu mới.
11. Khi thiết kế cơ sở dữ liệu, tại sao việc sử dụng khóa ngoại lại quan trọng để duy trì tính nhất quán của dữ liệu?
A. Khóa ngoại ngăn chặn việc nhập dữ liệu không hợp lệ hoặc không có mối liên hệ với dữ liệu trong bảng khác.
B. Khóa ngoại giúp tăng tốc độ truy vấn dữ liệu.
C. Khóa ngoại là bắt buộc đối với mọi bảng trong cơ sở dữ liệu quan hệ.
D. Khóa ngoại chỉ dùng để liên kết các bảng, không ảnh hưởng đến tính nhất quán.
12. Trong cơ sở dữ liệu quan hệ, một khóa ngoại (Foreign Key) trong bảng A tham chiếu đến khóa chính (Primary Key) trong bảng B có ý nghĩa gì?
A. Đảm bảo rằng mọi giá trị trong cột khóa ngoại của bảng A phải tồn tại trong cột khóa chính của bảng B.
B. Cho phép các giá trị trùng lặp trong cột khóa ngoại của bảng A.
C. Ngăn chặn việc xóa các bản ghi trong bảng B nếu có bản ghi tương ứng trong bảng A.
D. Chỉ định rằng bảng A là bảng cha và bảng B là bảng con.
13. Trong SQL, câu lệnh nào sau đây được sử dụng để thêm một ràng buộc khóa ngoại vào một bảng đã tồn tại?
A. ALTER TABLE ten_bang ADD CONSTRAINT ten_rangbuoc FOREIGN KEY (cot_khoa_ngoai) REFERENCES bang_tham_chieu (cot_khoa_chinh);
B. CREATE TABLE new_table ... FOREIGN KEY ... REFERENCES ...;
C. MODIFY TABLE ten_bang ADD FOREIGN KEY (cot_khoa_ngoai) REFERENCES bang_tham_chieu (cot_khoa_chinh);
D. INSERT INTO constraints ... VALUES (ten_bang, cot_khoa_ngoai, bang_tham_chieu, cot_khoa_chinh);
14. Khi thiết kế cơ sở dữ liệu, nếu một bảng "Giáo viên" có khóa chính là "MaGV" và bảng "Lớp học" có khóa ngoại là "MaGV" tham chiếu đến "Giáo viên", hành động ON DELETE SET NULL cho ràng buộc khóa ngoại này sẽ làm gì khi một giáo viên bị xóa?
A. Giá trị "MaGV" trong các lớp học mà giáo viên đó phụ trách sẽ được đặt thành NULL.
B. Các lớp học mà giáo viên đó phụ trách sẽ bị xóa.
C. Việc xóa giáo viên sẽ bị ngăn chặn.
D. Giá trị "MaGV" trong các lớp học sẽ được cập nhật thành một giáo viên khác.
15. Điều gì xảy ra nếu một giá trị trong cột khóa ngoại không tồn tại trong cột khóa chính của bảng tham chiếu (với ràng buộc khóa ngoại hợp lệ)?
A. Hành động chèn hoặc cập nhật đó sẽ bị từ chối bởi hệ quản trị cơ sở dữ liệu.
B. Hệ thống sẽ tự động thêm bản ghi tương ứng vào bảng tham chiếu.
C. Giá trị khóa ngoại sẽ được tự động đặt thành NULL.
D. Không có gì xảy ra, hệ thống cho phép giá trị không hợp lệ.
16. Câu lệnh SQL sau đây: `CREATE TABLE Orders (OrderID INT PRIMARY KEY, CustomerID INT, OrderDate DATE, CONSTRAINT FK_CustomerOrder FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID));` có ý nghĩa gì?
A. Tạo bảng "Orders" với khóa chính là "OrderID" và khóa ngoại "CustomerID" tham chiếu đến bảng "Customers".
B. Tạo bảng "Orders" và thêm cột "CustomerID" làm khóa chính.
C. Cập nhật bảng "Customers" để thêm khóa ngoại "CustomerID" tham chiếu đến bảng "Orders".
D. Tạo bảng "Orders" và thiết lập "CustomerID" là khóa ngoại nhưng không ràng buộc với bảng nào.
17. Đâu là mục đích chính của việc xác định "NOT NULL" cho một cột khóa ngoại?
A. Đảm bảo rằng mỗi bản ghi trong bảng con phải có một bản ghi tương ứng trong bảng cha.
B. Cho phép các bản ghi trong bảng con không có mối liên hệ với bảng cha.
C. Tăng tốc độ tra cứu dữ liệu.
D. Giảm dung lượng lưu trữ của cơ sở dữ liệu.
18. Trong mô hình cơ sở dữ liệu quan hệ, mối quan hệ giữa hai bảng "Sản phẩm" (MaSP, TenSP) và "ChiTietDonHang" (MaCTDH, MaDH, MaSP, SoLuong) mà MaSP trong "ChiTietDonHang" là khóa ngoại tham chiếu đến MaSP trong "Sản phẩm" được gọi là mối quan hệ gì?
A. Một-nhiều (One-to-Many).
B. Một-một (One-to-One).
C. Nhiều-nhiều (Many-to-Many).
D. Không có mối quan hệ.
19. Nếu một bảng "NhanVien" có khóa chính "MaNV" và bảng "PhongBan" có khóa ngoại "MaTruongPhong" tham chiếu đến "MaNV" trong bảng "NhanVien", điều này có nghĩa là gì?
A. Mỗi phòng ban có một trưởng phòng là nhân viên.
B. Mỗi nhân viên chỉ có thể làm trưởng phòng cho một phòng ban.
C. Mỗi nhân viên có thể phụ trách nhiều phòng ban.
D. Phòng ban không có trưởng phòng.
20. Xét hai bảng: "KhachHang" (MaKH, TenKH) và "DonHang" (MaDH, MaKH, NgayDat). Nếu MaKH trong bảng "DonHang" là khóa ngoại tham chiếu đến MaKH trong bảng "KhachHang", điều gì xảy ra nếu bạn cố gắng xóa một khách hàng khỏi bảng "KhachHang" mà khách hàng đó có đơn hàng trong bảng "DonHang"?
A. Hệ thống sẽ báo lỗi và ngăn chặn việc xóa nếu không có hành động xử lý nào được định nghĩa (ví dụ: CASCADE DELETE).
B. Đơn hàng của khách hàng đó trong bảng "DonHang" sẽ tự động bị xóa.
C. Trường MaKH trong bảng "DonHang" sẽ tự động được đặt thành NULL.
D. Khách hàng sẽ bị xóa khỏi bảng "KhachHang" và tất cả các đơn hàng liên quan sẽ được cập nhật thông tin mới.
21. Nếu bạn có hai bảng "TacGia" (MaTacGia, TenTacGia) và "Sach" (MaSach, TenSach, MaTacGia), và MaTacGia trong "Sach" là khóa ngoại tham chiếu đến MaTacGia trong "TacGia". Nếu một tác giả có nhiều sách, mối quan hệ này là gì?
A. Một tác giả có thể có nhiều sách (One-to-Many).
B. Một tác giả chỉ có thể có một sách (One-to-One).
C. Nhiều tác giả có thể viết một sách (Many-to-One).
D. Không có mối quan hệ rõ ràng.
22. Khi sử dụng SQL để tạo một ràng buộc khóa ngoại, phần nào của câu lệnh chỉ định cột trong bảng hiện tại sẽ là khóa ngoại?
A. Mệnh đề `FOREIGN KEY (...)`.
B. Mệnh đề `REFERENCES ... (...)`.
C. Mệnh đề `PRIMARY KEY (...)`.
D. Mệnh đề `CONSTRAINT ...`.
23. Một bảng có thể có bao nhiêu khóa chính?
A. Chỉ một.
B. Không giới hạn.
C. Tối đa hai.
D. Tùy thuộc vào số lượng cột trong bảng.
24. Mục đích của việc sử dụng ràng buộc khóa ngoại trong việc chuẩn hóa cơ sở dữ liệu là gì?
A. Giúp loại bỏ sự dư thừa dữ liệu và đảm bảo tính nhất quán.
B. Tăng tốc độ truy xuất dữ liệu.
C. Cho phép mỗi bảng có nhiều khóa chính.
D. Làm cho cấu trúc cơ sở dữ liệu phức tạp hơn.
25. Trong hai bảng "SinhVien" (MSSV, HoTen) và "KetQuaHocTap" (MaKQ, MSSV, Diem), nếu MSSV trong "KetQuaHocTap" là khóa ngoại tham chiếu đến MSSV trong "SinhVien", điều gì có thể xảy ra nếu MSSV trong "SinhVien" có giá trị NULL?
A. Điều này không thể xảy ra nếu MSSV trong "SinhVien" được định nghĩa là khóa chính (PRIMARY KEY), vì khóa chính không được phép NULL.
B. Các bản ghi trong "KetQuaHocTap" có thể có MSSV là NULL.
C. MSSV trong "KetQuaHocTap" sẽ tự động được cập nhật thành một giá trị khác.
D. Việc tạo ràng buộc khóa ngoại sẽ bị lỗi.