2.2 Der Weg zum Webserver mit Datenbank
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.
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.
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.
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.
Kundennummer | Vorname | Nachname | Wohnort |
---|---|---|---|
1 |
Max | Mustermann | Musterstadt |
2 | Erika | Musterfrau | Musterdorf |
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.
Kundennummer | Fahrzeugnummer |
---|---|
1 | 1 |
1 | 3 |
2 | 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.