Datenbank Design. Best Practices

In Erwartung des Beginns des nächsten Flusses mit der Rate "Datenbank" Wir haben ein kleines Autorenmaterial mit wichtigen Tipps zum Design einer Datenbank vorbereitet. Wir hoffen, dass dieses Material für Sie nützlich sein wird.

Datenbank Design. Best Practices

Datenbanken gibt es überall: von den einfachsten Blogs und Verzeichnissen bis hin zu zuverlässigen Informationssystemen und großen sozialen Netzwerken. Ob die Datenbank einfach oder komplex ist, ist nicht so wichtig, sondern es kommt darauf an, sie richtig zu gestalten. Wenn eine Datenbank gedankenlos und ohne klares Verständnis des Zwecks entworfen wird, ist sie nicht nur wirkungslos, sondern die weitere Arbeit mit der Datenbank wird für Benutzer zu einer echten Qual, einem undurchdringlichen Wald. Hier finden Sie einige Tipps zum Datenbankdesign, die Ihnen dabei helfen, ein nützliches und benutzerfreundliches Produkt zu erstellen.

1. Bestimmen Sie, wozu die Tabelle dient und wie sie aufgebaut ist

Datenbank Design. Best Practices

Heutzutage unterstützen Entwicklungsmethoden wie Scrum oder RAD (Rapid Application Development) IT-Teams bei der schnellen Entwicklung von Datenbanken. Allerdings ist die Versuchung im Streben nach Zeit sehr groß, direkt mit dem Aufbau einer Basis zu beginnen und sich vage vorzustellen, was das Ziel selbst ist und wie die Endergebnisse aussehen sollen.
 
Es scheint, als ob sich das Team auf effiziente und schnelle Arbeit konzentriert, aber das ist eine Fata Morgana. Je tiefer und schneller Sie in die Tiefe des Projekts eintauchen, desto länger wird es dauern, Fehler im Datenbankdesign zu identifizieren und zu ändern.

Daher müssen Sie zunächst den Zweck Ihrer Datenbank definieren. Für welche Art von Anwendung wird die Datenbank entwickelt? Arbeitet der Benutzer nur mit Datensätzen und muss auf Transaktionen achten, oder interessiert er sich mehr für Datenanalysen? Wo soll die Basis aufgestellt werden? Wird es das Kundenverhalten verfolgen oder einfach nur Kundenbeziehungen verwalten? 

Je früher das Designteam diese Fragen beantwortet, desto reibungsloser verläuft der Datenbankdesignprozess.

2. Welche Daten soll ich zur Speicherung wählen?

Datenbank Design. Best Practices

Vorausplanen. Gedanken darüber, was die Site oder das System, für die die Datenbank entworfen wird, in Zukunft tun wird. Es ist wichtig, über die einfachen Anforderungen der technischen Spezifikationen hinauszugehen. Denken Sie bitte nicht über alle möglichen Arten von Daten nach, die ein Benutzer jemals speichern wird. Überlegen Sie stattdessen, ob Nutzer Beiträge schreiben, Dokumente oder Fotos hochladen oder Nachrichten austauschen können. Wenn dies der Fall ist, müssen Sie ihnen Speicherplatz in der Datenbank zuweisen.

Arbeiten Sie mit dem Team, der Abteilung oder der Organisation zusammen, deren Designbasis in Zukunft unterstützt werden soll. Kommunizieren Sie mit Menschen auf verschiedenen Ebenen, vom Kundendienstspezialisten bis zum Abteilungsleiter. So erhalten Sie mithilfe des Feedbacks eine klare Vorstellung von den Anforderungen des Unternehmens. 

Selbst innerhalb derselben Abteilung kommt es zwangsläufig zu Konflikten zwischen den Bedürfnissen der Benutzer. Scheuen Sie sich in diesem Fall nicht, sich auf Ihre eigene Erfahrung zu verlassen und einen Kompromiss zu finden, der für alle Seiten passt und dem Endziel der Datenbank gerecht wird. Seien Sie versichert: In Zukunft erhalten Sie +100500 Karma und einen Berg Kekse.

3. Modellieren Sie Daten sorgfältig

Datenbank Design. Best Practices

Bei der Modellierung von Daten sind mehrere wichtige Punkte zu beachten. Wie bereits erwähnt, bestimmt der Zweck der Datenbank, welche Methoden bei der Modellierung verwendet werden. Wenn wir eine Datenbank für die Online-Datenverarbeitung (OLTP) entwerfen, also zum Erstellen, Bearbeiten und Löschen von Datensätzen, verwenden wir die Transaktionsmodellierung. Wenn die Datenbank relational sein muss, ist es am besten, eine mehrdimensionale Modellierung zu verwenden.

Bei der Modellierung werden konzeptionelle (CDM), physische (PDM) und logische (LDM) Datenmodelle erstellt. 

Konzeptionelle Modelle beschreiben Entitäten und die darin enthaltenen Datentypen sowie die Beziehungen zwischen ihnen. Teilen Sie Ihre Daten in logische Blöcke auf – das macht das Leben viel einfacher.
Die Hauptsache ist Mäßigung, übertreibe es nicht.

Wenn es sehr schwierig ist, eine Entität in einem Wort oder einer Phrase zu klassifizieren, ist es an der Zeit, Untertypen (untergeordnete Entitäten) zu verwenden.

Wenn eine Entität ihr eigenes Leben führt, über Attribute verfügt, die ihr Verhalten und ihr Aussehen beschreiben, sowie über Beziehungen zu anderen Objekten, dann können Sie bedenkenlos nicht nur einen Subtyp, sondern auch einen Supertyp (übergeordnete Entität) verwenden. 

Wenn Sie diese Regel vernachlässigen, werden andere Entwickler in Ihrem Modell verwirrt sein und die Daten und die Regeln für deren Erfassung nicht vollständig verstehen.

Konzeptionelle Modelle werden mithilfe logischer Modelle implementiert. Diese Modelle sind wie eine Roadmap für das physische Datenbankdesign. Im logischen Modell werden Geschäftsdatenentitäten identifiziert, Datentypen bestimmt und der Status des Regelschlüssels bestimmt, der die Beziehungen zwischen Daten regelt.

Anschließend wird das logische Datenmodell mit der vorab ausgewählten DBMS-Plattform (Datenbankverwaltungssystem) verglichen und ein physisches Modell erhalten. Es beschreibt, wie Daten physisch gespeichert werden.

4. Verwenden Sie die richtigen Datentypen

Datenbank Design. Best Practices

Die Verwendung des falschen Datentyps kann zu ungenaueren Daten, Schwierigkeiten beim Zusammenführen von Tabellen, Schwierigkeiten beim Synchronisieren von Attributen und überhöhten Dateigrößen führen.
Um die Informationsintegrität sicherzustellen, darf ein Attribut nur Datentypen enthalten, die für es akzeptabel sind. Wenn das Alter in die Datenbank eingegeben wird, stellen Sie sicher, dass in der Spalte Ganzzahlen mit maximal drei Ziffern gespeichert werden.

Erstellen Sie ein Minimum an leeren Spalten mit einem NULL-Wert. Wenn Sie alle Spalten als NULL erstellen, ist das ein großer Fehler. Wenn Sie eine leere Spalte benötigen, um eine bestimmte Geschäftsfunktion auszuführen, wenn die Daten unbekannt sind oder noch keinen Sinn ergeben, können Sie sie gerne erstellen. Schließlich können wir die Spalten „Sterbedatum“ oder „Entlassungsdatum“ nicht im Voraus ausfüllen; wir sind keine Prädiktoren, die mit dem Finger in den Himmel zeigen :-).

Die meisten Modellierungssoftware (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) data ermöglicht es Ihnen, Prototypen von Datenregionen zu erstellen. Dies gewährleistet nicht nur den richtigen Datentyp, die richtige Anwendungslogik und eine gute Leistung, sondern auch, dass der Wert erforderlich ist.

5. Gehen Sie natürlich vor

Datenbank Design. Best Practices

Berücksichtigen Sie bei der Entscheidung, welche Spalte in einer Tabelle als Schlüssel verwendet werden soll, immer, welche Felder der Benutzer bearbeiten kann. Wählen Sie sie niemals als Schlüssel – eine schlechte Idee. Alles kann passieren, aber Sie müssen sicherstellen, dass es einzigartig ist.

Am besten verwenden Sie einen natürlichen oder geschäftlichen Schlüssel. Es hat eine semantische Bedeutung, sodass Sie Duplikate in der Datenbank vermeiden. 

Sofern der Geschäftsschlüssel nicht eindeutig ist (Vorname, Nachname, Position) und in verschiedenen Zeilen der Tabelle wiederholt wird oder sich ändern muss, sollte der generierte künstliche Schlüssel als Primärschlüssel bezeichnet werden.

6. Normalisieren Sie in Maßen

Datenbank Design. Best Practices

Um Daten in einer Datenbank effektiv zu organisieren, müssen Sie eine Reihe von Richtlinien befolgen und die Datenbank normalisieren. Es gibt fünf Normalformen, denen man folgen muss.
Durch die Normalisierung vermeiden Sie Redundanz und stellen die Integrität der in Ihrer Anwendung oder Site verwendeten Daten sicher.

Wie immer sollte alles in Maßen erfolgen, sogar die Normalisierung. Wenn es in der Datenbank zu viele Tabellen mit denselben eindeutigen Schlüsseln gibt, haben Sie sich übertrieben und die Datenbank übernormalisiert. Eine übermäßige Normalisierung wirkt sich negativ auf die Datenbankleistung aus.

7. Testen Sie früh, testen Sie oft

Datenbank Design. Best Practices

Ein Testplan und ordnungsgemäße Tests sollten Teil des Datenbankdesigns sein.

Der beste Weg, Ihre Datenbank zu testen, ist die kontinuierliche Integration. Simulieren Sie ein „Tag im Leben einer Datenbank“-Szenario und prüfen Sie, ob alle Randfälle behandelt werden und welche Benutzerinteraktionen wahrscheinlich sind. Je früher Sie Fehler finden, desto mehr Zeit und Geld sparen Sie.

Dies sind nur sieben Tipps, mit denen Sie eine großartige Produktivitäts- und Effizienzdatenbank entwerfen können. Wenn Sie diese befolgen, werden Sie in Zukunft die meisten Kopfschmerzen vermeiden. Diese Tipps sind nur die Spitze des Eisbergs bei der Datenbankmodellierung. Es gibt eine Vielzahl von Life-Hacks. Welche verwenden Sie?

Source: habr.com

Kommentar hinzufügen