Funktionale Abhängigkeiten - Redundanzvermeidung & Logikproblem 3NF

infomarvin

Neuer Benutzer
Beiträge
4
Hallo,

ich bin leider seit Tagen am Verzweifeln, KI hilft nicht, auch das Internet nicht.
Also angenommen ich habe folgendes Schema R(A,B,C,D,E) mit den Funktionalen Abhängigkeiten AB -> ABCDE und C -> B (Schema somit in 3 NF, weil B Teil des Keys)

1. Problem: inwieweit wird Redudanz vermieden? Es könnte ja auch sein, dass (1,2,3,4,5) (2,2,3,4,5) eingetragen ist und z.B. C als Abteilungsnummer und B als Abteilungsgröße steht, trotzdem Redudanz entsteht (bei gleicher Abteilungsnummer, gleiche Größe). Inwieweit hilft diese Bedingung überhaupt, ich verstehe das mit der transitiven Abhängigkeit auch nicht wirklich. Ein nicht-Schlüssel Attribut bestimmt ein anderes nicht-SchlüsselAttribut, (transitive Abhängigkeit), aber was hilft es dann, dass bei X -> Y (Y Teil des Keys ist, und was beseitigt das?)

2. Problem: Die Funktionalen Abhängigkeiten können nicht garantiert werden, z.B. (1,2,3,4,5) (1,x,3,4,6), dann müsste ich ja für x 2 eintragen (weil C -> B, aber andererseits bestimmt ja AB -> ABCDE), d.h. es wäre gar nicht möglich 2 einzutragen, da ja AB -> ABCDE sonst nicht zutreffen würde.

Bin wirklich am Verzweifeln und hoffe es kann mir jemand helfen.
Vielen lieben Dank

Lg
Marvin
 
Zuletzt bearbeitet:
Werbung:
Bin grad unterwegs und kein Theoretiker, also mal als erste Überlegung zum Verständnis.
Bei dem ganzen Kram geht es auch um Semantik.
Zahlen oder Buchstaben sind für sich nichts weiter als Symbole, die für sich allein keine Aussagekraft haben. Sie stehen als Platzhalter für Informationen, die die NF erfüllen (oder auch nicht, bei knobelazfgaben)
Daraus folgt, dass man erst bei einer Gruppe von Symbolen ohne weitere Angaben einen Widerspruch entdecken kann oder wenn die Symbole mit "leben" gefüllt werden.

Das hast du mit Abteilingsnummer und - Größe gemacht. Dieses Beispiel ist M. E. eine Verletzung der NF, weil die Größe von der Abteilung abhängig ist und damit als ein Symbol betrachtet werden müsste.

Wenn c und b 2x in gleicher Kombi vorkommen, wäre es einfach doppelt und unzulässig.
 
Danke :) Ich habe die Lösung heraussen, warum Redundanz verloren geht, wenn man eine Key Column funktional bestimmt. Man verliert quasi einen Freiheitsgrad, weil man für diesen Key nicht mehr variieren kann. Wenn man ein nicht prime Attribut bestimmt, hat man alle Schlüssel als Freiheitsgrade.
 
Danke :) Ich habe die Lösung
Gut!

Ehrlich gesagt, habe ich Deine letzten Aussage(n) nicht richtig verstanden.
Redundanz geht verloren? Redundanz wird elemniert (hoffentlich), scheint mir passender formuliert. Redundanzfreiheit ist ja das Ziel bei der Modellierung.
Hier müsste man tatsächlich noch unterscheiden, ob man das akademisch betrachtet, also Schul- oder Uniaufgaben oder auch für exakte Algorithmik oder ob man diese Theorie am Ende für ein reales Datenmodell anwendet. Letzteres ist häufig ein Kompromis. Ich sehe bspw. selten, dass Postleitzahlen und Städte im Datenmodell nach Vorschrift abgebildet werden. Kann man alles machen, ist aber dann recht spezifisch für deutsche (und vielleicht einige andere ) Adressnotationen.
Unvollständige Normalisierung muss man dann im realen Datenmodell entsprechend absichern, Stichwort "Konsistenz". Starke Normalisierung liefert am ehesten ("automatisch") konsistente, also widerspruchsfreie Daten. Schwache Normalisierung muss durch Constraints und andere Datenbankfunktionen eingehegt werden, um inkonsistente Daten zu vermeiden.
Das bezieht sich relationale Datenbanksysteme, mit NoSQL oder anderen Persistenzverfahren hat man idR einen etwas anderen Fokus und andere Problemstellungen, ein weites Feld. Man sollte nicht nur das Verfahren lernen, sondern eine Idee haben, wozu es dient.
 
Werbung:
Akademisch. Ich bahne mir den Weg gerade durch, um micht für ein Software Projekt (Uni Projekt) vorzubereiten, alles richtig abzubilden, wie das heißt ist mir egal.
Das wird mir wiederrum zu theoretisch. Ich habe eine Problemstellung, und sollte daraus erkennen, wie ich es richtig abbilde (das weiß ich, indem ich weiß wie man es redudanzfrei abbildet, denn genau so wird es auch im Endeffekt richtig sein)

Danke nochmal für deinen Zusatz, wenn mir noch was einfällt, das dazu passt schreibe ich es hier, danke für die Hilfe :)

Lg
 
Zurück
Oben