Frage bezüglich Projektion in Relationenalgebra

tmuecksch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 123
Registriert: 19. Apr 2013 10:51

Frage bezüglich Projektion in Relationenalgebra

Beitrag von tmuecksch »

Hallo,

auf Folie 89 wird der Projektionsoperator im Rahmen der Relationenalgebra gezeigt. Dabei kam für mich eine grundlegende Frage auf:

Wie ist der Grad einer Relation in diesem Kontext definiert?
Wie ich nun herausgefunden habe gilt: "Die Anzahl der Attribute bestimmt den Grad [...] einer Relation". (Quelle: http://dbs.uni-leipzig.de/buecher/mrdbs/mrdbs-10.html)

Dann ergibt sich aber für mich die Frage warum es auf der Folie heißt, dass \(m<k\) sein muss, wenn das doch im Beispiel dann einfach ignoriert wird. Denn \(R\) hat in diesem Fall den Grad \(k=3\), aber es wird \(m=3\) gezeigt.

Bild

Also sehe ich hier auf den Folien einen Widerspruch. Es sei denn, die zitierte Definition des Grades ist falsch.
Kann es sein, dass die Regel eigentlich \(m \leq k\) lauten müsste?

Vielen Dank im Voraus!
Tobias

Benutzeravatar
DB_420
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 24. Nov 2010 15:12

Re: Frage bezüglich Projektion in Relationenalgebra

Beitrag von DB_420 »

Hallo,

in deinem Beispiel ist k = 3 (erste Relation hat 3 Spalten) und m = 2 (wird auf 2 Spalten projeziert). m < k liefert dir eine echte Projektion, m = k ist der Identitätsoperator.

Daniel
Tutor:
Mathe II Inf (SS12)
Mathe I Inf (WS11/12)

tmuecksch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 123
Registriert: 19. Apr 2013 10:51

Re: Frage bezüglich Projektion in Relationenalgebra

Beitrag von tmuecksch »

Hallo, danke für Deine Antwort. Aber ich verstehe das noch nicht ganz :(

Also, dass bei einer Projektion die Projektion mind. um einen Grad kleiner sein muss kann ich verstehen. Aber dadurch, dass m auch als Index für alle i's verwendet wird, heißt das doch, dass die letzte Spalte (m = k) niemals projiziert werden darf.

Wenn ich Dich richtig verstanden habe, sollte es im zweiten Satz dann eigentlich korrekt lauten:

"Dann ist \(\pi_{i_1, i_2, \ldots , i_k}(R)\) die Projektion ..."

Habe ich das so richtig verstanden? Denn dann wird von \(i_1\) bis \(i_k\) auf \(i_1\) bis \(i_m\) mit \(m<k\) abgebildet.

Benutzeravatar
DB_420
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 24. Nov 2010 15:12

Re: Frage bezüglich Projektion in Relationenalgebra

Beitrag von DB_420 »

Hallo,

stell dir \(m\) einfach als "Anzahl" der Spalten vor, auf die du projezierst. Mit \(m = 2\) kannst du beispielsweise \(i_1 = 1, \ i_2 = i_m = 3\) setzen und projezierst damit auf die erste und die letzte Spalte.

Grüße
Daniel
Tutor:
Mathe II Inf (SS12)
Mathe I Inf (WS11/12)

TobiasF
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 203
Registriert: 18. Apr 2011 11:57

Re: Frage bezüglich Projektion in Relationenalgebra

Beitrag von TobiasF »

Gute Antwort. Das ist sogar sehr wichtig so, da eine Projektion ja nicht ein einfaches "Abschneiden" darstellt, sondern eine gezielte Auswahl von Spalten (z.B. A,C,F aus R=ABCDEF).
Das wäre dann
\(\pi_{A,C,F}(R)\) mit \(i_1 = A, i_2 = C, i_3 = F\), womit m = 3 und k = 6

Antworten

Zurück zu „Archiv“