4. Datenbank

Nach den Vorbereitungen des Webservers folgt nun die Einrichtung der eigentlichen Datenbank, in welcher die Sensordaten später gespeichert werden sollen. Für Webdienste bietet sich die weltweit verbreitete open-source Software MySQL an. Auf dem Raspberry Pi wird, um genau zu sein, eine Kombination von MySQL und MariaDB Teilen installiert. MariaDB ist aus MySQL hervorgegangen, ist nahezu 1:1 kompatibel und bietet in den meisten Punkten sogar noch mehr Funktionen. Im weiteren werden (fälschlicherweise) beide Datenbanken synonym verwendet. Um Daten abzufragen oder zu manipulieren wird die Datenbanksprache SQL (Structured Query Language) verwendet. 

Beide Systeme basieren auf einem relationalen Datenbankmodell, welches im Vergleich zu bspw. dem hierarchischen oder objektorientierten Modell das bekannteste und weitverbreitetste ist. Dabei handelt es sich grundlegend um Speicherung von Daten in verschiedenen Tabellen, welche über Beziehungen (Relationen) untereinander verknüpft sind. Es werden also nicht alle Daten in einer großen Tabelle gespeichert, sondern mehrere Tabellen (die Relationen), welche sich quasi in Kategorien unterteilen. Dabei ist jede Zeile (Tupel) ein Datensatz und enthält eine oder mehrere Spalten (Attribute). Durch die Aufteilung und anschließende Verknüpfung ist beispielsweise eine unnötige Dopplung von Daten ausgeschlossen. Dies ist vorteilhaft, wenn eine Datenbank immer größer und komplexer wird.

Ein Beispiel wäre eine Reihe an Kunden mit verschiedenen Attributen wie: Kundennummer, Vorname, Nachname, Wohnort.
Und eine Reihe an Fahrzeugen mit den Attributen: Fahrzeugnummer, Marke, Modell, Jahr.

Kunde
Kundennummer Vorname Nachname Wohnort
1
Max Mustermann Musterstadt
2 Erika Musterfrau Musterdorf

Fahrzeug
Fahrzeugnummer Marke Modell Jahr
1 VW Golf 2019
2 Audi A6  2016 
3 Porsche GT3 2021

Nun lassen sich in einer weiteren Tabelle Beziehungen erzeugen. Dazu werden ein oder mehrere Schlüssel (key) verwendet, worüber ein Datensatz eindeutig identifizierbar sein muss. In diesem Fall geschieht dies über die Kunden- und Fahrzeugnummer.

Besitz
Kundennummer Fahrzeugnummer
1 1
1 3
2

Vorteile werden bei größeren Datenmengen sichtbar, da ein Fahrzeugtyp, welcher von mehreren Kunden besessen werden kann, nur einmal angelegt werden muss und ein Kunde eventuell auch mehrere Fahrzeuge besitzt.