1 Giới thiệu

Đề thi này được soạn dựa trên các đề thi tuyển Data Analyst, BI Analyst và Data Engineer thực tế và được thiết kế để kiểm tra khả năng sử dụng SQL để trích xuất, xử lý và phân tích dữ liệu của ứng viên cho các vị trí ở level junior.

Dataset được sử dụng là dataset trong bộ database “Sakila” và các câu hỏi sẽ xoay quanh dataset này.

Sakila là một database chứa các bảng dữ liệu thể hiện thông tin về 1 cửa hàng cho thuê DVD, bao gồm những nội dung như phim, diễn viên, mối quan hệ giữa diễn viên với phim, …

2 Yêu cầu

Sử dụng bộ Sakila database bằng 1 trong các cách sau:

  • Download và cài đặt mysql (google hướng dẫn trên mạng, nên cài đặt thêm MySQL Workbench để viết lệnh và sử dụng MySQL). Bạn vẫn hoàn toàn có thể sử dụng 1 hệ quản trị cơ sở dữ liệu khác (VD: SQL Server, PostgreSQL, …) tuy nhiên có thể sẽ có 1 vài điểm khác biệt nho nhỏ (nhưng không ảnh hưởng trọng yếu tới kiến thức và thực hành của bài học này). Sau đó tải cài đặt bộ Sakila database theo link sau: https://dev.mysql.com/doc/sakila/en/sakila-installation.html

  • Sử dụng Google Colab notebook sau đây để truy vấn dữ liệu của bộ Sakila database mà không cần cài đặt gì trên máy tính cá nhân: https://colab.research.google.com/drive/1koov_VNKwvrY_3ZbZ_5S3bU3ZVldaabj?usp=sharing

Entity Relationship (ER) diagram: https://github.com/tuanphan92/datatute-datasets/blob/main/JobSeeker/sakila%20dataset/sakila-db/sakila_model.png

Hãy phân tích và trả lời các câu hỏi sau đây. Câu trả lời cần bao gồm SQL query và kết quả trả ra khi chạy query đó.

3 Câu hỏi

3.1 Câu hỏi 1:

Foreign key và Primary key khác nhau như thế nào? Từ bộ dữ liệu được cung cấp, hãy nêu ra ví dụ về 3 foreign keys

3.2 Câu hỏi 2:

Viết lệnh để trả ra danh sách các diễn viên bao gồm mã ID, tên, họ, và sắp xếp theo số lượng phim họ đã đóng, theo từng loại ngôn ngữ.

3.3 Câu hỏi 3:

Sử dụng 2 bảng dữ liệu city và country, cho biết quốc gia nào có nhiều thành phố nhất?

Kết quả trả ra bao gồm:

  • Tên quốc gia

  • Số lượng thành phố

3.4 Câu hỏi 4:

Hãy trình bày những điều khác mà bạn quan sát, nhận thấy được từ bộ data này, cung cấp SQL query và kết quả của query.

3.5 Câu hỏi 5:

Hãy trình bày những việc bạn sẽ làm để làm sạch bộ dữ liệu này. Đưa ra SQL query và kết quả để thể hiện ra những trường hợp cần làm sạch (không cần viết query làm sạch dữ liệu, tuy nhiên bạn vẫn có thể làm nếu muốn)