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 - Đề 07
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 - Đề 07 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 mô hình cơ sở dữ liệu quan hệ, khái niệm nào sau đây mô tả một thuộc tính hoặc tập hợp các thuộc tính dùng để xác định duy nhất mỗi bộ (row) trong một bảng?
- A. Khóa chính (Primary Key)
- B. Khóa ngoại (Foreign Key)
- C. Thuộc tính (Attribute)
- D. Bản ghi (Record)
Câu 2: Xét bảng "SinhVien" với các thuộc tính (MaSV, TenSV, MaLop). Thuộc tính "MaSV" được chọn làm khóa chính. Điều gì đảm bảo bởi việc chọn "MaSV" làm khóa chính?
- A. Mỗi sinh viên có thể có nhiều tên khác nhau.
- B. Không có hai sinh viên nào có cùng mã số sinh viên.
- C. Tên của tất cả sinh viên phải khác nhau.
- D. Mã lớp của tất cả sinh viên phải giống nhau.
Câu 3: Trong hai bảng "LopHoc" (MaLop, TenLop) và "SinhVien" (MaSV, TenSV, MaLop), "MaLop" trong bảng "SinhVien" đóng vai trò là gì?
- A. Khóa chính của bảng "SinhVien"
- B. Khóa chính của bảng "LopHoc"
- C. Khóa ngoại tham chiếu đến bảng "LopHoc"
- D. Thuộc tính thông thường của bảng "SinhVien"
Câu 4: Mục đích chính của việc sử dụng khóa ngoại trong cơ sở dữ liệu quan hệ là gì?
- A. Tăng tốc độ truy vấn dữ liệu.
- B. Giảm dung lượng lưu trữ dữ liệu.
- C. Đảm bảo tính duy nhất của dữ liệu trong một bảng.
- D. Thiết lập mối quan hệ và ràng buộc giữa các bảng.
Câu 5: Cho lược đồ cơ sở dữ liệu: "Khoa" (MaKhoa, TenKhoa), "GiangVien" (MaGV, TenGV, MaKhoa). Nếu muốn tìm tất cả giảng viên thuộc khoa "Công nghệ thông tin", thao tác nào sau đây là hiệu quả nhất?
- A. Duyệt tuần tự tất cả bản ghi trong bảng "GiangVien" và kiểm tra "TenKhoa".
- B. Sử dụng khóa ngoại "MaKhoa" để liên kết hai bảng và lọc theo "TenKhoa" = "Công nghệ thông tin" trong bảng "Khoa".
- C. Sắp xếp bảng "GiangVien" theo "MaKhoa" rồi tìm kiếm.
- D. Tạo một bảng mới chỉ chứa giảng viên khoa "Công nghệ thông tin".
Câu 6: Trong quá trình thiết kế cơ sở dữ liệu, khi nào cần thiết phải tạo khóa ngoại?
- A. Khi có mối quan hệ giữa hai bảng và muốn liên kết dữ liệu giữa chúng.
- B. Khi muốn tăng tốc độ truy vấn dữ liệu trong một bảng.
- C. Khi cần đảm bảo tính duy nhất của dữ liệu trong một bảng.
- D. Khi bảng có quá nhiều thuộc tính.
Câu 7: Giả sử có bảng "DonHang" (MaDH, NgayDatHang, MaKH) và "KhachHang" (MaKH, TenKH). Nếu xóa một khách hàng từ bảng "KhachHang", điều gì có thể xảy ra nếu không có ràng buộc khóa ngoại phù hợp?
- A. Dữ liệu trong bảng "DonHang" sẽ tự động bị xóa.
- B. Bảng "KhachHang" sẽ không cho phép xóa khách hàng đó.
- C. Bảng "DonHang" có thể chứa các đơn hàng tham chiếu đến khách hàng không còn tồn tại (mất tính toàn vẹn tham chiếu).
- D. Không có vấn đề gì xảy ra, việc xóa dữ liệu luôn an toàn.
Câu 8: Để đảm bảo tính toàn vẹn tham chiếu giữa bảng "A" và bảng "B" (bảng "B" có khóa ngoại tham chiếu đến bảng "A"), ràng buộc nào sau đây cần được thiết lập khi xóa một bản ghi từ bảng "A"?
- A. NO ACTION (Không hành động)
- B. CASCADE (Kéo theo)
- C. SET NULL (Đặt giá trị NULL)
- D. SET DEFAULT (Đặt giá trị mặc định)
Câu 9: Kiểu dữ liệu AUTO_INCREMENT thường được sử dụng cho trường nào trong bảng và với mục đích gì?
- A. Khóa chính, để tự động tăng giá trị duy nhất khi thêm bản ghi mới.
- B. Khóa ngoại, để tham chiếu đến bảng khác.
- C. Các thuộc tính số, để tính toán tự động.
- D. Các thuộc tính văn bản, để tạo mã tự động.
Câu 10: Xét hai bảng "SanPham" (MaSP, TenSP, MaLoaiSP) và "LoaiSanPham" (MaLoaiSP, TenLoaiSP). Mối quan hệ giữa "SanPham" và "LoaiSanPham" là mối quan hệ 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ó quan hệ
Câu 11: Trong bảng "NhanVien" (MaNV, TenNV, PhongBan), nếu "PhongBan" là một thuộc tính đa trị (một nhân viên có thể thuộc nhiều phòng ban), cách thiết kế nào sau đây là phù hợp nhất để chuẩn hóa cơ sở dữ liệu?
- A. Sử dụng dấu phẩy để liệt kê nhiều phòng ban trong cột "PhongBan".
- B. Lặp lại bản ghi nhân viên cho mỗi phòng ban mà họ thuộc về.
- C. Bỏ qua thuộc tính "PhongBan" và không quản lý thông tin này.
- D. Tạo bảng trung gian "NhanVien_PhongBan" (MaNV, MaPhongBan) và bảng "PhongBan" (MaPhongBan, TenPhongBan).
Câu 12: Khi thiết kế bảng "Sach" (MaSach, TenSach, TacGia, NhaXuatBan), trường "TacGia" và "NhaXuatBan" nên được thiết kế như thế nào để tránh dư thừa dữ liệu và dễ dàng cập nhật thông tin?
- A. Để nguyên trường "TacGia" và "NhaXuatBan" dạng văn bản trong bảng "Sach".
- B. Tạo bảng "TacGia" (MaTacGia, TenTacGia) và "NhaXuatBan" (MaNXB, TenNXB) và sử dụng khóa ngoại trong bảng "Sach".
- C. Sử dụng kiểu dữ liệu JSON cho trường "TacGia" và "NhaXuatBan".
- D. Không cần thay đổi, để nguyên cấu trúc như trên.
Câu 13: Trong bảng "HocSinh" (MaHS, TenHS, DiaChi, NgaySinh), thuộc tính nào có thể được chọn làm khóa chính nếu mỗi học sinh có một mã số duy nhất do trường cấp?
- A. MaHS
- B. TenHS
- C. DiaChi
- D. NgaySinh
Câu 14: Khi nào thì việc sử dụng khóa chính複合 (composite primary key - khóa chính kết hợp) là cần thiết?
- A. Khi bảng có quá nhiều thuộc tính.
- B. Để tăng tốc độ truy vấn dữ liệu.
- C. Khi không có thuộc tính đơn nào có thể xác định duy nhất mỗi bản ghi.
- D. Để giảm dung lượng lưu trữ khóa chính.
Câu 15: Cho bảng "DiemThi" (MaHS, MaMH, DiemSo). Khóa chính phù hợp nhất cho bảng này là gì?
- A. MaHS
- B. Tổ hợp (MaHS, MaMH)
- C. DiemSo
- D. Tổ hợp (MaHS, DiemSo)
Câu 16: Trong một cơ sở dữ liệu về quản lý thư viện, bảng "MuonTra" cần liên kết với bảng "DocGia" và bảng "Sach". Cấu trúc bảng "MuonTra" nên chứa những khóa ngoại nào?
- A. Chỉ cần khóa ngoại tham chiếu đến bảng "DocGia".
- B. Chỉ cần khóa ngoại tham chiếu đến bảng "Sach".
- C. Không cần khóa ngoại nào.
- D. Khóa ngoại tham chiếu đến bảng "DocGia" và khóa ngoại tham chiếu đến bảng "Sach".
Câu 17: Xét bảng "PhongBan" (MaPB, TenPB, TruongPhong). Nếu "TruongPhong" là mã nhân viên của trưởng phòng và được tham chiếu đến bảng "NhanVien" (MaNV, TenNV), "TruongPhong" trong bảng "PhongBan" là loại khóa gì?
- A. Khóa chính
- B. Khóa duy nhất
- C. Khóa ngoại
- D. Khóa ứng viên
Câu 18: Khi thêm một bản ghi mới vào bảng "SinhVien" có khóa ngoại "MaLop" tham chiếu đến bảng "LopHoc", điều gì sẽ xảy ra nếu giá trị "MaLop" nhập vào không tồn tại trong bảng "LopHoc"?
- A. Bản ghi sẽ được thêm vào nhưng "MaLop" sẽ được đặt là NULL.
- B. Hệ thống sẽ từ chối thêm bản ghi và báo lỗi vi phạm ràng buộc khóa ngoại.
- C. Hệ thống sẽ tự động tạo một bản ghi mới trong bảng "LopHoc" với "MaLop" vừa nhập.
- D. Bản ghi sẽ được thêm vào và cảnh báo về giá trị "MaLop" không hợp lệ.
Câu 19: Trong thiết kế cơ sở dữ liệu, việc xác định khóa chính và khóa ngoại có vai trò quan trọng nhất trong giai đoạn nào của quy trình thiết kế?
- A. Giai đoạn thu thập yêu cầu.
- B. Giai đoạn thiết kế vật lý.
- C. Giai đoạn thiết kế logic.
- D. Giai đoạn triển khai và bảo trì.
Câu 20: Giả sử có bảng "KhoHang" (MaKho, TenKho, DiaChi) và "SanPham" (MaSP, TenSP, MaKho). Nếu muốn biết mỗi sản phẩm thuộc về kho hàng nào, cần sử dụng phép toán nào trong đại số quan hệ?
- A. Phép chọn (SELECT)
- B. Phép chiếu (PROJECT)
- C. Phép hợp (UNION)
- D. Phép kết nối (JOIN)
Câu 21: Để mô tả mối quan hệ "một - nhiều" giữa bảng "KhachHang" và "DonHang" (một khách hàng có thể có nhiều đơn hàng), cần sử dụng khóa gì trong bảng "DonHang"?
- A. Khóa chính trong bảng "DonHang"
- B. Khóa ngoại trong bảng "DonHang" tham chiếu đến bảng "KhachHang"
- C. Khóa chính trong bảng "KhachHang"
- D. Không cần khóa nào cả.
Câu 22: Trong bảng "SinhVien" (MaSV, TenSV, NgaySinh, GioiTinh, MaLop), nếu muốn tìm tất cả sinh viên sinh vào tháng 12, phép truy vấn nào sau đây là phù hợp nhất?
- A. SELECT * FROM SinhVien WHERE NgaySinh = "Tháng 12"
- B. SELECT * FROM SinhVien WHERE MONTH(NgaySinh) = "12"
- C. SELECT * FROM SinhVien WHERE MONTH(NgaySinh) = 12
- D. SELECT * FROM SinhVien WHERE NgaySinh LIKE "%/12/%"
Câu 23: Khi thiết kế cơ sở dữ liệu cho hệ thống quản lý bán hàng trực tuyến, bảng nào sau đây có khả năng cao nhất cần sử dụng khóa chính kết hợp?
- A. Bảng "KhachHang" (Thông tin khách hàng)
- B. Bảng "ChiTietDonHang" (Chi tiết các sản phẩm trong đơn hàng)
- C. Bảng "SanPham" (Thông tin sản phẩm)
- D. Bảng "DanhMucSanPham" (Danh mục sản phẩm)
Câu 24: Trong ngữ cảnh cơ sở dữ liệu quan hệ, thuật ngữ "lược đồ quan hệ" (relation schema) dùng để chỉ điều gì?
- A. Cấu trúc của một bảng, bao gồm tên bảng và các thuộc tính của nó.
- B. Dữ liệu thực tế được lưu trữ trong bảng.
- C. Mối quan hệ giữa các bảng trong cơ sở dữ liệu.
- D. Phần mềm quản lý cơ sở dữ liệu.
Câu 25: Ưu điểm chính của việc phân tách cơ sở dữ liệu thành nhiều bảng có quan hệ (chuẩn hóa cơ sở dữ liệu) là gì?
- A. Tăng tốc độ truy vấn dữ liệu phức tạp.
- B. Đơn giản hóa việc sao lưu và phục hồi dữ liệu.
- C. Giảm dư thừa dữ liệu và cải thiện tính nhất quán dữ liệu.
- D. Tăng cường bảo mật cho cơ sở dữ liệu.
Câu 26: Cho bảng "NhanVien" (MaNV, TenNV, Luong). Nếu muốn tăng lương 10% cho tất cả nhân viên có lương dưới 5 triệu, câu lệnh SQL UPDATE nào sau đây là đúng?
- A. UPDATE NhanVien SET Luong = Luong * 1.1
- B. UPDATE NhanVien SET Luong = Luong * 1.1 WHERE Luong < 5000000
- C. UPDATE NhanVien SET Luong = Luong + 500000 WHERE Luong < 5000000
- D. UPDATE NhanVien SET Luong = Luong * 1.1 IF Luong < 5000000
Câu 27: Trong mô hình ER (Entity-Relationship), hình chữ nhật đại diện cho khái niệm nào?
- A. Thực thể (Entity)
- B. Thuộc tính (Attribute)
- C. Mối quan hệ (Relationship)
- D. Khóa chính (Primary Key)
Câu 28: Điều gì xảy ra khi cố gắng nhập một giá trị trùng lặp vào cột đã được định nghĩa là khóa duy nhất (UNIQUE) trong SQL?
- A. Giá trị trùng lặp sẽ được tự động bỏ qua.
- B. Hệ thống sẽ báo lỗi và từ chối nhập bản ghi.
- C. Giá trị trùng lặp sẽ được nhập nhưng có cảnh báo.
- D. Giá trị trùng lặp sẽ ghi đè lên giá trị cũ.
Câu 29: Trong SQL, mệnh đề nào được sử dụng để thêm một cột mới vào bảng đã tồn tại?
- A. CREATE COLUMN
- B. INSERT COLUMN
- C. ALTER TABLE ... ADD COLUMN
- D. MODIFY TABLE ... ADD COLUMN
Câu 30: Xét bảng "SinhVien" (MaSV, TenSV, MaLop) và "LopHoc" (MaLop, TenLop). Nếu muốn hiển thị danh sách tên sinh viên và tên lớp của họ, phép kết nối nào là phù hợp nhất?
- A. INNER JOIN (hoặc JOIN)
- B. LEFT JOIN
- C. RIGHT JOIN
- D. FULL OUTER JOIN