Ü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 a vermieden werden können.
Aufgabe 3
Ein Benutzer kann eine Reihe von persönlichen Blogeinträgen verfassen. Diese tragen neben dem Blogtext auch noch das Datum, wann der Eintrag erstellt wurde.
Wie könnte eine solche Blog-Tabelle aussehen?
Welche Schlüssel sind einzusetzen?
Die Lösung findest du selbst, wenn du gbuch3.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
benutzer
und bild
aus:
- Welcher Benutzer hat ein Bild namens „bus.jpg“ abgespeichert?
- Welche Benutzerbilder hat Herr Dr. Klöbner schon gespeichert?
- Sortiere alle Landschaftsbilder nach dem Ort des Benutzers, der sie angelegt hat. Es reicht, Ort und Bildname auszugeben.
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 bild.PNR=1001
sind also nicht zulässig.
Aufgabe 5
Die folgenden Abfragen können sich jetzt auf alle drei Tabellen (benutzer
, bild
, blog
)
der gbuch3-Datenbank beziehen, deren Schema du hier siehst:
- Gib die (wenigen) Blogeinträge zusammen mit dem Benutzernamen aus. Sortiere nach dem Datum absteigend.
- Welche Blogeinträge hat Herr Dr. Klöbner erstellt?
- Mit den Blogeinträgen soll jeweils auch das Benutzerbild des Benutzers ausgegeben werden.
Berücksichtige nur die Blogeinträge nach dem 1.4.2013.