SQL Schnellstart – Unterschiedliche SQL Datenbanken-Systeme (mysql, sqli, mongodb)

Bisher hast du einen kleinen Einblick in MySQL, SQLite und kurz auch Microsoft Access erhalten, es gibt aber weit mehr als diese. In diesem Video möchte ich dir also einen kleinen Einblick in diverse Datenbankmanagementsysteme geben.

Unterschied Datenbankmanagementsystem und Datenbank

Datenbanken sind logisch modellierte Informationscluster. Datenbanken speichern also Daten. Ein Datenbankmanagementsystem (DBMS) dagegen ist ein Computerprogramm, welches mit diesen Datenbanken interagiert - es verwaltet sie. Mit einem DBMS kannst du Abfragen für deine Datenbanken ausführen, neue Tabellen in deinen Datenbanken anlegen und vieles mehr.

Relationale Datenbankmanagementsysteme

Relationale Datenbankmanagementsysteme (RDBMS) organisieren ihre Daten in Tabellen mit Zeilen und Spalten. Der Zusammenhang von Attributen und Attributwerten innerhalb einer Tabelle ist eine Art Relation, deshalb bezeichnet man Tabellen in RDBMS genau so.

Was dann häufig noch verwirrt, ist der Begriff "Relationship" bzw. "Beziehung". Damit soll eine logische Beziehung zwischen Tabellen beschrieben werden und ist genau das, was wir mit Primär- und Fremdschlüsseln umgesetzt haben.

Die meisten RDBMS unterstützen SQL, häufig findet man aber auch eine Art SQL-Dialekt, also eine etwas abgeänderte Form von SQL.

Bekannte RDBMS

SQLite

SQLite ist in sich geschlossen d.h. es benötigt kaum Abhängigkeiten und läuft somit auf den meisten Geräten, es ist schnell, zuverlässig und minimalistisch, aber dennoch sehr mächtig. SQLite ist "Serverlos", das bedeutet es wird kein richtiger Server wie bei den meisten anderen DBMS gestartet, stattdessen kann ein Programm die Funktionalitäten von SQLite direkt über das Dateisystem einbinden.

Vorteile

  • SQLite braucht nur wenig Speicher: In der Regel benötigt SQLite nicht mehr als 2MB.
  • Benutzerfreundlich: Durch den Serverlosen Betrieb wird SQLite als "zero-configuration" Datenbank beschrieben. Man kann sich SQLite herunterladen und direkt loslegen.
  • Portable: Das SQLite DBMS besteht aus nur einer Datei, man kann SQLite einfach verschieben, auf einen USB-Stick verlegen oder sogar in der Cloud speichern.
  • Betriebssystemunabhängig: SQLite läuft auf den meisten Betriebssystemen und Geräten.
  • Viele Tutorials und eine gute Dokumentation: Durch die große Beliebtheit findet man sehr viel im Internet, wenn man Hilfe braucht und erhält auch schnell eine Lösung auf sein Problem.

Nachteile

  • Keine Nutzerverwaltung: In vielen DBMS kann man verschiedene Nutzer mit Username und Passwort anlegen. Beispielsweise soll der Nutzer der Finanzabteilung nur auf Datenbanken und Tabellen zugreifen sollen, die mit den Finanzen zu tun haben und nicht auf die Tabelle aller Mitarbeiter.
  • Sicherheit: Ein Datenbanksystem mit Server ist sicherer. Zum Beispiel kann es bei einem Server nicht vorkommen, dass zwei Prozesse gleichzeitig auf eine Datenbank zugreifen.

MySQL

Wie SQLite ist MySQL sehr verbreitet. Es ist Open-Source und wird besonders häufig für dynamische Webseiten eingesetzt. Große Unternehmen wie Twitter, Facebook und Netflix benutzen MySQL. MySQL wurde mit Fokus auf Geschwindigkeit und Zuverlässigkeit entwickelt und sollte dabei den SQL-Standard komplett abdecken. Anders als SQLite agiert MySQL als ein Server.

Vorteile

  • Beliebtheit: Durch die große Beliebtheit findet viele Tutorials und Guides zu MySQL im Internet.
  • Dokumentation: Die Dokumentation von MySQL ist umfassend, sodass man sich schnell in MySQL zurechtfinden kann.
  • Nutzerverwaltung: Anders als SQLite unterstützt MySQL die Nutzerverwaltung.
  • Geschwindigkeit: Durch den Fokus besonders auf Geschwindigkeit, führt MySQL Aktionen sehr schnell durch.

Nachteile

  • Trotz des Ziels zur Abdeckung der kompletten SQL-Standards, fehlen immer noch wenige Funktionen, die von anderen DBMS bereits abgedeckt wurden (zum Beispiel die FULL JOIN Klausel)
  • Das MySQL Open-Source und offen für alle sei, ist nur die halbe Wahrheit. Es gibt eine offene und kostenlose "Community Edition" und eine kostenpflichtige kommerzielle Version von MySQL. Das bedeutet manche Features sind der kommerziellen Version vorenthalten.

Microsoft Access

Microsoft Access ist eine Anwendung der Microsoft-Office-Familie und ähnelt von der Bedingung her sehr Word, Excel und co. Es ist für kleinere Unternehmen und Einrichtungen ausgerichtet und kann besonders mit der Office-üblichen Benutzeroberflächen punkten.

Vorteile

  • Einfache Installation und Bedienung
  • grafische Benutzeroberfläche
  • Integration von VBA (Visual Basic for Applications)
  • Schnelle Berichterstellung und Eingabe von Daten über Formulare

Nachteile

  • Microsoft Access hat eine große Lücke, wenn es darum geht, den SQL-Standard abzudecken
  • Access ist Windows-Nutzern vorenthalten
  • langsam und instabil
  • Nur sehr limitierte Nutzerverwaltung

Microsoft SQL Server

Der Microsoft SQL Server funktioniert sowohl lokal auf Windows und Linux als auch in der Cloud. Während die bisher vorgestellten RDBMS nur den normalen SQL Standard abdecken erweitert der Microsoft SQL Server die Funktionalitäten von SQL mit einem eigenen Dialekt namens T-SQL.

Vorteile

  • T-SQL Dialekt bietet großen Funktionsumfang
  • Sehr ausführliche und gut beschriebene Dokumentation
  • Einfache Einbindung in die Entwicklung
  • Schnell und Stabil
  • Weitere nützliche Funktion wie das Aufzeichnen und anpassen der Performance

Nachteile

  • Bestimmte Funktionen sind der teuren kommerziellen Enterpriseversion vorenthalten
  • Kann viel Leistung beanspruchen

NoSQL Datenbankmanagementsysteme

NoSQL ist die Abkürzung für "not only SQL" und bezeichnet DBMS, welche ihre Daten nicht wie üblich in Tabellen speichern, sondern anders als relationale DBMS. Bei der Speicherung von seinen Daten gibt es verschiedene Modelle und Ansätze.

Bekannte NoSQL Datenbanken

MongoDB

MongoDB benutzt das Dokumentenmodell das bedeutet die Daten werden in einer JSON-ähnlichen Notation gespeichert. Du kannst dir das folgendermaßen vorstellen:


(Quelle: https://www.mongodb.com/blog/post/getting-started-with-python-and-mongodb, 04.07.2020, 12:57 Uhr)

Vorteile

  • Schnell und Skalierbar
  • Flexibel: Man kann sehr einfach neue Felder hinzufügen
  • Dokumenten-basierete Abfragesprache als SQL-Ersatz
  • Umfangreiche Cloud-Integration

Nachteile

  • Keine SQL Unterstützung
  • NoSQL ist oft nicht ACID-Konform (Atomic, Consistency, Isolation, Durability)
  • Umfangreicheres Setup

Fazit

Du kennst nun einige DBMS und kennst Vor- und Nachteile dieser. Natürlich gibt es eine Vielzahl weiterer kostenloser als auch kommerzieller DBMS. Jedes DBMS hier vorzustellen würde den Rahmen dieses Artikels sprengen. Dennoch möchte ich folgend noch mal einige DBMS aufzählen, die es nicht in diesen Artikel geschafft haben, aber dennoch sehr bekannt sind:

  • Apache Cassandra
  • PostgreSQL
  • MariaDB
  • Elasticsearch
  • DB2
  • Oracle (Oracle Database)