Sie sind nicht angemeldet.

Der Micha

Trainee

  • »Der Micha« ist männlich
  • »Der Micha« ist der Autor dieses Themas

Beiträge: 38

Registrierungsdatum: 28.03.2003

Wohnort: Hannover Südstadt

1

16.12.2003, 08:58

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« ist männlich

Beiträge: 822

Registrierungsdatum: 11.12.2001

Wohnort: Hannover

2

16.12.2003, 17:08

Frage

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

  • »Joachim« ist männlich

Beiträge: 2 863

Registrierungsdatum: 11.12.2001

Wohnort: Hämelerwald

Beruf: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

3

16.12.2003, 17:43

RE: SQL Blatt 9

Zitat

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« ist männlich

Beiträge: 2 863

Registrierungsdatum: 11.12.2001

Wohnort: Hämelerwald

Beruf: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

4

16.12.2003, 17:51

RE: Frage

Zitat

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.

Zitat

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« ist männlich

Beiträge: 90

Registrierungsdatum: 17.01.2002

Wohnort: H. an der L.

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

5

17.12.2003, 12:20

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« ist männlich

Beiträge: 90

Registrierungsdatum: 17.01.2002

Wohnort: H. an der L.

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

6

17.12.2003, 12:50

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« ist männlich

Beiträge: 2 863

Registrierungsdatum: 11.12.2001

Wohnort: Hämelerwald

Beruf: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

7

17.12.2003, 12:56

Zitat

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« ist männlich

Beiträge: 90

Registrierungsdatum: 17.01.2002

Wohnort: H. an der L.

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

8

17.12.2003, 13:01

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
-

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Cee« (17.12.2003, 13:02)


Cee

Trainee

  • »Cee« ist männlich

Beiträge: 90

Registrierungsdatum: 17.01.2002

Wohnort: H. an der L.

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

9

17.12.2003, 13:06

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« ist männlich

Beiträge: 2 863

Registrierungsdatum: 11.12.2001

Wohnort: Hämelerwald

Beruf: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

10

17.12.2003, 13:08

Zitat

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« ist männlich

Beiträge: 115

Registrierungsdatum: 05.10.2002

Wohnort: Hannover (Nordstadt)

11

18.12.2003, 07:58

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« ist männlich

Beiträge: 90

Registrierungsdatum: 17.01.2002

Wohnort: H. an der L.

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

12

18.12.2003, 09:29

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« ist männlich

Beiträge: 2 643

Registrierungsdatum: 11.12.2001

Wohnort: Hannover

Beruf: Developer

13

18.12.2003, 09:47

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:

Quellcode

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:

Quellcode

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.