Trắc Nghiệm Hệ Quản Trị Cơ Sở Dữ Liệu UEH là bộ đề ôn tập chuyên sâu dành cho môn Hệ Quản Trị Cơ Sở Dữ Liệu trong chương trình Công nghệ Thông tin tại Trường Đại học Kinh tế TP.HCM (UEH). Đề thi đại học được biên soạn bởi ThS. Nguyễn Minh Châu, giảng viên Khoa Công nghệ Thông tin Kinh tế – UEH, năm 2024. Bộ đề giúp sinh viên hệ thống hóa kiến thức về các hệ quản trị cơ sở dữ liệu phổ biến, hiểu rõ cấu trúc và chức năng của DBMS, thao tác truy vấn dữ liệu với SQL, cũng như các khía cạnh về bảo mật và quản lý dữ liệu.
Trắc Nghiệm Hệ Quản Trị Cơ Sở Dữ Liệu trên dethitracnghiem.vn là tài liệu trắc nghiệm đại học hỗ trợ sinh viên UEH và các trường đại học khác chủ động luyện tập, đánh giá năng lực và nâng cao kỹ năng làm bài trắc nghiệm. Giao diện thông minh, bộ câu hỏi đa dạng đi kèm đáp án cùng giải thích rõ ràng, giúp người học nắm vững kiến thức và tự tin chinh phục các kỳ thi môn Hệ Quản Trị Cơ Sở Dữ Liệu. Đây là công cụ lý tưởng đồng hành cùng sinh viên trong quá trình ôn luyện và kiểm tra môn học này.
Hãy cùng dethitracnghiem.vn khám phá đề thi này và thử sức ngay hôm nay!
Trắc Nghiệm Hệ Quản Trị Cơ Sở Dữ Liệu SQL Đại Học UEH
Câu 1. Một nhà phân tích dữ liệu viết câu truy vấn sau để tìm các khách hàng không có đơn hàng nào:
`SELECT TenKH FROM KHACHHANG WHERE MaKH NOT IN (SELECT MaKH FROM DONHANG);`
Trong trường hợp bảng `DONHANG` có một vài bản ghi mà `MaKH` có giá trị `NULL`, kết quả của câu truy vấn trên sẽ là gì?
A. Trả về danh sách tất cả các khách hàng hiện không có đơn hàng.
B. Trả về một tập kết quả rỗng do so sánh `NOT IN` với một giá trị `NULL`.
C. Gây ra một lỗi cú pháp và không thể thực thi được câu lệnh này.
D. Trả về toàn bộ danh sách khách hàng có trong bảng `KHACHHANG`.
Câu 2. Xét đoạn mã giao dịch sau (sử dụng T-SQL giả định):
“`sql
BEGIN TRANSACTION;
UPDATE TAI_KHOAN SET SoDu = SoDu – 100 WHERE MaTK = ‘TK01’;
— Tại thời điểm này, một giao dịch khác đọc SoDu của TK01
UPDATE TAI_KHOAN SET SoDu = SoDu + 100 WHERE MaTK = ‘TK02’;
COMMIT;
“`
Nếu hệ thống cho phép giao dịch khác đọc số dư của `TK01` trước khi giao dịch này `COMMIT`, hiện tượng này được gọi là gì và nó vi phạm tính chất nào của ACID?
A. Là hiện tượng Bóng ma (Phantom Read) và vi phạm tính nhất quán (Consistency).
B. Là hiện tượng Đọc bẩn (Dirty Read) và vi phạm tính cô lập (Isolation).
C. Là hiện tượng Đọc không lặp lại và vi phạm tính bền vững (Durability).
D. Là hiện tượng Mất cập nhật và vi phạm tính nguyên tử (Atomicity).
Câu 3. Một công ty quyết định lưu trữ thuộc tính `Tuoi` của nhân viên trong CSDL. Tuy nhiên, họ cũng lưu trữ thuộc tính `NgaySinh`. Về mặt thiết kế CSDL, việc lưu trữ cả `Tuoi` và `NgaySinh` dẫn đến vấn đề gì?
A. Vi phạm dạng chuẩn 2NF vì thuộc tính `Tuoi` phụ thuộc vào một phần của khóa.
B. Tạo ra một thuộc tính dạng phức hợp không cần thiết trong lược đồ quan hệ.
C. Gây dư thừa dữ liệu và nguy cơ không nhất quán vì `Tuoi` là thuộc tính suy dẫn.
D. Vi phạm nghiêm trọng ràng buộc toàn vẹn miền giá trị đã được định nghĩa.
Câu 4. Cho hai bảng `NHANVIEN(MaNV, HoTen)` và `DUAN(MaDA, TenDA, MaTruongDA)`. `MaTruongDA` là khóa ngoại tham chiếu đến `MaNV`. Để tìm tên của trưởng dự án cho dự án ‘MarketPro’, câu truy vấn nào sau đây là hiệu quả và chính xác nhất?
A. Dùng truy vấn con với `IN` để lấy `MaTruongDA` từ bảng `DUAN`.
B. Dùng phép nối `JOIN` hiện đại để kết hợp hai bảng theo điều kiện và lọc kết quả.
C. Dùng cú pháp nối cũ bằng cách liệt kê hai bảng trong mệnh đề `FROM`.
D. Cả hai phương án A và B đều đúng và có hiệu quả thực thi như nhau.
Câu 5. Giả sử bạn có một bảng `LOG_TRUYCAP` với hàng tỷ bản ghi. Bạn cần viết một báo cáo tổng hợp số lượt truy cập mỗi ngày. Câu lệnh `DELETE FROM LOG_TRUYCAP WHERE NgayTruyCap < ‘2024-01-01’;` chạy rất chậm. Giải pháp nào sau đây là tối ưu nhất để xử lý vấn đề này trong các hệ thống lớn?
A. Tăng thời gian chờ (timeout) của câu lệnh `DELETE` lên một giá trị lớn hơn.
B. Chạy câu lệnh `DELETE` trong nhiều giao dịch nhỏ lặp đi lặp lại nhiều lần.
C. Sử dụng phân hoạch bảng theo ngày và `DROP` hoặc `TRUNCATE` các phân hoạch cũ.
D. Tạo thêm một chỉ mục trên cột `NgayTruyCap` để tăng tốc độ cho lệnh `DELETE`.
Câu 6. Một lập trình viên tạo một trigger `INSTEAD OF INSERT` trên một View. Mục đích chính của loại trigger này là gì?
A. Để kiểm tra dữ liệu một cách cẩn thận sau khi nó đã được chèn vào bảng cơ sở.
B. Để định nghĩa hành động tùy chỉnh thay cho hành động chèn mặc định vào View.
C. Để ngăn chặn một cách hoàn toàn mọi thao tác chèn dữ liệu vào View này.
D. Để thực hiện việc ghi nhật ký mỗi lần có thao tác chèn thành công trên View.
Câu 7. Xét câu truy vấn: `SELECT MaNV, COUNT(MaDA) FROM PHANCONG GROUP BY MaNV;`. Để lọc ra những nhân viên tham gia vào hơn 5 dự án, bạn sẽ thêm mệnh đề nào và ở đâu?
A. Thêm mệnh đề `WHERE COUNT(MaDA) > 5` vào trước mệnh đề `GROUP BY`.
B. Thêm mệnh đề `HAVING COUNT(MaDA) > 5` vào trước mệnh đề `GROUP BY`.
C. Thêm mệnh đề `HAVING COUNT(MaDA) > 5` vào sau mệnh đề `GROUP BY`.
D. Thêm mệnh đề `WHERE COUNT(MaDA) > 5` vào sau mệnh đề `GROUP BY`.
Câu 8. Một hệ thống ngân hàng gặp sự cố mất điện đột ngột. Sau khi khởi động lại, hệ quản trị CSDL thực hiện quá trình phục hồi. Đối với các giao dịch đã có bản ghi `<T, commit>` trong tệp nhật ký, hệ thống sẽ thực hiện hành động gì?
A. Thực hiện lại (REDO) các thao tác để đảm bảo các thay đổi được ghi vào đĩa.
B. Hủy bỏ (UNDO) tất cả các thao tác để đưa CSDL về trạng thái trước đó.
C. Không thực hiện hành động nào cả vì giao dịch đã được commit thành công.
D. Gửi thông báo cho người quản trị CSDL để thực hiện xử lý thủ công.
Câu 9. Bạn được yêu cầu tối ưu hóa câu truy vấn sau trên một bảng `GIAODICH` rất lớn:
`SELECT * FROM GIAODICH WHERE YEAR(NgayGiaoDich) = 2024;`
Việc tạo một chỉ mục B-Tree đơn thuần trên cột `NgayGiaoDich` không giúp tăng tốc nhiều. Tại sao?
A. Vì loại chỉ mục B-Tree không hoạt động với các cột có kiểu dữ liệu ngày tháng.
B. Vì câu truy vấn đang sử dụng `SELECT *` để lấy ra tất cả các cột dữ liệu.
C. Vì việc dùng hàm `YEAR()` trên cột làm cho chỉ mục không thể được sử dụng hiệu quả.
D. Vì chỉ mục chỉ hiệu quả với phép so sánh bằng, không hiệu quả khi dùng hàm.
Câu 10. Để giải quyết vấn đề ở câu 9, giải pháp nào sau đây là hiệu quả nhất?
A. Sử dụng một gợi ý truy vấn (query hint) để ép buộc hệ thống phải dùng chỉ mục.
B. Đọc toàn bộ bảng vào trong bộ nhớ của máy chủ trước khi thực hiện việc lọc.
C. Viết lại mệnh đề `WHERE` để tránh dùng hàm trên cột, ví dụ: `WHERE NgayGiaoDich >= ‘2024-01-01’ AND NgayGiaoDich < ‘2025-01-01’`.
D. Chuyển sang sử dụng một chỉ mục loại Hash thay vì chỉ mục loại B-Tree.
Câu 11. Một công ty thương mại điện tử muốn hiển thị “Top 5 sản phẩm bán chạy nhất trong mỗi danh mục”. Loại hàm nào trong SQL hiện đại cho phép giải quyết bài toán này một cách hiệu quả trong một câu truy vấn duy nhất?
A. Các hàm tập hợp (Aggregate Functions) kết hợp với mệnh đề `GROUP BY`.
B. Các biểu thức bảng chung (Common Table Expressions – CTE) lồng nhau.
C. Các truy vấn con có tương quan (Correlated Subqueries) phức tạp.
D. Các hàm cửa sổ (Window Functions) như `RANK()` hoặc `ROW_NUMBER()` với `PARTITION BY`.
Câu 12. Quá trình chuẩn hóa dữ liệu được thực hiện để loại bỏ sự dư thừa và các dị thường cập nhật. Tuy nhiên, trong môi trường kho dữ liệu (Data Warehouse), các lược đồ thường được thiết kế phi chuẩn hóa (ví dụ: lược đồ hình sao). Tại sao?
A. Vì dữ liệu trong kho dữ liệu thường không quan trọng bằng dữ liệu tác vụ hàng ngày.
B. Để tối ưu hiệu suất truy vấn đọc và phân tích bằng cách giảm thiểu các phép nối.
C. Vì các hệ quản trị CSDL cho kho dữ liệu không hỗ trợ các dạng chuẩn bậc cao.
D. Để giúp đơn giản hóa các thao tác cập nhật và xóa dữ liệu trong kho dữ liệu.
Câu 13. Khóa chính (Primary Key) và ràng buộc Duy nhất (Unique Constraint) đều đảm bảo tính duy nhất cho các giá trị trong cột. Điểm khác biệt cơ bản nhất giữa chúng là gì?
A. Khóa chính tự động tạo chỉ mục phân cụm, còn ràng buộc Unique thì luôn không.
B. Một bảng có thể có nhiều khóa chính nhưng chỉ được phép có một ràng buộc Unique.
C. Một bảng chỉ có một khóa chính (không NULL), nhưng có thể có nhiều ràng buộc Unique (thường cho phép một giá trị NULL).
D. Ràng buộc Unique chỉ áp dụng được cho các cột có kiểu dữ liệu là kiểu số.
Câu 14. Xét lược đồ `KHOA(MaKhoa, TenKhoa)` và `LOP(MaLop, TenLop, MaKhoa)`. Bạn muốn xóa một khoa trong bảng `KHOA`. Ràng buộc khóa ngoại được thiết lập với tùy chọn `ON DELETE SET NULL`. Điều này có nghĩa là gì?
A. Bạn sẽ không thể xóa được khoa đó nếu vẫn còn lớp thuộc về khoa này.
B. Khi xóa một khoa, cột `MaKhoa` trong các lớp liên quan sẽ tự động cập nhật thành `NULL`.
C. Khi xóa một khoa, tất cả các lớp thuộc khoa đó cũng sẽ bị xóa theo (xóa đệ quy).
D. Hệ thống sẽ báo lỗi và yêu cầu bạn phải tự tay xóa các lớp liên quan trước.
Câu 15. Lược đồ quan hệ R được gọi là ở dạng chuẩn Boyce-Codd (BCNF) nếu với mọi phụ thuộc hàm không tầm thường X -> Y trong R, X phải là một:
A. Khóa ứng viên (Candidate Key).
B. Siêu khóa (Superkey).
C. Thuộc tính khóa (Prime Attribute).
D. Khóa ngoại (Foreign Key).
Câu 16. Một ứng dụng web cho phép người dùng tìm kiếm sản phẩm bằng cách xây dựng câu lệnh SQL như sau: `query = “SELECT * FROM SanPham WHERE TenSP LIKE ‘%” + input + “%'”;`. Lỗ hổng bảo mật nghiêm trọng nào tồn tại trong đoạn mã này?
A. Lỗ hổng Cross-Site Scripting (XSS).
B. Lỗ hổng SQL Injection do nối chuỗi đầu vào của người dùng trực tiếp vào câu lệnh.
C. Lỗ hổng tấn công từ chối dịch vụ (Denial of Service).
D. Lỗ hổng rò rỉ thông tin phiên làm việc (Session Hijacking).
Câu 17. Trong một hệ thống cơ sở dữ liệu phân tán, định lý CAP (còn gọi là định lý Brewer) phát biểu rằng một hệ thống không thể đồng thời đảm bảo cả ba tính chất sau:
A. Tính nguyên tử, Tính nhất quán, Tính bền vững (Atomicity, Consistency, Durability).
B. Tính nhất quán, Tính sẵn sàng, Khả năng chịu lỗi phân hoạch (Consistency, Availability, Partition Tolerance).
C. Tính mở rộng, Tính sẵn sàng, Hiệu năng cao (Scalability, Availability, Performance).
D. Tính bảo mật, Tính toàn vẹn, Tính sẵn sàng (Confidentiality, Integrity, Availability).
Câu 18. Bạn cần lưu trữ cây cấu trúc tổ chức của một công ty trong một bảng `NHANVIEN(MaNV, HoTen, MaNguoiQL)`. Đây là một ví dụ về loại mối quan hệ nào?
A. Mối quan hệ một-nhiều giữa hai bảng hoàn toàn khác nhau.
B. Mối quan hệ nhiều-nhiều cần sử dụng một bảng trung gian.
C. Mối quan hệ được dùng để xác định một thực thể yếu.
D. Mối quan hệ đệ quy (recursive relationship) trên cùng một bảng.
Câu 19. Để lấy ra 10 khách hàng có doanh số mua hàng cao nhất, bạn viết câu lệnh: `SELECT TOP 10 MaKH, SUM(ThanhTien) AS TongTien FROM DONHANG GROUP BY MaKH ORDER BY TongTien DESC;`. Câu lệnh này được thực thi theo thứ tự logic nào sau đây?
A. `FROM` -> `GROUP BY` -> `SUM()` -> `ORDER BY` -> `SELECT` -> `TOP`.
B. `FROM` -> `GROUP BY` -> `SUM()` -> `SELECT` -> `ORDER BY` -> `TOP/LIMIT`.
C. `FROM` -> `SELECT` -> `SUM()` -> `GROUP BY` -> `ORDER BY` -> `TOP`.
D. `FROM` -> `ORDER BY` -> `GROUP BY` -> `SUM()` -> `SELECT` -> `TOP`.
Câu 20. Khóa lạc quan (Optimistic Locking) hoạt động dựa trên nguyên tắc nào?
A. Luôn khóa chặt các tài nguyên ngay từ đầu để ngăn chặn xung đột xảy ra.
B. Giả định xung đột hiếm xảy ra, chỉ kiểm tra phiên bản dữ liệu trước khi cập nhật.
C. Sử dụng dấu thời gian (timestamp) để quyết định thứ tự thực thi của các giao dịch.
D. Luôn cho phép các giao dịch thực hiện việc đọc bẩn để tăng hiệu suất hệ thống.
Câu 21. Sự khác biệt chính giữa `VARCHAR(100)` và `NVARCHAR(100)` trong SQL Server là gì?
A. `VARCHAR` lưu chuỗi có độ dài cố định, còn `NVARCHAR` có độ dài thay đổi.
B. `VARCHAR` dùng 1 byte/ký tự (ANSI), `NVARCHAR` dùng 2 byte/ký tự (Unicode).
C. `NVARCHAR` cho tốc độ xử lý nhanh hơn `VARCHAR` trong các phép so sánh chuỗi.
D. `VARCHAR` lưu tối đa 100 ký tự, còn `NVARCHAR` cho phép lưu trữ 200 ký tự.
Câu 22. Khi một câu truy vấn phức tạp chạy chậm, bước đầu tiên và quan trọng nhất mà một nhà phát triển hoặc DBA nên làm là gì?
A. Thực hiện nâng cấp phần cứng của máy chủ cơ sở dữ liệu ngay lập tức.
B. Viết lại toàn bộ ứng dụng đang sử dụng bằng một ngôn ngữ lập trình khác.
C. Phân tích kế hoạch thực thi (Execution Plan) để xác định các điểm nghẽn.
D. Thêm chỉ mục vào tất cả các cột trong các bảng có liên quan đến truy vấn.
Câu 23. Trong SQL, toán tử `EXCEPT` (hoặc `MINUS` trong Oracle) dùng để làm gì?
A. Trả về tất cả các hàng từ cả hai tập kết quả của các câu lệnh `SELECT`.
B. Trả về các hàng chung có mặt trong cả hai tập kết quả của câu lệnh `SELECT`.
C. Trả về các hàng duy nhất có trong tập kết quả đầu tiên nhưng không có trong tập thứ hai.
D. Trả về một lỗi nếu hai câu lệnh `SELECT` có số lượng cột khác nhau.
Câu 24. Bạn muốn đảm bảo rằng cột `DiemThi` trong bảng `KETQUA` chỉ có thể nhận giá trị từ 0 đến 10. Ràng buộc nào là phù hợp nhất để thực thi quy tắc này ở cấp độ cơ sở dữ liệu?
A. Ràng buộc khóa chính `PRIMARY KEY`.
B. Ràng buộc khóa ngoại `FOREIGN KEY`.
C. Ràng buộc duy nhất `UNIQUE`.
D. Ràng buộc kiểm tra `CHECK (DiemThi >= 0 AND DiemThi <= 10)`.
Câu 25. Một “chỉ mục có điều kiện” (Filtered Index) là gì?
A. Là chỉ mục được tạo trên một tập con các hàng của bảng, được xác định bởi mệnh đề `WHERE`.
B. Là một chỉ mục chỉ hoạt động hiệu quả trong một số điều kiện mạng nhất định.
C. Là một tên gọi khác của chỉ mục loại Bitmap được dùng trong kho dữ liệu.
D. Là một chỉ mục chỉ chứa các cột thỏa mãn một điều kiện về kiểu dữ liệu.
Câu 26. `Data Mart` là một phiên bản thu nhỏ, tập trung của một `Data Warehouse`. Mục đích chính của việc tạo ra các `Data Mart` là gì?
A. Để thực hiện việc sao lưu dữ liệu quan trọng từ `Data Warehouse`.
B. Để phục vụ nhu cầu phân tích của một phòng ban hoặc nhóm người dùng nghiệp vụ cụ thể.
C. Để thử nghiệm các công nghệ cơ sở dữ liệu mới trước khi áp dụng rộng rãi.
D. Để lưu trữ dữ liệu tác vụ phát sinh hàng ngày của toàn bộ tổ chức.
Câu 27. Bạn thực hiện câu lệnh sau: `UPDATE SanPham SET SoLuongTon = 0;`. Điều gì sẽ xảy ra nếu bạn quên mất mệnh đề `WHERE`?
A. Câu lệnh sẽ báo lỗi vì hệ thống phát hiện thiếu mệnh đề điều kiện `WHERE`.
B. Câu lệnh sẽ thực thi và cập nhật cột `SoLuongTon` thành 0 cho tất cả các hàng.
C. Câu lệnh sẽ chỉ thực hiện việc cập nhật hàng đầu tiên mà nó tìm thấy.
D. Câu lệnh sẽ hiển thị một thông báo yêu cầu xác nhận trước khi thực thi.
Câu 28. Phép hợp (Union) trong đại số quan hệ yêu cầu hai quan hệ tham gia phải “khả hợp”. Điều này có nghĩa là chúng phải:
A. Có cùng một số lượng hàng như nhau.
B. Có cùng một khóa chính giống hệt nhau.
C. Có cùng số lượng thuộc tính và các miền giá trị tương ứng phải tương thích.
D. Được lưu trữ trên cùng một máy chủ vật lý hoặc một phân vùng đĩa.
Câu 29. Trong bối cảnh của Big Data, kiến trúc “Data Lake” (Hồ dữ liệu) khác với “Data Warehouse” ở điểm cơ bản nào?
A. Data Lake chỉ được phép lưu trữ các loại dữ liệu có cấu trúc.
B. Data Lake lưu trữ dữ liệu thô ở định dạng gốc, trong khi Data Warehouse lưu dữ liệu đã được xử lý và cấu trúc hóa.
C. Data Warehouse thường có dung lượng lưu trữ lớn hơn Data Lake.
D. Data Lake không cho phép người dùng thực hiện các truy vấn bằng ngôn ngữ SQL.
Câu 30. Bạn muốn tạo một bản tóm tắt các giao dịch hàng tháng và lưu kết quả vào một bảng mới để tăng tốc độ báo cáo. Kỹ thuật này được gọi là gì?
A. Tạo ra một khung nhìn (View) đơn thuần để sử dụng lại.
B. Tạo một bảng tổng hợp (summary table) hoặc một khung nhìn vật chất hóa.
C. Sử dụng một thủ tục lưu trữ (Stored Procedure) để thực hiện việc này.
D. Thực hiện kỹ thuật phân hoạch bảng (Table Partitioning) theo tháng.