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.

Normalisierungsaufgabe

Empfohlene Antworten

Veröffentlicht

Hallo,

ich hänge absolut an einer Aufgabe, bei der man eine gegebene Tabelle in die 2te und 3te Normalform bringen soll. Trotz zig Tutorials und Anleitungen versteh ich das einfach nicht (oder ich sehe es einfach nicht, wo man die Tabellen trennen muss). Könnt Ihr mir hier bitte helfen.

Aufgabenstellung: Gegeben ist folgende Tabelle in 0-Normalform

KALENDER(TID,MitarbeiterNr,Datum,Uhrzeit,Termin,Abteilung,Ort,Vorname,Nachname,TAGESORDNUNG(TOP,Beschreibung))

Es gelten die folgenden funktionalen Abhängigkeiten:

 TID -> Datum, Uhrzeit, Termin

 MitarbeiterNr -> Abteilung, Vorname, Nachname

 Abteilung -> Ort

 TID, TOP -> Beschreibung

Meine Lösung zur zweiten Normalform:

MITARBEITER(MitarbeiterNr,Vorname,Nachname,Abteilung)

KALENDER(TID,Datum,Uhrzeit,Termin,MitarbeiterNr)

ABT(Abteilung,Ort)

TORDNUNG(TID,TOP,Beschreibung)

Ist das die zweite Normalform?

Wie komme ich auf die dritte?

:(

Ich bin zwar nicht der DB-Pro, aber die Lösung sollte in etwa auf das hinauslaufen:

In 1NF hast Du folgende Struktur:

Kalender:

TID,MitarbeiterNr,Datum,Uhrzeit,Termin,Abteilung,Ort,Vorname,Nachname,TOP,Beschreibung

1,1,2015-06-01,13:00,T,A,Köln,Michael,Müller, 1, Normalisierung von DBs

1,2,2015-06-01.13:00,T,A,Köln,Marius,Meier, 1, Normalisierung von DBs

In der 2NF kannst Du den Termin und den Mitarbeiter auftrennen:

Termin_Mitarbeiter

TID,MitarbeiterNr

1,1

1,2

Termin_Beschreibuing

TID, TOP,Beschreibung

1, 1, Normalisierung von DBs

Termin

TID, Datum,Uhrzeit,Termin

1, 2015-06-01,13:00, T

Mitarbeiter

MitarbeiterNr, Vorname, Nachname,Abteilung, Ort

1, Michael,Müller, A, Köln

2, Marius,Meier, A, Köln

Hier besteht aber noch die Abhängigkeit von Ort zu Abteilung, welche aber nur indirekt etwas mit dem Mitarbeiter zu tun hat.

Daher wird das in der 3NF in eine eigene Tabelle ausgegliedert.

3NF:

Termin

TID, Datum, Uhrzeit, Termin

1, 2015-06-01,13:00,T

Mitarbeiter

MitarbeiterNr, Vorname, Nachname,Abteilung

1, Michael,Müller,A

2, Marius,Meier,A

Abteilung

Name,Ort

A, Köln

Mitarbeiter_Termin

MitarbeiterNr, TID

1,1

2,1

Termin_Beschreibung

TID, TOP, Beschreibung

1, 1, Normalisierung von DBs

  • Autor

Vielen lieben Dank für deine superschnell und hilfreiche Antwort.

So hatte ich auch die 3NF. Allerdings verstehe ich folgendes nicht:

Bei der 3NF darf ja kein nichtschlüsselAttribut transistiv abhängig sein.

Warum ist aber folgendes erlaubt.

MitarbeiterNr -> Vorname/Nachname -> Abteilung.

Also ich bin der Meinung, dass ich durch die MitarbeiterNr den Vor- Nachnamen bestimmen kann und durch den Vor- und Nachnamen kann ich doch aber auch wiederum die Abteilung bestimmen oder nicht?

Warum ist das keine Verletzung der 3ten NF? :(

3NF ist m.M.n. das, was standardmäßig erstmal implementiert werden sollte. Ob man in der Praxis dann noch weiter geht oder wieder Richtung 2NF, hängt vollkommen davon ab, von was für einer Anwendung wir reden. Da muss man dann aber tatsächlich gute Gründe für haben.

Hi mfk,

das heißt, in der Aufgabenstellung müssen die FD's gegeben sein, da ansonsten sehr viel Interpretationsspielraum ist?

Welche Normalform sollte ich in der Praxis anstreben? 3NF, BoyCodd, 4NF?

Das läßt sich so pauschal nicht festlegen. Teilweise weicht man auch wieder von der 3NF ab, wenn Denormalisierung Performancegewinne verspricht.

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.