Hervorragendes Datenbank Design basiert auf mehreren Kernprinzipien:
- Redundanz minimieren: Um Ressourcen zu sparen, eine effiziente Datenbank zu erstellen und die Funktionsweise der Datenbank zu vereinfachen, sollten Datenredundanzen minimiert und Duplikate vermieden werden.
- Genauigkeit wahren: Ihre Datenbank sollte die Genauigkeit der Informationen sicherstellen und die Wahrscheinlichkeit verringern, dass Informationen versehentlich beschädigt werden.
- Zugriff ermöglichen: Etwaige Business Intelligence Systeme, die Lese- und Schreibzugriff benötigen, sollten diesen auch haben. Ihre Datenbank sollte den Zugriff ermöglichen und gleichzeitig die Datensicherheit gewährleisten.
- Erwartungen erfüllen: Natürlich führen Sie eine Datenbank, um einen bestimmten Zweck zu erfüllen. Das Datenbank Design muss also Ihre Erwartungen an die Datenverarbeitung erfüllen.
Ihre Datenbank sollte berücksichtigen, was Entscheidungsträger in Ihrem Unternehmen von ihren Daten erwarten. Vor diesem Hintergrund ist es ratsam, diese in den Prozess der Konzeptionierung Ihrer Datenbank einzubeziehen.
Ihre Ziele für die Datenbank bestimmen
Stakeholder einbeziehen
Wen Sie um Feedback zu Ihrem Datenbank-Design bitten sollten? Denken Sie beispielsweise an die Endnutzer in Ihrem Unternehmen, einschließlich Teammitgliedern, Projektmanagern, Entwicklern und anderen internen Stakeholdern, und Ihre externen Stakeholder wie Geschäftskunden oder Power-User. Bevor Sie zu weit in die Planung Ihrer Ziele einsteigen und mit dem Prozess beginnen, sollten Sie über die relevanten Stakeholder nachdenken, sowie darüber, wie Sie diese einbeziehen können.
Die Einbindung der Stakeholder verhindert nicht nur mögliche Rückschläge, indem Entwürfe vermieden werden, die andere in Ihrem Unternehmen als unpassend empfinden würden: Sie liefert Ihnen auch mehr Ideen, Best Practices und Erfahrungen, aus denen Sie möglicherweise schöpfen können, um Ressourcen zu sparen und das Ergebnis zu verbessern.
Informationen sammeln, die Ihnen bei Ihrer Entscheidung helfen
Stellen Sie sich einige gezielte Fragen, um die Datenbank zu ermitteln, die Sie benötigen. Zunächst sollten Sie jedoch damit beginnen, Informationen zu sammeln, die Ihnen bei diesem Prozess und dieser Entscheidung helfen.
- Formulare: Sammeln Sie die Formulare mit den Daten, die in die Datenbank aufgenommen werden sollen.
- Prozesse: Überprüfen Sie jeden Prozess, der an der Erfassung oder Verarbeitung von Daten für die Datenbank beteiligt ist. Diese Prozesse müssen Ihnen als Referenz zur Verfügung stehen, wenn Sie Ihre Datenbank planen.
- Datentypen: Alle Datenfelder, die Sie erfassen und in Ihrer Datenbank speichern möchten, wie z. B. Kundenkontaktinformationen für eine Kundendatenbank: Name, E-Mail-Adresse, Adresse, Stadt, Bundesland und Postleitzahl. Ihre Daten sollten in einfache Teile zerlegt werden, um jegliche Komplexität zu vermeiden.
SQL vs. NoSQL
Structured Query Language (SQL) ermöglicht es Ihnen, mit einer Datenbank zu interagieren und ihre Daten sinnvoll zu nutzen. Datenbanken werden oft als SQL oder NoSQL („Not Only SQL“) kategorisiert. NewSQL vereint Eigenschaften von beiden. Diese Optionen haben eindeutige Vor- und Nachteile, daher sollten Sie überlegen, wie die Eigenschaften Ihrer Datenbank deren Nutzung ermöglichen oder einschränken.
SQL
SQL-Datenbanken – auch als relationale Datenbanken bekannt – bestehen aus Tabellen mit Daten und den Beziehungen zwischen den Datenfeldern. Es handelt sich dabei um traditionelle Datenbanken, die für viele verschiedene Anwendungsfälle beliebt sind, sich aber auch schwer vertikal skalieren lassen. SQL-Datenbanken können horizontal skaliert werden, was jedoch nicht für jeden Anwendungsfall geeignet ist.
Heutzutage müssen viele Arten von Daten auf eine effizientere Weise gespeichert und verwaltet werden – mit Datenbanken, die nicht die gleichen Anforderungen und Erwartungen wie SQL und ACID-Compliance haben.
Ein Beispiel dafür, wo SQL bei großen Datenmengen in Schwierigkeiten gerät, ist die Atomizität: Eine relationale Datenbank kann nicht gut funktionieren, ohne die „Schreib“-Aktivitäten einzuschränken und sie sorgfältig im Hintergrund zu verwalten, um die Datenintegrität zu gewährleisten. Beim Skalieren kann es schwierig sein, diese Verwaltungsaktivitäten zu erweitern und anzupassen, was bei bestimmten Big-Data-Projekten ein Problem darstellen kann.
NoSQL
Wie bereits erwähnt, steht diese Abkürzung für „Not Only SQL“ und nicht für „No SQL“, man kann also durchaus eine NoSQL-Datenbank mit einigen relationalen Komponenten haben, die mit SQL strukturiert sind. NoSQL-Datenbanken bieten eine breite Palette an Möglichkeiten, wie Daten gespeichert und strukturiert werden. Bei NoSQL gibt es jedoch einige Komponenten Ihrer Datenbank, die nicht von SQL verwaltet werden.
Datenmodelle
Abgesehen von der Entscheidung für SQL oder NoSQL müssen Sie auch über das Datenmodell nachdenken, das Sie verwenden werden:
- Relationale Datenbank: In einer relationalen Datenbank sind alle Relationen bereits definiert und verbinden Tabellen mit Spalten und Zeilen von Daten miteinander. Mit diesem Datenbanktyp können Sie Ihre Daten auf viele verschiedene Arten verwenden, ohne sie neu anordnen zu müssen. Dies eignet sich hervorragend für viele komplexe Anwendungsfälle, in denen Sie Daten mit vielen verschiedenen Beziehungen speichern müssen, z. B. Produktnamen zusammen mit Produktinformationen.
- Hierarchische Datenbank: Eine baumartige „One-to-Many“-Datenstruktur. Für eine Hierarchie (daher der Name) sind hierarchische Datenbanken sehr sinnvoll. Sie könnten eine Datenbank mit Abteilungsnamen erstellen, wobei jede Abteilung mit einer Liste von Mitarbeitenden verknüpft werden kann, die dort arbeiten.
- Netzwerkdatenbank: Wie hierarchische Datenbanken können auch Netzwerkdatenbanken einen übergeordneten Datensatz mit mehreren untergeordneten Datensätzen verknüpfen. Datenbanken für Netzwerke können jedoch auch mehrere übergeordnete Datensätze mit einem einzelnen untergeordneten Datensatz verknüpfen, was die Flexibilität für einige Anwendungen erhöht. Wenn Sie sich eine Netzwerkdatenbank vorstellen, sieht sie wie ein Netz aus miteinander verbundenen Datensätzen aus.
- Objektorientierte Datenbank: Dieser letzte Datenbanktyp verwendet Objekte anstelle von Tabellen, die in relationalen Datenbanken verwendet werden. Mit objektorientierten Datenbanken können objektorientierte Programmierer gezielt die Datenbanken erstellen, die sie benötigen.
Best Practices für das Datenbank-Design
Wenn Sie bereit sind, Ihre Datenbank zu entwerfen, sollten Sie die folgenden Best Practices beachten.
1. Halten Sie es einfach
Denken Sie bei der Gestaltung an Ihre Nutzerbasis: Stellen Sie die Anwendungsfreundlichkeit in den Vordergrund und sorgen Sie dafür, dass für die Endnutzer alles so einfach und unkompliziert wie möglich ist, auch wenn das im Vorfeld mehr Arbeit für Sie bedeutet.
- Nutzen Sie Standardisierung: Verwenden Sie einheitliche Namenskonventionen und vermeiden Sie Abkürzungen. Sie sollten einen Standard erstellen und ihn in Ihrer gesamten Datenbank beibehalten.
- Bedenken Sie zukünftige Änderungen: Die Datenbank ist ein lebendiges System, das später modifizierbar sein sollte.
- Halten Sie technische Schulden in Schach: Hinterlassen Sie nicht zu viele potenzielle Probleme, für die Anwender Workarounds finden oder zukünftige Entwickler lösen müssen.