\documentclass{bschlangaul-aufgabe} \bLadePakete{relationale-algebra} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 3}, Thematik = {Relationen R1 und R2}, Referenz = 66116-2021-F.T1-TA2-A3, RelativerPfad = Examen/66116/2021/03/Thema-1/Teilaufgabe-2/Aufgabe-3.tex, ZitatSchluessel = examen:66116:2021:03, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Relationale Algebra}, EinzelpruefungsNr = 66116, Jahr = 2021, Monat = 03, ThemaNr = 1, TeilaufgabeNr = 2, AufgabeNr = 3, } \begin{enumerate} %% % a) %% \item Gegeben seien die folgenden beiden Relationen R1 und R2: \index{Relationale Algebra} \footcite{examen:66116:2021:03} \bPseudoUeberschrift{R1} \begin{tabular}{|l|l|l|} \hline P & Q & S \\ \hline 10 & einfach & 5 \\ \hline 15 & b & 8 \\ \hline 13 & einfach & 6 \\ \hline \end{tabular} \bPseudoUeberschrift{R2} \begin{tabular}{|l|l|l|} \hline A & B & C \\ \hline 10 & b & 6 \\ \hline 13 & c & 3 \\ \hline 10 & b & 5 \\ \hline \end{tabular} Geben Sie das Ergebnis des folgenden relationalen Ausdrucks an: \begin{center} $R_1 \bowtie_ {R_1.P = R_2.A} R_2$ (Equi-Join) \end{center} \begin{bAntwort} \begin{tabular}{|l|l|l|l|l|l|} \hline P & Q & S & A & B & C \\ \hline 10 & einfach & 5 & 10 & b & 6 \\ \hline 10 & einfach & 5 & 10 & b & 5 \\ \hline 13 & einfach & 6 & 13 & c & 3 \\ \hline \end{tabular} \end{bAntwort} %% % a)? %% \item Zeichnen Sie den Operatorbaum zu folgender Abfrage in relationaler Algebra: \begin{bAntwort} \begin{tikzpicture} \node (pi) {$\pi_{\text{NAME, BERUF, PNAME}}$}; % joins \node[below=of pi] (join person abt proj) {$\bowtie$} edge (pi); \node[below right=of join person abt proj] (join abt proj) {$\bowtie$} edge (join person abt proj); % person \node[below left=of join person abt proj] (pi person) {$\pi_{\,\text{ANR, NAME, BERUF}}$} edge (join person abt proj); \node[below=of pi person] (person) {PERSON} edge (pi person); % abt \node[below left=of join abt proj] (pi abt) {$\pi_{\,\text{ANR}}$} edge (join abt proj); \node[below=of pi abt] (sigma abt) {$\sigma_{\,\text{EIN} > 1 000 000}$} edge (pi abt); \node[below=of sigma abt] (abt) {ABT} edge (sigma abt); % proj \node[below right=of join abt proj] (pi proj) {$\pi_{\,\text{ANR, PNAME}}$} edge (join abt proj); \node[below=of pi proj] (sigma proj) {$\sigma_{\,\text{ORT = DD}}$} edge (pi proj); \node[below=of sigma proj] (proj) {PROJ} edge (sigma proj); \end{tikzpicture} \end{bAntwort} %% % b) %% \item Ist der linke (bzw. rechte) Verbundoperator (Left- bzw. Right-Outer Join) assoziativ? Falls ja, beweisen Sie die Aussage, falls nein, geben Sie ein Gegenbeispiel an. \begin{bAntwort} Nein. Beleg durch Gegenbeispiel: \bPseudoUeberschrift{R1} \begin{tabular}{|l|l|} \hline A & B \\ \hline 1 & 2 \\ \hline 2 & 15 \\ \hline \end{tabular} \bPseudoUeberschrift{R2} \begin{tabular}{|l|l|} \hline A & C \\ \hline 1 & 35 \\ \hline 2 & 12 \\ \hline 13 & 5 \\ \hline \end{tabular} \bPseudoUeberschrift{R3} \begin{tabular}{|l|l|} \hline B & C \\ \hline 2 & 35 \\ \hline 100 & 35 \\ \hline \end{tabular} \bPseudoUeberschrift{(R1 LEFT OUTER JOIN R2) LEFT OUTER JOIN R3} \begin{tabular}{|l|l|l|l|l|l|} \hline R1.A & R1.B & R2.A & R2.C & R3.B & R3.C \\ \hline 1 & 2 & 1 & 35 & 2 & 35 \\ \hline 2 & 15 & 2 & 12 & NULL & NULL \\ \hline \end{tabular} \bPseudoUeberschrift{R1 LEFT OUTER JOIN (R2 LEFT OUTER JOIN R3)} \begin{tabular}{|l|l|l|l|l|l|} \hline R1.A & R1.B & R2.A & R2.C & R3.B & R3.C \\ \hline 1 & 2 & 1 & 35 & 2 & 35 \\ \hline 2 & 15 & NULL & NULL & NULL & NULL \\ \hline \end{tabular} (Nur wenn beide Tabellen leer sind, wären auch die Outer Joins assoziativ). \end{bAntwort} \end{enumerate} \end{document}