Frage zur funktionalen Abhängigkeit in der 2NF

NoBrainDB

Aktiver Benutzer
Beiträge
30
Hallo!

Ich schaue gerade die folgende Tabelle an (die Relation "Produktion")

http://wikis.gm.fh-koeln.de/wiki_db/Datenbanken/Zweite-Normalform

Da sind 4 volle funktionale Abhängigkeiten gegeben:

  1. Ang_nr -> Name, Ort, Abt_Nr, Abt_Name
  2. T_Nr -> Bezeichnung
  3. Ang_nr, T_Nr -> Zeit
  4. Abt_Nr -> Abt_Name
Den 1. Punkt verstehe ich: Jedes Mal, wenn sich die Ang_nr ändert, ändern sich die davon abhängigen Werte, aber die Werte an sich sind die gleichen: Ich weiß also "Ang_nr = 101", dann muss Name = x sein, Ort = y usw.

Den 2. Punkt verstehe ich schon nicht: Wenn ich mir nur diese Tabelle isoliert anschaue, woher weiß ich dann, dass die beiden Felder voll funktional abhängig sind? Oder geht das nur, wenn ich den speziellen Anwendungsfall kenne und daher logisch drauf schließen kann (hier müsste ich also wissen, dass jede Bezeichnung eine eigenen T_Nr hat)?

Und wieso ist bei Punkt 3 die Zeit von beiden Schlüsseln abhängig, die Bezeichnung bei Punkt 2 aber nicht? Ist das auch wieder rein logisch zu sehen?

Also ich hätte hier die Aufteilung genau so vorgenommen, wie sie dort beschrieben ist, mit einer Tabelle, in der nur noch Ang_Nr, T_Nr und Zeit sind, und dann pro PrimSch. ein eigene Tabelle, weil ich ja die Angestellten und die Bezeichnungen wahrscheinlich separat verwalten will, um z. B. neue Angestellte unabhängig von der Bezeichnung hinzufügen zu können. Und für die Zeit macht ja es überhaupt keinen Sinn, eine eigenen Tabelle zu erstellen...

Also zusammengefaselt:
Man muss immer den konkreten Anwendungsfall sehen. Isoliert für sich betrachtet kann man nicht zweifelsfrei sagen, wo funktionale Abhängigkeiten bestehen.
 
Werbung:
Zu 1:
Korrekt

Wenn ich mir nur diese Tabelle isoliert anschaue, woher weiß ich dann, dass die beiden Felder voll funktional abhängig sind?
Weißt du nicht. Kannst du auch nicht wissen ohne ausreichend große Datenmenge oder ERD.

Oder geht das nur, wenn ich den speziellen Anwendungsfall kenne und daher logisch drauf schließen kann
Der erste Schritt beim Datenbankentwurf sollte ein ERD sein. Aus einem solchen Diagramm kannst du dann auch die FA ablesen. Das ERD wird auf Basis der vorherigen Anforderungsanalyse erstellt.

Und wieso ist bei Punkt 3 die Zeit von beiden Schlüsseln abhängig, die Bezeichnung bei Punkt 2 aber nicht?
Die Zeit hängt anscheinend sowohl vom ausführenden Angestellten ab sowie vom Produkt. Unterschiedliche Angestellte arbeiten unterschiedlich schnell und unterschiedliche Produkte erfordern einen unterschiedlichen Zeitaufwand. Dadurch können sich bei gleichem Produkt unterschiedliche Zeiten ergeben.

Man muss immer den konkreten Anwendungsfall sehen. Isoliert für sich betrachtet kann man nicht zweifelsfrei sagen, wo funktionale Abhängigkeiten bestehen.
Richtig. Allerdings sind solche Informationen eigentlich aus dem ERD abzulesen.

Code:
R=(A, B, C)

Ohne weitere Informationen ist es unmöglich zu sagen ob und welche FA vorhanden sind. ;)
 
super, vielen Dank wieder mal! Hast mir einen großen Zweifel genommen. Irgendwie hat sich bei mir dieses Bild ergeben, dass man das rein mathematisch herausfinden könnte... Danke sehr!
 
Werbung:
Zurück
Oben