\documentclass{bschlangaul-aufgabe} \bLadePakete{normalformen,syntax} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 1}, Thematik = {Allgemeine Fragen}, Referenz = 66116-2019-F.T2-TA1-A1, RelativerPfad = Examen/66116/2019/03/Thema-2/Teilaufgabe-1/Aufgabe-1.tex, ZitatSchluessel = examen:66116:2019:03, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Datenbank}, EinzelpruefungsNr = 66116, Jahr = 2019, Monat = 03, ThemaNr = 2, TeilaufgabeNr = 1, AufgabeNr = 1, } \let\m=\bAttributMenge \let\fa=\bFunktionaleAbhaengigkeit \begin{enumerate} %% % a) %% \item Das ACID-Prinzip fordert unter anderem die Atomaritat und die Isolation einer Transaktion. Beschreiben Sie kurz die Bedeutung dieser Begriffe.\index{Datenbank} \footcite{examen:66116:2019:03} \begin{bAntwort} \begin{description} \item[Atomicity] Eine Transaktion ist atomar, \dh von den vorgesehenen Änderungsoperationen auf die Datenbank haben entweder alle oder keine eine Wirkung auf die Datenbank. \item[Isolation] Eine Transaktion bemerkt das Vorhandensein anderer (parallel ablaufender) Transaktionen nicht und beeinflusst auch andere Transaktionen nicht.\footcite[Kapitel 9.5 „Eigenschaften von Transaktionen“, Seite 305]{kemper} \end{description} \end{bAntwort} %% % b) %% \item Was versteht man unter physischer Datenunabhängigkeit? \begin{bAntwort} Änderungen an der physischen Speicher- oder der Zugriffsstruktur (beispielsweise durch das Anlegen einer Indexstruktur) haben keine Auswirkungen auf die logische Struktur der Datenbasis, also auf das Datenbankschema. \footcite[Seite 20]{db:fs:3} \footcite[Kapitel 1.3 Datenunabhängigkeit Seite 24]{kemper} \end{bAntwort} %% % c) %% \item In welche drei Ebenen unterteilt die 3-Ebenen-Architektur Datenbanksysteme? \begin{bAntwort} \begin{description} \item[Externe Ebene / (Benutzer)sichten (Views)] Die externe Ebene stellt den Benutzern und Anwendungen individuelle Benutzersichten bereit, wie beispielsweise Formulare, Masken-Layouts, Schnittstellen. \item[Konzeptionelle / logische Ebene] Die konzeptionelle Ebene beschriebt, welche Daten in der Datenbank gespeichert sind, sowie deren Beziehungen. Ziel des Datenbankdesigns ist eine vollständige und redundanzfreie Darstellung aller zu speichernden Informationen. Hier findet die Normalisierung des relationalen Datenbankschemas statt. \item[Interne / physische Ebene] Die interne Ebene stellt die physische Sicht der Datenbank im Computer dar. Sie beschreibt, wie und wo die Daten in der Datenbank gespeichert werden. Oberstes Designziel ist ein effizienter Zugriff auf die gespeicherten Informationen, der meist durch bewusst in Kauf genommene Redundanz (\zB Index) erreicht wird. \footcite[Seite 443, 13.1.3 Architektur eines Datenbanksystems]{schneider} \footcite[Seite 23, 1.2 Datenabstraktion]{kemper} \footcite[Seite 20]{db:fs:3} \end{description} \end{bAntwort} %% % d) %% \item Definieren Sie, was ein Schlüssel ist. \begin{bAntwort} Ein Schlüssel ist ein Attribut oder eine Attributkombination, von der alle Attribute einer Relation funktional abhängen. \end{bAntwort} %% % e) %% \item Gegeben ist eine Relation \bRelation{A, B, C}, deren einziger Schlüsselkandidat A ist. Nennen Sie zwei Superschlüssel. \begin{bAntwort} \m{A, B} oder \m{A, C} oder \m{A, B, C} \end{bAntwort} %% % f) %% \item Gegeben seien 2 Relationen \bRelation{A, B, C} und \bRelation[S]{C, D, E}. Die Relation $R$ enthalte $9$ Tupel und die Relation $S$ enthalte $7$ Tupel. Sei $p$ ein beliebiges Selektionsprädikat. Gegeben seien außerdem folgende Anfragen: $Q_1$: \begin{minted}{sql} SELECT * FROM R NATURAL JOIN S WHERE p; \end{minted} $Q_2$: \begin{minted}{sql} SELECT DISTINCT A FROM R LEFT OUTER JOIN S ON R.C=S.C; \end{minted} \begin{enumerate} \item Wieviele Ergebnistupel liefert die Anfrage $Q_1$ mindestens? \begin{bAntwort} 0 \end{bAntwort} \item Wieviele Ergebnistupel liefert die Anfrage $Q_1$ höchstens? \begin{bAntwort} 7 \end{bAntwort} \item Wieviele Ergebnistupel liefert die Anfrage $Q_2$ mindestens? \begin{bAntwort} 9 \end{bAntwort} \item Wieviele Ergebnistupel liefert die Anfrage $Q_2$ höchstens? \begin{bAntwort} 9 \end{bAntwort} \end{enumerate} %% % g) %% \item Erläutern Sie, was es bedeutet, wenn ein Attribut prim ist. \begin{bAntwort} Sei $R$ ein Relationenschema. Ein Attribut $A \in R$ heißt \emph{prim}, falls $A$ Teil eines Schlüsselkandidaten von $R$ ist. Andernfalls heißt A \emph{nichtprim}.\footcite[Seite 191]{winter} \end{bAntwort} %% % h) %% \item Nennen Sie die drei Armstrong-Axiome, die dazu dienen aus einer Menge von funktionalen Abhängigkeiten, die auf einer Relation gelten, weitere funktionale Abhängigkeiten abzuleiten. \begin{bAntwort} \begin{description} \item[Reflexivität:] % Eine Menge von Attributen bestimmt eindeutig die Werte einer Teilmenge dieser Attribute (triviale Abhängigkeit), das heißt, $\beta \subseteq \alpha \Rightarrow \alpha \rightarrow \beta$ . \item[Verstärkung:] % Gilt $\alpha \rightarrow \beta$, so gilt auch $\alpha \gamma \rightarrow \beta \gamma$ für jede Menge von Attributen $\gamma$ der Relation. \item[Transitivität:] % Gilt $\alpha \rightarrow \beta$ und $\beta \rightarrow \gamma$, so gilt auch $\alpha \rightarrow \gamma$. \end{description} \footcite[Axiome von Armstrong]{wiki:funktionale-abhängigkeit} \end{bAntwort} %% % i) %% \item Nennen Sie die höchste Normalform, der die Relation \bRelation{A, B, C, D} mit den Abhängigkeiten \fa{A -> C} und \fa{A, B -> D} entspricht. Begründen Sie Ihre Antwort. \begin{bAntwort} 1NF. \fa{A -> C} verletzt die 2NF, da das Nichtprimärattribut $C$ funktional von einer echten Teilmenge ($A$) des Schlüsselkandidaten (\fa{A, B -> D}) abhängt. \end{bAntwort} %% % j) %% \item Gegeben seien die Transaktionen $T_1$, $T_2$ und $T_3$. Wie viele mögliche verschiedene serialisierbare Schedules gibt es mindestens? (Geben Sie Ihren Rechenweg an.) \begin{bAntwort} Vergleiche Kemper Seite 341 Kapitel „Theorie der Serialisierbarkeit“. \end{bAntwort} \end{enumerate} \end{document}