Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Hệ Quản Trị Cơ Sở Dữ Liệu - Đề 05 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 dữ liệu quan hệ, thuộc tính nào sau đây đảm bảo tính duy nhất của mỗi bộ (record) trong một quan hệ và được sử dụng để liên kết với các quan hệ khác?
- A. Khóa chính (Primary Key)
- B. Khóa ngoại (Foreign Key)
- C. Thuộc tính phức hợp (Composite Attribute)
- D. Thuộc tính đa trị (Multivalued Attribute)
Câu 2: Xét lược đồ quan hệ `NHANVIEN(MaNV, TenNV, PhongBanID)` và `PHONGBAN(PhongBanID, TenPhongBan)`. Để truy vấn danh sách tên nhân viên và tên phòng ban của họ, phép toán nào trong SQL là phù hợp nhất?
- A. SELECT
- B. WHERE
- C. JOIN
- D. GROUP BY
Câu 3: Trong ngữ cảnh ACID của giao dịch cơ sở dữ liệu, "Atomicity" (Tính nguyên tố) đảm bảo điều gì?
- A. Dữ liệu phải nhất quán trước và sau giao dịch.
- B. Toàn bộ giao dịch được thực hiện thành công hoặc không có gì được thực hiện cả.
- C. Các giao dịch đồng thời không được gây ảnh hưởng lẫn nhau.
- D. Dữ liệu đã được ghi vào cơ sở dữ liệu phải tồn tại vĩnh viễn.
Câu 4: Chuẩn hóa cơ sở dữ liệu nhằm mục đích chính là gì?
- A. Tăng tốc độ truy vấn dữ liệu.
- B. Bảo mật dữ liệu tốt hơn.
- C. Giảm dư thừa dữ liệu và cải thiện tính toàn vẹn dữ liệu.
- D. Đơn giản hóa cấu trúc cơ sở dữ liệu.
Câu 5: Loại hình cơ sở dữ liệu nào phù hợp nhất để lưu trữ và truy vấn dữ liệu phi cấu trúc hoặc bán cấu trúc, ví dụ như dữ liệu mạng xã hội, tài liệu JSON?
- A. Cơ sở dữ liệu quan hệ (Relational Database)
- B. Cơ sở dữ liệu hướng đối tượng (Object-Oriented Database)
- C. Cơ sở dữ liệu phân cấp (Hierarchical Database)
- D. Cơ sở dữ liệu NoSQL
Câu 6: Trong SQL, mệnh đề `GROUP BY` thường được sử dụng kết hợp với hàm nào để thực hiện các phép tính tổng hợp trên các nhóm dữ liệu?
- A. Hàm tổng hợp (Aggregate functions) như SUM, AVG, COUNT, MAX, MIN
- B. Hàm chuỗi (String functions) như CONCAT, SUBSTRING
- C. Hàm ngày tháng (Date functions) như DATE, YEAR
- D. Hàm toán học (Mathematical functions) như ABS, SQRT
Câu 7: Xét bảng `SANPHAM(MaSP, TenSP, Gia, DanhMucID)` và `DANHMUC(DanhMucID, TenDanhMuc)`. Bạn muốn truy vấn ra tên sản phẩm và tên danh mục của các sản phẩm có giá lớn hơn 100. Thứ tự thực hiện các mệnh đề SQL nào sau đây là đúng?
- A. SELECT -> WHERE -> JOIN
- B. SELECT -> JOIN -> WHERE
- C. JOIN -> SELECT -> WHERE
- D. WHERE -> JOIN -> SELECT
Câu 8: Transaction log (Nhật ký giao dịch) trong hệ quản trị cơ sở dữ liệu được sử dụng chủ yếu cho mục đích gì?
- A. Kiểm soát quyền truy cập dữ liệu.
- B. Tối ưu hóa hiệu suất truy vấn.
- C. Phục hồi dữ liệu sau sự cố hệ thống.
- D. Ghi lại lịch sử truy vấn của người dùng.
Câu 9: Giả sử bạn có hai bảng `KHACHHANG(MaKH, TenKH)` và `DONHANG(MaDH, MaKH, NgayDatHang)`. Một khách hàng có thể có nhiều đơn hàng. Đây là loại quan hệ gì?
- A. Một - Một (One-to-One)
- B. Một - Nhiều (One-to-Many)
- C. Nhiều - Nhiều (Many-to-Many)
- D. Tự tham chiếu (Self-referencing)
Câu 10: Khi thiết kế cơ sở dữ liệu cho một hệ thống quản lý thư viện, bạn cần lưu thông tin về sách, độc giả và việc mượn trả sách. Để quản lý quan hệ "mượn - trả" giữa độc giả và sách (một độc giả có thể mượn nhiều sách, một cuốn sách có thể được mượn nhiều lần bởi nhiều độc giả), bạn sẽ sử dụng bảng nào để thể hiện quan hệ này?
- A. Bảng SÁCH với thuộc tính Độc GiảID.
- B. Bảng ĐỘC GIẢ với thuộc tính SáchID.
- C. Kết hợp thông tin mượn trả trực tiếp vào bảng SÁCH hoặc ĐỘC GIẢ.
- D. Bảng trung gian MƯỢN_TRẢ chứa khóa ngoại từ bảng SÁCH và bảng ĐỘC GIẢ.
Câu 11: Câu lệnh SQL nào được sử dụng để thay đổi cấu trúc của một bảng đã tồn tại, ví dụ như thêm một cột mới hoặc sửa đổi kiểu dữ liệu của một cột?
- A. CREATE TABLE
- B. DROP TABLE
- C. ALTER TABLE
- D. UPDATE TABLE
Câu 12: Trong cơ sở dữ liệu quan hệ, ràng buộc toàn vẹn tham chiếu (Referential Integrity Constraint) đảm bảo điều gì?
- A. Dữ liệu trong một cột phải thuộc một kiểu dữ liệu nhất định.
- B. Giá trị của khóa ngoại phải tồn tại trong bảng được tham chiếu bởi khóa chính.
- C. Các giá trị trong một cột phải là duy nhất.
- D. Dữ liệu phải tuân theo một định dạng nhất định.
Câu 13: Phương pháp lập chỉ mục (indexing) trong cơ sở dữ liệu giúp cải thiện hiệu suất của loại thao tác nào chủ yếu?
- A. Truy vấn dữ liệu (SELECT)
- B. Thêm mới dữ liệu (INSERT)
- C. Cập nhật dữ liệu (UPDATE)
- D. Xóa dữ liệu (DELETE)
Câu 14: Để đảm bảo tính bảo mật cho cơ sở dữ liệu, biện pháp nào sau đây là quan trọng nhất?
- A. Sao lưu dữ liệu thường xuyên.
- B. Tối ưu hóa truy vấn SQL.
- C. Kiểm soát truy cập và phân quyền người dùng.
- D. Chuẩn hóa cơ sở dữ liệu.
Câu 15: Trong mô hình ER (Entity-Relationship), hình chữ nhật đại diện cho khái niệm nào?
- A. Thuộc tính (Attribute)
- B. Thực thể (Entity)
- C. Mối quan hệ (Relationship)
- D. Khóa chính (Primary Key)
Câu 16: Khi nào thì việc sử dụng stored procedure (thủ tục lưu trữ) trong cơ sở dữ liệu mang lại lợi ích?
- A. Khi cần truy vấn dữ liệu phức tạp một lần duy nhất.
- B. Khi cần thay đổi cấu trúc bảng.
- C. Khi cần sao lưu và phục hồi dữ liệu.
- D. Khi cần thực hiện các thao tác phức tạp, lặp đi lặp lại trên cơ sở dữ liệu.
Câu 17: NoSQL database thường được lựa chọn khi ứng dụng có yêu cầu nào sau đây?
- A. Tính toàn vẹn dữ liệu và giao dịch phức tạp là ưu tiên hàng đầu.
- B. Khả năng mở rộng và hiệu suất cao với dữ liệu lớn, phi cấu trúc.
- C. Dữ liệu có cấu trúc chặt chẽ và mô hình quan hệ rõ ràng.
- D. Yêu cầu tuân thủ nghiêm ngặt mô hình ACID.
Câu 18: Trong SQL, mệnh đề `HAVING` được sử dụng để làm gì?
- A. Sắp xếp dữ liệu trả về.
- B. Lọc các bản ghi trước khi nhóm.
- C. Lọc các nhóm sau khi đã được tạo bởi `GROUP BY`.
- D. Kết hợp dữ liệu từ nhiều bảng.
Câu 19: "Data warehouse" (Kho dữ liệu) được thiết kế chủ yếu cho mục đích gì?
- A. Xử lý giao dịch trực tuyến (OLTP).
- B. Quản lý dữ liệu thời gian thực.
- C. Lưu trữ dữ liệu giao dịch hiện tại.
- D. Phân tích và báo cáo dữ liệu lịch sử (OLAP).
Câu 20: Giả sử bạn cần chọn ra 3 sản phẩm có giá cao nhất từ bảng `SANPHAM`. Câu lệnh SQL nào sau đây là hiệu quả nhất?
- A. SELECT * FROM SANPHAM WHERE Gia >= ALL (SELECT Gia FROM SANPHAM)
- B. SELECT * FROM SANPHAM ORDER BY Gia DESC LIMIT 3
- C. SELECT * FROM SANPHAM GROUP BY Gia ORDER BY Gia DESC LIMIT 3
- D. SELECT DISTINCT Gia FROM SANPHAM ORDER BY Gia DESC LIMIT 3
Câu 21: "View" (khung nhìn) trong cơ sở dữ liệu là gì?
- A. Bảng ảo được tạo ra từ kết quả của một truy vấn SQL.
- B. Bản sao lưu của một bảng thực.
- C. Một loại chỉ mục đặc biệt để tăng tốc độ truy vấn.
- D. Một cơ chế mã hóa dữ liệu trong cơ sở dữ liệu.
Câu 22: Kỹ thuật "sharding" thường được sử dụng trong cơ sở dữ liệu phân tán để giải quyết vấn đề gì?
- A. Đảm bảo tính toàn vẹn dữ liệu trên nhiều máy chủ.
- B. Tăng cường bảo mật cho cơ sở dữ liệu.
- C. Xử lý lượng dữ liệu lớn và tăng khả năng chịu tải.
- D. Giảm độ trễ truy cập dữ liệu cho người dùng ở xa.
Câu 23: Cho lược đồ quan hệ `SINHVIEN(MaSV, TenSV, MaLop)` và `LOP(MaLop, TenLop)`. Để tìm ra tên lớp của sinh viên có mã "SV001", bạn sẽ sử dụng truy vấn SQL như thế nào?
- A. SELECT TenLop FROM LOP WHERE MaLop = (SELECT MaLop FROM SINHVIEN WHERE MaSV = "SV001")
- B. SELECT TenLop FROM LOP WHERE MaLop IN (SELECT MaLop FROM SINHVIEN WHERE MaSV = "SV001")
- C. SELECT s.TenSV, l.TenLop FROM SINHVIEN s, LOP l WHERE s.MaSV = "SV001" AND s.MaLop = l.MaLop
- D. Cả 3 câu trên đều đúng
Câu 24: Khi thiết kế một cơ sở dữ liệu, việc xác định các thực thể và mối quan hệ giữa chúng thuộc giai đoạn nào trong quy trình thiết kế?
- A. Thiết kế mức vật lý (Physical Design)
- B. Thiết kế mức logic (Logical Design)
- C. Thiết kế mức khung nhìn (View Design)
- D. Giai đoạn triển khai (Implementation Phase)
Câu 25: Trong SQL, câu lệnh `TRUNCATE TABLE` khác với `DELETE FROM TABLE` ở điểm nào?
- A. `TRUNCATE TABLE` xóa có điều kiện, `DELETE FROM TABLE` xóa toàn bộ bảng.
- B. `DELETE FROM TABLE` nhanh hơn `TRUNCATE TABLE`.
- C. `TRUNCATE TABLE` nhanh hơn và không ghi log giao dịch chi tiết như `DELETE FROM TABLE`.
- D. `TRUNCATE TABLE` chỉ xóa dữ liệu, không xóa cấu trúc bảng, còn `DELETE FROM TABLE` xóa cả cấu trúc bảng.
Câu 26: "Dirty read" (đọc bẩn) là một vấn đề trong quản lý giao dịch đồng thời, nó xảy ra khi nào?
- A. Hai giao dịch cùng cập nhật một dữ liệu.
- B. Một giao dịch đọc dữ liệu đã được cập nhật bởi giao dịch khác nhưng chưa commit.
- C. Một giao dịch không thể đọc dữ liệu do giao dịch khác đang khóa.
- D. Dữ liệu bị mất do lỗi hệ thống trong quá trình giao dịch.
Câu 27: Giả sử bạn có bảng `NHANVIEN(MaNV, TenNV, Luong)`. Để tăng lương 10% cho tất cả nhân viên có lương hiện tại dưới 10 triệu, câu lệnh SQL `UPDATE` nào sau đây là đúng?
- A. UPDATE NHANVIEN SET Luong = Luong * 1.1 WHERE Luong < 10000000
- B. UPDATE NHANVIEN SET Luong = Luong + 10% WHERE Luong < 10000000
- C. MODIFY NHANVIEN SET Luong = Luong * 1.1 IF Luong < 10000000
- D. ALTER TABLE NHANVIEN UPDATE Luong = Luong * 1.1 WHERE Luong < 10000000
Câu 28: "Data mining" (khai thác dữ liệu) là quá trình chủ yếu hướng đến điều gì trong cơ sở dữ liệu?
- A. Tối ưu hóa hiệu suất truy vấn.
- B. Đảm bảo tính toàn vẹn dữ liệu.
- C. Bảo mật dữ liệu.
- D. Phát hiện tri thức và mẫu ẩn trong dữ liệu.
Câu 29: Trong ngữ cảnh bảo mật cơ sở dữ liệu, "SQL injection" là loại tấn công như thế nào?
- A. Tấn công từ chối dịch vụ (DoS).
- B. Chèn mã SQL độc hại vào truy vấn để truy cập trái phép dữ liệu.
- C. Nghe lén dữ liệu truyền trên mạng.
- D. Phá hoại phần cứng máy chủ cơ sở dữ liệu.
Câu 30: Để tạo một bản sao của cơ sở dữ liệu để dự phòng hoặc thử nghiệm, thao tác nào sau đây là phù hợp nhất?
- A. Backup và Restore (Sao lưu và Phục hồi)
- B. Replication (Nhân bản)
- C. Clustering (Phân cụm)
- D. Normalization (Chuẩn hóa)