Pregunta

How do I create a minimal cover of FDs by removing redundant attributes?

For example, given this FDs:

A1 ⟶ A3
A1A2 ⟶ A3
A3 ⟶ A4A6
A3A4 ⟶ A6
A3A5 ⟶ A1A2
A5A6 ⟶ A3

The minimal cover is

A1 ⟶ A3
A3 ⟶ A4
A3 ⟶ A6
A3A5 ⟶ A1
A3A5 ⟶ A2
A5A6 ⟶ A3

I'll be glad if someone can explain the steps to me :)

¿Fue útil?

Solución

I'll explain the steps and add the output up to each step.

  1. A1 ⟶ A3 is already minimal. So leave it that way.
    A1 ⟶ A3
    
  2. A1A2 ⟶ A3 means that you given A1 and A2 you can identify A3. As you know from the previous step that given A1 you can already identify A3 then this doesn't actually add any extra information. Note that it is not logically correct to conclude that A2 ⟶ A3. So we can remove this whole FD as it is redundant.
    A1 ⟶ A3
    
  3. A3 ⟶ A4A6 means that A3 ⟶ A4 and A3 ⟶ A6. So we remove this FD and split it into 2.
    A1 ⟶ A3
    A3 ⟶ A4
    A3 ⟶ A6
    
  4. A3A4 ⟶ A6 is similar to step 2. As A3 ⟶ A6 then A3A4 ⟶ A6 doesn't add any additional information making it redundant.
    A1 ⟶ A3
    A3 ⟶ A4
    A3 ⟶ A6
    
  5. A3A5 ⟶ A1A2 is similar to step 3. We can just split them into 2 different FDs A3A5 ⟶ A1 and A3A5 ⟶ A2. This is minimal as there are no other FDs such as A3 ⟶ A1.
    A1 ⟶ A3
    A3 ⟶ A4
    A3 ⟶ A6
    A3A5 ⟶ A1
    A3A5 ⟶ A2
    
  6. A5A6 ⟶ A3 is already minimal.
    A1 ⟶ A3
    A3 ⟶ A4
    A3 ⟶ A6
    A3A5 ⟶ A1
    A3A5 ⟶ A2
    A5A6 ⟶ A3
    
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top