Ozeane speichern
Meere in der Beispiel-Datenbank
Die Tabelle
fluss
unseres Modells speichert im Attribut Meer
auch,
in welches Meer ein Fluss mündet.
Aufgabe 1
Schreibe ein SQL-Befehl, der dir alle Meere anzeigt, die in der Tabelle fluss
vorkommen:
Probiere den folgenden Befehl aus:
SELECT DISTINCT Meer
FROM fluss
WHERE Meer IS NOT NULL
ORDER BY Meer
Der Befehl DISTINCT
verhindert doppelte Ausgaben und die Bedingung Meer IS NOT NULL
schließt alle Datensätze aus, für die das Meer nicht gepflegt ist.
Eine neue Tabelle
Der Atlantik ist doppelt vorhanden - ein typisches Beispiel für "inkonsistente" (schlechte) Daten. Auch sind sowohl Meere (z.B. die Irische See) als auch Ozeane (z.B. der Atlantik) verzeichnet.
Das wollen wir ändern und zunächst nur die Ozeane konsistent (also "ohne Fehler") speichern.
Aufgabe 2
- Erkläre, warum man dafür eine neue Tabelle
ozean
benötigt. - Welche Attribute (mit welchem Datentyp) benötigt die Tabelle?
Entwerfe die neue Tabelle (mit ein paar Datensätzen) zunächst auf einem Arbeitsblatt:
Aufgabe 3
Mit dem Speichern aller Ozeane (wie viele gibt es?) in einer neuen Tabelle ist es nicht getan.
- Wie kann die Tabelle
fluss
angepasst werden, so dass sie mit der neuen Tabelle verknüpft wird?
Bsp.: Für den Rhein soll gespeichert werden dass er in den Atlantik mündet - die Nordsee ist Teil des Atlantiks. - Schreibe auch ein SQL-Befehl, der dann jeden Fluss ausgibt, der in einen bestimmten Ozean mündet.
Statt "Trockenübungen" kannst du die neue Tabelle ozean
in SQLite auch selbst einmal anlegen.
Wenn du etwas experimentierfreudig bist, kannst du das mit den kommenden "Exkurs"-Kapiteln ausprobieren.
Ansonsten überspringe diese Kapitel.
Quellen
- [1]: Ozeane der Welt(letzter Zugriff: 21.02.2024) - Urheber: Alexrk2 - Lizenz: Creative Commons BY-SA 3.0