JavaScript is required

Chọn một khẳng định nào sau đây là đúng nhất:

A.

Quan hệ gồm: Mã báo, tên báo, giá báo và mã khách đặt mua là quan hệ 2NF.

B.

Quan hệ gồm: Mã nhân viên, tên, địa chỉ là quan hệ 2NF.

C.

Quan hệ gồm: Mã hoá đơn, mã khách, mã mặt hàng là quan hệ 2NF.

D.
Quan hệ gồm: Mã khách, tên khách và mã báo, tên báo là quan hệ 2NF.
Trả lời:

Đáp án đúng: B


Để xác định một quan hệ có đạt chuẩn 2NF hay không, ta cần kiểm tra xem nó đã đạt chuẩn 1NF (không có thuộc tính đa trị) và tất cả các thuộc tính không khóa phải phụ thuộc đầy đủ vào khóa chính (hoặc một phần của khóa chính nếu khóa chính là khóa ghép).

- Phương án A: Quan hệ (Mã báo, Tên báo, Giá báo, Mã khách đặt mua) có thể vi phạm 2NF nếu Tên báo và Giá báo chỉ phụ thuộc vào Mã báo (một phần của khóa chính nếu khóa chính là (Mã báo, Mã khách đặt mua)).

- Phương án B: Quan hệ (Mã nhân viên, Tên, Địa chỉ). Với Mã nhân viên là khóa chính, nếu Tên và Địa chỉ phụ thuộc đầy đủ vào Mã nhân viên, thì quan hệ này ở dạng 2NF.

- Phương án C: Quan hệ (Mã hoá đơn, Mã khách, Mã mặt hàng). Nếu Mã hóa đơn là khóa chính, và Mã khách, Mã mặt hàng phụ thuộc đầy đủ vào Mã hóa đơn, thì quan hệ này ở dạng 2NF. Nếu (Mã khách, Mã mặt hàng) là khóa chính thì Mã hóa đơn phụ thuộc hàm vào (Mã khách, Mã mặt hàng) thì quan hệ này ở dạng 2NF.

- Phương án D: Quan hệ (Mã khách, Tên khách, Mã báo, Tên báo). Với (Mã khách, Mã báo) là khóa chính, nếu Tên khách chỉ phụ thuộc vào Mã khách (một phần của khóa chính) và Tên báo chỉ phụ thuộc vào Mã báo (một phần của khóa chính), thì quan hệ này KHÔNG đạt 2NF. Nếu chỉ có Mã khách là khóa chính thì nó sẽ đạt 2NF khi Tên khách, Mã báo và Tên báo phụ thuộc hàm vào Mã khách.

Trong các phương án trên, phương án B có vẻ đúng nhất vì nó mô tả một quan hệ mà các thuộc tính không khóa phụ thuộc đầy đủ vào khóa chính (Mã nhân viên). Các phương án còn lại có khả năng vi phạm 2NF hoặc không đủ thông tin để xác định chắc chắn.

Câu hỏi liên quan