Übungen
Aufgabe 1
Stelle dir vor, du willst die folgenden Dinge in einer Datenbanktabelle speichern:
- die in Deutschland zugelassenen Autos
- alle zur Zeit erhältlichen Bücher
- alle Schülerinnen und Schüler in deiner Schule
- die Lehrerinnen und Lehrer deiner Schule
Welche Primärschlüssel könnte man dann jeweils wählen? Wo sollte man einen "künstlichen" Primärschlüssel einfügen?
Aufgabe 2
Für die Verwaltung der Noten einer Klasse hat sich ein Lehrer eine Datenbank erstellt:
- Warum wäre das Attribut "Name" ein möglicher Primärschlüssel für die Schüler-Tabelle?
Warum kann das aber später zu Problemen führen? - Was ist im Moment ein möglicher Primärschlüssel der Noten-Tabelle?
- Was ist der Fremdschlüssel in der Noten-Tabelle?
- Ändere beide Tabellen so ab, dass die Probleme aus Aufgabenteil 1 vermieden werden können.
Aufgabe 3
Orte sind in der Regel einem bestimmten Land zugeordnet. Wie muss die Tabelle "ort" aus dem letzten Kapitel verändert werden, so dass man von dort auf die entsprechenden Länderdaten zugreifen kann?
Die Lösung findest du selbst, wenn du die Daten terra3.zip in eine neue Datenbank importierst.
Ansonsten kannst du es auch hier (mit Einschränkungen) direkt ausprobieren.
Aufgabe 4
Formuliere SQL-Befehle für die folgenden Anfragen. Dabei reichen zunächst einmal die Tabellen
land
und kontinent
aus:
- Gib alle Länder (Namen, Einwohner) aus, die in Asien liegen.
- Sortiere die asiatischen Länder noch nach der Einwohnerzahl absteigend.
- Welche europäischen Länder haben mehr als 300.000 km2 Fläche?
Beachte jeweils, dass du keine Bedingungen formulierst, die Werte in den künstlichen Schlüsselattributen
abfragen. In der Regel sollte sich der Programmierer ja nicht auf diese (internen) Werte verlassen.
Bedingungen der Form land.KNR='EU'
sind also nicht zulässig.
Aufgabe 5
Die folgenden Abfragen beziehen sich jetzt auf alle drei Tabellen (ort
, land
, kontinent
)
der terra3-Datenbank, deren Schema du hier siehst:
- Gib alle Orte mit mehr als 10 Mio. Einwohner mit ihren Ländern aus. Sortierung nach Einwohnerzahl absteigend.
- Welche Orte in Europa haben mehr als 1 Mio. Einwohner?
- Welche Orte haben mehr als 1 Mio. Einwohner und liegen in Ländern, die weniger als 10 Mio. Einwohner haben?
- Erzeuge eine Tabelle mit den Hauptstädten der Länder.
Hilfe: Das AttributHauptONR
in der land-Tabelle kann helfen!