Normalisierung Relationsschreibweise?


12.01.2021, 16:53

Stimmt das so?

2 Antworten

Ein relationales Schema heißt normalisiert, wenn es maximal mögliche redundanzfreie Datenspeicherung erzwingt.

Mit anderen Worten: Ein und dasselbe Attribut eines Objekts in mehr als nur einer Tabelle zu haben, ist nur erlaubt, wenn es in einer Tabelle Teil des Primärschlüssels ist, in allen anderen Tabellen aber Teil eines Fremdschlüssels, der Referenz auf eben die Tabelle ist, in der es als Teil des Primärschlüssels auftritt.

Definiere dein Schema so, dass diese Bedingung erfüllt ist.

Das Schema ist dann schon normalisiert.

verreisterNutzer  12.01.2021, 16:53

Danke für die Antwort. Ich habe die Frage ergänzt, könnten Sie schauen ob das so passt?

0
grtgrt  12.01.2021, 17:12
@verreisterNutzer

n tbl_Mitarbeiter und in tbl_Kinder tritt das Paar ( Ort, PLZ ) auf.

Tatsächlich dort auftreten darf aber - bei normalisierten Tabellen - nur PLZ, denn auf welchen Ort eine Postleitzahl zeigt, ist ja definiert in tbl_PLZ.

Ansonsten ist alles richtig.

0

In tbl_Mitarbeiter und in tbl_Kinder tritt das Paar ( Ort, PLZ ) auf.

Tatsächlich dort auftreten darf aber - bei normalisierten Tabellen - nur PLZ, denn auf welchen Ort eine Postleitzahl zeigt, ist ja definiert in tbl_PLZ.

Ansonsten ist alles richtig.

verreisterNutzer  12.01.2021, 17:21

Könnten Sie mir bitte sagen wie ich das ändern kann? deswegen scheitere ich auch schon seit einer stunde bei sql es kommt immer eine fehlermeldung

0
verreisterNutzer  12.01.2021, 17:24
@verreisterNutzer

Kann ich den Ort also einfach weglassen und nur PLZ hinschreiben?

So dann: tbl_Mitarbeiter(Nr,Vorname,Nachname,Straße,Email,PLZ) ?

0
grtgrt  12.01.2021, 18:05
@verreisterNutzer

Ja, das solltest du tun.

Es könnte ja sonst sein, dass der Ortsname sich ändert, man den Namen in einer der beiden Tabellen aktualisiert, aber nicht in der anderen. Eben deswegen darf der Ortsname nur in einer einzigen Tabelle auftreten. [ Genau das erreicht zu haben ist der Zweck von Normalisierung. ]

1