Daten und Datenmodellierung (2)

Teil 2: Daten in Datenbanken / in Datenbankmanagementsystemen

andere Teile der Serie

Zurück zu Teil 1 Daten im Dateisystem

Weiter zum 3. Teil: Daten modellieren

Motivation für Datenbankmanagementsysteme

Im ersten Teil der Serie wurden Daten im Dateisystem vorgestellt. Wenn die Daten strukturiert sind, z.B. als CSV-formatierte Textdateien oder mit XML-Tags formatierte Textdateien, liegt im Prinzip schon eine Datenbank vor. Mit Programmen auf diese Daten zuzugreifen kann allerdings umständlich werden. Wenn man beispielsweise ausschließlich die Datensätze aus einer Datensammlung im CSV-Format lesen will, die den Namen „Kurt“ enthalten, müsste das Programm jede Zeile auf die Zeichenkette „Kurt“ überprüfen und, wenn sie vorhanden ist, die Zeile in die Ausgabe schreiben. Komplizierter wird es, wenn beispielsweise nicht die ganzen Zeilen, sondern nur die Telefonnummer für den Fall ausgegeben werden soll, dass der Name „Kurt“ oder „Karl“ ist und die Telefonnummer mit „0211“ anfängt. Noch unübersichtlicher wird es , wenn die Daten auf mehrere CSV-Dateien verteilt sind und es sollen Datensätze mit Bedingungen, die mehrere Dateien betreffen, gesucht werden. Um genau solche Aufgabenstellungen bequemer programmieren zu können, wurden Relationale Datenbankmanagementsysteme erfunden.

Relationales Datenbankmanagementsytem

Ein Relationales Datenbankmanagementsystem (RDBMS) erleichtert den Zugriff auf und die Verwaltung von Daten, die tabellenartig strukturiert werden können. Das RDBMS legt die Daten dabei auch wieder im Dateisystem ab, „versteckt“ sie aber vor dem Nutzer und den Anwendungsprogrammen, so dass der Zugriff auf die Daten nur mit Funktionen des RDBMS erfolgt. Ein RDBMS kann direkt vom Nutzer bedient werden, oder aber die Datenhaltung für ein Anwendungssystem erfolgt über sogenannte Schnittstellen des RDBMS. Die Funktionen, die das RDBMS bereitstellt, werden dann vom Programmierer in das Anwendungssystem eingebaut. Das „Sprache“, mit der das RDBMS angesprochen werden kann, ist die Structered Query Language (SQL).

RDBMS sind für Betriebliche Anwendungssysteme sehr wichtig. RDBMS gibt es schon länger, z.B. IBM DB2 auf dem IBM 3090 Großrechner ist auf dem Markt seit 1983, das RDBMS des Unternehmens Oracle seit 1979. Aktuelle Entwicklungen für das Internet sind MySQL, oder RDBMS die nur für den „Einbau“ in Programmen gedacht sind wie z.B. SQLite, das auch für die Datenhaltung in Android- und iOS-Smartphones genutzt wird.

Daten manipulieren mit SQL

SQL ist eine Abfragesprache insbesondere für RDBMS, sie lässt sich wie vereinfachtes Englisch lesen. SQL ist standardisiert in der Gruppe der Normen ISO/IEC 9075. Mit SQL kann man Daten in die Datenbank einfügen („Create“), Daten aus der Datenbank lesen („Read“), Daten, die schon  da sind, verändern („Update“) und  Datensätze löschen („Delete“). Mit diesen grundsätzlichen Operationen lässt sich alles bewerkstelligen, was man für Betriebliche Anwendungen braucht. Daher sagt man, SQL kann „CRUD“, was sich aus den Anfangsbuchstaben von Create, Read, Update und Delete ergibt.

Einfache Beispiele sind:

select * form telefonliste;

(liest alle Datensätze aus der Tabelle telefonliste)

select telnummer from telefonliste where name='Kurt';

(liest nur Datensätze, in denen der Name gleich Kurt ist.)

 insert into telefonliste ( name, telnr ) values ( 'Maria', '02114 635289372' );

(fügt Datensatz mit name=Marie und telnummer= 02114 635289372 in die Tabelle telefonliste ein.

Mit SQL kann noch viel mehr machen, z.B. Tabellen erzeugen, Daten im-und exportieren.

No-SQL-Datenbankysysteme

No-SQL bedeutet „Not-only-SQL“ und bezeichnet Datenbankmanagementsysteme, die die Daten nicht in Tabellenform behandeln. Der Bedarf entstand dadurch, dass es mit den vielen (meist unstrukturiereten) Daten im Internet schwierig wurde, vernünftige Tabellenstrukturen für RDBMS zu entwerfen, Wenn man Tabellen entwirft, haben diese oft sehr viele Spalten und zudem sind die meisten Zellen in der Tabelle leer. Gängige RDBMS sind für solche Aufgabenstellungen nicht optimiert und können  Performance-Probleme zeigen.

Grundsätzlich lassen sich zwar alle Problemstellungen, die mit No-SQL-Datenbanken lösbar sind, auch mit RDBMS lösen. No-SQL-Datenbanken werden insbesondere bei Problemstellungen, die mit dem Schlagwort Big-Data in Verbindung gebracht werden, eingesetzt.

Weiter zum 3. Teil: Daten modellieren

Quellen

Internet-Verweise

Eine Big-Data-Definition: https://wirtschaftslexikon.gabler.de/definition/big-data-54101

SQL lernen: http://www.sql-lernen.de/

No-SQL-Datenbanken im Vergleich: https://www.bigdata-insider.de/nosql-datenbanken-im-vergleich-a-666922/