Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Braucht meine Tabelle mehr Normalisierung?

Die Normalisierung erfordert die Kenntnis funktionaler Abhängigkeiten (FDs) und Join-Abhängigkeiten (FDs). Du hast sie nicht gegeben.

Ihre Bewerbung Wir können Ihnen die FDs und JDs nur sagen, wenn wir genau wissen, was "die Beziehung ist, die ich ausdrücken wollte" (dh Prädikat) für jede Tabelle (dh bis zu dem Punkt, an dem wir eine Situation betrachten und für jede mögliche Zeile wissen könnten, ob es macht aus dem Prädikat eine wahre Aussage und gehört damit in die Tabelle) und welche möglichen Situationen genau entstehen können (über "Geschäftsregeln" über mögliche Anwendungssituationen, äquivalent zu Beschränkungen auf mögliche Datenbankzustände).

Deine "Schlüssel" Du hast keine FDs gegeben. Sie haben gerade einen Kandidatenschlüssel (CK) und einen "eindeutigen Schlüssel" angegeben. Aber Sie können nicht einige oder alle CKs bestimmen, ohne bestimmte Dinge über die FDs zu wissen. Wenn Sie also CKs geben, ist das dasselbe wie zu sagen, dass es bestimmte FDs gibt und nicht gibt. Sie müssen uns sagen, was Sie uns gegeben haben, wenn Sie einige Spaltensätze mit der Bezeichnung PK oder "eindeutiger Schlüssel" angeben:Ist ein "eindeutiger Schlüssel" ein CK (der keine kleinere eindeutige Teilmenge enthält) oder nur ein Superschlüssel (eindeutig)? Hast du alle CKs gegeben oder könnte es noch andere geben? Könnte es andere Superschlüssel als die Obermengen der gegebenen geben? Es ist am hilfreichsten, wenn Sie uns einfach genau sagen, welche FDs Sie (über eine minimale Deckung) halten und welche Sie nicht halten.

Vermutungen
Ich habe keine Ahnung, was is_calculated ist ist für.
Vielleicht ein bestimmtes date und meal Paar hat genau einen content ?

TL;DR Sie müssen wirklich jeden möglichen Satz von Spalten überprüfen, um zu sehen, ob er jede andere Spalte funktional bestimmt. Dh ob für jeden Datenbankzustand eine Unterzeile von Werten für den Satz von Spalten nur mit einem Wert für die Spalte erscheint. Ohne ein klares Verständnis Ihrer Prädikate und Ihrer Anwendung können wir nur raten. Sie können die Arbeit wie folgt reduzieren:Wenn eine Menge von Spalten eindeutig ist, dann bestimmen ihre Obermengen alle anderen Spalten. Wenn eine Gruppe von Spalten minimal eindeutig ist (ein CK ist), dann bestimmt keine ihrer kleineren Untergruppen alle anderen Spalten. Sie können nach Gegenbeispielen zu mutmaßlichen FDs suchen, bei denen zwei Zeilen dieselbe Unterzeile mit Werten für eine mutmaßliche Determinante, aber unterschiedliche Werte für ein mutmaßlich bestimmtes Attribut haben können. Armstrongs Axiome erzeugen alle FDs, die durch gegebene impliziert werden.

JDs Die Normalisierung auf 4NF und 5NF beinhaltet das Aufteilen der Tabelle in mehrere Tabellen, um JDs zu eliminieren, die nicht von CKs impliziert werden. Das Prädikat einer Tabelle kann genau dann als UND von anderen ausgedrückt werden, wenn ein JD gilt, das den Spaltensätzen der Prädikate entspricht. Eine Relation ist in 5NF, wenn jede Konjunktion in jedem JD eine andere auf mindestens einem CK überlappt. (Zugehörigkeitsalgorithmus von Fagin.)

PS Wenn Sie sich für Einschränkungen interessieren, haben Sie einen verloren, als Sie von einem Tisch zu zwei gewechselt sind?