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.

Normalisierung 1.NF etc.

Empfohlene Antworten

Veröffentlicht

Sehr geehrte Community,

ich habe folgende Aufgabenstellung und benötige euere Hilfe, um ein besseres Verständnis zur Thematik "Normalisierung" zu gewinnen. :)

Aufgabenstellung: "Bringen Sie die die folgende Flat Table in die 1.-, 2.- und 3.NF."

Ausgangs-Entitätstyp:

[table=width: 500]

[tr]

[td]Name[/td]

[td]Vorname[/td]

[td]StrHNr[/td]

[td]PLZ[/td]

[td]Ort[/td]

[td]Ausleihdatum[/td]

[td]Medium[/td]

[/tr]

[/table]

1.NF:

Da alle Attribute der Flat-Table schon atomar angeben sind, sieht die Lösung entsprechend so aus:

[table=width: 500]

[tr]

[td]Name[/td]

[td]Vorname[/td]

[td]StrHNr[/td]

[td]PLZ[/td]

[td]Ort[/td]

[td]Ausleihdatum[/td]

[td]Medium[/td]

[/tr]

[/table]

2.NF:

Jetzt beginnt für mich die unsichere Phase, als PK definiere ich die Attribute Ausleihdatum und FreundNr (künstlicher PK).

Mein Vorschlag:

[table=width: 500]

[tr]

[td]FreundNr[/td]

[td]Ausleihdatum[/td]

[td]Medium[/td]

[/tr]

[/table]

[table=width: 500]

[tr]

[td]FreundNr[/td]

[td]Name[/td]

[td]Vorname[/td]

[td]StrHNr[/td]

[td]PLZ[/td]

[td]Ort[/td]

[/tr]

[/table]

3.NF:

Aus meinem zweiten Entitätstyp erkenne ich eine transaktive Abhängigkeit zwischen PLZ -> Ort, deshalb muss ich ein neuer Entitätstyp definieren.

[table=width: 500]

[tr]

[td]FreundNr[/td]

[td]Ausleihdatum[/td]

[td]Medium[/td]

[/tr]

[/table]

[table=width: 500]

[tr]

[td]FreundNr[/td]

[td]Name[/td]

[td]Vorname[/td]

[td]StrHNr[/td]

[td]PLZ[/td]

[/tr]

[/table]

[table=width: 500]

[tr]

[td]PLZ[/td]

[td]Ort[/td]

[/tr]

[/table]

Wäre eine solche Lösung regelkonform bzw. richtig? Oder verletzt einer meiner Entitätstypen die Normalform?

MfG

UltimateLinux

Hi UltimateLinux,

Ein Ort kann mehrere PLZ haben, logisch; aber der Umgekehrte Fall tritt auch auf, d.h., dass mehrere Orte eine PLZ haben können. Damit sind Ort und PLZ nicht transitiv abhängig.

Aber was wäre, wenn ein Freund an einem Tag mehrere Medien ausleihen will?

MfG

derSuhler

  • Autor

Hi derSuhler,

vielen dank erstmal für deine Antwort.

Alles klar, dann müsste die Lösung so aussehen:

FreundNr Ausleihdatum Medium

FreundNr Name Vorname StrHNr PLZ Ort

Korrekt?

So nun zu deiner Frage, ich persönlich würde die bestehende PK-Kombination erweitern und zwar mit einem neuen Attribut namens "AusleihNr", um jedes Medium eindeutig zu identifizieren können.

Das würde so aussehen:

FreundNr Ausleihdatum AusleihNr Medium

FreundNr Name Vorname StrHNr PLZ Ort

MfG

UltimateLinux

Hi UltimateLinux,

Ein Ort kann mehrere PLZ haben, logisch; aber der Umgekehrte Fall tritt auch auf, d.h., dass mehrere Orte eine PLZ haben können. Damit sind Ort und PLZ nicht transitiv abhängig.

Aber was wäre, wenn ein Freund an einem Tag mehrere Medien ausleihen will?

Eine Plz kann mehrere Orte beinhalten. Aber in Deutschland kommt es auf die Plz an. Aktuell sind es in Deutschland 14957 Postleitzahlen. Die Identifizierung der Straße findet nicht statt. Die Plz ist lediglich das Umfeld, Teilorte fallen demnach raus.

  • Autor
Eine Plz kann mehrere Orte beinhalten. Aber in Deutschland kommt es auf die Plz an. Aktuell sind es in Deutschland 14957 Postleitzahlen. Die Identifizierung der Straße findet nicht statt. Die Plz ist lediglich das Umfeld, Teilorte fallen demnach raus.

Also nach deiner Aufassung ist eine genauere Identifizierung durch das Attribut "Ort" nicht mehr nötig da diese Aufgabe schon das Attribut "PLZ" übernommen hat.

Verstehe, dann sehen die Relationen so aus:

FreundNr Ausleihdatum AusleihNr Medium

FreundNr Name Vorname StrHNr PLZ

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

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.