Die Daten, die wir aus Datenquellen abgerufen haben sollen jetzt systematisch gespeichert und anschließend analysiert werden können. Diesen beiden Themen widmet sich die 4. Einheit.

Inhaltsverzeichnis

Datenformate

Relationale Datenbanken

Wenn wir Daten einmal heruntergeladen haben, müssen wir sie auch irgendwie speichern und abrufen können. Dafür verwenden wir Datenbanken.

Mit CSV und DataFrames haben wir schon ganz zu Beginn des Kurses das häufigste Modell kennengerlernt: relationale Datenbanken.

Zentrales Konzept dieser Datenbanken ist eine Tabelle. Dabei wird im Vorhinein ein sog. Schema definiert, also welche Eigenschaften ein Element in der Datenbank haben kann. Jede Eigenschaft wird durch eine Spalte repräsentiert.

Eine Liste mit Gesetzen lässt sich zum Beispiel so darstellen:

Gesetze

id abkürzung titel bgbl
0 ABGB Allgemeines Bürgerliches Gesetzbuch JGS Nr. 946/1811
1 StGB Strafgesetzbuch BGBl. Nr. 60/1974
2 B-VG Bundes-Verfassungsgesetz BGBl. Nr. 60/1974

Die Eigenschaften eines Gesetzes (ID, Abkürzung, Titel, BGBl-Nummer) sind jeweils eine eigene Spalte. Jedes Gesetz bekommt eine eigene Zeile.

Wichtig dabei ist (vor allem im Vergleich mit anderen Datenstrukturen), dass die möglichen Eigenschaften eines Elements immer im Vorhinein definiert werden müssen und bei allen Elementen gleich sind. Will man in der obigen Tabelle also auch das Inkrafttretensdatum speichern, muss eine neue Spalte eingefügt werden.

Will man eine Beziehung zwischen zwei Einträgen in der Datenbank speichern, muss man zwei Tabellen erstellen und diese mit Hilfe eines sog. Fremdschlüssels verknüpfen. Dabei gibt man in der einen Tabelle an, zu welchem Eintrag in der anderen Tabelle ein Element gehört.

Um also eine Liste an Paragrafen den passenden Gesetzen zuzuordnen, muss man eine zweite Tabelle wie folgt erstellen:

Paragrafen

id name überschrift gesetz_id
0 § 285 ABGB Begriff von Sachen im rechtlichen Sinne 0
1 § 127 StGB Diebstahl 1
2 § 146 StGB Betrug 1
3 § 302 StGB Missbrauch der Amtsgewalt 1

Über den Fremdschlüssel “gesetz_id” wird jeder Eintrag in der Tabelle Paragrafen mit einem Eintrag in der Tabelle Gesetze verknüpft.

SQL