Quan hệ PROJ(PNO,PNAME,BUGET,LOC). Ký hiệu: A1=PNO, A2=PNAME, A3=BUDGET, A4=LOC. Tập các ứng dụng:
q1: Cho biết kinh phí của một dự án cụ thể. q2: Tên và kinh phí của tất cả dự án.
q3: Tên của các dự án được thực hiện tại một thành phố biết trước. q4: Tổng kinh phí dự án cho mỗi thành phố.
Hãy chỉ ra giá trị đúng?
Trả lời:
Đáp án đúng: B
Câu hỏi này liên quan đến việc xác định thuộc tính nào được sử dụng (use) để trả lời một truy vấn (query) cụ thể trong một lược đồ quan hệ. Cụ thể, ta cần xem xét truy vấn q1: "Cho biết kinh phí của một dự án cụ thể." và thuộc tính A1 (PNO - Mã dự án) và A2 (PNAME - Tên dự án).
* **Phân tích truy vấn q1:** Để biết kinh phí của một dự án cụ thể, chúng ta cần xác định dự án đó bằng mã của nó (PNO). Tên dự án (PNAME) không giúp ta trực tiếp tìm ra kinh phí của một dự án cụ thể.
* **Đánh giá các phương án:**
* **A. use(q1,A1)=0:** Sai, vì để trả lời q1, ta cần sử dụng A1 (PNO) để xác định dự án.
* **B. use(q1,A1)=1:** Đúng, vì để trả lời q1, ta cần sử dụng A1 (PNO) để xác định dự án.
* **C. use(q1,A2)=1:** Sai, vì A2 (PNAME) không đủ để xác định duy nhất một dự án và tìm kinh phí của nó.
* **D. use(q1,A2)=0:** Đúng, vì A2 (PNAME) không thực sự cần thiết để xác định kinh phí của một dự án cụ thể khi ta đã biết mã dự án.
Vì B và D đều có vẻ đúng, ta cần xem xét kỹ hơn. Câu hỏi "Cho biết kinh phí của một dự án cụ thể" *cần* mã dự án để xác định dự án đó một cách duy nhất. Tên dự án có thể hữu ích, nhưng không *cần thiết* vì mã dự án là đủ. Vì vậy, use(q1, A1) phải bằng 1, cho thấy A1 được sử dụng. Ngược lại, use(q1, A2) = 0 là hợp lý vì tên dự án không phải là yếu tố bắt buộc để xác định kinh phí, mã dự án là đủ.
Tuy nhiên, theo các lựa chọn đã cho và cách câu hỏi được đặt ra, đáp án chính xác nhất thể hiện sự phụ thuộc **bắt buộc** là B. use(q1,A1)=1. Các lựa chọn khác không chính xác vì chúng hoặc phủ nhận việc sử dụng PNO, hoặc khẳng định sự cần thiết của PNAME một cách không đúng.