Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Frage zur funktionalen Abhängigkeit in der 2NF

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von NoBrainDB, 6 November 2014.

  1. NoBrainDB

    NoBrainDB Aktiver Benutzer

    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.
     
  2. Hony%

    Hony% Datenbank-Guru

    Zu 1:
    Korrekt

    Weißt du nicht. Kannst du auch nicht wissen ohne ausreichend große Datenmenge oder ERD.

    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.

    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.

    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. ;)
     
  3. NoBrainDB

    NoBrainDB Aktiver Benutzer

    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!
     
  4. Hony%

    Hony% Datenbank-Guru

    Mit einer ausreichend großen Datenmenge ginge das. Die steht aber beim Entwurf normalerweise nicht zur Verfügung.

    Allerdings gibt es durchaus einen Zerlegungsalgorithmus um eine Relation mit bekannten FA in die BCNF zu bringen.
     
  5. NoBrainDB

    NoBrainDB Aktiver Benutzer

    okay, danke, aber die BCNF brauche ich nicht :) Bei mir hakt/hakte es vor allem an der FA in der 2. NF und an den Primärschlüsseln.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden