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,

in der Winterprüfung 2019 für den Anwendungsentwickler gab es eine Aufgabe zur Normalisierung.

Ich Finde jedoch einfach die Lösung für die 3NF nicht. Ich sehe keinen Unterschied zwischen der 2NF und der 3NF für diese Tabelle:

BikeID BikeType MaintanenceDate MaintanenceID MaintainenceType Time EmployeeID EmployeeName
E5 E-Bike 400 10/17/2019 12, 09, 05 Breaks, Clutch, Akku 30, 12, 15 123, 345, 512 Klaus Müller, Beatrice Richter, Kurt Helming
C2 Citybike 28 10/20/2019 03, 12 Pedals, Breaks, 25, 10 345, 123 Beatrice Richter, Klaus Müller
E5 E-Bike 400 11/15/2019 9 Clutch 15 123 Klaus Müller

1NF:

BikeID BikeType MaintanenceDate MaintanenceID MaintainenceType Time EmployeeID EmployeeName EmployeeFirstname
E5 E-Bike 400 10/17/2019 12 Breaks 30 123 Müller Klaus
E5 E-Bike 400 10/17/2019 9 Clutch 12 345 Richter Beatrice
E5 E-Bike 400 10/17/2019 5 Akku 15 512 Helming Kurt
C2 Citybike 28 10/20/2019 3 Pedals 25 345 Richter Beatrice
C2 Citybike 28 10/20/2019 12 Breaks 10 123 Müller Klaus
E5 E-Bike 400 11/15/2019 9 Clutch 15 123 Müller  Klaus

2NF:

BikeID BikeType      
E5 E-Bike 400      
C2 Citybike 28      
         
EmployeeID EmployeeName EmployeeFirstname    
123 Müller Klaus    
345 Richter Beatrice    
512 Helming Kurt    
         
MaintanenceID MaintainenceType      
3 Pedals      
5 Akku      
9 Clutch      
12 Breaks      
         
BikeID EmployeeID MaintanenceID MaintanenceDate Time
E5 123 12 10/17/2019 30
E5 345 9 10/17/2019 12
E5 512 5 10/17/2019 15
C2 345 3 10/20/2019 25
C2 123 12 10/20/2019 10
E5 123 9 11/15/2019 15

 

Wie würde denn jetzt die 3NF aussehen? 

Habe ich vlt. schon einen Fehler bei der 1NF oder 2NF gemacht?

 

 

Bearbeitet von dinozero

Du hast in deiner Umformung in die 1NF schon einen Schritt zu viel gemacht, sodass deine 1NF schon die 2NF ist.

Die 1NF besagt nämlich nur, dass jede Information in der Tabelle eine Spalte bekommt. Du hast aber die Namen der Mitarbeiter schon atomar aufgeteilt. Das wäre der Schritt für die 2NF. Die 1NF sähe eigentlich so aus:

1NF:

BikeID  BikeType    MaintanenceDate MaintanenceID   MaintainenceType    Time    EmployeeID  Employee
E5      E-Bike 400  10/17/2019      12              Breaks              30      123         Klaus Müller
E5      E-Bike 400  10/17/2019      9               Clutch              12      345         Beatrice Richter
E5      E-Bike 400  10/17/2019      5               Akku                15      512         Kurt Helming
C2      Citybike 28 10/20/2019      3               Pedals              25      345         Beatrice Richter
C2      Citybike 28 10/20/2019      12              Breaks              10      123         Klaus Müller
E5      E-Bike 400  11/15/2019      9               Clutch              15      123         Klaus Müller

Der nächste Schritt, um in die 2NF zu gelangen, wäre Employee in FirstName und LastName aufzuteilen.

2NF:

BikeID  BikeType    MaintanenceDate MaintanenceID   MaintainenceType    Time    EmployeeID  EmployeeFirstName   EmployeeLastName
E5      E-Bike 400  10/17/2019      12              Breaks              30      123         Klaus               Müller
E5      E-Bike 400  10/17/2019      9               Clutch              12      345         Beatrice            Richter
E5      E-Bike 400  10/17/2019      5               Akku                15      512         Kurt                Helming
C2      Citybike 28 10/20/2019      3               Pedals              25      345         Beatrice            Richter
C2      Citybike 28 10/20/2019      12              Breaks              10      123         Klaus               Müller
E5      E-Bike 400  11/15/2019      9               Clutch              15      123         Klaus               Müller

Um nun in die 3NF zu kommen, müssen die Informationen in Tabellen aufgeteilt werden, den du schon richtig gemacht hast.

Das kann doch nicht richtig sein, wenn man die Definition für die zweite Normalform ansieht: Ein Relationstyp (Tabelle) befindet sich genau dann in der zweiten Normalform (2NF), wenn er sich in der ersten Normalform (1NF) befindet und jedes Nichtschlüsselattribut von jedem Schlüsselkandidaten voll funktional abhängig ist. Demnach würde ich sagen, dass in der 2. Normalform z.B. EmployeeFirstName und Time auf keinen Fall in der gleichen Tabelle stehen können. Hab das Problem auch jedes Mal mit zweiter Normalform, 3. ist easy und intuitiv aber zweite...

Bearbeitet von badPractice
spelling

Also leider ist die Antwort von @Whiz-zarD nicht ganz korrekt.

In der 1.NF teilst du den Employee bereits in Vor- und Nachname auf, also atomatisierst die Werte.

In der 2.NF tust du dann die Tabelle aufteilen in Bike, Maintenance und MaintenanceType.

Erst in der 3.NF spaltest du Employee von Maintenance ab. Employee hat nämlich Attribute (Vor- und Nachname) die nicht direkt von BikeID, MaintenanceDate und MaintenanceTypeID (Zusammengesetzter Primary Key) abhängig sind, sondern nur von EmployeeID. Also ab in eigene Tabelle.

 

Mit anderen Worten war dein Problem einfach nur dass du die transitive Abhängigkeit bereits in der 2.NF behoben hast statt wie vorrausgesetzt in der 3.

Bearbeitet von paranoiwarum?

@Whiz-zarD Alles gut, vor 6 Stunden war es auch noch ziemlich früh morgens :D

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.