Trắc Nghiệm Hệ Quản Trị Cơ Sở Dữ Liệu Chương 7 là bộ đề ôn tập được thiết kế chuyên biệt cho chương 7 của môn Hệ Quản Trị Cơ Sở Dữ Liệu, thuộc chương trình đào tạo ngành Công nghệ Thông tin tại Trường Đại học Giao thông Vận tải TP.HCM (UTH). Đề thi đại học do ThS. Nguyễn Thị Thanh Trúc, giảng viên Khoa Công nghệ Thông tin – Đại học Giao thông Vận tải TP.HCM, biên soạn năm 2024. Nội dung tập trung vào các chủ đề then chốt của chương 7 như quản lý hiệu năng hệ quản trị cơ sở dữ liệu, tối ưu hóa truy vấn, giám sát hoạt động hệ thống và các chiến lược nâng cao hiệu suất, giúp sinh viên áp dụng lý thuyết vào thực tiễn quản trị dữ liệu.
Trắc Nghiệm Hệ Quản Trị Cơ Sở Dữ Liệu trên dethitracnghiem.vn là bộ đề trắc nghiệm đại học hữu ích, giúp sinh viên UTH và các trường đại học khác tự luyện tập, kiểm tra và củng cố kiến thức một cách chủ động. Các câu hỏi được thiết kế sát thực tế, có đáp án và giải thích rõ ràng, giúp sinh viên nhận diện điểm mạnh – điểm yếu và tự tin hơn khi bước vào các kỳ thi học phần. Đây là tài liệu trắc nghiệm đại học lý tưởng cho quá trình ôn tập chương 7 của môn hệ quản trị cơ sở dữ liệu.
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
Câu 1. Trong quá trình xử lý một câu lệnh SQL, giai đoạn “Phân tích và Dịch” (Parsing and Translation) có vai trò chính là gì?
A. Ước tính chi phí của các kế hoạch thực thi khác nhau để lựa chọn.
B. Kiểm tra cú pháp, xác thực đối tượng và chuyển SQL thành biểu diễn nội bộ.
C. Sắp xếp dữ liệu trên đĩa để chuẩn bị cho việc thực thi câu lệnh.
D. Thực thi mã lệnh và trả về kết quả cuối cùng cho người dùng.
Câu 2. Bộ tối ưu hóa truy vấn dựa trên chi phí (Cost-Based Optimizer) cần dựa vào thông tin nào sau đây để đưa ra quyết định lựa chọn kế hoạch thực thi tốt nhất?
A. Chỉ dựa vào số lượng các phép nối (JOIN) có trong câu truy vấn.
B. Dựa vào cấu hình phần cứng của máy chủ cơ sở dữ liệu đang sử dụng.
C. Các thông số thống kê về dữ liệu trong catalog hệ thống (số bộ, số khối, lực lượng,…).
D. Dựa vào thời gian thực thi của các câu truy vấn tương tự đã chạy trước đó.
Câu 3. “Đẩy phép chọn xuống sớm nhất có thể” là một trong những quy tắc heuristic quan trọng nhất trong tối ưu hóa truy vấn. Nguyên tắc này giúp cải thiện hiệu năng chủ yếu bằng cách nào?
A. Giảm kích thước của các tập kết quả trung gian, giảm tải cho các bước sau.
B. Làm tăng khả năng hệ thống có thể sử dụng các chỉ mục đã được tạo ra.
C. Giảm số lượng các phép toán logic mà hệ thống cần phải đánh giá.
D. Làm cho câu truy vấn SQL trở nên dễ đọc và dễ hiểu hơn đối với người viết.
Câu 4. Khi thực hiện phép nối hai bảng R và S, thuật toán “Nested-Loop Join” (Nối vòng lặp lồng nhau) có độ phức tạp tính toán phụ thuộc chủ yếu vào yếu tố nào?
A. Tích của số lượng bộ trong hai bảng (số bộ của R * số bộ của S).
B. Tổng của số lượng bộ trong hai bảng (số bộ của R + số bộ của S).
C. Kích thước của vùng bộ nhớ đệm (buffer) hiện có sẵn trong hệ thống.
D. Số lượng các thuộc tính chung giữa hai bảng tham gia vào phép nối.
Câu 5. So sánh chỉ mục B+ Tree và chỉ mục Hash, phát biểu nào sau đây là chính xác nhất?
A. Cả hai loại chỉ mục này đều hiệu quả như nhau cho các truy vấn tìm kiếm theo khoảng.
B. Chỉ mục Hash thường được ưa chuộng hơn trong các hệ thống OLTP vì không gây xung đột.
C. Chỉ mục B+ Tree chỉ có thể được tạo trên các cột được khai báo là khóa chính.
D. Hash hiệu quả cho tìm kiếm bằng đẳng thức, B+ Tree vượt trội cho tìm kiếm theo khoảng.
Câu 6. Một câu truy vấn SELECT MaKH FROM KhachHang WHERE DoanhSo > 1000000; đang chạy chậm. Phân tích kế hoạch thực thi cho thấy hệ thống đang thực hiện “Full Table Scan”. Nguyên nhân có khả năng cao nhất là gì?
A. Bảng KhachHang có quá nhiều dữ liệu cần phải xử lý trong một lần.
B. Không có chỉ mục nào phù hợp được tạo trên cột DoanhSo để hỗ trợ truy vấn.
C. Mệnh đề SELECT trong câu truy vấn chỉ lấy ra duy nhất một cột dữ liệu.
D. Bộ nhớ của máy chủ không đủ để chứa toàn bộ bảng KhachHang trong RAM.
Câu 7. Thuật toán “Sort-Merge Join” để nối hai bảng R và S yêu cầu một bước tiền xử lý quan trọng nào?
A. Thực hiện nén dữ liệu của cả hai bảng R và S trước khi thực hiện nối.
B. Tạo ra chỉ mục loại Hash trên các cột nối của cả hai bảng R và S.
C. Sắp xếp cả hai bảng R và S theo các giá trị của thuộc tính được dùng để nối.
D. Đọc toàn bộ bảng có kích thước nhỏ hơn vào trong bộ nhớ chính (RAM).
Câu 8. Một “chỉ mục phân cụm” (Clustered Index) khác biệt cơ bản với một “chỉ mục không phân cụm” (Non-clustered Index) ở điểm nào?
A. Chỉ mục phân cụm xác định thứ tự lưu trữ vật lý của dữ liệu, mỗi bảng chỉ có một.
B. Chỉ mục phân cụm luôn luôn được hệ thống tạo ra trên cột khóa chính của bảng.
C. Chỉ mục không phân cụm lưu một bản sao đầy đủ của dữ liệu hàng.
D. Một bảng có thể có nhiều chỉ mục phân cụm nhưng chỉ có một chỉ mục không phân cụm.
Câu 9. Tại sao cấu trúc B+ Tree lại được sử dụng rộng rãi làm cấu trúc chỉ mục mặc định trong hầu hết các hệ quản trị cơ sở dữ liệu quan hệ?
A. Vì nó là cấu trúc chỉ mục đơn giản nhất để các nhà phát triển triển khai.
B. Vì nó cân bằng, hiệu suất ổn định và hỗ trợ tốt cho việc quét theo khoảng.
C. Vì nó không yêu cầu bất kỳ không gian lưu trữ bổ sung nào trên đĩa cứng.
D. Vì nó chỉ hoạt động trên các cột dữ liệu có kiểu dữ liệu là kiểu số.
Câu 10. Một câu truy vấn SELECT * FROM NhanVien WHERE YEAR(NgaySinh) = 1990; không thể tận dụng được chỉ mục trên cột NgaySinh. Hiện tượng này được gọi là:
A. Một truy vấn con có tương quan (correlated subquery).
B. Một phép nối ngoài (outer join) không hiệu quả.
C. Một vị từ không thể tìm kiếm được (non-sargable predicate) do dùng hàm trên cột.
D. Một truy vấn có độ chọn lọc dữ liệu quá thấp.
Câu 11. Thuật toán Hash Join thường được bộ tối ưu hóa lựa chọn khi nào?
A. Khi một trong hai bảng rất nhỏ và bảng còn lại có chỉ mục trên cột nối.
B. Khi nối hai bảng lớn, không được sắp xếp và có đủ RAM cho bảng băm.
C. Khi câu truy vấn yêu cầu kết quả trả về phải được sắp xếp theo thứ tự.
D. Khi thực hiện một phép nối ngoài (outer join) giữa hai bảng dữ liệu.
Câu 12. Trong một kế hoạch thực thi truy vấn, toán tử “Pipelining” (xử lý theo luồng) có nghĩa là gì?
A. Kết quả của mỗi toán tử được ghi hoàn toàn ra một bảng tạm trên đĩa.
B. Kết quả của một toán tử được chuyển trực tiếp đến toán tử tiếp theo để xử lý.
C. Tất cả các toán tử trong kế hoạch được thực thi song song trên nhiều lõi CPU.
D. Câu truy vấn được chia nhỏ và gửi đến các máy chủ khác nhau để xử lý.
Câu 13. Khái niệm “độ chọn lọc” (selectivity) của một điều kiện truy vấn là gì?
A. Tỷ lệ giữa số lượng cột được chọn và tổng số cột trong bảng.
B. Tỷ lệ phần trăm các hàng trong bảng thỏa mãn điều kiện đó.
C. Thời gian cần thiết để hệ thống kiểm tra điều kiện trên mỗi hàng.
D. Khả năng điều kiện đó có thể sử dụng được một chỉ mục đã có.
Câu 14. Trong kiến trúc lưu trữ, “Heap File” (tệp đống) là một cách tổ chức tệp mà trong đó:
A. Các bản ghi được chèn vào bất kỳ vị trí nào có sẵn, không theo thứ tự cụ thể.
B. Các bản ghi luôn được duy trì theo thứ tự sắp xếp dựa trên một trường nào đó.
C. Các bản ghi được lưu trữ dựa trên giá trị băm (hash value) của khóa.
D. Mỗi bản ghi trong tệp đều được hệ thống lập chỉ mục một cách tự động.
Câu 15. Một “chỉ mục che phủ” (Covering Index) có thể giúp tăng tốc độ truy vấn một cách đáng kể vì:
A. Nó là một chỉ mục được nén rất tốt, do đó chiếm ít không gian lưu trữ.
B. Nó chứa tất cả các cột cần thiết, giúp trả về kết quả mà không cần đọc từ bảng chính.
C. Nó được hệ thống lưu trữ hoàn toàn trong bộ nhớ chính (RAM).
D. Nó tự động sắp xếp lại dữ liệu vật lý của bảng để tối ưu truy cập.
Câu 16. Bộ tối ưu hóa truy vấn đối mặt với một vấn đề nan giải là “không gian tìm kiếm” (search space) của các kế hoạch thực thi có thể rất lớn. Các hệ thống hiện đại giải quyết vấn đề này bằng cách nào?
A. Luôn chọn kế hoạch thực thi đầu tiên mà bộ tối ưu hóa tìm thấy.
B. Thử thực thi tất cả các kế hoạch có thể và chọn ra cái nhanh nhất.
C. Sử dụng heuristic và lập trình động để cắt tỉa các kế hoạch kém hiệu quả.
D. Yêu cầu người dùng phải chỉ định kế hoạch thực thi trong câu truy vấn.
Câu 17. Đối với phép chiếu π_A,B(R) trong đó cần loại bỏ các bộ trùng lặp, phương pháp nào sau đây thường được sử dụng?
A. Quét toàn bộ bảng và so sánh mỗi hàng với tất cả các hàng còn lại.
B. Luôn luôn sử dụng một chỉ mục đã có trên các cột A và B.
C. Sử dụng thuật toán sắp xếp hoặc băm để nhóm các bộ giống nhau lại với nhau.
D. Phép toán này chỉ thực hiện được nếu A là khóa chính của quan hệ R.
Câu 18. Khi nào thì việc sử dụng một chỉ mục Bitmap là một lựa chọn tốt?
A. Trên cột khóa chính của một bảng giao dịch có tần suất ghi rất cao.
B. Trên các cột có lực lượng thấp (ít giá trị riêng biệt) trong môi trường kho dữ liệu.
C. Trên các cột chứa dữ liệu dạng văn bản dài để tìm kiếm toàn văn.
D. Khi cần thực hiện các phép so sánh số học phức tạp trên cột dữ liệu.
Câu 19. Mục đích chính của việc sử dụng một “biểu đồ phân bố giá trị” (histogram) trong thống kê của cơ sở dữ liệu là gì?
A. Để giúp bộ tối ưu hóa ước tính chính xác hơn độ chọn lọc khi dữ liệu bị phân bố không đồng đều.
B. Để theo dõi tần suất của các câu truy vấn đã được thực thi trên hệ thống.
C. Để quyết định kích thước tối ưu cho vùng bộ nhớ đệm (buffer pool).
D. Để trực quan hóa dữ liệu cho người dùng cuối dưới dạng biểu đồ.
Câu 20. “Materialization” (Vật chất hóa) trong xử lý truy vấn có nghĩa là gì?
A. Toàn bộ kết quả của một toán tử được tính và lưu vào bảng tạm trước khi dùng tiếp.
B. Sử dụng một khung nhìn vật chất hóa (Materialized View) để trả lời truy vấn.
C. Chuyển đổi dữ liệu từ dạng logic sang dạng vật lý để lưu trữ trên đĩa.
D. Tối ưu hóa truy vấn bằng cách sử dụng các chỉ mục vật lý đã được tạo.
Câu 21. Tại sao việc tối ưu hóa các phép nối (JOIN) lại là một trong những nhiệm vụ quan trọng nhất của bộ tối ưu hóa truy vấn?
A. Vì phép nối là phép toán duy nhất không thể sử dụng chỉ mục để tăng tốc.
B. Vì phép nối có thể làm bùng nổ kích thước kết quả trung gian và chi phí các thuật toán nối rất khác nhau.
C. Vì cú pháp của phép nối (JOIN) là phức tạp nhất trong ngôn ngữ SQL.
D. Vì phép nối luôn luôn đòi hỏi phải sắp xếp lại toàn bộ dữ liệu của các bảng.
Câu 22. Một trang (page) hay một khối (block) trong cơ sở dữ liệu là gì?
A. Là một đơn vị lưu trữ tương đương với một hàng (row) trong một bảng.
B. Là đơn vị cơ bản của việc đọc/ghi dữ liệu giữa bộ nhớ chính và đĩa.
C. Là một tập hợp các chỉ mục có liên quan đến một bảng dữ liệu.
D. Là một tên gọi khác được sử dụng cho một giao dịch (transaction).
Câu 23. Trong một chỉ mục B+ Tree, các nút lá (leaf nodes) có đặc điểm gì quan trọng?
A. Chúng chứa các con trỏ trỏ đến các nút trung gian ở cấp cao hơn.
B. Chúng không chứa bất kỳ dữ liệu thực tế nào, chỉ có các giá trị khóa.
C. Chúng chứa cặp (khóa, con trỏ) và được liên kết với nhau bằng danh sách liên kết đôi.
D. Cấu trúc của các nút lá giống hệt như các nút trung gian của cây.
Câu 24. Truy vấn nào sau đây có khả năng được hưởng lợi nhiều nhất từ một chỉ mục đa cột trên (MaChiNhanh, NgayGiaoDich)?
A. `SELECT * FROM GiaoDich WHERE NgayGiaoDich > ‘2024-01-01’;`
B. `SELECT * FROM GiaoDich WHERE SoTien > 100000;`
C. `SELECT * FROM GiaoDich WHERE MaChiNhanh = ‘CN01’ AND NgayGiaoDich BETWEEN ‘2024-06-01’ AND ‘2024-06-30’;`
D. `SELECT * FROM GiaoDich ORDER BY MaKhachHang;`
Câu 25. “Query Rewriting” là một bước trong quá trình tối ưu hóa. Nó bao gồm những hành động nào?
A. Sửa các lỗi cú pháp có trong câu lệnh SQL của người dùng đã nhập.
B. Biến đổi câu truy vấn thành một dạng tương đương logic nhưng có thể hiệu quả hơn.
C. Dịch câu truy vấn sang một ngôn ngữ lập trình cấp thấp hơn như Assembly.
D. Thêm các gợi ý (hints) vào câu truy vấn để ép bộ tối ưu hóa theo một kế hoạch.
Câu 26. Điều gì sẽ xảy ra với hiệu suất khi một chỉ mục B+ Tree trở nên quá sâu (có quá nhiều cấp)?
A. Hiệu suất của các thao tác chèn và xóa dữ liệu sẽ được cải thiện.
B. Số thao tác I/O cần thiết để duyệt cây sẽ tăng lên, làm giảm hiệu suất.
C. Sẽ không có bất kỳ ảnh hưởng nào đến hiệu suất chung của hệ thống.
D. Việc thực hiện quét dữ liệu theo khoảng sẽ trở nên nhanh hơn đáng kể.
Câu 27. Một bộ đệm (buffer pool/cache) trong hệ quản trị CSDL có vai trò chính là gì?
A. Là vùng nhớ RAM lưu trữ các trang dữ liệu từ đĩa để giảm thiểu thao tác I/O.
B. Để lưu trữ mã thực thi của các câu truy vấn đã được tối ưu hóa.
C. Để lưu trữ các bản ghi nhật ký (log records) của các giao dịch.
D. Để kiểm tra các ràng buộc toàn vẹn trước khi ghi dữ liệu vào đĩa.
Câu 28. “Gợi ý truy vấn” (Query Hint) là một cơ chế cho phép người dùng:
A. Yêu cầu bộ tối ưu hóa giải thích tại sao nó chọn một kế hoạch thực thi.
B. Can thiệp vào quyết định của bộ tối ưu hóa bằng cách “ép” nó dùng một thuật toán hay chỉ mục cụ thể.
C. Viết các câu truy vấn bằng ngôn ngữ tự nhiên thay vì ngôn ngữ SQL.
D. Tự động sửa chữa các câu truy vấn đang chạy chậm trong hệ thống.
Câu 29. Việc duy trì các thông số thống kê (statistics) chính xác và cập nhật là cực kỳ quan trọng đối với bộ tối ưu hóa dựa trên chi phí. Tại sao?
A. Vì thống kê sai lệch dẫn đến ước tính chi phí sai, có thể khiến bộ tối ưu hóa chọn một kế hoạch rất tồi.
B. Vì các thông số thống kê này được hiển thị trực tiếp cho người dùng cuối.
C. Vì chúng giúp hệ thống thực hiện việc nén dữ liệu một cách hiệu quả hơn.
D. Vì chúng là điều kiện cần thiết để thực hiện sao lưu và phục hồi CSDL.
Câu 30. Một hệ thống phải thực hiện phép nối giữa một bảng KhachHang (10,000 hàng) và một bảng DonHang (10,000,000 hàng). Thuật toán nối nào sẽ là một lựa chọn rất tồi nếu không có bất kỳ chỉ mục nào?
A. Thuật toán Hash Join.
B. Thuật toán Sort-Merge Join.
C. Thuật toán Nested-Loop Join đơn giản (Simple NLJ).
D. Thuật toán Index Nested-Loop Join (không thể áp dụng).