Relationale Algebra

martinl
Windoof-User
Windoof-User
Beiträge: 31
Registriert: 26. Apr 2012 20:40

Relationale Algebra

Beitrag von martinl »

Moinsen,

in den Übungs und Tutorien Aufgaben zum Thema "Relationale Algebra" hat man mehrere Möglichkeiten die Lösungen zu formulieren.
Liege ich mit meinen zwei nachfolgenden Annahmen richtig?

Ein Beispiel:
Man hat die Relation A mit Personen und die Relation B mit Adressen.
Nun will man die Namen aller Personen die in Darmstadt wohnen.

Die Musterlösung geht immer wie folgt vor:
Projektion Name wählen(Selektierung Ort=Darmstadt (EquiJoin Personen und Adressen wo gleiche PersonenID))

Zwei Punkte mach ich aber immer anders:
1. Ich mache keine EquiJoin wenn in beiden Relationen die ID Spalte den gleichen Namen hat - Denn dann reicht ja ein Natural Join.
2. Ich selektiere erst die Tubel mit Ort=Darmstadt und mache damit einen NaturalJoin mit der Personen Relation - Denn das reduziert ja die Menge der Tupel frühzeitig und benötigt somit weniger Rechenleistung/Denkaufwand.
Bei mir würde es also so aussehen: Projektion Name wählen ((Selektierung Ort=Darmstadt (Adressen)) NaturalJoin Personen)

Besten Dank & Viele Grüße
M_L

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

Re: Relationale Algebra

Beitrag von TobiasF »

Hallo,

1. ich nutze den EquiJoin um die Bedingung explizit zu machen (zur Übersicht). Der Natural Join geht in diesem Beispiel natürlich ebenso.
2. die RA Operatoren sind kommuntativ (mit der Ausnahme, dass ich natürlich eine Projektion nur vor der Selektion machen kann, wenn die Projektion das Selektionskriterium enthält). Natürlich versucht man in einer Implementierung Projektion und Selektion möglichst früh zu machen. In SQL kann man da ja auch keine Reihenfolge angeben, da das DBMS nochmal einen Optimierer drüber laufen lässt.
Die RA ist aber sozusagen die math. Seite und da machen wir uns über Laufzeiten erstmal keine Gedanken ;)

martinl
Windoof-User
Windoof-User
Beiträge: 31
Registriert: 26. Apr 2012 20:40

Re: Relationale Algebra

Beitrag von martinl »

Vielen vielen Dank!
Super Antwort und super schnell :)
P.S.: Ich finde es auch besser, dass in der Musterlösung die Bedingung explizit gemacht wird - Alles andere verwirrt nur.

Antworten

Zurück zu „Archiv“