Frage

sagen r die folgenden Attribute: {a, b, c, d, e} und hat die folgenden funktionellen Abhängigkeiten: generasacodicetagpre.

und es gibt eine Zersetzung, die aus R1 (A, B, C) und R2 (A, D, E) besteht.Wie kann ich die funktionalen Abhängigkeiten von R1 und R2 berechnen?

Die tatsächliche Frage in den Hausaufgaben fragt mich, ob R1 / R2 in BCNF / 3NF / weder ist, aber ich weiß bereits, wie er diesen Teil erledigt (siehe, ob die linke Seite der FD in den Kandidatenschlüsseln enthalten ist).

War es hilfreich?

Lösung

Der Trick ist, an FDs als definierende Schlüssel zu denken, nicht auf Ihrem angegebenen Schema, sondern auf Projektionen.

Beispielsweise, in Ihrem Startschema {abcde}, sagt der FD A -> BC, dass A ({A}, eigentlich) einen Schlüssel auf dieser Tabelle darstellt, der auf {ABC} nach unten projiziert wird. Das heißt, die Vereinigung von LHS und RHS der FD, definiert, welche Projektion, und die LHS definiert den Schlüssel auf dieser Projektion.

wenden Sie sich jetzt an die zersetzte Version, in der Sie zwei unterschiedliche -tabellen (Schemas) {ABC} und {ADE} haben.

Ihre ersten und letzten FD sind in diesen Schemas noch ausgebildet. Der erste FD am ersten Schema / Tisch und letztlich auf diesem.

aber die restlichen zwei sind unaussprechlich geworden (unausdrücklich als fd , das ist) aufgrund der Zersetzung. Was dies bedeutet, für das gesamte Datenbankdesign, dass Sie eine Datenbankeinschränkung deklarieren / definieren / realisieren müssen, die besagt und genau das Gleiche wie der ursprüngliche FD tut. (Das allgemeine Rezept dafür ist wie folgt: rekonstituieren Sie die ursprüngliche Tabelle erneut, indem Sie die Zersetzungen wieder zusammenschließen, das Projekt, das sich den genannten Attributen anschließt, und den Schlüssel zu dieser Projektion durchsetzen. Dies wird erfahren, dass dies nicht gerade trivial ist, wenn diese Kursübungen.)

Entscheidend, ob R1 / R2 in XNF sind oder nicht, muss nun nur diejenigen der ursprünglichen FD erfolgen, die noch nicht ausgebildet sind (A-> BC).

Ich nehme an, Sie sollten zu dem Schluss ankommen, dass sich R1 in 3 / BC NF befindet, und R2 ist immer noch nicht.

Beispiele wie diese (und die meisten Kursübungen sind von dieser Art) eigentlich veranschaulichen, wie lächerlich das Konzept der Normalisierung auf dem Gebiet des Datenbankdesigns liegt. Was zählt, ist das Gesamtbild, das alle die Einschränkungen enthält, die für die Datenbank gelten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top