Datenbank

Aus FLBK-Wiki
Zur Navigation springen Zur Suche springen

Unter einer **Datenbank** (engl. database) versteht man einen logisch zusammengehörigen Datenbestand. Dieser Datenbestand wird von einem laufenden Datenbank Management System verwaltet und für Anwendungsprogramme und Benutzer unsichtbar auf nichtflüchtigen Speichermedien abgelegt.

Relationale Datenbank

Relationale Datenbanken sind der traditionelle und weitverbreitetste Datenbanktyp. Sie basieren auf dem relationalen Modell, das Daten auf Basis von Relationen verwaltet. Vereinfacht kann man Relationen auch als Datenbanktabellen bezeichnen. Die Daten werden in Tabellen mit Zeilen (Datensätze) und Spalten (Attribute) organisiert. Die Beziehungen zwischen den Tabellen werden durch Schlüssel (Primary Keys, Foreign Keys) realisiert. Relationale Datenbanken verwenden die SQL (Structured Query Language) für Datenabfragen und -manipulation und garantieren durch ACID-Eigenschaften (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit) hohe Datenintegrität.

Nicht-Relationale Datenbank

Nicht-relationale Datenbanken (auch NoSQL-Datenbanken genannt) sind Datenbanken, die nicht dem relationalen Modell folgen. Sie wurden entwickelt, um den Anforderungen moderner Anwendungen gerecht zu werden, die massive Datenmengen, hohe Skalierbarkeit und flexible Datenschemata erfordern. Im Gegensatz zu relationalen Datenbanken verzichten sie oft auf feste Tabellenschemata und SQL.

NoSQL-Datenbank

NoSQL-Datenbanken (Not only SQL) sind eine Unterkategorie der nicht-relationalen Datenbanken. Sie umfassen verschiedene Datenmodelle:

  • Dokumentenorientierte Datenbanken (z.B. MongoDB): Speichern Daten in dokumentenähnlichen Strukturen (JSON, BSON)
  • Key-Value-Datenbanken (z.B. Redis): Speichern Daten als Schlüssel-Wert-Paare
  • Spaltenorientierte Datenbanken (z.B. Cassandra): Organisieren Daten in Spalten statt Zeilen
  • Graphdatenbanken (z.B. Neo4j): Modellieren Daten als Knoten und Kanten in einem Graphen

NoSQL-Datenbanken bieten häufig eine bessere horizontale Skalierbarkeit und eignen sich besonders für unstrukturierte oder halbstrukturierte Daten.