Hamish Burke | 2025-05-27

Related to: #databases


Minimal Cover

  1. For every FD X→YZ, replace with X→Y and X→Z
  1. For each FD X→A and each attribute B in X
  1. For each FD X→A in turn

Minimal Cover Example

  1. F={A→B,A→C,B→C,AC→D}
  2. For AC→D, test C extraneous
    1. X′={A}
    2. A⋆=A,B,C,D
    3. D∈A⋆, C is extraneous
    4. Replace AC→D with A→D
  3. F={A→B,A→C,A→D,B→C}
    1. F′={A→C,A→D,B→C}
      1. X⋆=ACD, B not in X⋆, keep A→B
    2. F′={A→B,A→D,B→C}
      1. X⋆=ABCD, C∈X⋆, so remove A→C
    3. F′={A→B,A→C,B→C}
      1. X⋆=ABC, D not in X⋆
    4. F′={A→B,A→C,A→D}
      1. X⋆=B, C not in X⋆
  4. Minimal cover FD: F={A→B,A→D,B→C}