Hervorragendes Datenbankdesign 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 Datenbankdesign muss also Ihre Erwartungen an die Datenverarbeitung erfüllen.
Ihre Datenbank sollte berücksichtigen, was die Stakeholderinnen und Stakeholder in Ihrer Organisation von ihren Daten benötigen. Aus diesem Grund ist es ratsam, sie in den Datenbankdesignprozess einzubeziehen.
Ihre Ziele für die Datenbank bestimmen
Stakeholderinnen und Stakeholder einbeziehen
Wen Sie um Feedback zu Ihrem Datenbank Design bitten sollten? Denken Sie beispielsweise an die Endnutzenden in Ihrem Unternehmen, einschließlich Teammitgliedern, Projektmanagerinnen und Projektmanagern, Entwicklerinnen und Entwicklern und anderen internen Stakeholderinnen und Stakeholdern, und Ihre externen Stakeholderinnen und Stakeholder wie Geschäftskundinnen und 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 Stakeholderinnen und Stakeholder nachdenken, sowie darüber, wie Sie diese einbeziehen können.
Die Einbindung der Stakeholderinnen und 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 Relationen speichern müssen, z. B. Produktnamen, zusammen mit Produktinformationen.
- Hierarchische Datenbank: Eine baumähnliche Datenstruktur, die aus mehreren Daten besteht. Für eine Hierarchie (daher der Name) sind hierarchische Datenbanken sehr sinnvoll. Sie könnten eine Datenbank mit Abteilungsnamen erstellen, und jede Abteilung kann mit einer Liste von Mitarbeitenden verknüpft werden, die dort arbeiten.
- Netzwerkdatenbank: Wie hierarchische Datenbanken können auch Netzwerkdatenbanken einen übergeordneten Datensatz mit mehreren untergeordneten Datensätzen verknüpfen. Netzwerkdatenbanken 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 Programmiererinnen und Programmierer gezielt die Datenbanken erstellen, die sie benötigen.
Best Practices für das Datenbankdesign
Wenn Sie bereit sind, Ihre Datenbank zu entwerfen, sollten Sie diese bewährten Vorgehensweisen beachten.
1. Halten Sie es einfach
Denken Sie bei der Gestaltung an Ihre Nutzenden. Stellen Sie die Nutzerfreundlichkeit in den Vordergrund und sorgen Sie dafür, dass alles für die Endnutzenden so einfach und unkompliziert wie möglich ist, auch wenn das für Sie zunächst mehr Arbeit bedeutet.
- Setzen Sie auf Standardisierung: Halten Sie sich an einheitliche Namenskonventionen und vermeiden Sie Abkürzungen. Es empfiehlt sich, einen Standard zu erstellen und diesen in Ihrer gesamten Datenbank konsequent anzuwenden.
- Berücksichtigen Sie zukünftige Änderungen: Die Datenbank ist insofern ein lebendiges System, als sie später modifizierbar sein sollte.
- Technische Schulden im Zaum halten: Vermeiden Sie zu viele potenzielle Probleme, die Nutzende umgehen müssen oder zukünftige Entwicklerinnen und Entwickler beheben müssen.