VORLESUNG EI U NIVERSIT ÄT B ERN I NFORMATIK T YP UA AUSGABE HS 08 B LATT 4 (1/2) Übungsserie 4 – Datenbanken 1. Sie haben die Begriffe Datensatz (Record), Datei (File) und Index kennen gelernt. Skizzieren Sie eine Dateiorganisation, welche mit diesen 3 Elementen realisiert ist und das folgende praktische Problem löst: In einer Datei sollen alle verwalteten Wohnungen einer Liegenschaftsverwaltung gespeichert werden. Die Records der Datei Wohnungen seien gemäss folgendem Schema aufgebaut: (Wohnungs-ID, PLZ, Ort, Strasse, Nummer, Anzahl Zimmer) Wie könnte eine Dateiorganisation aussehen, so dass effizient nach jedem der 6 Attribute/Felder gesucht werden kann? Hinweis: Die Wohnungs-ID ist eine für jede Wohnung eindeutige Nummer. 2. Lesen Sie auf de.wikipedia.org die Beiträge zu den Begriffen Relationale Datenbank und SQL durch und beantworten Sie die folgenden Fragen zu den beiden Themen. Sie müssen nicht jedes neue Detail verstehen, das dort erklärt ist. Sie finden darin aber die wesentlichen Inhalte der Vorlesung noch einmal mit anderen Worten erklärt. (a) Wie wird ein Datensatz (Record) in einer relationalen Datenbank genannt? (b) Wie kann man einem Attribut (Spalte einer Tabelle) auch noch sagen? (c) Wann ist ein Attribut ein Primärschlüssel? (d) Wann ist ein Attribut ein Fremdschlüssel? (e) Was für Daten können Sie mit SQL in einem Attribut des Datentyps varchar(20) speichern? (f) Was bewirkt die Verwendung des Keywords DISTINCT in einer SQL SelectAbfrage? 3. Betrachten Sie die zwei Varianten einer Bücherausleih-Datenbank, welche in den Abbildungen 1 und 2 dargestellt werden. Diskutieren Sie Vor- und Nachteile beider Varianten. AUSLEIHEN Name Müller Müller Meier Vorname Markus Markus Hans Titel The Shawshank Redemption Das Kapital Die Räuber Autor Stephen King Karl Marx Friedrich Schiller Ausleihdatum 14.07.2000 10.07.2000 03.05.2000 Abbildung 1: Bücherausleih-DB Variante 1 BÜCHER BuchID 1 2 3 Titel The Shawshank Redemption Das Kapital Die Räuber AUSLEIHER Autor Stephen King Karl Marx Friedrich Schiller AusleiherID Name 1 Meier 2 Müller AUSLEIHEN BuchID 1 2 3 Vorname Hans Markus Abbildung 2: Bücherausleih-DB Variante 2 AusleiherID 2 2 1 Ausleihdatum 14.07.2000 10.07.2000 03.05.2000 U NIVERSIT ÄT B ERN I NFORMATIK VORLESUNG EI T YP UA B LATT 4 (2/2) AUSGABE HS 08 4. Eine Fotoagentur erstellt und verwaltet Fotos, die sie an grosse Verlagshäuser und andere Kunden verkauft. Entwerfen Sie für die Verwaltung der Fotos und Kunden eine Datenbank mit 3–5 Tabellen/Relationen. 5. Gehen Sie von der Universitäts-Datenbank (Beilage 4.18) aus. Das Datenbankschema sieht im Detail wie folgt aus: STUDIERENDE Name:String, Vorname:String, Matrikelnummer:String, Hauptfach:String VERANSTALTUNGEN Veranstaltung:String, Titel:String, ECTS:Zahl, Institut:String DURCHFÜHRUNGEN Veranstaltung:String, Nummer:String, Jahr:Zahl, DozentIn:String NOTEN Matrikelnummer:String, Nummer:String, Jahr:Zahl, Note:Zahl VORAUSSETZUNGEN Veranstaltung:String, Voraussetzung:String Einige Beispiel-Queries in SQL: select * from Noten where Nummer=’W7050’ Zeigt alle Records der Tabelle Noten an, welche für die Veranstaltung W7050 ausgestellt wurden. select Matrikelnummer, Note from Noten where Note<4.0 Zeigt die Matrikelnummern mit der erzielten Note an, sofern die Note ungenügend ist. select Vorname, Name, Note FROM Studierende, Noten where Jahr=2001 and Studierende.Matrikelnummer=Noten.Matrikelnummer Zeigt Vornamen, Namen und Noten aller Studierenden an, welche im Jahr 2001 benotet wurden. Formulieren Sie Select-Queries in SQL, welche die Antworten auf die untenstehenden Fragen geben. Überprüfen Sie Ihre Queries, indem Sie diese in der dafür vorgesehenen Web-Applikation ausführen lassen. Den Link auf die Applikation finden Sie auf der Seite zu dieser Übungsserie. (a) Welche Daten stehen in der Tabelle Veranstaltungen? (b) Wie lauten die Namen, Vornamen und Hauptfächer sämtlicher Studierenden? (c) Welche Veranstaltungen (nur Titel) werden mit mehr als 3 ECTS angerechnet? (d) Welches sind die Namen und Vornamen aller Studierenden, welche eine genügende Note erhalten haben? (e) Welche Vorlesungen hat Prof. Bieri im Jahr 2001 gehalten? (f) (Fakultativ:) Erstellen Sie eine Liste mit folgenden Angaben: Vorname und Name des Studierenden, Titel der Veranstaltung, erzielte Note.