\documentclass{bschlangaul-aufgabe}
\bLadePakete{mathe}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 5: Freizeitcenter (Check-Up)},
  Thematik = {Freizeitcenter},
  Referenz = DB.Relationales-Modell.Relationale-Algebra.Freizeitcenter,
  RelativerPfad = Module/10_DB/30_Relationales-Modell/20_Relationale-Algebra/Aufgabe_Freizeitcenter.tex,
  ZitatSchluessel = db:ab:4,
  ZitatBeschreibung = {Aufgabe 5},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Relationale Algebra},
}

Gegeben ist das Datenbankschema „Freizeitcenter“ mit folgender
Ausprägung:
\index{Relationale Algebra}
\footcite[Aufgabe 5]{db:ab:4}

\bPseudoUeberschrift{Hinweise:}

\begin{itemize}
\item Die Courts werden immer für eine Stunde gebucht. Gespeichert ist
der Buchungsbeginn.

\item Die Tabelle „Buchung“ enthält die Daten eines Tages.

\item Angabe der Attributwerte von Betrag in Euro

\item Court 1-10: Squash, Court 11-20: Badminton, Court 21-30:
Tischtennis
\end{itemize}

\begin{enumerate}

%%
% (a)
%%

\item Interpretieren Sie folgende Terme in natürlicher Sprache und geben
Sie die Ergebnisrelation an!

\begin{enumerate}

%%
% (i)
%%

\item $\pi_{\text{Name}} (
  \sigma_{\text{Beruf}=\mlq \text{Student} \mrq} (\text{Spieler})
)$

\begin{bAntwort}
Es sollen die Nachnamen aller Studenten ausgegeben werden, die im
Freizeitcenter registriert sind.

\begin{tabular}{|l|}
\hline
\textbf{Name}\\
Klein\\\hline
\end{tabular}

\end{bAntwort}

%%
% (ii)
%%

\item $\pi_{\text{Beruf,von,bis,Betrag}} (
  \sigma_{\text{Beruf} = \mlq \text{Schüler} \mrq} (\text{Spieler})
    \bowtie
  \text{Preis}
)$

\begin{bAntwort}
Der gegebene Term gibt nichts aus, da die Relation \emph{Spieler} und
\emph{Preis} kein gemeinsames Attribut haben. Es kann kein Naturaljoin
statt finden.

\begin{tabular}{|l|l|l|l|}
\hline
\textbf{Beruf} & \textbf{von} & \textbf{bis} & \textbf{Betrag}\\
\hline
\end{tabular}

\bigskip

Müsste es nicht so heißen?

$\pi_{\text{Beruf,von,bis,Betrag}} (
  \sigma_{\text{Beruf} = \mlq \text{Schüler} \mrq} (\textbf{Preisstufe})
    \bowtie
  \text{Preis}
)$

\begin{tabular}{|l|l|l|l|}
\hline
\textbf{Beruf} & \textbf{von} & \textbf{bis} & \textbf{Betrag}\\
Schüler & 07:00 & 12:00 & 10\\
Schüler & 12:00 & 17:00 & 15\\
Schüler & 17:00 & 22:00 & 20 \\
\hline
\end{tabular}

\end{bAntwort}

%%
% (iii)
%%

\item $\pi_{\text{Name,Vorname}} (
  \sigma_{\text{Betrag} \geq  10 \land \text{Betrag} \leq 20} (\text{Preis}) \bowtie
  \text{Preisstufe} \bowtie
  \text{Spieler}
)$

\begin{bAntwort}
Es werden der Nachname und der Vorname von allen Mitglieder des
Freizeitcenters eingezeigt, die der Preisstufe 1 und 2 angehören und
deshalb nicht mehr als 20 Euro zahlen müssen.

\begin{tabular}{|l|l|}
\hline
\textbf{Name} & \textbf{Vorname}\\
Klein & Mathias\\
Müller & Inge\\
Deckard & Klara\\
Beutlin & Hein\\
\hline
\end{tabular}

\end{bAntwort}

%%
% (iv)
%%

\item
\begin{multline*}
\pi_{\text{Name,Buchung,Zeit}} (\\
  \sigma_{\text{Typ} = \mlq \text{Tischtennis} \mrq} (\text{Court})\\
  \bowtie_{\text{Court.ID} = \text{Buchung.Court-ID}} \text{Buchung}\\
  \bowtie_{\text{Buchung.Spieler} = \text{Spieler.Spieler-ID}} \text{Spieler}\\
)
\end{multline*}

\begin{bAntwort}
Es wird der Name der/des SpielerIn, die Buchung (Court-ID) und die Zeit
von allen Tischtennis-Buchungen ausgegeben.

Zwischenschritt:

$\sigma_{\text{Typ} = \mlq \text{Tischtennis} \mrq} (\text{Court})
\bowtie_{\text{Court.ID} = \text{Buchung.Court-ID}} \text{Buchung}$

\begin{tabular}{|l|l|l|l|}
\hline
\textbf{Court-ID} & \textbf{Zeit} & \textbf{Spieler} & \textbf{Typ}\\
21 & 16:00 & 5 & Tischtennis\\
24 & 12:00 & 1 & Tischtennis\\
\hline
\end{tabular}

Ergebnis-Relation:

\begin{tabular}{|l|l|l|}
\hline
\textbf{Name} & \textbf{Buchung} & \textbf{Zeit}\\
Beutlin & NULL & 16:00 \\
Klein & NULL & 12:00 \\
\hline
\end{tabular}

Müsste es nicht so heißen?

\begin{multline*}
\pi_{\text{Name,\textbf{Court-ID},Zeit}} (\\
  \sigma_{\text{Typ} = \mlq \text{Tischtennis} \mrq} (\text{Court})\\
  \bowtie_{\text{Court.ID} = \text{Buchung.Court-ID}} \text{Buchung}\\
  \bowtie_{\text{Buchung.Spieler} = \text{Spieler.Spieler-ID}} \text{Spieler}\\
)
\end{multline*}

\begin{tabular}{|l|l|l|}
\hline
\textbf{Name} & \textbf{Court-ID} & \textbf{Zeit}\\
Beutlin & 21 & 16:00 \\
Klein & 24 & 12:00 \\
\hline
\end{tabular}
\end{bAntwort}

\end{enumerate}

%%
% (b)
%%

\item Formulieren Sie folgende Anfragen in relationaler Algebra!

\begin{enumerate}

%%
% (i)
%%

\item Gesucht sind die Spieler-IDs der Personen, die einen Squash-Court
gebucht haben.

\begin{bAntwort}
$\pi_{\text{Spieler}}(
  \sigma_{\text{Typ} = \mlq \text{Squash} \mrq} (\text{Court})
    \bowtie_{\text{Court.ID} = \text{Buchung.Court-ID}}
  \text{Buchung}
)$
\end{bAntwort}

%%
% (ii)
%%

\item In welche Preisstufe fällt Frau Tyrell?

\begin{bAntwort}
$\pi_{\text{PS}}(
  \sigma_{\text{Name} = \mlq \text{Tyrell} \mrq} (\text{Spieler})
    \bowtie
  \text{Preisstufe}
)$
\end{bAntwort}

%%
% (iii)
%%

\item Gesucht sind die Nummern der Courts, die nicht benutzt werden.

\begin{bAntwort}
$\pi_{\text{ID}}(\text{Court}) - \pi_{\text{Court-ID}}(\text{Buchung})$
\end{bAntwort}

%%
% (iv)
%%

\item Welche Berufe üben die Personen aus, die zwischen 9 und 12 Uhr
einen Court gebucht haben?

\begin{bAntwort}
$
  \pi_{\text{Beruf}}(
    \sigma_{\text{Zeit} \geq 9 \land \text{Zeit} \leq 11}(\text{Buchung})
      \bowtie_{\text{Buchung.Spieler} = \text{Spieler.Spieler-ID}}
    \text{Spieler}
  )
$
\end{bAntwort}

%%
% (v)
%%

\item Gesucht sind Name und Vorname der Spieler, die für mehr als eine
Stunde gebucht haben.

\begin{bAntwort}
\begin{multline*}
  \pi_{\text{Name, Vorname}}(\\
    \text{Buchung}\\
      \bowtie_{\text{left.Spieler} = \text{right.Spieler} \land \text{left.Zeit} \neq \text{right.Zeit}}\\
    \text{Buchung}\\
      \bowtie_{\text{Buchung.Spieler} = \text{Spieler.Spieler-ID}}\\
    \text{Spieler}\\
  )
\end{multline*}
\end{bAntwort}
\end{enumerate}
\end{enumerate}
\end{document}
