1. Hãy giải thích khái niệm `Normalization` trong thiết kế cơ sở dữ liệu.
A. Quá trình tổ chức dữ liệu để giảm thiểu sự trùng lặp và cải thiện tính toàn vẹn.
B. Quá trình mã hóa dữ liệu để bảo vệ khỏi truy cập trái phép.
C. Quá trình sao lưu dữ liệu để đảm bảo an toàn.
D. Quá trình tối ưu hóa hiệu suất truy vấn.
2. Trong SQL, mệnh đề `GROUP BY` được sử dụng để làm gì?
A. Nhóm các hàng có cùng giá trị trong một hoặc nhiều cột.
B. Lọc các hàng dữ liệu.
C. Sắp xếp các hàng dữ liệu.
D. Kết hợp dữ liệu từ nhiều bảng.
3. Khi nào nên sử dụng `materialized view` thay vì `view` thông thường?
A. Khi cần cải thiện hiệu suất truy vấn cho các truy vấn phức tạp và tốn thời gian.
B. Khi cần bảo vệ dữ liệu khỏi truy cập trái phép.
C. Khi cần đơn giản hóa các truy vấn.
D. Khi cần sao lưu dữ liệu.
4. Trong SQL, `correlated subquery` là gì?
A. Một truy vấn con phụ thuộc vào truy vấn bên ngoài để thực thi.
B. Một truy vấn con không phụ thuộc vào truy vấn bên ngoài.
C. Một truy vấn con luôn trả về một giá trị duy nhất.
D. Một truy vấn con được tối ưu hóa để chạy nhanh hơn.
5. Trong SQL, mệnh đề `JOIN` được sử dụng để làm gì?
A. Kết hợp các hàng từ hai hoặc nhiều bảng dựa trên một cột liên quan.
B. Lọc các hàng dữ liệu.
C. Sắp xếp các hàng dữ liệu.
D. Nhóm các hàng dữ liệu.
6. Khi nào nên sử dụng `view` trong SQL?
A. Để đơn giản hóa các truy vấn phức tạp và cung cấp một lớp trừu tượng cho người dùng.
B. Để tăng tốc độ truy vấn.
C. Để bảo vệ dữ liệu khỏi truy cập trái phép.
D. Để sao lưu dữ liệu.
7. Trong SQL, mệnh đề `UNION` được sử dụng để làm gì?
A. Kết hợp kết quả của hai hoặc nhiều câu lệnh SELECT thành một tập kết quả duy nhất.
B. Lọc các hàng dữ liệu.
C. Sắp xếp các hàng dữ liệu.
D. Nhóm các hàng dữ liệu.
8. Hãy giải thích khái niệm `Data Mining`.
A. Quá trình khám phá các mẫu và thông tin hữu ích từ lượng lớn dữ liệu.
B. Quá trình sao lưu dữ liệu để đảm bảo an toàn.
C. Quá trình mã hóa dữ liệu để bảo vệ khỏi truy cập trái phép.
D. Quá trình chuẩn hóa dữ liệu.
9. Khi nào nên sử dụng `cursor` trong SQL?
A. Khi cần xử lý từng hàng dữ liệu một trong một tập kết quả.
B. Khi cần tăng tốc độ truy vấn.
C. Khi cần bảo vệ dữ liệu khỏi truy cập trái phép.
D. Khi cần đơn giản hóa các truy vấn.
10. Mục đích của việc sử dụng `index` trong cơ sở dữ liệu là gì?
A. Tăng tốc độ truy vấn dữ liệu bằng cách tạo ra một cấu trúc tìm kiếm.
B. Bảo vệ dữ liệu khỏi truy cập trái phép.
C. Sao lưu dữ liệu định kỳ.
D. Chuẩn hóa dữ liệu.
11. Phân biệt ` clustered index` và `non-clustered index` trong SQL Server?
A. Clustered index xác định thứ tự vật lý của dữ liệu trong bảng, trong khi non-clustered index chứa con trỏ đến vị trí dữ liệu.
B. Clustered index chỉ có thể tạo trên cột khóa chính, trong khi non-clustered index có thể tạo trên bất kỳ cột nào.
C. Clustered index nhanh hơn non-clustered index khi truy vấn dữ liệu.
D. Clustered index chiếm ít không gian lưu trữ hơn non-clustered index.
12. Hãy giải thích khái niệm `ETL` trong ngữ cảnh của Data Warehouse.
A. Extract, Transform, Load: Quá trình trích xuất dữ liệu từ nhiều nguồn, biến đổi dữ liệu, và tải dữ liệu vào Data Warehouse.
B. Encrypt, Transfer, Log: Quá trình mã hóa dữ liệu, chuyển dữ liệu, và ghi nhật ký dữ liệu.
C. Evaluate, Test, Launch: Quá trình đánh giá, kiểm tra, và triển khai dữ liệu.
D. Edit, Translate, Locate: Quá trình chỉnh sửa, dịch, và định vị dữ liệu.
13. Khi nào nên sử dụng `stored procedure` thay vì truy vấn SQL trực tiếp?
A. Khi cần thực hiện các tác vụ phức tạp, lặp đi lặp lại, và muốn tăng cường bảo mật.
B. Khi cần truy vấn dữ liệu từ nhiều bảng cùng một lúc.
C. Khi cần tối ưu hóa hiệu suất truy vấn trên các bảng lớn.
D. Khi cần đơn giản hóa cú pháp truy vấn SQL.
14. Khi nào nên sử dụng `NoSQL` thay vì `SQL`?
A. Khi cần xử lý dữ liệu phi cấu trúc hoặc bán cấu trúc, và yêu cầu khả năng mở rộng cao.
B. Khi cần đảm bảo tính toàn vẹn dữ liệu tuyệt đối.
C. Khi cần thực hiện các truy vấn phức tạp với nhiều JOIN.
D. Khi cần tuân thủ các tiêu chuẩn ACID nghiêm ngặt.
15. Mục đích của việc sử dụng `trigger` trong SQL là gì?
A. Tự động thực hiện các hành động khi có sự kiện xảy ra trên cơ sở dữ liệu (ví dụ: INSERT, UPDATE, DELETE).
B. Tối ưu hóa hiệu suất truy vấn.
C. Kiểm soát quyền truy cập vào dữ liệu.
D. Sao lưu dữ liệu định kỳ.
16. Phân biệt `authentication` và `authorization` trong ngữ cảnh bảo mật cơ sở dữ liệu.
A. Authentication xác minh danh tính của người dùng, authorization xác định quyền truy cập của người dùng.
B. Authentication nhanh hơn authorization.
C. Authentication dễ cấu hình hơn authorization.
D. Authentication quan trọng hơn authorization.
17. Phân biệt cơ sở dữ liệu `quan hệ` và cơ sở dữ liệu `đối tượng`?
A. Cơ sở dữ liệu quan hệ lưu trữ dữ liệu trong các bảng có quan hệ với nhau, trong khi cơ sở dữ liệu đối tượng lưu trữ dữ liệu dưới dạng các đối tượng có thuộc tính và phương thức.
B. Cơ sở dữ liệu quan hệ nhanh hơn cơ sở dữ liệu đối tượng.
C. Cơ sở dữ liệu quan hệ hỗ trợ tốt hơn cho các ứng dụng web.
D. Cơ sở dữ liệu quan hệ dễ bảo trì hơn cơ sở dữ liệu đối tượng.
18. Khi nào nên sử dụng kỹ thuật `sharding` trong cơ sở dữ liệu?
A. Khi cơ sở dữ liệu trở nên quá lớn để chứa trên một máy chủ duy nhất.
B. Khi cần tăng cường bảo mật cho cơ sở dữ liệu.
C. Khi cần tối ưu hóa hiệu suất truy vấn cho các bảng nhỏ.
D. Khi cần đơn giản hóa việc quản lý cơ sở dữ liệu.
19. Mục đích của việc sử dụng `partitioning` trong cơ sở dữ liệu là gì?
A. Chia nhỏ một bảng lớn thành các phần nhỏ hơn, dễ quản lý và truy vấn hơn.
B. Tăng tốc độ truy vấn.
C. Bảo vệ dữ liệu khỏi truy cập trái phép.
D. Chuẩn hóa dữ liệu.
20. Mục đích của việc sử dụng `replication` trong cơ sở dữ liệu là gì?
A. Tạo ra các bản sao của dữ liệu trên nhiều máy chủ để tăng tính sẵn sàng và khả năng chịu lỗi.
B. Tăng tốc độ truy vấn.
C. Bảo vệ dữ liệu khỏi truy cập trái phép.
D. Chuẩn hóa dữ liệu.
21. Trong ngữ cảnh của NoSQL, CAP theorem phát biểu rằng một hệ thống phân tán chỉ có thể đảm bảo tối đa hai trong ba thuộc tính nào sau đây?
A. Consistency, Availability, Partition Tolerance.
B. Capacity, Atomicity, Performance.
C. Concurrency, Authentication, Persistence.
D. Customization, Authorization, Privacy.
22. Trong SQL, mệnh đề `HAVING` được sử dụng để làm gì?
A. Lọc các nhóm dữ liệu sau khi đã thực hiện phép gộp (GROUP BY).
B. Lọc các hàng dữ liệu trước khi thực hiện phép gộp (GROUP BY).
C. Sắp xếp các hàng dữ liệu.
D. Kết hợp dữ liệu từ nhiều bảng.
23. Trong mô hình ACID, thuộc tính `Atomicity` đảm bảo điều gì?
A. Mỗi giao dịch là một đơn vị công việc không thể chia cắt, hoặc tất cả thay đổi được thực hiện, hoặc không có thay đổi nào.
B. Dữ liệu phải duy trì tính nhất quán sau mỗi giao dịch.
C. Các giao dịch đồng thời không ảnh hưởng lẫn nhau.
D. Dữ liệu phải bền vững ngay cả khi có sự cố hệ thống.
24. Hãy giải thích khái niệm `ACID` trong ngữ cảnh của các giao dịch cơ sở dữ liệu.
A. Atomicity, Consistency, Isolation, Durability.
B. Accuracy, Completeness, Integrity, Dependability.
C. Availability, Capacity, Integrity, Durability.
D. Authentication, Confidentiality, Integrity, Availability.
25. Mục đích chính của việc sử dụng `Data Warehouse` là gì?
A. Hỗ trợ ra quyết định và phân tích dữ liệu từ nhiều nguồn khác nhau.
B. Thay thế cho hệ thống cơ sở dữ liệu giao dịch (OLTP).
C. Quản lý dữ liệu thời gian thực.
D. Tối ưu hóa hiệu suất cho các ứng dụng web.
26. Phân biệt `OLTP` và `OLAP` trong ngữ cảnh của cơ sở dữ liệu.
A. OLTP (Online Transaction Processing) xử lý các giao dịch thời gian thực, trong khi OLAP (Online Analytical Processing) phục vụ cho phân tích dữ liệu.
B. OLTP được sử dụng cho các ứng dụng web, trong khi OLAP được sử dụng cho các ứng dụng desktop.
C. OLTP nhanh hơn OLAP.
D. OLTP dễ bảo trì hơn OLAP.
27. Nguyên tắc `Data Independence` trong hệ quản trị cơ sở dữ liệu (DBMS) có nghĩa là gì?
A. Dữ liệu được lưu trữ độc lập với phần mềm ứng dụng, cho phép thay đổi cấu trúc dữ liệu mà không ảnh hưởng đến ứng dụng.
B. Dữ liệu được bảo vệ khỏi truy cập trái phép.
C. Dữ liệu được sao lưu định kỳ để đảm bảo an toàn.
D. Dữ liệu được chuẩn hóa để giảm thiểu sự trùng lặp.
28. Phân biệt `full backup`, `incremental backup` và `differential backup`.
A. Full backup sao lưu toàn bộ cơ sở dữ liệu, incremental backup chỉ sao lưu các thay đổi kể từ lần backup gần nhất (full hoặc incremental), differential backup sao lưu các thay đổi kể từ lần full backup gần nhất.
B. Full backup nhanh nhất, incremental backup chậm nhất, differential backup ở giữa.
C. Full backup tốn ít không gian lưu trữ nhất, incremental backup tốn nhiều nhất, differential backup ở giữa.
D. Full backup phức tạp nhất, incremental backup đơn giản nhất, differential backup ở giữa.
29. Hãy giải thích khái niệm `Data Lake`.
A. Kho lưu trữ dữ liệu lớn, cho phép lưu trữ dữ liệu ở định dạng gốc của nó.
B. Quá trình sao lưu dữ liệu để đảm bảo an toàn.
C. Quá trình mã hóa dữ liệu để bảo vệ khỏi truy cập trái phép.
D. Quá trình chuẩn hóa dữ liệu.
30. Hãy giải thích khái niệm `Denormalization` và khi nào nó được sử dụng.
A. Denormalization là quá trình thêm dữ liệu trùng lặp vào cơ sở dữ liệu để cải thiện hiệu suất truy vấn, thường được sử dụng trong Data Warehouse.
B. Denormalization là quá trình mã hóa dữ liệu để bảo vệ khỏi truy cập trái phép.
C. Denormalization là quá trình sao lưu dữ liệu để đảm bảo an toàn.
D. Denormalization là quá trình chuẩn hóa dữ liệu.