Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Der Micha

Trainee

  • "Der Micha" is male
  • "Der Micha" started this thread

Posts: 38

Date of registration: Mar 28th 2003

Location: Hannover Südstadt

1

Tuesday, December 16th 2003, 8:58am

SQL Blatt 9

Moin allerseits!

Also ich versteh die Fragestellung von Aufgabe 2 nicht ganz:

Sollen alle Filme eines Regisseurs und seine Nachfolger (bei denen
er nicht unbedingt Regie geführt haben muss) in die NACHFOLGER-
Relation oder NUR die Nachfolger "seiner" Filme ???

Ich habs so verstanden dass nur die Nachfolger rein sollen, dann
ist als Ergebnis die NACHFOLGER-Relation bei mir leer.

Was nun ?

MAX

Senior Schreiberling

  • "MAX" is male

Posts: 822

Date of registration: Dec 11th 2001

Location: Hannover

2

Tuesday, December 16th 2003, 5:08pm

Frage

Was ist in der Aufgabe 2 unter Nachfolgerfilme zu verstehen? Was sind direkte und indirekte Nachfolger??? Ein Beispiel???
mfg
MAX

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

3

Tuesday, December 16th 2003, 5:43pm

RE: SQL Blatt 9

Quoted

Original von Der Micha
Also ich versteh die Fragestellung von Aufgabe 2 nicht ganz:

Sollen alle Filme eines Regisseurs und seine Nachfolger (bei denen
er nicht unbedingt Regie geführt haben muss) in die NACHFOLGER-
Relation oder NUR die Nachfolger "seiner" Filme ???

Ich habs so verstanden dass nur die Nachfolger rein sollen, dann
ist als Ergebnis die NACHFOLGER-Relation bei mir leer.
Ich verstehe das (auch mit Blick auf das angegebene Beispiel) so:

In die Nachfolger-Tabelle sollten die IDs ...
  • ... aller Filme, die der angegebene Regisseur gedreht hat
  • ... aller (direkten und indirekten) Nachfolger dieser Filme
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

4

Tuesday, December 16th 2003, 5:51pm

RE: Frage

Quoted

Original von MAX
Was ist in der Aufgabe 2 unter Nachfolgerfilme zu verstehen? Was sind direkte und indirekte Nachfolger???
Nachfolger werden in der Tabelle FOLLOWS verwaltet. Ist B ein direkter Nachfolger eines Filmes A, so ist dies entsprechend in der Tabelle FOLLOWS vermerkt.

Ist B ein indirekter Nachfolger von A, so gibt es einen Film C, der direkter Nachfolger von A ist und (direkter oder indirekter) Vorgänger von B.

Quoted

Ein Beispiel???
Rocky III ist direkter Nachfolger von Rocky II. Rocky V ist direkter Nachfolger von Rocky IV und indirekter Nachfolger von Rocky II.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

Cee

Trainee

  • "Cee" is male

Posts: 90

Date of registration: Jan 17th 2002

Location: H. an der L.

Occupation: wenn ich das jetzt noch wüsste....

5

Wednesday, December 17th 2003, 12:20pm

Aufgabe 1

Bei aufgabe 1 sollen wir für die Ausgabe den PRINT Command benutzen.
Auch nach reichlich Suchen fand sich in dem Script nirgendwo mehr Erklärung als da man unter SQLplus mit PRINT variablenname etwas in der Folgenden Form ausgeben kann:

COUNT
----------
7809

Leider ist das auch nicht im Entferntesten mit der gewünschten Ausgabe vereinbar, daher wüsste ich gerne ob:

a) ihr einen anderen Befehl benutzt habt (und welchen)
b) ihr eine andere Syntax für Print gefunden habt (und welche)
c) ihr euch gesagt habt scheiss drauf, ich hab kein Bock mehr (wo ich kurz davor bin) ;)
Es gibt keine Probleme, nur Herausforderungen!
-
www.shadowirc.org
-

Cee

Trainee

  • "Cee" is male

Posts: 90

Date of registration: Jan 17th 2002

Location: H. an der L.

Occupation: wenn ich das jetzt noch wüsste....

6

Wednesday, December 17th 2003, 12:50pm

Nächster Kommentar:
Aufgabe 2:
Ich verstehe die Aufgabenstellung so, dass ich nur die ID's der nachfolgerfilme ausgeben soll, keine Vorgänger, und nicht die Filme selber.
Dann sehe ich jedoch nicht, wieso Regisseur 161801 dessen 4 selbst gedrehte Filme alle genau keinen nachfolger haben 4 Treffer ergeben sollte...
Hat jemand das gleiche Problem gehabt und ggf schon nachgefragt?

Noch ein blöder Kommentar: Der als Beispiel gegebene Regisseur ist damit in etwa das dämlichste Beispiel was man finden konnte, um eine solche Anfrage zu testen. (Sorry, musste mal raus)
Es gibt keine Probleme, nur Herausforderungen!
-
www.shadowirc.org
-

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

7

Wednesday, December 17th 2003, 12:56pm

Quoted

Original von Cee
Aufgabe 2:
Ich verstehe die Aufgabenstellung so, dass ich nur die ID's der nachfolgerfilme ausgeben soll, keine Vorgänger, und nicht die Filme selber.
Dann sehe ich jedoch nicht, wieso Regisseur 161801 dessen 4 selbst gedrehte Filme alle genau keinen nachfolger haben 4 Treffer ergeben sollte...
Naja, gerade WEGEN dieses Beispiels liegt es doch sehr nahe, daß auch alle Filme dieses Regisseurs in die Ergebnisliste aufgenommen werden sollen, oder? ;)
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

Cee

Trainee

  • "Cee" is male

Posts: 90

Date of registration: Jan 17th 2002

Location: H. an der L.

Occupation: wenn ich das jetzt noch wüsste....

8

Wednesday, December 17th 2003, 1:01pm

börp, ist natürlich ne frage dessen, ob man dem beispiel oder der aufgabenstellung einen höheren Stellenwert geben möchte...
Wenn man die beiden gleichwertig nebeneinander stellt isset halt nur nen widerspruch
Es gibt keine Probleme, nur Herausforderungen!
-
www.shadowirc.org
-

This post has been edited 1 times, last edit by "Cee" (Dec 17th 2003, 1:02pm)


Cee

Trainee

  • "Cee" is male

Posts: 90

Date of registration: Jan 17th 2002

Location: H. an der L.

Occupation: wenn ich das jetzt noch wüsste....

9

Wednesday, December 17th 2003, 1:06pm

naja, betrachtet das mit aufgabe 2 als gegessen, da ja alle hier der Meinung sind...
Wenn noch jemand meine Fragen zu aufgabe 1 beantworten könnte wäre ich euch ewig dankbar.
Es gibt keine Probleme, nur Herausforderungen!
-
www.shadowirc.org
-

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

10

Wednesday, December 17th 2003, 1:08pm

Quoted

Original von Cee
börp, ist natürlich ne frage dessen, ob man dem beispiel oder der aufgabenstellung einen höheren Stellenwert geben möchte...
Wenn man die beiden gleichwertig nebeneinander stellt isset halt nur nen widerspruch
Ne, da ist kein Widerspruch. Wenn man die Aufgabenstellung genau liest, wird man feststellen, daß "die IDs der gesuchten Filme" sich entweder auf alle Filme (also alle Filme des Regisseurs und deren direkte und indirekte Nachfolger) oder nur auf die Nachfolgerfilme beziehen kann. Daher ist die Aufgabenstellung bis zu diesem Punkt noch ungenau. Durch das Beispiel ist die Sache dann aber klar. Also kein Widerspruch – das Beispiel ergänzt die Aufgabenstellung und macht sie damit eindeutig.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

HoloMaD

Trainee

  • "HoloMaD" is male

Posts: 115

Date of registration: Oct 5th 2002

Location: Hannover (Nordstadt)

11

Thursday, December 18th 2003, 7:58am

Naja, PRINT kann ja nicht nur Variablen ausgeben die Zahlen enthalten. Wenn du deine Ausgabevariable im PL/SQL Programm mit vernünftigen Zeichenketten konkatenierst gibt PRINT auch was nettes aus.
cu
Holo
We purposely trained him wrong, as a joke.

Cee

Trainee

  • "Cee" is male

Posts: 90

Date of registration: Jan 17th 2002

Location: H. an der L.

Occupation: wenn ich das jetzt noch wüsste....

12

Thursday, December 18th 2003, 9:29am

Hmm, ok, Joachims Antwort klingt einleuchtend. Wenn ich mir jedoch die mails unserer lieben Übungsbetreuer anschaue habe ich mit meiner ersten Interpretation recht, und das Beispiel falsch untersucht das ich zu so einem Ergebnis komme, das hatte daher ein wenig verwirrt.
Klarheit brachte auch hier erst der Satz: " die anderen haben doch auch das gewünschte geschafft".

Fazit: einfach dummdusselig machen was man denkt, solange es alle so machen wirds schon passen.
Und: die Übungsbetreuer haben auch kein Peil, testen anscheinend auch nur die Beispiele die auf dem Blatt stehen.
Es gibt keine Probleme, nur Herausforderungen!
-
www.shadowirc.org
-

migu

free rider

  • "migu" is male

Posts: 2,643

Date of registration: Dec 11th 2001

Occupation: Developer

13

Thursday, December 18th 2003, 9:47am

Mir stellten sich diese Fragen zu Aufgabe 2 gar nicht. Ich habe nämlich derart spät mit ihrer Bearbeitung angefangen, dass ich vorher schon im Forum las, wie es "zu verstehen" ist.
Leider bekam ich dann arge Probleme mit einem Funktionsaufruf. Einer als PROCEDURE g(n NUMBER) IS ... deklarierten Prozedur durfte ich keine Variable des Typs NUMBER(6) übergeben, weshalb mein ansonsten so schöner Algorithmus nicht lief. Ich habe ihn dennoch abgeschickt. Meines Erachtens bin ich auf dem richtigen Weg gewesen. Hier mein Code zur allgemeinen Betrachtung und Diskussion:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
set echo off
set timing off
ACCEPT director_id PROMPT 'Bitte id des Regisseurs eingeben:'

DECLARE
  CURSOR directors_movies IS
    SELECT movie FROM directs
    WHERE director = &director_id;
  m NUMBER(6);

  /* hole alle Nachfolger des Films und speichere sie in
     der Tabelle nachfolger, inklusive der ID des Regisseurs */
  PROCEDURE hole_nachfolger (mov_id NUMBER) IS
    CURSOR successors IS
      SELECT successor FROM follows
      WHERE movie = mov_id;
    n NUMBER(6);
  BEGIN
    /* fuege Film der Tabelle Nachfolger hinzu */
    INSERT INTO nachfolger (director, movie)
    VALUES      (&director_id, mov_id);
    /* durchlaufe alle Nachfolger des Films mov_id */
    FOR n IN successors LOOP
      hole_nachfolger(n);
    END LOOP;
  END;
BEGIN
  /* durchlaufe alle Filme des Regisseurs director_id */
  FOR m IN directors_movies LOOP
    hole_nachfolger(m);
  END LOOP;
  COMMIT;
END;
/


Wie habt ihr Aufgabe 1 gelöst? Da gibt es doch sicherlich verschiedene Ansätze. Hier meiner:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
set echo off
set timing off
ACCEPT the_genre PROMPT 'Bitte Genre eingeben:'

/* Hilfs-View mit allen gewuenschten Ergebnissen: */
CREATE OR REPLACE VIEW ratings
            (count, min, avg, max)
AS SELECT   COUNT(rating),ROUND(MIN(rating),2),ROUND(AVG(rating),1),
              ROUND(MAX(rating),1)
FROM        rating NATURAL JOIN genre
WHERE       genre = '&the_genre'
WITH READ ONLY;

VARIABLE result VARCHAR2(200)

DECLARE
  v ratings%ROWTYPE;
BEGIN
  SELECT * INTO v FROM ratings;
  :result := 'Genre &the_genre hat '||v.count
    ||' Filme und folgende Bewertungen: '
    ||v.min||' / '||v.avg||' / '||v.max;
END;
/

PRINT result


(Ich gehe einmal davon aus, dass jetzt niemand mehr Nutzen aus meiner Lösung ziehen wird.)
tar: Anlegen eines leeren Archivs wird feige verweigert.