aboutsummaryrefslogtreecommitdiff
path: root/Info/10/1/Redundanz/slides.md
blob: e23d45d3b7d49b2c01a1f3d56bc3fc1258fed7e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
---
author: Florian Fischer
theme: metropolis
aspectratio: 169
header-includes: |
    \usepackage{tikz}
    \usetikzlibrary{calc}
    \usetikzlibrary{positioning}
    \usetikzlibrary{tikzmark}
    \usetikzlibrary{fit}
    \usetikzlibrary{decorations.pathreplacing,angles,quotes}
    \usepackage{fontawesome5}
    \let\tightlist\relax
    \makeatletter
    \beamer@ignorenonframefalse
    \makeatother
    \newcommand{\boldred}[1]{\textcolor{red}{\textbf{#1}}}
    \newcommand{\appear}[3]{\only<#1>{\underline{\phantom{#3}}}\only<#2>{\boldred{#3}}}
    \newcommand{\mydash}[1]{\tikz[baseline=(todotted.base)]{\node[inner sep=1pt,outer sep=0pt] (todotted) {#1}; \draw[dashed] ([yshift=-2pt]todotted.south west) -- ([yshift=-2pt]todotted.south east); } }
---


## Wiederholung - n:m Beziehungen

## 

Ein Versandhandel verwaltet sämtliche Bestellungen in einer Tabelle mit folgendem Schema:

\texttt{BESTELLUNG[\underline{KdNr}; Name; Vorame; Adresse; Telefon; \underline{ArtNr}; Artikel; Preis; Anzahl; \underline{BDatum}}

![](Copyrighted/bestellungen.jpg)

\pause
### \faIcon{desktop} Arbeitsauftrag - 3 min

* Überlege Dir welche Informationen werden unnötig oft gespeichert?
* Finde Probleme die durch das Tabellenschema entstehen wenn Datensätze geändert werden müssen.

## \faIcon{pencil-alt}

Unter \appear{1}{2-}{Redundanz} versteht man die Mehrfachspeicherung von Daten.

Beim Ändern, Löschen oder Einfügen von Datensätzen kann können dadurch Probleme entstehen, sogenannte \appear{3}{4-}{Anomalien}.

## UPDATE-Anomalie

Beim Löschen können ungewollte andere Informationen verloren gehen.

Welche Informationen gehen verloren wenn abgeschlossene Bestellungen gelöscht werden?

### Verlorene Information

* Kundendaten (Name, Vorname, Adresse, Telefon)
* Produktinformationen (Artikel, Preis)

## INSERT-Anomalie

Neue Daten lassen sich nicht einfügen solange Teile des Primärschlüssels nicht bekannt sind.

![](Copyrighted/insert_anomalie.jpg)

Ein neues Produkt kann erst aufgenommen werden, wenn es auch bereits bestellt wurde.


## \faIcon{pencil-alt} Arbeitsauftrag - 7 min

Erstelle ein Klassendiagramm das die Klassen der Bestelltabelle und ihre Beziehungen darstellt.

Benenne die Beziehungen und gib ihre Kardinalitäten an.

## Lösung

\centering
\scalebox{1.3}{
\begin{tikzpicture}
\node[draw] (k) {Kunde};
\node[draw,right=3cm of k] (b) {Bestellung};
\node[draw,right=3cm of b] (a) {Artikel};

\draw (k) -- (b) node[midway, above] {tätigt >};
\path (k) -- (b) node[very near start, above] {1};
\path (k) -- (b) node[very near end, above] {n};

\draw (b) -- (a) node[midway, above] {enthält >};
\path (b) -- (a) node[very near start, above] {m};
\path (b) -- (a) node[very near end, above] {n};
\end{tikzpicture}
}

## \faIcon{pencil-alt} Arbeitsauftrag - 7 min

Erstelle ein Tabellenschema das dein Klassendiagramm in eine Datenbank überträgt.

Markiere Primär-/ und Fremschlüssels wie gewohnt.

## Lösung

\texttt{Kunde[\underline{KndNr}; Name; Vorname; Adresse; Telefon]}

\texttt{Bestellung[\underline{BDatum; \mydash{KndNr}}]}

\texttt{Artikel[\underline{ArtNr}; Artikel; Preis]}

\texttt{Enthaelt[\underline{\mydash{BDatum; KndNr}; \mydash{ArtNr}}; Anzahl};