Frage

Auf diese Frage gibt es hier bereits eine Antwort:

Kennt jemand Papiere/Bücher/etc.die Muster für Datenbanken dokumentieren?Eine gängige Faustregel lautet beispielsweise, dass jede Tabelle einen Primärschlüssel haben sollte und dass dieser Schlüssel vorhanden sein sollte ohne Informationsgehalt.Ich habe mich also gefragt, ob jemand ein Buch geschrieben oder Artikel zu Entwurfsmustern für den Entwurf relationaler Datenbanken veröffentlicht hat?


@Gaius,

Das ist die Frage, die ein Datenbankdesigner abwägen muss: Wie hoch ist die wahrscheinliche Stabilität der Datenbankstruktur?Bei einem ausreichend langen Horizont ist nichts stabil.Oder anders ausgedrückt: Bei einem ausreichend langen Horizont ist alles dem Wandel unterworfen.Ein Ersatzschlüssel sollte (theoretisch) niemals seine Bedeutung ändern, da er von Anfang an nie eine Bedeutung hatte.

Ich denke, die andere Sache, die in diesem speziellen Entwurfsszenario berücksichtigt werden muss, ist, wer den Primärschlüssel sehen wird.Wenn der Primärschlüssel etwas ist, auf das sich Endbenutzer tatsächlich beziehen müssen, ist es sinnvoll, ihn für sie verständlich zu gestalten.Aber ich kann mir nicht viele Fälle vorstellen, in denen ein Endbenutzer einen Primärschlüssel sehen muss;Normalerweise ist der Primärschlüssel vorhanden, damit die DB-Engine bestimmte Vorgänge beschleunigen kann.

Mein ursprünglicher Gedanke bei der Fragestellung bestand darin, Entwurfsmuster für den Datenbankentwurf zu finden, die von erfahreneren Datenbankdesignern als mir kodifiziert wurden, um hoffentlich einige leicht vermeidbare Fehler zu vermeiden.Es wäre interessant zu lesen, ob jemals jemand Anti-Patterns für das Datenbankdesign kodifiziert hätte.

War es hilfreich?

Lösung

Konkret zu den Schlüsseln:Ich stimme der seltsamen Vorstellung, dass Schlüssel ohne Bedeutung sein müssen, überhaupt nicht zu.Im Allgemeinen betrachte ich eine Datenbank als eine Sammlung von Fakten;Sobald Sie anfangen, beliebige Zahlen (wie generierte Schlüssel) und andere irrelevante Informationen hinzuzufügen, sollte dies ein Warnzeichen sein.Ich empfehle Dies im Artikel von Joe Celko Weitere Informationen zu Schlüsseln.

Allgemeinere Hinweise:

Vorschläge für Schema-Designs/Datenmodelle für verschiedene Unternehmen:David C.Heu:Datenmodellmuster:Konventionen des Denkens ziemlich alt, aber es gibt einen Grund, warum es immer noch gedruckt ist
http://www.dorsethouse.com/books/dmp.html

Vielleicht nicht sehr musterhaft, aber trotzdem sehr gut:Stephane Faroult, Peter Robson:Die Kunst von SQLhttp://oreilly.com/catalog/9780596008949/

Noch eins, was ich empfehlen kann:Vadim Tropashko:SQL-Entwurfsmuster – Der Expertenleitfaden zur SQL-Programmierunghttp://www.rampant-books.com/book_2006_1_sql_coding_styles.htm

Systematisches Lehrbuch zur Datenmodellierung:Graeme Simsion und Graham Witt, „Grundlagen der Datenmodellierung“http://www.elsevierdirect.com/product.jsp?isbn=9780126445510

Vielleicht sind Sie tatsächlich auf der Suche nach einem „Styleguide“?In diesem Fall:Joe Celko:SQL-Programmierstilhttp://www.elsevierdirect.com/product.jsp?isbn=9780120887972

Andere Tipps

Bücher von E.F.Codd und C.J.Datum sind die offensichtlichsten Antworten.Ich habe dieses spezielle Buch nicht gelesen, aber ich kenne die Autoren, es ist wahrscheinlich ziemlich gut.

Angewandte Mathematik für Datenbankprofis von Lexx de Haan und Toon Koppelaars.

Eigentlich denke ich, dass die Faustregel normalerweise darin besteht, nach Möglichkeit einen natürlichen Schlüssel anstelle eines Ersatzschlüssels zu verwenden ...

Wenn ich also beispielsweise eine Invoice-Tabelle und eine InvoiceDetail-Tabelle habe, können wir wahrscheinlich InvoiceNumber als Primärschlüssel für die erste Tabelle verwenden.Es existiert bereits in unseren Daten und wäre (ich nehme an?) einzigartig.Für die zweite Tabelle werden wir jedoch wahrscheinlich einen Ersatzschlüssel benötigen – unabhängig davon, ob er zusammengesetzt mit der Rechnungsnummer verknüpft ist oder nicht.

Auf jeden Fall zurück zur ursprünglichen Frage...Der Link von hometoast sollte Ihnen den Einstieg erleichtern.

– Kevin Fairchild

Um genau zu antworten: Ja.Es gibt jede Menge Informationen über „gutes“ Datenbankdesign.Obwohl die Faustregel Ihres Beispiels sicherlich fraglich ist.

SQL-Anti-Patterns von Bill Karwin ist sehr leicht zu lesen (nicht trocken) und erklärt in ziemlich klaren Worten eine Reihe verschiedener potenzieller Fallstricke, wie Sie sie möglicherweise nutzen und wie/warum man die Dinge richtig macht.

Die Verwendung von Primärschlüsseln mit geschäftlicher Bedeutung („natürliche Schlüssel“) hat sicherlich ihre Vorteile, kann aber die Umgestaltung Ihrer Datenbank erleichtern sehr schwierig.Seien Sie vorsichtig, insbesondere wenn Grund zu der Annahme besteht, dass sich die Datenbankstruktur im Laufe der Zeit ändern wird.

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