Ce qui est canonique de couverture, de fermeture et d'étrangers attribut?
Je suis étudiant les concepts de base de données et il y a 3 notions que je ne comprends pas. Canonique de couverture, étrangères de la dépendance fonctionnelle et de la fermeture. J'ai lu la définition sur canonique de couverture, mais je n'ai pas l'image qu'il se rapporte à 3FN et FNBC. La définition canonique de couverture semble être qu'il n'y a pas de superflus attributs et étrangers attributs qui permettent d'attributs qui ne changent pas la fermeture de l'ensemble de dépendances fonctionnelles et de fermeture est l'ensemble de toutes les dépendances fonctionnelles implicite par F, un ensemble de dépendances fonctionnelles.
Mais tout cela est un peu flou et je voudrais à la fois une définition intuitive et la façon de calculer
- Canonique couvrir
- Fermeture
- Étrangères attribut
Dépendances fonctionnelles je crois que je comprends ce que c'est, c'est comme ce qu'aurait été le PK dans un tableau si nous avions ces attributs dans une table.
Il y a un assez grand nombre de réponses à base de données de raffinement - couverture minimale de F (étrangers attributs) mais je l'ai trouvé difficile à lire tous l'ensemble des définitions et de l'algèbre et je préfère avoir des définitions en anglais.
Par exemple, le schéma U={A,B,C,D,E,F,G} et les dépendances fonctionnelles
AB →C
B →E
CF →D
C →A
B →F
EC →F
CD →B
B →C
Sont les fermetures de A+,B+,C+,D+,E-et E+F+ calculée de cette manière?
A+ = A
B+ = BCDEF
C+ = A
D+ = D
E+ = E
F+ = F
?
Si je ne me trompe pas alors BCDEFG est une clé super (”la clé”) en 1FN/2NF mais est-il minimal (3FN)?
Ce qui reste doit être fait pour normaliser cet exemple en 1FN, 2FN et 3FN avec l'aide de fermetures et canonique? Est canonique couvrir le même que peu de couverture?
Je lösningen jusqu'à detta tal så har BCDEFG angetts som ”prima attribut” och Un som ”ickeprima” attribut hommes resonemanget saknas.
Merci pour toute aide
OriginalL'auteur Niklas Rosencrantz | 2012-06-01
Vous devez vous connecter pour publier un commentaire.
Je sais je suis en retard, mais peut-être quelqu'un de gouttes par quelque part.
Je pense que vous avez fait quelques erreurs:
Pour les fermetures:
B+
devrait êtreABCDEF
plutôt queBCDEF
en raison de la FDC → A
C+
devrait êtreAC
(la fermeture d'un attribut contient toujours en elle-même)G+
estG
, voir la raison de la deuxième pucePour calculer les canonique de couverture, de suivre cet algorithme. Vous avez besoin de regarder votre liste de dépendances fonctionnelles:
Pour faire le premier exemple,
AB → C
, vous pouvez calculerAB
la fermeture, ce qui seraitABCDEF
. Puis, vous essayez de supprimerA
, se terminant avecB → C
. Maintenant, vous calculez la fermeture deB
seulement, ce qui est encoreABCDEF
-> vous pouvez supprimer A.À la fin de cette étape, votre FD devrait ressembler à
{B → C, B → E, C F → D, C → A, B → F, C E → F, C D → B, B → C, G → G}
.B → F
: la fermeture deB
estABCDEF
. Si vous supprimez leF
de la dépendance fonctionnelle, se terminant avecB → ∅
, vous avez toujours le même fermeture pourB
comme avant. Répéter pour l'autre FDs.Vous devriez vous retrouver avec
{B →∅, B → E, C F → D, C → A, B →∅, C E → F, C D → B, B → C, G →∅}
.X → ∅
. Vous vous retrouvez avec{B → E, C F → D, C → A, C E → F, C D → B, B → C}
.{B → C E, C F → D, C → A, C E → F, C D → B}
.Pour la superkeys: voir cette SORTE de réponse
Très bien, je vais vous donner un exemple du droit à la réduction. Si vous essayez de réduire les FD
B → F
, vous pouvez voir qu'il existe de la FDB → E
,B → C
etC E → F
. Parce que les trois derniers impliquentB → C E F
, on dit queF
est étrangère dansB → F
. Comme pourG → G
, un attribut implique toujours lui-même (G+
estG
), de sorte que vous pouvez supprimer tout le côté droit.OriginalL'auteur Lukas_Skywalker
Ce qui est arrivé à "G"? Son absence ici est important. Savez-vous pourquoi?
Superkey (un mot, sans espace) ne veut pas dire la clé; cela signifie simplement une clé. L'ensemble de tous les attributs est trivial superkey, donc {ABCDEFG} est un trivial superkey.
Depuis B->C et C->Un (une dépendance transitive), vous pouvez réduire le trivial superkey à {BCDEFG}. Plusieurs réductions sont possibles, de sorte que {BCDEFG} n'est pas un minimum superkey. {BCDEFG} est un réductible superkey.
Un des minimes superkeys est {BG}. (Je pourrais dire, "{BG} est irréductible superkey.") Il y a d'autres minimale superkeys.
Juste au cas où vous avez un malentendu commun de cela, il n'est pas généralement possible de normaliser à 2FN et pas plus, ou à normaliser à 3FN et pas plus. L'élimination partielle des principales dépendances ("la normalisation de 2FN") pouvez laisser toutes vos relations dans la 5NF.
L'étape suivante consiste à déterminer toutes les candidat clés (tous les irréductibles superkeys).
OriginalL'auteur Mike Sherrill 'Cat Recall'
Ma réponse est dérivé de l'Algorithme donné dans le Système de Base de données de Concepts par Korth.
Sont les fermetures de A+,B+,C+,D+,E-et E+F+ calculée de cette manière?
Étapes pour calculer la fermeture de (A,B,C,D,E,F) de F disons prendre pour B
B -> E
) dansF
neB
est sous-ensemble de résultatresult(i.e B) = result(i.e B) U {E}
De cette façon, la fermeture de la suite sera:
A+ = A
B+ = ABCDEF
C+ = AC
D+ = D
E+ = E
F+ = F
Comment vérifier un attribut qui lui est étranger:
Un attribut Un est étrangère dans une dépendance alpha(AB) -> beta(C) si
1) Un appartient à la bêta(qui n'est pas dans le cas actuel), puis de créer de nouveaux FD
F' = (F-{alpha -> beta}) U {alpha -> (beta - alpha)}
et de vérifier si
alpha+ under F'(**not F**) includes A
, puisA
est étrangère dansbeta
.2) Un appartient à l'alpha(qui est correct), puis créer un nouveau
gamma{B} = alpha({AB}) - {A}
et de vérifier sigamma+(i.e B+)
sous**F** i.e ABCDEF
comprend tous les attributsbeta({C})
et ce qui est vrai. Donc Un est étrangère dansAB->C
.de même vérifier si
C
est étrangère dansAB->C
. Par-dessus suggéré algoF' : AB -> NULL; B →E; CF →D; C →A; B →F; CE →F; CD →B; B →C
AB+
sousF'
je.eABCDEF
qui comprendC
. DoncC
est étrangère dansAB-> C
.Comment calculer canonique?
Algo:
F' = F
A->B and A->C
puis le remplacer parA->BC
(par l'union de la règle)Ici, le F':
AB -> C; B-> CEF; C -> A; CD-> B; CE-> F; CF-> D
A is extraneous in AB->C
donc enleverA from AB->C
, de sorte qu'il devientB->C
et mise à jourF'
.(En expliquant autres itérations comme ci-dessous:
itr2:
F' : B -> C; B-> CEF; C -> A; CD-> B; CE-> F; CF-> D
F' : B-> CEF; C -> A; CD-> B; CE-> F; CF-> D
Maintenant, vérifiez
C in B-> CEF
, ce qui n'est pas étrangerCase E , qui n'est également pas étrangère.
vérifiez F ,ce qui est superflu.
Ainsi, de nouvelles
F' : B-> CE; C -> A; CD-> B; CE-> F; CF-> D
itr3:
F' : B-> CE; C -> A; CD-> B; CE-> F; CF-> D
après cela, il n'est pas superflu d'attribut trouvé.
De manière canonique de couverture de F sont :
B-> CE
C -> A
CD-> B
CE-> F
CF-> D
Laissez-moi savoir si vous avez une erreur dans la logique proposée ci-dessus.
OriginalL'auteur Sanjeev
oui Canonique de couverture est la même que peu de couverture.
et toutes les fermetures sont corrects
pour faire l'exemple en 3FN..
et si non, puis d'en ajouter un rapport qui contient uniquement que candidat à la clé.
et c'est fait..!!
OriginalL'auteur Shreya