Datenmodellierung/ Schlüssel in Relation suchen

Hallo!

Ich habe in Datenmodellierung eine Aufgabe bekommen, wo ich die Schlüssel in einer Relation bestimmen sollte.
Hier die Angabe:

Bestimmen Sie alle Schlüssel der Relation R1.
R1 A B F G
a2 b2 f1 g2
a3 b4 f2 g1
a2 b3 f1 g4
a3 b4 f2 g2
a3 b4 f2 g1
a3 b2 f1 g4
a4 b4 f1 g1

Die Lösung dazu ist:
Keys:
A G, B F G

Leider weiß ich nicht, wie ich in solch einer Tabelle auf meine Schlüssel komme.

Vielleicht kann mir ja wer helfen.

Danke schon mal im voraus.

Moin, evab,

**R1** (A, B, F, G)
 a2 b2 f1 g2
 a3 b4 f2 g1
 a2 b3 f1 g4
 a3 b4 f2 g2
 a3 b4 f2 g1
 a3 b2 f1 g4
 a4 b4 f1 g1

Dazu werden die Attributkombinationen betrachtet, die so ein Tupel identifizeren könnten. Das geht sinnvollerweise nur mit einem Tool wie Excel, wo die Zeilen beliebig sortiert werden können.

Genau genommen geht das eh nur mit der Bedingung, dass die Tabelle nur diese 7 Zeilen enthält und nie etwas anderes - in der Praxis völlig deppert, deshalb als Schulbeispiel absolut brauchbar, am Leben vorbei.

Die Methode ist dermaßen bescheuert (seit 35 Jahren bin ich im Geschäft, wäre aber nie auf diese Schnapsidee gekommen), dass ich nur ganz kurz den Einstieg zeigen möchte:

Sortiere die Zeilen. Schau von links nach rechts, wie viele Attribute Du brauchst, um einen Satz eindeutig zu bestimmen. Damit kommst Du auf

**R1** (<u>A</u>, <u>B</u>, F, G)

So hoffe ich jedenfalls, ich hab es nicht nachgerechnet (das fehlte mir gerade noch). Das machst Du dann für alle Permutationen der Spalten A bis G und kommst, wenn’s Dich bis dahin nicht zerrissen hat, auf den Rest auch noch.

Gruß Ralf

ps: Den Ausbilder würde ich nicht mehr grüßen.

Hi evab,

das schlechte Gewissen hat mir keine Ruhe gelassen, deshalb habe ich mir das Unikum nochmal zur Brust genommen :wink:

**R1** (A, B, F, G)

 a2 b2 f1 g2
 a3 b4 f2 g1
 a2 b3 f1 g4
 a3 b4 f2 g2
 a3 b4 f2 g1
 a3 b2 f1 g4
 a4 b4 f1 g1

Die Aufgabe lässt sich auch anders formulieren: Finde ein Attribut oder eine Kombination von Attributen, die genauso viel unterschiedliche Ausprägungen hat wie Zeilen in der Tabelle enthalten sind.

Zum Vorgehen:

  • Suche eine Spalte, deren Ausprägungen alle unterschiedlich sind. Wenn es eine gibt, sind wir fertig, andernfalls

  • füge eine Spalte hinzu und schau, ob die Ausprägungen dieser Kombination unterschiedlich sind. Wenn ja, sind wir fertig, andernfalls

  • bilde ein weiteres Pärchen mit einer anderen Spalte…

  • Bilde Tripel1, Quadrupel, Quintupel, …, bis alle Spalten verwurstet sind (immerhin geht’s hier nur bis zum Tripel)

Das sind dann bei 4 Spalten 4+3+2 Untersuchungen, was zumindest sehr schön die Bedeutung des Verfahrens für die Praxis zeigt.

Gruß Ralf

1Weiß hier irgend jemand, wie die Pärchen heißen - sind das Dupel?

OT: Dupel
Hi Ralf,

1Weiß hier irgend jemand, wie die Pärchen heißen -
sind das Dupel?

:smile: ich kenne nur die Begriffe 2-Tupel oder Paar, Wikipedia kennt noch „Doppel“ (und „Einzel“ für ein 1-Tupel, aber das klingt mir beides zu sehr nach Tennis). Aber „Dupel“ (oder „Bipel“ (für die SOA-Leute :wink:)) klingt schön.

Gruß,

Andreas