Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Zusammen, 

ich blick nicht, wie man eine Wohnadresse in der dritten Normalform angibt. So schwer kann das doch nicht sein!?

Angenommen, ich habe "Kunden" inkl. deren Adresse. 
Dann (in der 3. NF) StrasseHnr in "Kunden"  lassen und PLZ + Ort in eine andere Tabelle auslagern? 
Aber dann ist ja trotzdem Ort von der PLZ transitiv abhängig.. 
Außerdem könnten zwei Leute in der gleichen StraßeHnr wohnen, also darf die ja auch nicht in "Kunden" bleiben. 
Also Strasse, PLZ und Ort in drei eigene Tabellen? Hab ich noch nie gesehen und wäre je mega umständlich...
 

Keine Ahnung, wie man da blicken soll, mit was die IHK in der Prüfung zufrieden ist... 😔

vor 2 Minuten schrieb tobidoe:

Dann (in der 3. NF) StrasseHnr in "Kunden"  lassen und PLZ + Ort in eine andere Tabelle auslagern? 
Aber dann ist ja trotzdem Ort von der PLZ transitiv abhängig.. 

Das ist schon richtig so. Die transitiv abhängigen Spalten packste in eine seperate Tabelle und gut ist.

 

Kunde

Knr Name Vorname Straße Hnr Plz
x x x x x x

 

PLZ

plz ort
x x

 

  • Autor

Jetzt kann aber die Straße mehrmals vorkommen. 
 

Angenommen Tom Maier wohnt in der Tierstraße und Max Weber wohnt auch in der Tierstraße, dann steht die mehrmals in der Tabelle und Redundanz ist nie gut...

Oder ist das eine Redundanz, die keiner der ersten drei Normalformen widerspricht und eben in Kauf genommen wird?
 

Bearbeitet von tobidoe

Kommt darauf an. Ich habe erlebt, dass es eine je eine Tabelle für Personen und Adressen gab. Und dann noch eine Tabelle, in welcher die Adressen unter Berücksichtigung der Art der Adresse gespeichert wurde.

Also Rechnungsadresse, Lieferadresse(n), Wohnadresse, ...

PLZ-Ort ist übrigens n:m. Ebenfalls PLZ-Straße.

vor 7 Minuten schrieb allesweg:

PLZ-Ort ist übrigens n:m. Ebenfalls PLZ-Straße.

Das ist, finde ich, mit der wichtigste Punkt bislang. Vor allem, weil das von @programmierer_2 verlinkte Beispiel das nicht hergibt, da hier typischerweise von einer 1:n-Beziehung für PLZ-Ort ausgegangen wird. Doof nur, dass das am Ende dazu führen könnte, dass ein Paket nicht zugestellt werden kann. Wir haben bei uns in der Nähe auch zwei Orte, die sich eine PLZ teilen und obendrauf noch Ein-Straßen-Dörfer, die zwar eingemeindet sind, aber i.d.R. dennoch angegeben werden könn(t)en.

Den Fehler machen aber auch (Fach-)Hochschulen:

https://www.hdm-stuttgart.de/~riekert/lehre/db-kelz/chap4.htm

vor 20 Minuten schrieb tobidoe:

Also wird die Redundanz bei der Straße tatsächlich einfach in Kauf genommen? 

In einer perfekten Welt würde ich es nicht in Kauf nehmen, aus Bequemlichkeit wird es aber vielerorts getan.

  • Autor

Ich denke, ich weiß inzwischen Bescheid: 

1. Den Straßenname in einer Tabelle (z.B. "Kunden") anzugeben, führt zwar zu Redundanzen, diese werden aber in der Praxis an dieser Stelle oft akzeptiert.
Komplette Redundanzfreiheit hat kaum eine echte Datenbank und wäre auch nicht zielführend (wäre ein unverhältnismäßig hoher Aufwand). 
Die ersten 3 Normalformen sind damit auch nicht verletzt, die 4. NF aber schon! Genau die regelt sowas, wird aber in der Praxi aus o.g. Gründen nur selten angewandt. 

2. PLZ und Stadtnamen sind, wie schon genannt, m:n. Es gibt PLZ, die sich auf mehrere Städte beziehen und es gibt Städte, die mehrere PLZ haben. 
Wenn ich aber in PLZ und Stadtname in eine Tabelle schreibe, ohne extra ID, und den PK über beide Attribute ziehe, dann ist die ganze Sache elegant gelöst. 

Also, für die Prüfung: 
Falls nichts anderes angegeben ist, StrasseHnr oder Strasse + Hnr in der Tabelle belassen, PLZ + Stadt in extra Tabelle mit PK über beide Attribute, fertig. 
(4. NF ist damit noch verletzt, aber die wird ja nicht abgefragt)

vor 16 Stunden schrieb _n4p_:

adressen sind meiner meinung nach einfach sehr schlechte beispiele für die 3NF

Zumal werden hier üblicherweise nur ein Teil der möglichen Adressbestandteile berücksichtigt und optionale Bestandteile als Pflichtfelder angesehen.

vor 16 Stunden schrieb tobidoe:

(4. NF ist damit noch verletzt, aber die wird ja nicht abgefragt)

Nur zur Info: Es ist nicht immer gewünscht die Tabellen stark zu Normalisieren. Normalisierungen bedeutet auch immer eine schlechtere Performance, weil die SQL-Statements komplizierter werden. Darum findet man in der Praxis kaum etwas höheres, als die 3. NF. Weil hier die Kosten (sowohl in der Planung, als auch später bei der Ausführung) noch überschaubar sind. Es ist also ein guter Kompromis.

Für bestimmte Zwecke denormalisieren wir sogar teile unseres Datawarehouses von der 3. NF in die 1. NF, um eine bessere Performance und eine einfachere Schreibweise der SQL-Statements zu ermöglichen.

Bearbeitet von Whiz-zarD

Am 2.5.2021 um 14:01 schrieb programmierer_2:

Ist es?

Ein PLZ kann nur ein Ort haben. Aber ein Ort kann mehrere PLZs haben.

Eine Straße kann nur ein PLZ haben, aber PLZ kann mehreren Straßen gehören.

Eine PLZ kann mehrere Orten haben und ein Ort kann mehrere PLZ haben 😃 bei mir im kreis haben 10 orte die selbe PLZ. und die nächste Stadt hat wenn ich mich nicht irre 3 PLZ oder sogar mehr

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.