Question

Say R a les attributs suivants: {a, b, c, d, e} et a les dépendances fonctionnelles suivantes:

A -> BC
CD -> E
B -> D
E -> A

Et il y a une décomposition composée de R1 (A, B, C) et R2 (A, D, E). Comment puis-je calculer les dépendances fonctionnelles de R1 et R2?

La question réelle sur les devoirs me demande si R1 / R2 se trouve dans BCNF / 3NF / Ni l'un ni l'autre, mais je sais déjà faire cette partie (voir si le côté gauche des FD est contenu dans les clés candidates).

Était-ce utile?

La solution

L'astuce consiste à considérer les clés de FD comme des clés déterminantes, non pas sur votre schéma donné, mais sur des projections.

Par exemple, dans votre schéma de départ {ABCDE}, le fd a -> BC dit qu'un ({a}, en fait) constitue une clé sur ce tableau, projeté jusqu'à {ABC}. Autrement dit, l'union de LHS et RHS de la FD, définit quelle projection, et le LHS définit la clé de cette projection.

Maintenant, tournez-vous vers la version décomposée, dans laquelle vous avez Deux distincts Tables (schémas) {ABC} et {ade}.

Vos premier et dernier FD sont toujours exprimables dans ces schémas. Le premier FD sur le premier schéma / table et le dernier sur ce dernier.

Mais les deux autres sont devenus inexprimables (inexprimables En tant que FD, c'est) à cause de la décomposition. Cela signifie, pour la conception globale de la base de données, c'est que vous devrez déclarer / définir / implémenter une contrainte de base de données qui dit et fait exactement la même chose que la FD d'origine. (La recette générale pour ce faire est la suivante: Reconstituer le tableau d'origine en rejoignant à nouveau les décompositions ensemble, projetez qui se joigne aux attributs mentionnés et appliquez la clé de cette projection. ces exercices de cours.)

Décider si R1 / R2 est ou non dans XNF, doit maintenant être fait en considérant uniquement ceux des FD d'origine qui sont toujours exprimables (A-> BC).

Je suppose que vous devriez arriver à la conclusion que R1 est en 3 / BC NF, et R2 ne l'est toujours pas.

Des exemples comme ceux-ci (et la plupart des exercices de cours sont de cette nature) illustrent en fait à quel point le concept de normalisation est ridiculement sur le plan de la conception de la base de données. Ce qui compte, c'est l'image globale qui comprend TOUT les contraintes qui s'appliquent à la base de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top