ITPEC FE Subject A October 2025 Question 19

Topic: Databases

When the functional dependencies shown below are satisfied, which of the following is the transitive functional dependency that holds? Here, “A→B” indicates that B is functionally dependent on A, and “A→{B, C}” indicates that “A→B” and “A→C” both hold.

[Functional dependencies]

{OrderCode, ProductCode} → {CustomerOrderQuantity, OrderAmount}

OrderCode → {OrderDate, CustomerCode, OrderManagerCode}

ProductCode → {ProductName, SupplierCode, ProductSalePrice}

SupplierCode → {SupplierName, SupplierAddress, SupplierManagerCode}

CustomerCode → {CustomerName, CustomerAddress}

Explanation

OrderCode → CustomerCode → CustomerAddress — both steps are given dependencies, and the middle attribute does not determine OrderCode.

A transitive functional dependency X → Y → Z needs X → Y and Y → Z to hold while Y does not determine X; Z then depends on X only through Y.

  • •OrderCode → CustomerCode: given in the second line
  • •CustomerCode → CustomerAddress: given in the fifth line
  • •CustomerCode does not determine OrderCode, since one customer places many orders

Answer (a)

Why not others:

  • •(b) — OrderCode does not determine ProductCode: one order holds several products, and CustomerOrderQuantity depends on the pair {OrderCode, ProductCode}
  • •(c) — SupplierCode does not determine ProductSalePrice: one supplier supplies many products at different prices, and the price depends on ProductCode directly
  • •(d) — SupplierManagerCode → SupplierAddress is not given; SupplierAddress depends on SupplierCode directly, and one manager may handle several suppliers

Key rule: Check every arrow of a proposed chain against the given dependencies, since one missing arrow breaks it; transitive dependencies are what third normal form removes.

Databases · AI-written, may contain errors

This question comes from an official ITPEC past paper. ITPEC Practice is an independent study tool and is not affiliated with ITPEC. See the official FE past-paper collection or Report an issue.