Red > Green > Refactor > Red

cycle is based on desire

Transitive functional dependencies

Definition

Given

 \bigl{ X, Y, Z\bigr} \in R

When

  •  X \rightarrow Y ...(i)
  •  \neg (Y \rightarrow X) ...(ii)
  •  Y \rightarrow Z ( \neg (Z \subset Y) ) ...(iii)

Then

Transitive functional dependencies is specified

  •  X \rightarrow Z
  •  \neg (Z \rightarrow X)

Ex

  •  \bigl{X, Y, Z\bigr} \in R
  •  X \textit{is candidate key}, Y \textit{ and } Z \textit{ are  not candidate key}
  •  \textit{ If exist functional dependencies beteween } Y \rightarrow Z, Z \rightarrow X \textit{satisfies Transitive functional dependencies}

Because

  •  X \rightarrow Y (\textit{ X is candidate key }) ...(i)
  •  \neg (Y \rightarrow X (\textit{ Y is NOT candidate key }) ...(ii)
  •  Y \rightarrow Z ... (iii)