Was ist die kanonische Abdeckung, Verschluss-und Fremd-Attribut?
Ich studiere Datenbank-Konzepte und es gibt 3 Begriffe, die ich nicht verstehe. Canonical cover, überflüssige funktionale Abhängigkeit und Schließung. Ich lese die definition über kanonische bedecken, aber ich bekomme nicht das Bild, wie es bezieht sich auf die 3NF und die BCNF. Die definition der kanonischen Abdeckung zu sein scheint, dass es gibt keine überflüssige Attribute und überflüssige Attribute bedeuten Attribute, die sich nicht ändern, die Schließung der Menge der funktionalen Abhängigkeiten und der Schließung ist die Menge aller funktionalen Abhängigkeiten implizit durch F eine Menge von funktionalen Abhängigkeiten.
Aber all dies ist ein wenig unscharf und ich möchte sowohl eine intuitive definition, und wie zu berechnen
- Kanonischen cover
- Schließung
- Überflüssige Attribut
Funktionale Abhängigkeiten ich glaube, ich verstehe, was es ist, es ist wie, was gewesen wäre, die PK in einer Tabelle, wenn wir hatten diese Attribute in einer Tabelle.
Es ist eine ziemlich umfassende Antwort auf Datenbank-Verfeinerung - minimale Abdeckung von F (überflüssige Attribute) aber ich fand es schwer zu Lesen Sie alle Definitionen und algebra, und ich hätte lieber Definitionen in plain English.
Zum Beispiel, mit dem schema U={A,B,C,D,E,F,G} und die funktionalen Abhängigkeiten
AB →C
B →E
CF →D
C →A
B →F
CE →F
CD →B
B →C
Sind die Verschlüsse A+,B+,C+,D+,E+,F+, berechnet auf diese Weise?
A+ = A
B+ = BCDEF
C+ = A
D+ = D
E+ = E
F+ = F
?
Wenn ich mich nicht Irre, dann BCDEFG ist ein super-Schlüssel ("der ganze Schlüssel") in 1NF/2NF, aber es ist minimal (3NF)?
Was sollte getan werden, um zu normalisieren, diesem Beispiel zu 1NF, 2NF und 3NF mit Hilfe von Sperrungen und kanonischen cover? Ist canonical cover die gleiche wie die minimale Abdeckung?
Ich lösningen till detta tal så har BCDEFG angetts som "prima attribut" och Ein som "ickeprima" attribut Männer resonemanget saknas.
Vielen Dank für jede Hilfe
InformationsquelleAutor Niklas Rosencrantz | 2012-06-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, ich bin spät, aber vielleicht hat jemand fällt irgendwann.
Ich denke, dass Sie einige Fehler gemacht:
Für die Schließungen:
B+
sollteABCDEF
eher alsBCDEF
weil der FDC → A
C+
sollteAC
(Schließung ein Attribut enthält immer selbst)G+
istG
finden Sie unter Grund die zweite KugelZur Berechnung der kanonischen Abdeckung, Folgen Sie diesen Algorithmus. Sie müssen sich an Ihre Liste mit den funktionalen Abhängigkeiten:
Um das erste Beispiel
AB → C
können Sie berechnenAB
s-Verschluss, das wäreABCDEF
. Sie dann versuchen, Sie zu entfernenA
Ende mitB → C
. Nun berechnen Sie die Schließung derB
nur, die ist nochABCDEF
-> Sie entfernen können A.Am Ende von diesem Schritt Ihre FD Aussehen sollte
{B → C, B → E, C F → D, C → A, B → F, C E → F, C D → B, B → C, G → G}
.B → F
: die Schließung vonB
istABCDEF
. Wenn Sie entfernen dieF
aus der funktionalen Abhängigkeit, der am Ende mitB → ∅
Sie immer noch die gleiche Schließung fürB
wie vorher. Wiederholen für die andere FDs.Sie sollten am Ende mit
{B →∅, B → E, C F → D, C → A, B →∅, C E → F, C D → B, B → C, G →∅}
.X → ∅
. Sie am Ende mit{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}
.Für die superkeys: siehe diese SO beantworten
Okay, ich werde Ihnen ein Beispiel geben, das Recht, Minderung zu. Wenn Sie versuchen, zu reduzieren die FD
B → F
Sie sehen können, gibt es die FDB → E
,B → C
undC E → F
. Da die drei letztgenannten bedeutenB → C E F
man sagt, daßF
ist Fremd inB → F
. FürG → G
ein Attribut bedeutet immer sich selbst (G+
istG
), so können Sie entfernen die Rechte Seite.InformationsquelleAutor Lukas_Skywalker
Was passiert ist "G"? Seine Abwesenheit ist hier signifikant. Wissen Sie, warum?
Superkey (ein Wort, keine Leerzeichen) bedeutet nicht, dass die ganze; es bedeutet nur ein Schlüssel. Die Menge aller Attribute, ist eine triviale superkey, also {ABCDEFG} ist ein triviales superkey.
Da B->C und C->Eine (transitive Abhängigkeit), können Sie reduzieren die triviale superkey {BCDEFG}. Mehrere weitere Reduzierungen sind möglich, so dass {BCDEFG} ist kein minimales superkey. {BCDEFG} ist eine reduzierbar superkey.
Eine der minimal superkeys {BG}. (Ich könnte auch sagen, "{BG} eine irreduzible superkey.") Es gibt andere minimale superkeys.
Nur für den Fall, Sie haben eine gemeinsame Missverständnis, das ist in der Regel nicht möglich, eine Normalisierung zu 2NF und nicht höher oder Normalisierung zu 3NF und nicht höher. Die Eliminierung partieller Abhängigkeiten Schlüssel ("Normalisierung zu 2NF") verlassen kann, alle Ihre Beziehungen in 5NF.
Im nächsten Schritt bestimmen Sie alle Kandidaten-Schlüssel (alle irreduziblen superkeys).
InformationsquelleAutor Mike Sherrill 'Cat Recall'
Meine Antwort ist abgeleitet von dem Algorithmus in Database System Concepts by Korth.
Sind die Verschlüsse A+,B+,C+,D+,E+,F+, berechnet auf diese Weise?
Schritte zu berechnen, die Schließung von (A,B,C,D,E,F) unter F sagen wir nehmen für B
B -> E
) inF
tunB
ist Teilmenge von Ergebnisresult(i.e B) = result(i.e B) U {E}
In dieser Weise die Verschlüsse der folgenden:
A+ = A
B+ = ABCDEF
C+ = AC
D+ = D
E+ = E
F+ = F
Zu prüfen, wie ein Attribut ist eine zusätzliche:
Ein Attribut Eine ist Fremd in Abhängigkeit von alpha(AB) -> beta - (C) wenn
1) Eine gehört zur beta(die nicht im aktuellen Fall), dann erstellen Sie neue FD
F' = (F-{alpha -> beta}) U {alpha -> (beta - alpha)}
und prüfen Sie, ob
alpha+ under F'(**not F**) includes A
, dannA
ist Fremd inbeta
.2) Eine gehört alpha(was richtig ist), dann erstellen Sie eine neue
gamma{B} = alpha({AB}) - {A}
und überprüfen Sie, obgamma+(i.e B+)
unter**F** i.e ABCDEF
enthält alle Attribute inbeta({C})
und was wahr ist. So Eine ist Fremd inAB->C
.ebenso prüfen, ob
C
ist Fremd inAB->C
. Also von den oben vorgeschlagen algoF' : AB -> NULL; B →E; CF →D; C →A; B →F; CE →F; CD →B; B →C
AB+
unterF'
ich.eABCDEF
umfasstC
. SoC
ist Fremd inAB-> C
.Wie die Berechnung kanonische cover?
Algo:
F' = F
A->B and A->C
dann ersetzen durchA->BC
(union rule)Hier die F' geworden :
AB -> C; B-> CEF; C -> A; CD-> B; CE-> F; CF-> D
A is extraneous in AB->C
so entfernenA from AB->C
, so dass es zurB->C
- und update -F'
.(Erläuterung weitere Iterationen wie folgt:
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
Überprüfen Sie nun
C in B-> CEF
, der ist nicht FremdPrüfen Sie E , was auch nicht Fremd.
schauen Sie F ,die Fremd ist.
So neue
F' : B-> CE; C -> A; CD-> B; CE-> F; CF-> D
itr3:
F' : B-> CE; C -> A; CD-> B; CE-> F; CF-> D
nach diesem gibt es keine weitere überflüssige Attribut gefunden.
Also die kanonische cover von F sind :
B-> CE
C -> A
CD-> B
CE-> F
CF-> D
Lassen Sie mich wissen, wenn Sie haben einige Fehler in der Logik oben vorgeschlagen.
InformationsquelleAutor Sanjeev
ja Kanonische Abdeckung ist die gleiche wie die minimale Abdeckung.
und alle Verschlüsse korrekt sind
um das Beispiel in 3NF..
und wenn nicht, dann fügen Sie eine weitere Beziehung, die nur enthält, dass Kandidaten-Schlüssel.
und fertig..!!
InformationsquelleAutor Shreya