
Was für Datenbanktypen gibt es?
Für welche soll ich mich entscheiden?
Diese Fragen soll dieser Guide klären.
Beginnen wir!
- 1 Grundtypen von Datenbanken
- 2 8 Typen in einer Übersicht
- 2.1 Relationale Datenbanken – Der beständige Klassiker
- 2.2 Graphen – Komplexes einfach darstellen
- 2.3 Objektorientiert – Der Programm nahe
- 2.4 Hierarchische – Struktur und Ordnung
- 2.5 Spalten – Die Leistungsfähige
- 2.6 Key-Value – Einfachheit und Schnelligkeit
- 2.7 Hadoop – Big Data König
- 2.8 Dokumente orientierte – Mehr als gedacht
Grundtypen von Datenbanken
Datenbanken untergliedern sich in zwei Grundtypen:
Relational – SQL

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

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:
- 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)
- 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.
- 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.
- 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

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

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

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

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

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
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.
Kann man herrausfinden ob man abgehört wird?
Ich meine mit Sicherheit und könnte man falls es so wäre der anderen Seite schwer machen, sie zur Verzweiflung bringen….?
Grüsse aus Leipzig
Hallo,
für diese Thematik habe ich eine Erklärung https://lippke.li/fremdzugriff-auf-handy-erkennen/ verfasst. Die Realität für viele von uns ist nicht all zu toll. Aber es gibt viele Alternativen http://lippke.li/tools