\documentclass{bschlangaul-aufgabe}
\bLadePakete{mathe,spalten,rmodell}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 2: Relationale Algebra},
  Thematik = {Mitfahrgelegenheiten},
  Referenz = 46116-2014-F.T2-TA2-A2,
  RelativerPfad = Examen/46116/2014/03/Thema-2/Teilaufgabe-2/Aufgabe-2.tex,
  ZitatSchluessel = examen:46116:2014:03,
  ZitatBeschreibung = {Thema 2 Teilaufgabe 2 Aufgabe 2},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Relationale Algebra},
  EinzelpruefungsNr = 46116,
  Jahr = 2014,
  Monat = 03,
  ThemaNr = 2,
  TeilaufgabeNr = 2,
  AufgabeNr = 2,
}

\section{Aufgabe 2: Relationale Algebra
\index{Relationale Algebra}
\footcite[Thema 2 Teilaufgabe 2 Aufgabe 2]{examen:46116:2014:03}
}

Gegeben sei das folgende relationale Schema mitsamt Beispieldaten für
eine Datenbank von Mitfahrgelegenheiten. Die Primärschlüssel-Attribute
sind jeweils unterstrichen, Fremdschlüssel sind überstrichen.
\footcite{db:pu:wh}

{
\footnotesize
\begin{multicols}{2}
„Kunde":

\begin{tabular}{|l|l|l|l|}
\hline
\bPrimaer{KID} & Name & Vorname & \bFremd{Stadt}\\\hline\hline
K1 & Meier & Stefan & S3\\\hline
K2 & Müller & Peta & S3\\\hline
K3 & Schmidt & Christine & S2\\\hline
K4 & Schulz & Michael & S4\\\hline
\end{tabular}

„Stadt"

\begin{tabular}{|l|l|l|}
\hline
\bPrimaer{SID} & SName & Bundesland\\\hline\hline
S1 & Berlin & Berlin\\\hline
S2 & Nürn & Bayern\\\hline
S3 & Köln & Nordrhein-Wesffalen\\\hline
S4 & Stuttgart & Baden-Württemberg\\\hline
S5 & München & Bayer\\\hline
\end{tabular}
\end{multicols}

\begin{multicols}{2}
„Angebot":

\begin{tabular}{|l|l|l|l|l|}
\hline
\bPrimaer{KID} & \bFremd{Start} & \bFremd{Ziel} & \bPrimaer{Datum} & Plätze\\\hline\hline
K4 & S4 & S5 & 08.07.2011 & 3\\\hline
K4 & S5 & S4 & 10.07.2011 & 3\\\hline
K1 & S1 & S5 & 08.07.2011 & 3\\\hline
K3 & S2 & S3 & 15.07.2011 & 1\\\hline
K4 & S4 & S1 & 15.07.2011 & 3\\\hline
K1 & S5 & S5 & 09.07.2011 & 2\\\hline
\end{tabular}

„Anfrage":

\begin{tabular}{|l|l|l|l|}
\hline
\bPrimaer{KID} & \bFremd{Start} & \bFremd{Ziel} & \bPrimaer{Datum}\\\hline\hline
K2 & S4 & S5 & 08.07.2011\\\hline
K2 & S5 & S4 & 10.07.2011\\\hline
K3 & S2 & S3 & 08.07.2011\\\hline
K3 & S3 & S2 & 10.07.2011\\\hline
K2 & S4 & S5 & 05.07.2011\\\hline
K2 & S5 & S4 & 17.07.2011\\\hline
\end{tabular}
\end{multicols}
}

\begin{enumerate}
\item Formulieren Sie die folgenden Anfragen auf das gegebene Schema in
relationaler Algebra:

\begin{itemize}
\item Finden Sie die Namen aller Städte in Bayern!

\begin{bAntwort}
$\pi_{\text{SName}}(\sigma_{\text{Bundesland} = \text{Bayern}}(\text{Stadt}))$
\end{bAntwort}

%%
%
%%

\item Finden Sie die SIDs aller Städte, für die weder als Start noch als
Ziel eine Anfrage vorliegt!

\begin{bAntwort}
$
\pi_{\text{SID}}(\text{Stadt}) - \pi_{\text{Start}}(\text{Anfage}) - \pi_{\text{Ziel}}(\text{Anfrage})
$
\end{bAntwort}

%%
%
%%

\item Finden Sie alle IDs von Kunden, welche eine Fahrt in ihrer
Heimatstadt starten.

\begin{bAntwort}
\begin{multline*}
\pi_{\text{KID}}(\\
  \text{Kunde} \bowtie_{\text{Kunde.KID} = \text{Anfrage.KID} \land \text{Kunde.Stadt} = \text{Anfrage.Stadt}} \text{Anfrage}
)\\
\land\\
\pi_{\text{KID}}(\\
  \text{Kunde} \bowtie_{\text{Kunde.KID} = \text{Angebot.KID} \land \text{Kunde.Stadt} = \text{Angebot.Stadt}} \text{Angebot}
  )
\end{multline*}
\end{bAntwort}

%%
%
%%

\item Geben Sie das Datum aller angebotenen Fahrten von München nach
Stuttgart aus!

\begin{bAntwort}
\begin{multline*}
\pi_{\text{Datum}}(\\
  (\text{Angebot} \bowtie_{\text{Start} = \text{SID} \land \text{SName} = \mlq\text{München}\mrq} \text{Stadt})\\
  \bowtie_{\text{Ziel} = \text{SID} \land \text{SName} = \mlq\text{Stuttgart}\mrq}\\
  \text{Stadt}\\
)
\end{multline*}
\end{bAntwort}

Variante 2:

\begin{bAntwort}
\begin{multline*}
\pi_{\text{Datum}}(\\
  \sigma_{
    \text{Sname} = \mlq\text{München}\mrq \land
    \text{Zname} = \mlq\text{Stuttgart}\mrq
  }(\\
    \rho_{
      \text{Zname} \leftarrow \text{Sname},
      \text{SID1} \leftarrow \text{SID}
    }(\text{Stadt})\\
    \bowtie_{\text{Ziel} = \text{SID1}}\\
    \text{Angebot}\\
    \bowtie_{\text{Start} = \text{SID}}\\
    \text{Stadt}
  )
)
\end{multline*}
\end{bAntwort}

%%
%
%%

\end{itemize}

\item Geben Sie das Ergebnis (bezüglich der Beispieldaten) der folgenden
Ausdrücke der relationalen Algebra als Tabellen an:

%%
%
%%

\begin{itemize}
\item $\pi_{\text{KID}} (\text{Angebot}) \bowtie \text{Kunde}$

\begin{bAntwort}
Zeile mit der Petra Müller fällt weg.

\begin{tabular}{|l|l|l|l|}
\hline
\bPrimaer{KID} & Name & Vorname & \bFremd{Stadt}\\\hline\hline
K1 & Meier & Stefan & S3\\\hline
K3 & Schmidt & Christine & S2\\\hline
K4 & Schulz & Michael & S4\\\hline
\end{tabular}
\end{bAntwort}

%%
%
%%

\item $
\pi_{(\text{KID},\text{Stadt})} (\text{Kunde})
\bowtie_{\text{Kunde.Stadt} = \text{Angebot.Ziel}}
\pi_{\text{Plaetze}} (\text{Angebot})$

\begin{bAntwort}

\begin{tabular}{|l|l|l|}
\hline
KID & Stadt & Plätze \\\hline\hline
K1 & S3 & 1 \\\hline
K2 & S3 & 1 \\\hline
K4 & S4 & 1 \\\hline
K4 & S4 & 2 \\\hline
\end{tabular}
\end{bAntwort}
\end{itemize}
\end{enumerate}

\end{document}
