Verstoß gegen welche Normalform?

Hallo zusammen,

ich möchte in eine Tabelle mit folgenden Spalten erstellen.

Kundennr. Name Vorname Straße Hausnr. PLZ Einkunftsart Einnahmen

Mit den Einkunftsarten meine ich folgende http://de.wikipedia.org/wiki/Einkunftsart_(Deutschland)

Ist es möglich das so machen oder verstoße ich da gegen eine Normalform?

Gruß und Dank

Hallo Alex,

ohne Kenntnis des Anwendungsfalls ist die Frage kaum zu beantworten. Aber angesichts des einfachen Beispiels und unter der Annahme, dass ein Kunde mehrere Einkunftsarten haben kann, sollten die Tabellen wie folgt normalisiert werden (Primärschlüssel unterstrichen):

Kunde (<u>Kundennr</u>, Name, Vorname, Straße, Hausnr, PLZ)
Einnahmen (<u>Kundennr</u>, <u>Einkunftsart</u>, Einnahmen)

Es wäre in dem Zusammenhang sinnvoll, die Einkunftsart in eine eigene Tabelle auszulagern, um bspw. Schreibfehler beim Erfassen der Daten zu vermeiden. Die Tabelle Einnahmen wird dabei wie folgt geändert:

Einkunftsart (<u>EinkunftsartNr</u>, Einkunftsart)
Einnahmen (<u>Kundennr</u>, <u>EinkunftsartNr</u>, Einnahmen)

Die Adressdaten zum Kunden könnten ebenfalls in eine eigene Tabelle ausgelagert werden, um Redundanzen zu vermeiden. Allerdings ist dies keine Frage der Normalformen.

Peter

Hallo und danke für die Antwort,

ja, es soll möglich sein bei dem Kunden mehrere Einkommensarten zu hinterlegen. Aber gegen welche Normalisierungsform hätte ich verstoßen?

Es wäre in dem Zusammenhang sinnvoll, die Einkunftsart in eine
eigene Tabelle auszulagern, um bspw. Schreibfehler beim
Erfassen der Daten zu vermeiden. Die Tabelle Einnahmen wird
dabei wie folgt geändert:

Einkunftsart (EinkunftsartNr, Einkunftsart)
Einnahmen (Kundennr, EinkunftsartNr, Einnahmen)

Die Adressdaten zum Kunden könnten ebenfalls in eine eigene
Tabelle ausgelagert werden, um Redundanzen zu vermeiden.
Allerdings ist dies keine Frage der Normalformen.

Das Auslagern der Adressdaten hat also nichts mit den Normalformen zu tun. Hat das Auslagern der Einkunftsarten etwas mit den Normalformen zu tun?

Gruß

Hallo Alex,

Dein Ansatz verstößt gegen die 2. Normalform (2NF).

Der Schlüssel für Deine Ausgangstabelle ist {Kundennr, Einkunftsart}.

Für die 2NF gilt, dass alle Attribute, die nicht Teil des Schlüssels sind, vom GESAMTEN Schlüssel abhängig sein müssen, also in dem Fall von beiden Spalten.
Die Kundendaten (Name, Adressdaten) sind aber nur von der Kundennr abhängig. Deshalb werden sie in eine eigene Tabelle ausgelagert, für die die 2NF gilt.

Peter

Danke! Kleine Änderung zum Verständnis
Hallo nochmal und danke für die Antwort,

was wäre wenn ich den Ansatz nun ändere und meine Tabelle um die Spalte Einnahmen kürze?

Die Tabelle also so aussieht.

Kundennr. Name Vorname Straße Hausnr. PLZ Einkunftsart

Gibt es dann noch einen Verstoß?

Ich weiß, dass das sicherlich nicht mehr praxisgemäß ist. Es ist eine reine Verständnisfrage.

Gruß

Das würde nichts ändern, da die Einkunftsart nicht ausschließlich vom Kunden abhängig ist. Da es je Kunde mehrere Einkunftsarten geben kann, gilt nach wie vor:

Kunde (<u>Kundennr</u>, Name, Vorname, Straße, Hausnr, PLZ)
Einnahmen (<u>Kundennr</u>, <u>Einkunftsart</u>)

Peter

Danke! Danke!
Vielen Dank!

Wieder was gelernt!