Wie wird der Redundanzgrad bestimmt?

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Wie wird der Redundanzgrad bestimmt?
Hallo zusammen,

wie bestimmt man denn den Redundanzgrad einer Relation?

VG
Speedy


Hi SpeedyGonzalez,

kann keine pauschale Formel für die Berechnung nennen. (Wär auch langweilig)
Folgende Vorgehensweise:

naja erstmal muss man schauen ob überhaupt Redundanzen in der Relation zu finden sein können:

→ vollständig normalisierte Relation? Dann hast du gar keine Redundanzen → Die selbe Information wird nur max. 1x auftauchen.

→ Nicht normalisiert? Verstößt irgendeine funktionale Abhängigkeit gegen eine Normalform? Dann untersuchst du diese Funktionale Abhängigkeit.
Ich denke mir grade mal ne Aufgabe aus. (Evtl fehlerhaft :D)
Nehmen wir an wir haben eine Relation R(A,B,C,D) mit den FAs: AB → C und A->D
Wertebereiche: A [1;10], B[1;20], C[1;500], D[1337;13370]
Wir sehen sofort das AB der einzige Schlüsselkandidat(SK) ist.
Also: SK = AB → max 200 Tupel möglich, da #A * #B = 200

Nun zu den Normalformen. Wir sehen sofort das D nur partiell vom AB abhängig ist → KEINE 2. NF.
Das liegt an der Abhängigkeit A->D.

Nun zur Redundanz: Wie oft kann eine Kombination A->D mehrfach/redundant auftauchen?
Naja AB ist SK. D.h. jedes A kann nur 20x auftreten (Wertebereich von B).
→ 20x kann eine Information redundant auftauchen.

Falls du Probleme hast dir das vorzustellen:
| A | B | C | D |

| 1 | 1 | 254 | 1337 |
| 1 | 2 | 297 | 1337 |
| 1 | 3 | 137 | 1337 |
| …
| 1 | 20 | 39 | 1337 |

Die Information der Zuordnung 1(Spalte A) → 1337(D) kann max. 20x auftreten, da jede Zeile eindeutig sein muss und im Schlüssel sonst nur noch B (mit Wertebereich 1…20) ist.

Hoffe es ist ein bisschen klarer geworden :smiley: Bei dem Thema muss man auf jeden Fall Normalformen und Funktionale Abhängigkeiten drauf haben.
(Die analogen Übungsaufgaben sind ja auch in der passenden Übungseinheit)

Gruß
Christian

1 „Gefällt mir“

Vielen Dank für deine ausführliche Erklärung, Christian!


Hallo ihr zwei.

Die Erklärung ist gut aber leider im entscheidenden Punkt nicht ganz richtig.

Der Redundanzgrad ist hier aber 10 und nicht 20.

Das ergibt sich aus dem Primärschlüssel AB. Da A nur einen Wertebereich von 1-10 besitzt und die Attributkombination aus A und B einzigartig sein muss ergeben sich daraus maximal 10 verschiedene Kombinationen aus (a,b).

Also grundsätzlich kann man sagen, wenn der Redundanzgrad abgefragt wird und es eine partielle Abhängigkeit eines nicht Schlüsselattributes (1NF) gibt ist der Redundanzgrad immer entsprechend des kleinsten Wertebereiches der Schlüsselattribute (Stichwort Einzigartigkeit Schlüsselkandidat).

Also ist die erste Spalte in deiner Relation falsch, da ein Schlüsselkandidat eindeutig sein muss :slight_smile:

Grüße Moritz


Nein? Kombinationen (a,b) gibt es erstmal 200. Dafür Multipliziert man den Wertebereich von A mit dem Wertebereich von B.

Nein die erste Spalte ist korrekt. Warum soll es nicht mehrere Tupel mit dem Wert 1 des Attributs A geben? (genau 20 Stück kann es maximal geben, weil eben der Wertebereich von B genau 20 groß ist)
Verstößt weder gegen die Eindeutigkeit des Schlüsselkandidats (da B ja unterschiedlich ist), noch gegen irgendeine andere FA…


Hm okay entschuldigt die Verwirrung, ich habe es jetzt auch verstanden; hatte davor einen Denkfehler drin!

Danke für die Erklärung :slight_smile:


Hallo Leute,

also scheinbar hab ich es doch noch nicht so ganz gerafft. Mich verwirrt gerade die Lösung aus den Kontrollfragen aus der VL_06

Gegeben Sei die Tabelle R(A,B,C,D)
Es gelte AB → CD und B → D
Die Wertebereiche der Attribute seien
A∈ {1,…, 10}; B ∈ {1,…, 20}; C ∈ {1,…, 40}; D ∈ {1,…, 50};

Lösung zur Frage nach dem Redundanzgrad inkl. Erklärung:

Redundanzgrad: Wie oft kann eine Information1)maximal in R auftauchen ? 10 mal

Zur Erläuterung: Die Informationen die redundant auftreten können sind vom Typ B D. D.h. zu einem bestimmten b vom Typ B gehört immer ein bestimmtes d vom Typ D. Betrachten wir also o.B.d.A. dieInformation b1 d1. Die Frage lautet also: Wie oft kann die Kombination (b1, d1) in der Tabelle R vorkommen. In jedem Tupel in dem das Attribut B den Wert b1 hat muss das Attribut D den Wert d1 haben. Es reicht also aus zu fragen wie oft kann b1 vorkommen? Weil die Attributkombination AB eindeutig sein muss (Schlüsselkandidat) kann ein gegebenes b1 höchstens 10 mal vorkommen, denn es gibt nur 10 verschiedene Werte in A, und damit nur maximal 10 verschiedene Kombinationen (a,b), die ein gegebenes b1 enthalten.

Die partielle Abhängigkeit von B->D ist ja hier Ursache für mögliche Redundanz. AB bildet gemeinsam den PK. Jetzt wird aber zur Erklärung angegeben, dass A höchstens 10 unterschiedliche Werte annehmen kann. Das macht ja soweit auch Sinn.

Warum ist hier der Redundanzgrad 10 und nicht 20? Übersehe ich hier gerade einen Unterschied von deiner Erklärung und der Lösung?

Grüße


Oder ist es grundsätzlich einfach so, dass der Wertebereich des Schlüsselkandidaten den Redundanzgrad bestimmt, der eben nicht die Determinante der partiellen Abhängigkeit ist?


Weil meine Aufgabe sich von der Aufgabe in der Vorlesung unterscheidet? AB → C und A->D statt AB → CD und B → D. Der SK ist zwar der gleiche, aber die Redundanz tritt durch eine andere Funktionale Abhaengigkeit auf…

1 „Gefällt mir“

Ich fühle mich grad dämlich XD


Aber danke für die Antwort :slight_smile:


Nein? Grundsaetzlich schaust Du dir Funktionale Abhaengigkeiten an, die gegen eine Normalform verstossen. Du musst die Themen FA und Normalformen zuvor verstanden haben damit du diese Aufgabe verstehst.
Dann schaust du dir jede FA an die gegen eine Normalform verstoesst und schaust dir an wie oft eine Wertekombination auftreten kann. Natuerlich kann aber eine redundanz MAXIMAL so oft vorkommen wie es maximal Tupel in der Tabelle geben kann. Aber hier muss man sich immer auch nach strengeren Einschraenkungen umschauen.