Datenbanken - SS 2020
Prof. Dr.-Ing. Johannes Schildgen
johannes.schildgen@oth-regensburg.de
Übungsblatt 7 vom 15.-17.06.2020

Aufgabe 1: Daten-Import aus einer CSV-Datei (10P)

Abgabe-Deadline: 15.06.2020 12:00 im Moodle

In diesem Übungsblatt geht es darum, die aktuellen Corona-Fallzahlen als CSV-Datei herunterzuladen, diese in eine PostgreSQL-Datenbank zu importieren und Analysen mit SQL darauf auszuführen.

  1. Laden Sie den Datensatz "COVID-19 cases worldwide" von https://data.europa.eu/euodp/de/data/dataset/covid-19-coronavirus-data als CSV-Datei herunter.
  2. Betrachten Sie die Datei in einem Texteditor (nicht mit Excel o. ä.) und schauen Sie sich an, welche Spalten es gibt, was das Spaltentrennzeichen ist, in welchem Format Datumswerte gespeichert werden etc.
  3. Verbinden Sie sich mit der PostgreSQL-Datenbank der Hochschule (oder Ihrer eigenen PostgreSQL-Installation) und erstellen Sie die folgende Tabelle:
    create table corona(datum date, faelle int, tote int, land varchar(50), 
                        kontinent varchar(50), primary key(land, datum));
  4. Klicken Sie im DBeaver mit einem Rechtsklick auf die neue Corona-Tabelle (vorher: Rechtsklick - Aktualisieren) und dann auf Daten importieren und wählen als Datentyp CSV, dann Ihre Quelldatei und konfigurieren Sie das Datumsformat auf dd/MM/YYYY. Alle anderen Einstellungen können Sie so lassen, wie sie sind. Wichtig ist jedoch noch im vorletzten Schritt das Column-Mapping. Wählen Sie dort aus, welche Spalten aus der CSV-Datei mit welchen Spalten aus der soeben erstellten Tabelle korrespondieren. (8P)
  5. Schauen Sie sich nach erfolgreichem Import die Tabelle an.
  6. Wie viele verschiedene Länder tauchen in der Tabelle auf? (2P)

Aufgabe 2: SQL-Anfragen

Formulieren Sie SQL-Anfragen für die die folgenden Fragestellungen auf der in Aufgabe 1 importierten Corona-Tabelle:

  1. Wie viele Corona-Fälle gab es insgesamt im Mai 2020?
  2. Geben Sie für jedes Land die Gesamtanzahl an Fällen und Toten aus; jedoch nur für Länder mit mind. 100.000 Fällen. Die Ausgabe soll absteigend sortiert sein nach der Anzahl an Fällen.
  3. Geben Sie für jeden Kontinent den Namen desjenigen Landes in diesem Kontinent aus, in welchem es bisher die meisten gemeldeten Corona-Fälle gibt.
  4. In welchen Ländern gibt es mehr Corona-Tote als in Deutschland?
  5. Erstellen Sie eine neue Tabelle mit den Spalten Land und Kontinent mit den entsprechenden Daten. Tipp: Verwenden Sie CREATE TABLE ... AS SELECT ...