J'ai lu de nombreuses sources différentes sur la façon de différencier les relations qui sont en 3NF/BCNF. Et je l'ai jusqu'à présent ce je crois savoir ...Trouver une relation dans 3NF mais pas dans BCNF
Je vais utiliser cette relation comme un exemple ...
R = {A, B, C, D, E}
et
F = {A -> B, B C - > E, E D -> A}
.
Premièrement, nous devons trouver les clés de la relation. I used this video to help me do that. et je me suis
Keys = {ACD, BCD, CDE}
maintenant pour vous assurer R
est en BCNF, nous devons nous assurer que le côté gauche de chaque dépendance fonctionnelle dans F
est l'un des Keys
. Nous savons immédiatement que ce n'est pas le cas, car le premier FD est A -> B
et A
n'est pas l'une des clés. Donc ce n'est pas dans BCNF.
maintenant pour vous assurer R
est en 3NF, nous devons nous assurer que le côté gauche de chaque dépendance fonctionnelle dans F
est l'un des Keys
OU le côté droit de chaque dépendance fonctionnelle dans F
est un sous-ensemble de l'un des Keys
. Si vous regardez le côté droit de chaque FD, ils sont B
, E
et A
. Ce sont chacun un sous-ensemble d'un Key
, donc cela signifie que il est dans 3NF.
C'est donc l'un des rares cas (selon wiki) où une relation est en 3NF
mais pas dans BCNF
. Cette méthode est-elle correcte? Est-ce fiable? Est-ce que je manque quelque chose?
Oui, vous avez tout fait correctement. – laurids
vous pouvez vouloir vérifier ceci: http://class2go.stanford.edu/db/Winter2013 – laurids