ich hätte da mal eine Frage bezüglich einer JOIN Anweisung
Die Fragen lauten folgendermaßen:
Relation R1 und Relation R2 haben jeweils 6 Elemente. Der Hauptschlüssel beider Relationen heisst IDENT.
a) Wieviel Elemente hat die Ergebnisrelation der SQL- Anweisung
SELECT * FROM R1, R2
Meine Antwort: 12
b) Wieviele Elemente hat die Ergebnisrelation der SQL Anweisung
SELECT * FROM R1 JOIN R2 ON (IDENT)
Meine Antwort: Also hier habe ich die Aufgabe nicht wirklich
verstanden. Was „verursacht“ eigentlich …ON (IDENT).
Da beide Relationen R1 und R2 den Hauptschlüssel IDENT haben,
werden beide Tabellen mit JOIN „geklebt“ und es kommt wieder 12
raus oder?
c) Wie kann man obiges Ergebnis erreichen, ohne ein JOIN zu verwenden?
Meine Lösung: SELECT * FROM R1, R2 WHERE R1.IDENT = R2.IDENT
ich hätte da mal eine Frage bezüglich einer JOIN Anweisung
Die Fragen lauten folgendermaßen:
Relation R1 und Relation R2 haben jeweils 6 Elemente. Der
Hauptschlüssel beider Relationen heisst IDENT.
a) Wieviel Elemente hat die Ergebnisrelation der SQL-
Anweisung
SELECT * FROM R1, R2
Meine Antwort: 12
Meiner Meinung nach sind es 36
6x6 Elemente (da ja keine WHERE-oder Innerjoin-Klausel deklariert wurde
b) Wieviele Elemente hat die Ergebnisrelation der SQL
Anweisung
SELECT * FROM R1 JOIN R2 ON (IDENT)
Meine Antwort: Also hier habe ich die Aufgabe nicht wirklich
verstanden. Was „verursacht“ eigentlich …ON (IDENT).
Da beide Relationen R1 und R2 den Hauptschlüssel IDENT haben,
werden beide Tabellen mit JOIN „geklebt“ und es kommt wieder
12
raus oder?
Wenn jeder Datensatz EINE passende Beziehung zwischen r1 und r2 hat,
hat die Ergebnisrelation 6 Elemente
Vergleichen würde ich dies mit:
SELECT * FROM R1
INNER JOIN R2
ON R1.IDENT=R2.IDENT
c) Wie kann man obiges Ergebnis erreichen, ohne ein JOIN zu
verwenden?
Meine Lösung: SELECT * FROM R1, R2 WHERE R1.IDENT = R2.IDENT
Meiner Meinung nach sind es 36
6x6 Elemente (da ja keine WHERE-oder Innerjoin-Klausel
deklariert wurde
habe mich damit auf die Frage bezogen:
„Was kommt bei der Abfrage heraus: SELECT * FROM R1, R2“
und in dem fall ist es ja egal wieviel Spalten in der Tabelle exsistieren.
das Zauberwort heißt Kreuzprodukt. Das besagt, dass die
maximal mögliche Anzahl von Zeilen aus dem Produkt der beiden
Zeilenzahlen entsteht.
Ja… habe ich doch auch geschrieben.
Alles andere wäre auch mehr als eigentümlich: Spalten stehen
für Eigenschaften. Was wäre denn das Produkt aus zwei
Eigenschaften?
Ein Ergebniselement jenachdem wie die beiden mit einander verknüpft sind.
pardon, mir dämmert’s langsam, was mit Elementen gemeint ist - die Elemente einer Menge (die Antwort „12“ hat mich in die Irre geführt). Na ja, mit relationaler Algebra befasst sich der Datenbanker einmal im Leben, dann 23 Jahre lang nicht mehr