Relationale vs. nicht-relationale Datenbanken

Hintergrundgeschichte: Damals, im Jahr 2016, studierte ich Informatik an der University at Albany und musste einen Kurs „Intro to Databases“ belegen.

In diesem Kurs habe ich zwei Dinge gelernt:

Relationale Datenbanken und nicht-relationale Datenbanken, aber ich habe nie wirklich den Unterschied zwischen den beiden gelernt, also wollte ich meine Neugierde auf Datenbanken und die Unterschiede zwischen den beiden wieder aufleben lassen.

  • Eine relationale Datenbank wurde 1970 von E. F. Codd definiert und ist eine digitale Datenbank, die auf dem relationalen Modell von Daten basiert. Die Daten werden in Tabellen mit Zeilen (die einen Eintrag darstellen) und Spalten (die eine bestimmte Art von Informationen speichern und sortieren) gespeichert. Beziehungen werden durch Primär- und Fremdschlüssel hergestellt.

Beispiel für ein relationales Datenbankmodell

Sprachen: SQL(Structured Query Language), MySQL, PostgreSQL, sqlite3

Vorteile:

  • Kann viele komplexe Abfragen, Datenbanktransaktionen und Routineanalysen von Daten verarbeiten.
  • ACID(Atomity, Consistency, Isolation, Durability): Eine Reihe von Eigenschaften, die zuverlässige Datenbanktransaktionen gewährleisten.

Nachteile:

  • Kann keine komplexen oder sehr großen Bilder, Zahlen, Entwürfe und Multimediaprodukte speichern
  • Kann durch Wartung und neue Server sehr kostspielig werden

Gut! Aber was ist, wenn unsere Datensätze zu groß oder unstrukturiert sind?

Nicht-relationale Datenbank oder NoSQL

Was ist eine nicht-relationale Datenbank?

  • Nicht-relationale Datenbanken gab es bereits in den späten 1960er Jahren, aber der Begriff wurde erst 1998 von Carlo Strozzi verwendet, der die Entwicklung von NoSQL leitete.
  • „Eine NoSQL-Datenbank (ursprünglich „non SQL“ oder „non relational“) bietet einen Mechanismus für die Speicherung und den Abruf von Daten, die auf andere Weise als durch die in relationalen Datenbanken verwendeten tabellarischen Beziehungen modelliert sind.“ – Wikipedia

Typen von NoSQL-Datenbanken:

Column Store: Verwendet das Konzept des Keyspace, der alle Spaltenfamilien enthält, die Zeilen und Spalten enthalten, um Daten zu speichern und zu organisieren.

Jede Zeile enthält eine Familie von Spalten

Datenbank: Apache HBase, Cassandra

Schlüsselwertspeicher: Verwendet ein assoziatives Array (map oder dictionary) als grundlegendes Datenmodell. Die Daten werden als eine Sammlung von Schlüssel-Wert-Paaren dargestellt und ein Schlüssel taucht höchstens einmal in der Sammlung auf. Sie können einen Wert, wie z.B. eine Ganzzahl, einen String, eine JSON-Struktur oder ein Array, zusammen mit einem Schlüssel speichern, der verwendet wird, um auf diesen Wert zu verweisen.

Jede Zeile hat eine eigene ID und Werte

Datenbank: Redis, Amazon DynamoDB

Graph: Ist eine Datenbank, die Graphenstrukturen zur Darstellung und Speicherung von Daten verwendet. Dies ermöglicht es Benutzern, schnell zwischen allen verbundenen Werten zu navigieren und Einblicke in die Beziehungen zu finden.

Alle Filme, in denen Kevin Bacon mitspielt

Datenbank: neo4J, OrientDB, Titan

Dokumenten-orientierte Datenbank: Eine dokumentenorientierte Datenbank oder ein Dokumentenspeicher ist ein Computerprogramm zum Speichern, Abrufen und Verwalten von dokumentenorientierten Informationen, auch bekannt als halbstrukturierte Daten.

Datenbank: MongoDB, Couchbase

Vorteile:

  • Große Mengen an strukturierten, halbstrukturierten und unstrukturierten Daten
  • Objektorientierte Programmierung, die einfach zu bedienen und flexibel ist (MongoDB ist im Wesentlichen in Javascript geschrieben)
  • Effiziente, skalierbare Architektur statt teurer, monolithischer Architektur

Nachteile:

  • Weniger Support, da NoSQL-Datenbanken in der Regel quelloffen sind
  • Administration: NoSQL-Datenbanken erfordern technische Fähigkeiten, um sie zu installieren und zu warten.
  • Weniger ausgereift. NoSQL-Datenbanken befinden sich noch im Wachstum und viele Funktionen werden noch implementiert.

Welche soll man verwenden?

Unternehmen nutzen eine Mischung aus traditionellen und nicht-relationalen Datenbanken, um ihre geschäftlichen Anforderungen und Bedürfnisse zu erfüllen.

Relationale Datenbank:

Traditionelle relationale Datenbanken sind sehr gut darin, Ihre Datentransaktionen sicher zu halten und komplexe Abfragen zur Informationsgewinnung durchzuführen. Unternehmen, die bereits strukturiert sind und kein massives Wachstum verzeichnen, werden höchstwahrscheinlich bei traditionellen Datenbanken bleiben.

Nicht-relationale Datenbanken:

Großartig beim Speichern großer Datenmengen mit wenig Struktur. Unternehmen, die schnell wachsen, wie z. B. Start-ups, verwenden aufgrund ihrer Skalierbarkeit und Flexibilität häufiger nicht-relationale Datenbanken. In Verbindung mit der Cloud können nicht-relationale Datenbanken Unternehmen auch eine Menge Geld sparen.

Daten-Fakten:

  1. Daten wachsen schneller als je zuvor, und bis zum Jahr 2020 werden für jeden Menschen auf der Erde jede Sekunde etwa 1,7 Megabyte an neuen Informationen entstehen.
  2. Bis dahin wird unser digitales Datenuniversum von heute 4,4 Zettabyte auf etwa 44 Zettabyte oder 44 Billionen Gigabyte anwachsen.
  3. Wir erleben ein massives Wachstum von Video- und Fotodaten, wobei jede Minute bis zu 300 Stunden Video allein auf YouTube hochgeladen werden.
  4. In diesem Jahr werden über 1,4 Milliarden Smartphones ausgeliefert – alle vollgepackt mit Sensoren, die alle Arten von Daten sammeln können, ganz zu schweigen von den Daten, die die Nutzer selbst erzeugen.
  5. In fünf Jahren wird es weltweit über 50 Milliarden intelligent vernetzte Geräte geben, die alle entwickelt wurden, um Daten zu sammeln, zu analysieren und weiterzugeben.

Schreibe einen Kommentar

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