# 1, 2 und 3 Normalform



## handswurst (15. Juni 2008)

Hallo erstmal,
Ich der ich nicht gerade der Datenbankprofi bin, stehe vor einem Problem und bin gerade etwas am verzweifeln. Ich hoffe Ihr könnt mir helfen.

Ich verstehe den Unterschied zwischen der 2 und 3 Normalform nicht. Die 1. ist ja klar, aber wo ist der Unterschied zwischen 2 und 3? 

Um mein problem zu verdeutlichen:
Aufgabe ist:
*Ich möchte Kundendaten eines Spielwarenhandels speichern. Durch Geburtsdaten sollen Geburtstagskarten und altersgerechte Werbung verteilt werden.

Erstellen Sie unter verwendung der 1., 2. und 3. Normalform ein relationales Datenbankmodell.*

Meine Überlegung war, in der ersten Normalform eine Tabelle:


```
| KundenID | Name | Vorname | Adresse | Geb. | KindID | KindName | KindGeb | WerbeID | WerbeArt | WerbeDatum |
```

in der zweiten Normalform:

```
| KundenID | Name | Vorname | Adresse | Geb. |

| KindID | KundenID | KindName | KindGeb |

| WerbeID | KUndenID | WerbeArt | WerbeDatum |
```

Aber was wäre dann die 3.? Oder ist der Ansatz schon komplett falsch? Ich wäre sehr froh wenn ihr es schaffen würdet mir anhand meines Beispiels die 2 und 3 Normalform zu erläutern.

Danke Handswurst


----------



## The Hacky (15. Juni 2008)

Hi!

Ich hab mir das immer so gemerkt:

1. Normalform: keine Liste von Werten
2. Normalform: keine Abhängikeiten von verschiedenen Primärschlüsseln in einer Tabelle
3. Normalform: transitive Abhängikeiten auslagern (z.B. Ort hängt von Ort ab)

Ansonsten kann ich Dir nur den Wikipedia-Artikel [1] dazu ans Herz legen. Der ist echt gut gemacht, weil er, meiner Meinung nach, gute Beispiele enthält.

[1] http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)

EDIT: Im Prinzip, mal von der PLZ abgesehen, weil es unnütz ist, hast Du schon die dritte Normalform gebildet. Manchmal kann man bestimmte Normalformen nicht explizit bilden bzw. kommt schneller dahin als man denkt.


----------



## SGSSGene (15. Juni 2008)

deine zweite Normal Form wird auch shcon der 3. Normalform gerecht.
Bei der 3. Normal Form, geht es darum das Bestimmte Attribute nicht zweimal vorkommen.
z.B. könntest du in deiner 2. Relation jedes mal den Namen, des Kunden mitspeichern. Dies wäre dann der 3.Normalform nicht gerecht, da der Name bereits über die KundenID festgelegt ist.


----------



## handswurst (15. Juni 2008)

erste Normalform:

```
| KundenID | Name | Vorname | Adresse | Geb. | KindID | KindName | KindGeb | WerbeID | WerbeArt | WerbeDatum |
```

zweite Normalform:

```
| KundenID | Name | Vorname | Adresse | Geb. |

| KindID | KundenID | KindName | KindGeb | Adresse |

| WerbeID | KundenID | WerbeArt | WerbeDatum |
```

Dritte Normalform:

```
| KundenID | Name | Vorname | Adresse | Geb. |

| KindID | KundenID | KindName | KindGeb | 

| WerbeID | KundenID | WerbeArt | WerbeDatum |
```

also könnte man es so sehen?

würden denn meine Ausführungen die Fragestellung akzeptabel lösen?


----------

