2015-04-18 1 views
-2

J'ai un long exercice et tout repose sur la première partie qui répertorie toutes les dépendances fonctionnelles. Mais c'est tellement ambigu - pouvez-vous m'aider à les énumérer? J'ai fait quelque chose, bien sûr, mais j'ai l'impression que ce n'est pas suffisant.Trouver toutes les dépendances fonctionnelles

Voici mes IFD:

SocialIN -> EmpName 
ProjectID -> ProjectName 
ProjectID -> Location 

je vais devoir la transformer en BCNF plus tard, donc je ne veux pas manquer quoi que ce soit. Je ne peux pas trouver de dépendance pendant des heures. En ai-je manqué? Ai-je mis quelque chose d'inutile?

Table with columns SocialIN, ProjectID, Hours, EmpName, ProjectName, Location

+0

SocialIN, projectID -> Heures? –

+0

Évidemment non! 987, 30 -> 5; 987, 30 -> 20 donc la contradiction ici –

+0

Y at-il une faute de frappe dans les données? SocialIN 987 vous donne à la fois 'Giroux, Jill' et 'Williams, Tot'. Si les données sont correctes, alors SocialIN-> EmpName est faux. –

Répondre

2

Notez que dans les données, la valeur SocialIN 987 cartes à la fois "Giroux, Jill" et "Williams, Tot", de sorte que le SocialIN ⟶ EmpName FD est incorrect si les données sont correctes. En fait, je pense que les données de la table/image sont erronées. Très probablement, il y a une erreur et Jill et Tot doivent avoir différentes valeurs de SocialIN. Et puis, en tant que Mike Sherrill 'Cat Recall'suggested, le {SocialIN, ProjectID} ⟶ Heures FD devrait tenir. Cependant, en supposant que les données sont correctes, le FD EmpName ⟶ SocialIN est valide (plutôt que le reverse FD), et le FD {EmpName, ProjectID} ⟶ Hours est valide.

Non seulement FD ProjectID ⟶ ProjectName contient-il les données, mais ProjectName ⟶ ProjectID est également conservé dans les données affichées. Compte tenu de cela, ProjectName ⟶ Location contient également, ainsi que {EmpName, ProjectName} ⟶ Hours.

Il existe également plusieurs FD triviaux qui ne valent pas la peine d'être signalés (comme EmpName ⟶ EmpName).

Par conséquent, je pense que l'ensemble des IFD non triviales dans les données fournies est:

  • EmpName ⟶ SocialIN
  • ProjectID ⟶ ProjectName
  • ProjectID ⟶ Lieu
  • ProjectName ⟶ ProjectID
  • ProjectName ⟶ Emplacement
  • {EmpName, ProjectName} ⟶ Heures
  • {EmpName, ProjectID} ⟶ Heures

Si le mappage de Gill et Tot est incorrect et ils ont des valeurs SocialIN séparées, vous pouvez ajouter:

  • SocialIN ⟶ EmpName
  • {SocialIN , ProjectName} ⟶ Heures
  • {SocialIN, projectID} ⟶ Heures
+0

Merci beaucoup pour le temps que vous avez pris pour répondre à la question! Et oui, je crois fermement que les données du tableau sont erronées (le NAS est probablement le plus probable). –

+0

Btw puisqu'il n'y a qu'une seule chose de chaque côté, y a-t-il une différence entre EmpName ⟶ SocialIN et SocialIN ⟶ EmpName merci! –

+2

Oui; les flèches sont très directionnelles. Témoin les données dans le tableau tel qu'il se présente (putativement erroné) ... le EmpName ⟶ SocialIN parce que chaque nom est associé à exactement un SocialIN. À l'heure actuelle, cependant, l'inverse ne s'applique pas parce qu'un SocialIN est associé à deux noms différents. Ou, plus généralement (et sans avoir à débattre de la validité des données), ProjectName ⟶ Location mais Location ne détermine pas ProjectName. –