Welche Datenbanken gibt es? 8 Typen + Beispiele mit Anwendung

Datenbakentypen Übersicht - Coding Lab Steffen Lippke

Was für Datenbanktypen gibt es?

Für welche soll ich mich entscheiden?

Diese Fragen soll dieser Guide klären.

Beginnen wir!

Grundtypen von Datenbanken

Datenbanken untergliedern sich in zwei Grundtypen:

Relational – SQL

01 SQL - Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke
01 SQL – Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke

Relationale Datenbanken und „nicht nur“ relationale Datenbanken. Relationen sind Tabellen. Tabellen bestehen aus Zeilen, dem Datenbankeintrag und den Spalten mit den Spaltennamen /Attributen.

Reine relationale Datenbanken können nur Datensätze in diesem Raster abfragen, hinzufügen, manipulieren und löschen.

Nicht NUR Relational – NoSQL

02 NoSQL - Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke
02 NoSQL – Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke

NoSQL ist ein Sammelbegriff für Datenbankentypen, die nicht nur auf tabellarische Strukturen aufbauen. Sie bietet je nach Typ Schemafreiheit, gute Skalierbarkeit und neue Programmierparadigmen wie MapReduce. NoSQL verdrängen die SQL-Datenbanken nie komplett, weil relationale Datenbanken für bestimmte Aufgaben am besten geeignet sind.

Welche Datenbank soll ich wählen?

Die Wahl der Datenbank kann ausschlaggebend sein, ob Du mit Deinem Projekt Erfolg hast oder nicht. Nehme Dir Zeit und analysiere, welche Datenbank für dein Projekt passt. Die Datenbank ist das Fundament, welches in der laufenden Entwicklung nur sehr schwer zu ersetzen ist.

  • Was sind die Anforderungen an das Projekt?
  • Wie lang soll das System existieren?
  • Kannst Du abschätzen wie viele Daten in 3 Monaten, 1 Jahr oder 10 Jahren die Datenbank halten muss?

Beachte die folgenden Aspekte:

  1. Skalieren: NoSQL-Datenbanken skalieren besser als SQL-Datenbanken, weil diese sich auf viele kleine Server verteilen lassen. SQL-Datenbanken sind eine gute Wahl, wenn Du weißt, dass der Datenbestand bis zum Ende der Laufzeit sich nicht ver-100-facht (z. B. Personaldatenbank an einer Hochschule)
  2. Datentyp: Die zu speichernden Datentypen können den Datenbantyp bestimmten. Musst Du verschiedene Dokumente (JSON) verwalten eignet sich Couchbase oder MongoDB. Ein Big Data Cluster mit Hadoop verarbeitet verschieden Datentypen im gleichem System.
  3. Geschwindigkeit: Brauchst Du für Dein Projekt eine hohe Lesegeschwindigkeit oder eine hohe Schreibrate? Eine materialisierte Sicht oder einen Lese- und Schreibkanal (CQRS) erhöht die SQL-Datenbank Performance.
  4. Genauigkeit oder Geschwindigkeit: Das strenge ACID in relationalen Datenbanken oder weichere BASE beschreiben Datenbankeigenschaften (Verhalten), welches bestimmt, ob dieser Datenbanktyp für Deine Soft

​8 Typen in einer Übersicht

Relationale Datenbanken – Der beständige Klassiker

Relationale Datenbanken nutzen Tabellen, um Daten zu speichern. Zwischen den Tabellen können Beziehungen über Fremd- und Primärschlüssel bestehen. Das oberste Ziel ist, das die Konsistenz, Integrität, Dauerhaftigkeit der Speicherung sichergestellt ist. Wenn ein Fehler beim Speicherprozess stattfindet, rollt die Datenbank die Änderungen zurück.

Anwendung: Finanzen/Transaktionen, Geschäftsdaten und Buchungsvorgänge

Produkte: MySQL, PostgresSQL

Pro

+ Hohe Zuverlässigkeit und Genauigkeit
+ festes Schema

Contra

– Skaliert für großen Datenmengen schlecht
– Das Zusammenführen von Tabellen beansprucht viel Hauptspeicher

​Graphen – Komplexes einfach darstellen

03 Graph - Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke
03 Graph – Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke

Ein Graph besteht aus Knoten (Entitäten) und Kanten (Beziehungen). Attribute beschreiben die Knoten näher (JSON- Dokumente). Die Beziehungen können gerichtet (Y ist Sohn von X) oder nicht gerichtet (Z und A) sind befreundet sein.

Anwendung: Graphen beschreiben komplexe Beziehungen z. B. Berechtigungen, Ahnenforschung, Social Media, Netzwerke allgemein

Produkte: Neo4j

Pro

+ Komplexe Beziehungen abfragen und erkennen
+ Realitätsnahe Modellierung

Contra

– gewisse Abfragen sind sehr umständlich
– Migrationen sind aufwendig

Objektorientiert – Der Programm nahe

00 Objektoriente DB - Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke
00 Objektoriente DB – Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke

Objektorientierte Programme (z. B. Java) nutzen objektorientierte Datenbanken, um die generierten Objekte im RAM zu persistieren (abzuspeichern). Dieser Datenbanktyp sollte den Entwickler etwas Arbeit abnehmen – aber dieser Typ hat sich bis heute nicht durchgesetzt.

Anwendung: Jedes objektorientierte Programm (Java)

Produkte: ObjectDB

Pro

+ weniger Entwicklungsaufwand
+ keine Astaktionsebene dazwischen

Contra

– inflexibel / portabel?
– begrenzte Anwendungen

​Hierarchische – Struktur und Ordnung

Eine hierarchische Datenbank beschreibt einen Baum mit einer Wurzel, Ästen und Blättern, die Daten enthalten. Diese Strukturform untergliedert die Daten. Diese Struktur hat sich nicht durchgesetzt und relationale Datenbanken haben sich etabliert.

Anwendung: Das Dateisystem eines Betriebssystems entspricht einer hierarchische Datenbank. Eine Orderstruktur auf einem Rechner hat das Potenzial die Frage nach der besten Datenbank lösen, wenn die Einfachheit im Vordergrund steht.

Produkte: LDAP, Windows Dateisystem

Pro:

​ + natürliche Aufteilung und Speicherung
​ + unkompliziert / keine Installation notwendig

Contra:

​ – Updaten umständlich
​ – Lesen umständlich

Spalten – Die Leistungsfähige

04 Spalten - Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke
04 Spalten – Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke

​Die relationalen Datenbanken nutzen Reihen, um Daten abzufragen. Ruft ein Programm das letzte Attribut in der Reihe auf, iteriert die Datenbank über alle Attribute. Spalten-Datenbanken adressieren die Spalten mit einer ID. Dieser Typ unterstützt das Bündeln von Spalten zu Spaltenfamilien, die Deine Anwendung in wiederkehrenden Intervallen in dieser Konstellation abruft.

Anwendung: NoSQL mit Schema bringt eine bessere Planbarkeit mit sich.

Produkte: Cassandra

Pro

​ + Schnelles Lesen
​ + Partitionierung der Tabellen

Contra

​ – Adressierung umständlich (Spalte, Spaltenfamilie, Zeitstempel)

Key-Value – Einfachheit und Schnelligkeit

05 Redis - Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke
05 Redis – Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke

Diese Datenbank speichert zu einem Schlüssel einen Wert. Dieser Wert kann eine Zahl, ein String, ein Dokumente oder eine andere Form von Daten sein. Du kannst einfach jeden Wert speichern, den du schnell und einfach über den Schlüssel aufrufen kannst.

Anwendung: Highscore für Spiele, Zwischenspeichern von Inhalten, PHP-Variablen Speicher

Produkte: Redis

​Pro

​ + Einfachheit
​ + Geschwindigkeit

​Contra

​ – Kein Wissen über den Wert (Typ, Größe usw.)
​ – Schlüsseldesign entscheidet über den Erfolg

​Hadoop – Big Data König

Die Hadoop Datenbank kommt mit Petabytes an Daten zurecht. Heterogene Datentypen wie JSON, CSV usw. verarbeitet das Dateisystem der Datenbank (HDFS). Der Programmierer kann MapReduce nutzen, um Berechnungen mit den enormen Datenmengen auszuführen. Der Entwickler sendet Programmieranweisungen zu jeden einzelnen Computern, der die Ergebnisse berechnet (Map) und dann zusammenfasst (Reduce). Die Ergebnisse erhält der Client (wenn diese nicht zu groß sind).

Anwendung: Hadoop ist überall dort notwendig, wo eine heterogene Datenstruktur mit riesigen Datenmengen vorliegt.

Produkte: Hadoop, Google Big Table (nicht verfügbar)

Pro

+ große Datenmengen sind möglich
+ MapReduce biete neue Möglichkeiten der Datenverarbeitung

Contra

– Wiederverwendung von MapReduce ist schwer
– Nicht trivial Bedingung und den Abfragen

Dokumente orientierte – Mehr als gedacht

06 Couchbase - Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke
06 Couchbase – Welche Datenbanken gibt es Typen Coding Lab Steffen Lippke

​Anstatt Zeilen in einer Reihe zu speichern, speichert eine Dokumenten-orientierte Datenbank, die Dokument kaum unverändert als BSON mit einer Dokumenten-ID ab. Dieses Schema ermöglicht effizientere Abfragen und vermeidet den Impedeance Mismatch (JOINS über mehrere Tabellen). Das NoSQL-Design entscheidet darüber, ob die Abfragen performant sind und wie die Anwendung mit den Daten arbeiten muss.

​Anwendung: E-Commerce, Kundendatenbanken, (Film-)Bewertungen,

​Produkte: MongoDB, Couchbase

Pro

​ + effiziente Abfrage
​ + kein JOINs

​Contra

​ – Updaten wegen der Schemafreiheit
​ – Redundanzen


Danke fürs Lesen! Erhalte weitere Tutorials in meinem kostenlosen Newsletter.
Jeden Monat teile ich mit Dir 4 neue praxisnahe Tutorials.
Trage Deine Mail zum kostenlosen Empfang des Newsletters* ein.




Quellenangabe Bilder: Icons und SVG-Grafiken im Titelbild von Microsoft PowerPoint 2019, frei verfügbar nach EULA
*) Mit dem Abonnement des Newsletters erklären Sie sich mit der Analyse des Newsletters durch individuelle Messung, Speicherung und Analyse von Öffnungsraten und der Klickraten in Profilen zu Zwecken der Gestaltung künftig besserer Newsletter einverstanden. Sie können die Einwilligung in den Empfang des Newsletters und die Messung mit Wirkung für die Zukunft widerrufen. Mehr in der Datenschutzerklärung.

Kommentare 2

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.


Jeden Monat teile ich mit den Mitgliedern
4 neue praxisnahe ausführliche Tutorials (je 1000+ Wörter).


Trage Deine Mail, damit Du
Deine Coding + Hacking Skills erweitern kannst!

Die Website nutzt nur technisch notwendige Cookies.