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):
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:
Die Adressdaten zum Kunden könnten ebenfalls in eine eigene Tabelle ausgelagert werden, um Redundanzen zu vermeiden. Allerdings ist dies keine Frage der Normalformen.
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:
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?
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.
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>)