Hallo Datenbankadministratoren. Vor kurzem habe ich über Normalisierung gelesen, um meine Fähigkeiten im Datenbankdesign zu verbessern. Ich bin jedoch etwas verwirrt darüber, wann ich diese Technik anwenden soll. Bevor ich etwas über Normalisierung lernte, las ich normalerweise das Szenario / die Beschreibung in den Anforderungen und erstellte ein ER-Diagramm (unter Verwendung der Chen-Notation), wobei Substantive als Entitäten und Verben als Hinweise auf ihre Beziehungen verwendet wurden, und führte dann direkt die zu erstellenden SQL-Anweisungen aus die Tische.
Im Moment scheint es mir, dass die Normalisierung durchgeführt wird, nachdem ein ER-Diagramm entworfen und dann auf jede Entität angewendet wurde, die ein mehrwertiges Attribut enthält.
Bin ich richtig darin zu denken? Oder soll ich vor dem Erstellen eines ER-Digramms eine Normalisierung durchführen, möglicherweise nachdem ich die möglichen Attribute eines Systems aufgelistet habe?
quelle
Es hört sich so an, als hätten Sie es irgendwo in einem CS-Kurs oder ähnlichem gelernt (was IMO gut ist). Ich habe es auch in einigen Klassen gelernt und mir hat der Ansatz des Lehrers gefallen:
Kollegen von anderen Universitäten, Kursen, ... sagten mir, sie hätten große Artikel erhalten, die die Normalisierung auf sehr theoretische (daher ziemlich langweilige) Weise erklärten, und sie hätten keine Ahnung, wie sie dieses theoretische Wissen in ein ER-Diagramm übertragen könnten.
Andererseits verbringen wir viele Stunden damit, zu lernen, wie ER-Diagramme richtig entworfen werden, welche Ideen eine gute und wartbare Datenbank ausmachen, wie auftretende Probleme im Diagramm sowie in der Datenbank (mit SQL) selbst gelöst werden und vieles mehr . Nachdem diese Konzepte durchdacht waren, wurde uns gesagt, "was Sie getan haben, heißt" Normalisierung "". Sie haben dies und das beim Entwerfen der Notaufnahme getan. Dies ist die erste Form der Normalisierung.
Ein Satz, der mir bei solchen Fragen meines Lehrers im Kopf hängen geblieben ist, lautet: "Mit einem gut durchdachten und richtig gestalteten ER-Modell haben Sie BEREITS eine normalisierte Datenbank, sodass Sie nicht über alle Formen der Normalisierung nachdenken müssen."
Da es bei Ihrer Frage nicht darum geht, wie / WARUM Normalisierung verwendet wird, sondern WANN im Entwurfsprozess, gibt Ihnen mein langer Text oben eine mögliche Antwort: Wenn Sie die Prinzipien eines guten DB-Entwurfs verstanden haben, ist Ihr endgültiges ER-Modell normiert (z Sie haben richtige Join-Tabellen erstellt, verwendete Fremdschlüssel waren anwendbar, ...). Ich denke, es ist ein Prozess, der mit der Einrichtung der Tabellen, ihren Beziehungen usw. Hand in Hand gehen muss.
Natürlich ist eine Normalisierung nicht immer erforderlich oder erwünscht, aber in den meisten Fällen erspart Ihnen das "Zeichnen" und Durchdenken der Notaufnahme die Anwendung der Normalisierung, indem Sie sich das Modell ansehen und denken: "OK, 1. Form, sind meine Werte so atomar wie möglich ""
quelle
Die Normalisierung als Prozess erfolgt nach der logischen Modellierung und vor dem physischen Modell. Zu oft überspringen Benutzer das eigentliche logische Modell und erhalten ein physisches Modell mit geschäftsfreundlichen Namen. Das logische Modell sollte die Datenentitäten und -beziehungen definieren (normalerweise verwechselt mit Tabelleneinschränkungen), daher der Begriff "ERD".
Da physikalische Modelle häufig als "Normalformen" diskutiert werden, müssen die Tabellen bereits "normalisiert" worden sein, oder? Aus gestalterischer Sicht besteht der Prozess der Umwandlung in ein physikalisches Modell darin, dass Sie die Normalisierung anwenden. In diesem Fall werden Entitäten zu Beziehungen (oder Tabellen) und die Beziehungen werden als Nebenprodukt des Normalisierungsprozesses durch Einschränkungen erzwungen.
Mit anderen Worten, dein Denken ist richtig :)
quelle