Reframe* (Lösungen)#
In den folgenden Aufgaben lösen Sie erneut die Aufgaben, welche Sie bereits im Hauptteil des Tutoriums gelöst haben, dieses mal eben in einem anderen Syntax.
Hinweis: Aufgaben, die durch einen Asterisk (*) markiert sind, sind Bonusaufgaben. Diese Aufgaben können im Tutorium behandelt werden, dies ist jedoch von den Übungsleitern nicht geplant.
Aufgabe 5: Bibliothek*#
Programmieren Sie die folgenden textuellen Anfragen mittels Python reframe.
Sie erhalten erneut die Bibliotheksdatenbank.
from reframe import Relation
Benutzer = Relation("../resources/05_relationale_algebra/Benutzer.csv")
Leiht_aus = Relation("../resources/05_relationale_algebra/Leiht_aus.csv")
Exemplar = Relation("../resources/05_relationale_algebra/Exemplar.csv")
Buch = Relation("../resources/05_relationale_algebra/Buch.csv")
print(Benutzer)
print(Leiht_aus)
print(Exemplar)
print(Buch)
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
Cell In[1], line 1
----> 1 from reframe import Relation
3 Benutzer = Relation("../resources/05_relationale_algebra/Benutzer.csv")
4 Leiht_aus = Relation("../resources/05_relationale_algebra/Leiht_aus.csv")
ModuleNotFoundError: No module named 'reframe'
Aufgabe 5.1*#
Welche englischsprachigen Bücher (Titel) gibt es?
Aufgabe 5.2*#
Welche Benutzer haben noch nie ein Buch ausgeliehen?
Aufgabe 5.3*#
Welche Benutzer (Vornamen) haben ein Exemplar mit dem Buchtitel „Bierbrauen fuer jedermann“ ausgeliehen?
Aufgabe 5.4*#
Alle Benutzer (Vornamen), die mindestens zwei Exemplare ausgeliehen haben.
Aufgabe 6: Regatta-Informationssystem*#
Programmieren Sie die folgenden textuellen Anfragen mittels Python reframe.
Sie erhalten erneut die Bibliotheksdatenbank.
Bootsklasse = Relation("../resources/05_relationale_algebra/Bootsklasse.csv")
Wettfahrt = Relation("../resources/05_relationale_algebra/Wettfahrt.csv")
Platzierung = Relation("../resources/05_relationale_algebra/Platzierung.csv")
Teilnehmer = Relation("../resources/05_relationale_algebra/Teilnehmer.csv")
print(Bootsklasse)
print(Wettfahrt)
print(Platzierung)
print(Teilnehmer)
Aufgabe 6.1*#
Aus welchem Material (Bauart) wurde das Boot mit der Segelnummer „GER 4318“ gebaut und welcher Klasse gehört es an?
Aufgabe 6.2*#
Zu welcher Zeit starteten die Teilnehmer am „29.5.03“ und welche Boote der Klasse „Optimist“ nahmen an dieser Regatta teil?
Aufgabe 6.3*#
An welchen Wettfahrten haben ausschließlich Holzboote teilgenommen?
Aufgabe 6.4*#
Welche Bootsklassen nehmen am „Franz Huber Gedenk Preis“ oder am „Moorpokal“ teil?
Aufgabe 6.5*#
Welche Boote (SegelNr, Name) konnten das Rennen „Blaues Band“ nicht beenden („dnf“)?
Aufgabe 6.6*#
Wie viele Boote haben am „Franz Huber Gedenk Preis“ teilgenommen?
Aufgabe 6.7*#
An welchen Wettfahrten (Name) haben Boote aller Bauarten teilgenommen.
Aufgabe 6.8*#
An welchen Wettfahrten (Name) haben Boote aller Bauarten teilgenommen haben.
Hinweis: reframe hat keinen eigenen Divisions-Operator.