web-dev-qa-db-fra.com

clés candidates issues de dépendances fonctionnelles

Étant donné la relation R avec les attributs ABCDE. Les dépendances suivantes vous sont attribuées: A -> B, BC -> E et ED -> A. J'ai déjà la réponse: CDE, ACD et BCD. J'ai juste besoin de savoir comment le faire. Merci. 

27
ranzy

Une clé candidate est une super clé minimale. En d'autres termes, il n'y a pas d'attributs superflous dans la clé. La première étape pour trouver une clé candidate consiste à rechercher toutes les super touches. Pour ceux qui ne sont pas familiers, une super clé est un ensemble d'attributs dont la fermeture correspond à l'ensemble de tous les attributs. En d’autres termes, une super-clé est un ensemble d’attributs à partir duquel vous pouvez commencer et, après les dépendances fonctionnelles, vous conduira à un ensemble contenant chaque attribut.

Puisque nous avons les dépendances fonctionnelles: A -> B, BC -> E et ED -> A, nous avons les super-clés suivantes:

  • ABCDE (Tous les attributs sont toujours une super clé)
  • BCED (on peut obtenir l'attribut A via ED -> A)
  • ACDE (il suffit d'ajouter B à A -> B)
  • ABCD (il suffit d'ajouter E à BC -> E)
  • ACD (nous pouvons obtenir B par A -> B, puis E par BC -> E)
  • BCD (On peut obtenir E par BC -> E, puis A depuis ED -> A)
  • CDE (on peut obtenir A par ED -> A puis B de A -> B)

(Une astuce à réaliser ici est que, puisque C et D n'apparaissent jamais du côté droit d'une dépendance fonctionnelle, chaque clé doit inclure à la fois C et D)

Maintenant que nous avons toutes nos super clés, nous pouvons voir que seules les trois dernières sont des clés candidates. Depuis les quatre premiers peuvent tous être réduits. Mais nous ne pouvons enlever aucun attribut des trois dernières super-clés et les conserver comme super-clé.

Ainsi, les clés candidates sont: ACD, BCD et CDE.

J'espère que cela pourra aider,

65
lbrendanl

Pour trouver la clé candidate, vous devez diviser les FD en attributs en Gauche, Milieu, Droite - La gauche inclut des attributs qui n'apparaissent que dans la partie gauche (CD) - Le Milieu comprend des attributs qui apparaissent à gauche et à droite (ABE) - La droite inclut les attributs qui apparaissent uniquement dans le côté droit (aucun)

Maintenant, trouvez la fermeture des attributs de gauche: * CD + -> CD Puisque nous n’obtenons pas tous les attributs de la relation, nous devons ajouter les attributs du milieu (ABE) un à un et essayer de trouver la fermeture à nouveau.

Donc: * CDA + -> CDABE (CDA est une clé candidate) * CDB + -> CDBEA (CDB est une clé candidate) * CDE + -> CDEAB (CDE est une clé candidate)

9
Agustin

Utilisez un algorithme;

1.Prendre n'importe quel attribut ou ensemble d'attributs

par exemple: ACD

2.Prendre la première dépendance fonctionnelle mentionnée

par exemple: A -> B

3.Le L.H.S de la dépendance est-il un sous-ensemble de l’attribut/s que vous avez choisi à l’étape 1?

Si oui, ajoutez le R.H.S de la dépendance fonctionnelle à l'attribut . Si non, ignorez cette dépendance fonctionnelle.

par exemple: A est un sous-ensemble de ACD. Ajoutez donc B à ACD. ACD est maintenant ABCD

4.Maintenant, passez à la dépendance fonctionnelle suivante. Répétez l’étape 3.

exemple: BC -> E BC est un sous-ensemble de ABCD. Donc, ABCD est maintenant ABCDE

5.Si vous avez tous les attributs maintenant, vous pouvez vous arrêter. 

Si vous ne possédez pas tous les attributs, continuez avec la dépendance fonctionnelle suivante et répétez l'étape 3. Si vous avez atteint la dernière dépendance fonctionnelle et n'avez pas tous les attributs, revenez à la première dépendance fonctionnelle et répétez les étapes 3 et 4. Continuez votre cycle dans cette boucle jusqu'à ce que l'ensemble d'attributs que vous possédez ne change pas, quelle que soit la dépendance fonctionnelle avec laquelle vous répétez l'étape 3.

par exemple, comme j'ai ABCDE pour le jeu d'attributs ACD, je peux m'arrêter.

Si vous avez tous les attributs, vous avez une super clé . Exemple: ACD est une super clé car j'ai ABCDE.

0
rubixphys12