Im Vorgriff auf den Start des nächsten Streams im Datenbankkurs haben wir ein kleines Autorenmaterial mit wichtigen Tipps zum Entwerfen der Datenbank vorbereitet. Wir hoffen, dass dieses Material für Sie nützlich ist.
Datenbanken sind überall: von einfachen Blogs und Verzeichnissen bis zu zuverlässigen Informationssystemen und großen sozialen Netzwerken. Es ist nicht so wichtig, eine einfache oder komplexe Datenbank, wie wichtig es ist, sie richtig zu gestalten. Wenn die Basis gedankenlos und ohne ein klares Verständnis des Ziels entworfen wird, ist sie nicht nur nicht effektiv, sondern die weitere Arbeit mit der Basis wird für die Benutzer eine echte Qual und ein unpassierbarer Wald sein. Im Folgenden finden Sie einige Tipps zum Datenbankdesign, mit denen Sie ein nützliches und benutzerfreundliches Produkt erstellen können.
1. Bestimmen Sie, wofür die Tabelle gedacht ist und wie sie aufgebaut ist.

Heutzutage helfen Entwicklungsmethoden wie Scrum oder RAD (Rapid Application Development) IT-Teams, Datenbanken schnell zu entwickeln. Im Streben nach Zeit ist die Versuchung jedoch sehr groß, direkt in den Bau der Basis einzutauchen und sich vage vorzustellen, was das Ziel ist und was die Endergebnisse sein sollten.
Als ob sich das Team auf effiziente Hochgeschwindigkeitsarbeit konzentriert, ist dies ein Trugbild. Je weiter und schneller Sie in das Projekt einsteigen, desto mehr Zeit wird benötigt, um Fehler in der Projektbasis zu identifizieren und zu ändern.
Daher müssen Sie zunächst den Zweck Ihrer Datenbank bestimmen. 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 eingesetzt werden? Wird sie das Kundenverhalten verfolgen oder nur die Beziehung zwischen ihnen verwalten?
Je früher das Designteam diese Fragen beantwortet, desto weicher und reibungsloser wird der Datenbankentwurfsprozess.
2. Welche Daten sollen für die Speicherung ausgewählt werden?

Planen Sie voraus. Gedanken darüber, was die Site oder das System in Zukunft tun wird, für die die Datenbank entworfen wird. Es ist wichtig, über die einfachen Anforderungen der technischen Spezifikationen hinauszugehen. Denken Sie bitte nicht sofort über alle möglichen Datentypen nach, die der Benutzer jemals speichern wird. Überlegen Sie besser, ob Benutzer Dokumente oder Fotos posten, hochladen oder Nachrichten austauschen können. Wenn ja, müssen Sie in der Datenbank Speicherplatz für sie zuweisen.
Arbeiten Sie mit einem Team, einer Abteilung oder einer Organisation zusammen, für die die Projektbasis in Zukunft unterstützt wird. Verbinden Sie sich mit Menschen auf allen Ebenen, vom Kundendienstspezialisten bis zum Abteilungsleiter. Mit Hilfe von Feedback erhalten Sie eine klare Vorstellung von den Anforderungen des Unternehmens.
Es ist unvermeidlich, dass die Bedürfnisse der Benutzer innerhalb einer Abteilung in Konflikt geraten. Wenn Sie darauf stoßen, haben Sie keine Angst, sich auf Ihre eigenen Erfahrungen zu verlassen und einen Kompromiss zu finden, der für alle Beteiligten geeignet ist und das Endziel der Datenbank erfüllt. Seien Sie sicher: In Zukunft werden +100500 Karma und ein Berg Kekse zu Ihnen fliegen.
3. Modellieren Sie die Daten sorgfältig

Bei der Modellierung von Daten sind mehrere wichtige Punkte zu beachten. Wie bereits erwähnt, hängt es vom Zweck der Datenbank ab, welche Methoden in der Simulation verwendet werden sollen. Wenn wir eine Datenbank für die operative Verarbeitung von Datensätzen (OLTP) entwerfen, dh um sie zu erstellen, zu bearbeiten und zu löschen, verwenden wir die Transaktionsmodellierung. Wenn die Datenbank relational sein soll, ist eine mehrdimensionale Modellierung am besten.
Während der Simulation werden konzeptionelle (CDM), physikalische (PDM) und logische (LDM) Datenmodelle erstellt.
Konzeptionelle Modelle beschreiben die darin enthaltenen Entitäten und Datentypen sowie die Beziehungen zwischen ihnen. Teilen Sie Ihre Daten in logische Teile auf - es ist viel einfacher zu leben.
Die Hauptsache ist eine Maßnahme, übertreiben Sie es nicht.Wenn es sehr schwierig ist, eine Entität in ein Wort oder eine Phrase zu klassifizieren, ist es Zeit, Untertypen (untergeordnete Entitäten) zu verwenden.
Wenn eine Entität ihr eigenes Leben führt, Attribute hat, die ihr Verhalten und ihr Erscheinungsbild sowie Beziehungen zu anderen Objekten beschreiben, können Sie sicher 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 Regeln, wie sie gesammelt werden, nicht vollständig verstehen.
Konzeptionelle Modelle werden mit logischen implementiert. Diese Modelle sind wie eine Roadmap zum Entwerfen einer physischen Datenbank. Im logischen Modell werden die Entitäten von Geschäftsdaten unterschieden, Datentypen und der Status des Regelschlüssels, der die Beziehung zwischen den Daten regelt, bestimmt.
Anschließend wird das logische Datenmodell mit der zuvor ausgewählten Plattform des DBMS (Datenbankverwaltungssystem) verglichen und das physikalische Modell erhalten. Es beschreibt eine Möglichkeit, Daten physisch zu speichern.
4. Verwenden Sie geeignete Datentypen

Die Verwendung des falschen Datentyps kann zu weniger genauen Daten, Schwierigkeiten beim Verknüpfen von Tabellen, Synchronisieren von Attributen und Aufblähen der Dateigröße führen.
Um die Integrität von Informationen zu gewährleisten, sollte 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 ganzzahlige Zahlen mit maximal 3 Ziffern gespeichert sind.
Erstellen Sie ein Minimum an leeren Spalten mit einem NULL-Wert. Wenn Sie alle Spalten als NULL erstellen, ist dies ein 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 erstellen. Schließlich können wir die Spalten „Todesdatum“ oder „Entlassungsdatum“ nicht im Voraus ausfüllen, wir sind keine Prädiktoren, um einen Finger in den Himmel zu richten :-).
Mit den meisten Daten der Modellierungssoftware (ER / Studio, MySQL Workbench, SQL DBM, gliffy.com) können Sie Prototypen von Datenbereichen erstellen. Dies garantiert nicht nur den richtigen Datentyp, die richtige Anwendungslogik und eine gute Leistung, sondern auch den erforderlichen Wert.
5. Bevorzugen Sie natürlich

Achten Sie bei der Entscheidung, welche Spalte in der Tabelle als Schlüssel ausgewählt werden soll, immer darauf, welche Felder der Benutzer bearbeiten kann. Wählen Sie sie niemals als Schlüssel - eine schlechte Idee. Alles kann passieren, und Sie müssen die Einzigartigkeit garantieren.
Verwenden Sie am besten einen natürlichen oder geschäftlichen Schlüssel. Es ist sinnvoll, um Doppelarbeit in der Datenbank zu vermeiden.
Wenn nur der Geschäftsschlüssel nicht eindeutig ist (Name, Nachname, Position) und in verschiedenen Zeilen der Tabelle wiederholt wird oder geändert werden muss, sollte dem generierten Schlüssel der generierte künstliche Ersatzschlüssel (künstlicher Schlüssel) zugewiesen werden.
6. In Maßen normalisieren

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 man folgen muss.
Durch die Normalisierung vermeiden Sie Redundanz und stellen die Integrität der in der Anwendung oder auf der Site verwendeten Daten sicher.
Wie immer sollte alles in Maßen sein, sogar Normalisierung. Wenn die Datenbank zu viele Tabellen mit denselben eindeutigen Schlüsseln enthält, werden Sie mitgerissen und normalisieren die Datenbank übermäßig. Übermäßige Normalisierung wirkt sich negativ auf die Datenbankleistung aus.
7. Früh testen, öfter testen

Ein Testplan und ordnungsgemäße Tests sollten Teil des Datenbankdesigns sein.
Es ist am besten, die Datenbank durch kontinuierliche Integration zu testen. Modellieren Sie das Szenario „Ein Tag im Leben der Datenbank“ und prüfen Sie, ob alle Grenzfä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 hervorragende Datenbank für Leistung und Effizienz erstellen können. Wenn Sie ihnen folgen, werden Sie in Zukunft die meisten Kopfschmerzen vermeiden. Diese Tipps sind nur die Spitze des Eisbergs bei der Datenbankmodellierung. Es gibt eine große Anzahl von Life-Hacks. Welche benutzt du?