Einführung in Datenbanken

Datenbank ist nicht gleich Datenbank. Wir zeigen Ihnen die verschiedenen Arten und deren Unterschiede auf. Außerdem gehen wir darauf ein, wie Datenbanken Teil von Anwendungen sind und wie sie mit anderen Technologiestacks kombiniert werden können.

Was sind Datenbanken eigentlich?

Im weitesten Sinne ist eine Datenbank eine logisch modellierte Sammlung von Informationen. Sie muss nicht unbedingt auf einem Computer gespeichert sein. Auch bei einem Aktenschrank voller alter Unterlagen handelt es sich beispielsweise um eine Datenbank.

Im Kontext von Websites und Anwendungen wird meist ein Computerprogramm gemeint, das es ermöglicht, mit der jeweiligen Datenbank zu interagieren. Diese Programme, die formell als Datenbankmanagementsysteme (DBMS) bekannt sind, sind oft auf einem virtuellen privaten Server installiert und können remote abgerufen werden. Unterschiedliche DBMS haben in der Regel ihre eigenen einzigartigen Funktionen und zugehörige Werkzeuge, fallen aber im Allgemeinen in eine von zwei Kategorien: relationale und nicht-relationale Datenbanken.

Relationale Datenbanken

Die grundlegendsten Elemente im relationalen Modell sind Relationen, die von Benutzern und modernen relationalen DBMS (RDBMS oder relationale Datenbanken) als Tabellen erkannt werden. Eine Relation ist eine Menge von Tupeln oder Zeilen in einer Tabelle, wobei jedes Tupel eine Menge von Attributen oder Spalten gemeinsam hat.

Man kann sich jedes Tupel als eine eindeutige Instanz dessen vorstellen, was der Typ von Personen, Objekten, Ereignissen oder Verbindungen ist, die die Tabelle enthält. Eine solche Instanz können beispielsweise die Lehrkräfte einer Schule sein. In einer solchen Tabelle könnten die Tupel Attribute wie Name, Fächer, Startdatum usw. haben.

Im relationalen Modell enthält jede Tabelle mindestens eine Spalte, die verwendet werden kann, um jede Zeile eindeutig zu identifizieren, die als Primärschlüssel bezeichnet wird. Wenn Sie zwei Tabellen haben, die Sie miteinander verknüpfen möchten, können Sie dies beispielsweise mit einem Fremdschlüssel tun.

Die strukturellen Elemente des relationalen Modells helfen, Daten in einer organisierten Weise zu speichern, aber das Speichern von Daten ist nur nützlich, wenn Sie sie abrufen können. Um Informationen aus einem RDBMS abzurufen, können Sie eine Abfrage ausführen oder eine strukturierte Anfrage nach einem Satz von Informationen stellen. Die meisten relationalen Datenbanken verwenden eine Sprache namens Structured Query Language, besser bekannt als SQL, um Daten zu verwalten und abzufragen.

Es gibt viele Open-Source-RDBMSs, darunter MySQL, MariaDB, PostgreSQL und SQLite.

Nicht-relationale Datenbanken

Das rationale Modell, das seit den 1970ern entwickelt wurde, kann nicht den Anforderungen jeder Anwendung gerecht werden. Alternative Modelle werden häufig als nicht-relationale Datenbanken zusammengefasst. Da sie normalerweise kein SQL zur Definition oder Abfrage von Daten implementieren, werden sie manchmal auch als NoSQL-Datenbanken bezeichnet.

Einige der gebräuchlicheren nicht-relationalen Datenbankmodelle sind:

  1. Key-Value-Datenbanken: Diese speichern und verwalten assoziative Arrays. Ein assoziatives Array besteht aus einer Sammlung von Schlüssel-Wert-Paaren, wobei ein Schlüssel als eindeutiger Bezeichner dient, um einen zugehörigen Wert abzurufen. Redis ist ein Beispiel für eine beliebte Open-Source-Key-Value-Datenbank.
  2. Dokumentenorientierte Datenbanken: Diese speichern Daten in Form von Dokumenten. Dokumentenorientierte Datenbanken sind eine Art von Key-Value-Speicher: Jedes Dokument hat einen eindeutigen Bezeichner (seinen Schlüssel), und das Dokument selbst dient als Wert. MongoDB ist eine weit verbreitete Dokumentendatenbank.
  3. Spaltenorientierte Datenbanken: Diese speichern Daten in Spalten. Dies mag den traditionellen relationalen Datenbanken ähnlich erscheinen, aber anstelle von Tabellen werden die Spalten separat in Dateien oder Bereichen im Speichersystem gespeichert. Dieses Design ermöglicht es Abfragen, nur die Spalten zu lesen, die sie benötigen.

Datenbanken als Teil einer Anwendung

Eine Datenbankverwaltungssystem allein ist nicht sehr nützlich. In den meisten realen Anwendungskontexten möchten Sie es wahrscheinlich mit anderen Tools kombinieren, da ein DBMS keine Inhalte von selbst anzeigen oder bereitstellen kann. In solchen Fällen wird eine Datenbank zu einem wesentlichen Bestandteil einer größeren Anwendung.

Es gibt eine Reihe beliebter Open-Source-Technologie-Stacks, die ein DBMS enthalten. Wir geben Ihnen zwei bekannte Beispiele:

LAMP-Stack:

„LAMP“ ist ein Akronym, das sich aus den Technologien zusammensetzt, die typischerweise diesen Stack ausmachen: das Linux-Betriebssystem, der Apache-Webserver, die MySQL-Datenbank und PHP für die Verarbeitung von dynamischem Inhalt.

Elastic Stack:

Der Elastic Stack, früher bekannt als ELK Stack, basiert auf Elasticsearch, einer Suchmaschine, die auch als dokumentenorientierte Datenbank beschrieben wird. Dies wird oft für die Speicherung von Protokolldateien verwendet.

Solche Technologiestacks werden oft auf demselben Server bereitgestellt, was als monolithische Architektur bezeichnet wird. In solchen Fällen ist es ziemlich einfach, die anderen Stack-Komponenten mit einem DBMS zu verbinden. Alternativ können Sie eine Remote-Datenbank einrichten, indem Sie das DBMS auf einem entfernten Server installieren. Die meisten DBMSs verwenden einen dedizierten Port, den Sie verwenden können, um einen Anwendungsserver mit Ihrer Remote-Datenbank zu verbinden.

Die Einrichtung einer Remote-Datenbank erhöht jedoch die Angriffsfläche Ihrer Anwendung, da sie mehr potenzielle Eintrittspunkte für unbefugte Benutzer hinzufügt. Es erfordert auch, dass Ihre Daten vom Datenbankserver über eine Netzwerkverbindung an den Anwendungsserver gesendet werden, was bedeutet, dass die Datenpakete von bösartigen Akteuren abgefangen werden könnten.

Um Ihre Daten vor solchen Angriffen zu schützen, bieten viele DBMSs die Möglichkeit, Ihre Daten zu verschlüsseln. Verschlüsselung ist der Prozess der Umwandlung von Informationen von Klartext, der ursprünglichen Form der Informationen, in Chiffretext, eine unlesbare Form, die nur von einer Person oder einem Computer gelesen werden kann, der den richtigen Schlüssel zum Entschlüsseln hat. Viele DBMSs erlauben Ihnen, die Kommunikation zwischen Ihrem Datenbankserver und den Clients oder Anwendungen, die darauf zugreifen müssen, zu verschlüsseln – Arten, Nutzung Sicherheit.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: