\documentclass{bschlangaul-aufgabe} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe}, Thematik = {Nachteile vollständige Normalisierung}, Referenz = 66113-2003-H.T2-A1, RelativerPfad = Examen/66113/2003/09/Thema-2/Aufgabe-1.tex, ZitatSchluessel = 66113:2003:09, ZitatBeschreibung = {Thema 2 Aufgabe 1}, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Normalformen, Synthese-Algorithmus}, EinzelpruefungsNr = 66113, Jahr = 2003, Monat = 09, ThemaNr = 2, AufgabeNr = 1, } Gegeben\index{Normalformen} \footcite[Thema 2 Aufgabe 1]{66113:2003:09} sei die folgenden Datenbank mit den offenen Rechnungen der Kunden eines Versandhauses: \footcite[Seite 2 Aufgabe 4]{db:ab:5} \begin{tabular}{|l|l|l|l|l|l|l|} \textbf{RNR} & \textbf{KDNR} & \textbf{Name} & \textbf{Adresse} & \textbf{Positionen} & \textbf{Datum} & \textbf{Betrag} \\\hline 1 & 1 & Müller & München & 3 & 01.11.2002 & 60 \\ 2 & 1 & Müller & München & 2 & 23.05.2003 & 90 \\ 3 & 2 & Huber & Nürnberg & 3 & 09.03.2003 & 90 \\ 4 & 2 & Huber & Nürnberg & 8 & 14.02.2003 & 70 \\ 5 & 3 & Meier & Augsburg & 7 & 20.06.2003 & 110 \\ 6 & 4 & Meier & München & 12 & 07.04.2003 & 90 \end{tabular} \begin{enumerate} %% % (a) %% \item Erläutern Sie, warum nur Relationen mit einem zusammengesetzten Schlüsselkandidaten die 2. Normalform verletzen können! \begin{bAntwort} Ist der Schlüsselkandidat ein-elementig, so müssen sämtliche Attribute zwangsläufig voll funktional von diesem Schlüsselkandidaten abhängig sein. Dies ist genau die Voraussetzung für die 2. NF, sodass die 2. NF bei atomaren Attributwerten und nur ein-elementigen Schlüsselkandidaten immer gegeben ist. Bei zusammengesetzten Schlüsselkandidaten kann die 2. NF hingegen verletzt werden, da es sein kann, dass ein Nicht-Schlüsselattribut nur von Schlüsselkandidaten abhängig ist. \end{bAntwort} %% % (b) %% \item Geben Sie für obige Datenbank alle vollen funktionalen Abhängigkeiten (einschließlich der transitiven) an? \begin{bAntwort} \ttfamily \begin{compactitem} \item RNR $\rightarrow$ KDNR, Name, Adresse, Positionen, Datum, Betrag \item KDNR $\rightarrow$ Name, Adresse \end{compactitem} \end{bAntwort} %% % (c) %% \item Erläutern Sie, inwiefern obiges Schema die 3. Normalform verletzt! Zeigen Sie anhand obiger Relation „Rechnung“ zwei mögliche Anomalien auf, die bei fehlender Normalisierung auftreten können. \begin{bAntwort} Die Attribute \texttt{Name} und \texttt{Adresse} sind transitiv (\texttt{RNR $\rightarrow$ KDNR $\rightarrow$ Name, Adresse}) vom Schlüssel \texttt{RNR} abhängig! \bPseudoUeberschrift{Mögliche Anomalien:} \begin{description} \item[UPDATE-Anomalie:] Müller zieht nach Regensburg, müsste in jedem Tupel geändert werden, wird aber bei \texttt{RNR 2} vergessen $\rightarrow$ Inkonsistenz \item[INSERT-Anomalie:] Neuer (potentieller) Kunde Schmidt kann erst eingefügt werden, wenn auch eine offene Rechnung vorliegt \item[DELETE-Anomalie:] Wird \texttt{RNR 6} gelöscht, gehen auch die Kundendaten von Meier aus München verloren. \end{description} \end{bAntwort} %% % (d) %% \item Überführen Sie das obige Relationenschema in die 3. Normalform! Erläutern Sie die dazu durchzuführenden Schritte jeweils kurz! \index{Synthese-Algorithmus} \begin{bAntwort} Rechnung: \begin{tabular}{|l|l|l|l|l|l|l|} \textbf{RNR} & \textbf{KDNR} & \textbf{Positionen} & \textbf{Datum} & \textbf{Betrag} \\\hline 1 & 1 & 3 & 01.11.2002 & 60 \\ 2 & 1 & 2 & 23.05.2003 & 90 \\ 3 & 2 & 3 & 09.03.2003 & 90 \\ 4 & 2 & 8 & 14.02.2003 & 70 \\ 5 & 3 & 7 & 20.06.2003 & 110 \\ 6 & 4 & 12 & 07.04.2003 & 90 \end{tabular} Kunde: \begin{tabular}{|l|l|l|l|l|l|l|} \textbf{KDNR} & \textbf{Name} & \textbf{Adresse} \\\hline 1 & Müller & München \\ 1 & Müller & München \\ 2 & Huber & Nürnberg \\ 2 & Huber & Nürnberg \\ 3 & Meier & Augsburg \\ 4 & Meier & München \end{tabular} Die transitiven Abhängigkeiten sind zu entfernen, dadurch wird die neue Relation „Kunde“ mit KDNR als Primärschlüssel geschaffen. \end{bAntwort} Erläutern Sie, inwiefern sich eine vollständige Normalisierung nachteilig auf die Geschwindigkeit der Anfragebearbeitung auswirken kann und wie darauf reagiert werden kann! \footcite[Aufgabe 10: Nachteile der Normalisierung]{db:ab:klausurvorbereitung} \begin{bAntwort} Durch die vielen Tabellen sind schon bei einfacheren Anfragen schnell Joins notwendig, was bei komplexeren Anfragen und großen Datenmengen zu einigem Rechenaufwand führen kann. Hier ist es sinnvoll, zuerst eine Selektion zu treffen, anstatt in einem einfachen Kreuzprodukt auch sämtliche sinnlose Tupel miteinander zu verknüpfen. \end{bAntwort} \end{enumerate} \end{document}