Datenbankdesign. Beste Praktiken

Im Vorfeld des Starts einer neuen Runde des Kurses „Datenbanken“ haben wir ein kleines, originelles Material mit wichtigen Tipps zur Datenbankgestaltung vorbereitet. Wir hoffen, dass dieses Material für Sie nützlich sein wird.

Datenbankdesign. Beste Praktiken

Datenbanken sind überall: von den einfachsten Blogs und Verzeichnissen bis hin zu zuverlässigen Informationssystemen und großen sozialen Netzwerken. Es ist nicht so entscheidend, ob eine Datenbank einfach oder komplex ist, sondern wie wichtig es ist, sie richtig zu planen. Wenn eine Datenbank geistlos und ohne klares Ziel entworfen wird, ist sie nicht nur ineffektiv, sondern die weitere Arbeit mit der Datenbank wird zu einer echten Qual, einem unüberwindbaren Dschungel für die Benutzer. Hier sind einige Tipps zur Datenbankgestaltung, die helfen werden, ein nützliches und benutzerfreundliches Produkt zu schaffen.

1. Bestimmen Sie den Zweck der Tabelle und ihre Struktur.

Datenbankdesign. Beste Praktiken

Heute helfen Entwicklungsmethoden wie Scrum oder RAD (Rapid Application Development) IT-Teams, Datenbanken schnell zu entwickeln. Dennoch besteht in der Eile oft die große Versuchung, sofort mit dem Aufbau der Datenbank zu beginnen, ohne sich klar darüber im Klaren zu sein, was das Ziel ist und welche Endergebnisse erreicht werden sollen.
 
Es scheint, als strebe das Team nach effizienter und schneller Arbeit, doch das ist eine Illusion. Je tiefer und schneller man in das Projekt eintaucht, desto mehr Zeit wird benötigt, um Fehler im Datenbankprojekt zu erkennen und zu beheben.

Daher ist der erste Schritt, das Ziel für Ihre Datenbank zu definieren. Für welche Art von Anwendung wird die Datenbank entwickelt? Ist der Benutzer hauptsächlich an Transaktionen interessiert oder an Datenanalysen? Wo soll die Datenbank bereitgestellt werden? Soll sie das Kundenverhalten verfolgen oder nur die Beziehungen zwischen den Kunden verwalten? 

Je früher das Designteam diese Fragen beantwortet, desto reibungsloser wird der Prozess des Datenbankdesigns verlaufen.

2. Welche Daten sollten gespeichert werden?

Datenbankdesign. Beste Praktiken

Planen Sie voraus. Überlegen Sie sich, was die Website oder das System in Zukunft leisten soll, für das die Datenbank entworfen wird. Es ist wichtig, über die einfachen Anforderungen des Lastenhefts hinauszudenken. Aber bitte fangen Sie nicht gleich an, über alle möglichen Datentypen nachzudenken, die Benutzer jemals speichern könnten. Denken Sie lieber darüber nach, ob die Benutzer Beiträge schreiben, Dokumente oder Fotos hochladen oder Nachrichten austauschen können. Wenn dem so ist, sollte in der Datenbank ausreichend Platz dafür vorgesehen werden.

Arbeiten Sie mit dem Team, der Abteilung oder der Organisation zusammen, für die die geplante Datenbank in Zukunft unterstützt werden soll. Kommunizieren Sie mit Menschen auf unterschiedlichen Ebenen, von Kundenbetreuern bis hin zu Abteilungsleitern. So erhalten Sie durch Feedback einen klaren Überblick über die Anforderungen des Unternehmens. 

Es ist unvermeidlich, dass die Bedürfnisse der Nutzer, selbst innerhalb einer Abteilung, auf Konflikte stoßen werden. Wenn Sie damit konfrontiert werden, zögern Sie nicht, auf Ihre eigene Erfahrung zurückzugreifen und einen Kompromiss zu finden, der alle Parteien zufriedenstellt und das übergeordnete Ziel der Datenbank erfüllt. Seien Sie sich sicher: In der Zukunft werden Sie +100500 Karma-Punkte und eine Menge Kekse erhalten.

3. Modellieren Sie Daten mit Bedacht

Datenbankdesign. Beste Praktiken

Es gibt mehrere Schlüsselpunkte, auf die man beim Datenmodellieren achten sollte. Wie bereits erwähnt, hängt die Wahl der Methoden beim Modellieren von dem Zweck der Datenbank ab. Wenn wir eine Datenbank für die operative Verarbeitung von Datensätzen (OLTP) entwerfen, also für die Erstellung, Bearbeitung und Löschung von Daten, verwenden wir das Transaktionsmodell. Soll die Datenbank jedoch relational sein, ist es am besten, mehrdimensionale Modellierung anzuwenden.

Beim Modellieren werden konzeptionale (CDM), physikalische (PDM) und logische (LDM) Datenmodelle erstellt. 

Konzeptuelle Modelle beschreiben die Entitäten und Datentypen, die sie enthalten, sowie die Beziehungen zwischen ihnen. Teilen Sie Ihre Daten in logische Teile auf — das erleichtert die Handhabung erheblich.
Das Wichtigste ist das Maß, übertreiben Sie nicht.

Wenn eine Entität nur schwer mit einem Wort oder einer Phrase zu klassifizieren ist, ist es an der Zeit, Untertypen (Kind-Entitäten) zu verwenden.

Wenn eine Entität jedoch ein eigenes Leben führt, Attribute hat, die ihr Verhalten und ihr Aussehen beschreiben, sowie Beziehungen zu anderen Objekten hat, können Sie nicht nur Untertypen, sondern auch Supertypen (Elternentitäten) verwenden. 

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

Konzeptuelle Modelle werden durch logische Modelle implementiert. Diese Modelle sind wie eine Landkarte für das Design einer physischen Datenbank. Im logischen Modell werden Geschäftsdatenentitäten identifiziert, Datentypen, der Schlüsselstatus sowie die Regeln festgelegt, die die Beziehungen zwischen den Daten regulieren.

Anschließend wird das logische Datenmodell mit der im Voraus ausgewählten DBMS-Plattform (Datenbankmanagementsystem) abgeglichen. Datenbankmanagementsystemen) und resultiert in einem physischen Modell. Es beschreibt die Methode der physischen Datenspeicherung.

4. Verwenden Sie geeignete Datentypen

Datenbankdesign. Beste Praktiken

Die Anwendung eines falschen Datentyps kann zu weniger präzisen Daten führen, Schwierigkeiten beim Zusammenführen von Tabellen, der Synchronisierung von Attributen und zur Vergrößerung der Dateigrößen.
Um die Integrität der Informationen zu gewährleisten, sollte das Attribut nur die dafür akzeptablen Datentypen enthalten. Wenn beispielsweise das Alter in die Datenbank eingetragen wird, stellen Sie sicher, dass in der Spalte ganze Zahlen mit maximal 3 Ziffern gespeichert werden.

Erstellen Sie möglichst wenige leere Spalten mit dem Wert NULL. Wenn Sie alle Spalten als NULL erstellen, ist das ein schwerer Fehler. Wenn Sie jedoch eine leere Spalte für die Ausführung einer bestimmten Geschäftsfunktion benötigen, wenn die Daten unbekannt oder noch nicht sinnvoll sind, können Sie diese gerne erstellen. Schließlich können wir die Spalten „Sterbedatum“ oder „Entlassungsdatum“ nicht im Voraus ausfüllen – wir sind ja keine Hellseher, die ins Blaue hinein deuten :-).

Die meisten Modellierungssoftware (ER/Studio, MySQL Workbench, SQL DBM, Gliffy).Die Verwendung von Daten ermöglicht die Erstellung von Prototypen für Datenbereiche. Dadurch wird nicht nur der richtige Datentyp, die Logik der Anwendung und eine gute Leistung sichergestellt, sondern auch die zwingende Festlegung von Werten.

5. Bevorzugen Sie natürliche

Datenbankdesign. Beste Praktiken

Wenn Sie entscheiden, welche Spalte in der Tabelle als Schlüssel verwendet werden soll, achten Sie stets auf die Felder, die vom Benutzer bearbeitet werden können. Wählen Sie niemals diese als Schlüssel – das ist eine schlechte Idee. Alles Mögliche kann geschehen, und Sie müssen die Einzigartigkeit garantieren.

Am besten verwenden Sie einen natürlichen oder geschäftlichen Schlüssel (natural key). Er hat eine sinnvolle Bedeutung, sodass Sie Duplizierungen in der Datenbank vermeiden. 

Es sei denn, der Geschäftsschlüssel ist nicht einzigartig (z. B. Name, Nachname, Position) und tritt in verschiedenen Zeilen der Tabelle auf oder muss geändert werden, sollte der Primärschlüssel ein generierter künstlicher oder surrogier Schlüssel (artificial key) sein.

6. Normalisieren Sie moderat

Datenbankdesign. Beste Praktiken

Um Daten in der Datenbank effektiv zu organisieren, müssen Sie eine Reihe von Empfehlungen befolgen und die Datenbank normalisieren. Es gibt fünf normale Formen, denen Sie folgen sollten.
Durch Normalisierung vermeiden Sie Redundanz und gewährleisten die Datenintegrität, die in der Anwendung oder auf der Website verwendet wird.

Wie immer sollte alles im richtigen Maß sein, auch die Normalisierung. Wenn Ihre Datenbank zu viele Tabellen mit gleichen, einzigartigen Schlüsseln hat, haben Sie übertrieben und die Datenbank zu stark normalisiert. Übermäßige Normalisierung wirkt sich negativ auf die Datenbankleistung aus.

7. Testen Sie frühzeitig, testen Sie häufig.

Datenbankdesign. Beste Praktiken

Ein Testplan und angemessene Tests sollten Teil des Datenbankdesigns sein.

Am besten testen Sie die Datenbank durch Continuous Integration. Modellieren Sie das Szenario "Ein Tag im Leben der Datenbank" und überprüfen Sie, ob alle Randfälle behandelt werden und welche Benutzerinteraktionen wahrscheinlich sind. Je früher Sie Bugs finden, desto mehr Zeit und Geld sparen Sie.

Dies sind nur sieben Tipps, mit denen Sie eine leistungsstarke und effiziente Datenbank entwerfen können. Wenn Sie ihnen folgen, werden Sie die meisten Kopfschmerzen in der Zukunft vermeiden. Diese Tipps sind nur die Spitze des Eisbergs beim Datenbankdesign. Es gibt viele hilfreiche Tricks. Welche nutzen Sie?

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster