[LÖSUNG] - Alle Bsp. gelöst!
Results 1 to 19 of 19
  1. #1
    blue1's Avatar
    Title
    Hero
    Join Date
    May 2002
    Posts
    183
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Talking Alle SQL Bsp. gelöst!

    01.) SELECT DISTINCT Klassifikation.Gebiet FROM Klassifikation;
    02.) SELECT nachname, jahr FROM Kunde WHERE status='Student' AND Jahr <= 1970;
    03.) SELECT Titel FROM Buch WHERE Titel LIKE 'K%' OR Titel LIKE 'L%';
    04.) SELECT Buch.Titel, COUNT (InvNR) FROM Buch, Exemplar WHERE Exemplar.ISBN = Buch.ISBN AND Exemplar.RegalNr = 5 GROUP BY Buch.Titel;
    05.) SELECT Buch.Titel, Ausleihe.KNr AS Kundennummer, Kunde.Vorname, Kunde.Nachname, Ausleihe.von AS Entlehndatum FROM Ausleihe, Kunde, Buch WHERE bis = null AND Kunde.KNr = Ausleihe.KNr AND Buch.ISBN = (SELECT Exemplar.ISBN FROM Exemplar WHERE Exemplar.InvNR = Ausleihe.InvNR);
    06.) SELECT Buch.Titel, Ausleihe.KNr AS Kundennummer, Kunde.Vorname, Kunde.Nachname, Ausleihe.von AS Entlehndatum FROM Ausleihe, Kunde, Buch WHERE bis = null AND Kunde.KNr = Ausleihe.KNr AND Buch.ISBN = (SELECT Exemplar.ISBN FROM Exemplar WHERE Exemplar.InvNR = Ausleihe.InvNR) AND Ausleihe.von < 2002;
    07.) SELECT Kunde.Nachname, Kunde.Vorname FROM Kunde WHERE Kunde.KNr NOT IN (SELECT Ausleihe.KNr FROM Ausleihe);
    08.) SELECT Autor.Nachname, Autor.Vorname FROM Autor WHERE Autor.ISBN IN (SELECT Klassifikation.ISBN FROM Klassifikation WHERE Klassifikation.Gebiet LIKE '%athematik');
    09.) SELECT Kunde.Nachname, Kunde.Jahr FROM Kunde WHERE Kunde.KNr IN (SELECT Ausleihe.KNr FROM Ausleihe WHERE Ausleihe.InvNR IN (SELECT Exemplar.InvNR FROM Exemplar WHERE Exemplar.ISBN IN (SELECT Klassifikation.ISBN FROM Klassifikation WHERE Klassifikation.Gebiet LIKE '%athematik')));
    10.) SELECT Kunde.Nachname, Kunde.Vorname, Kunde.KNr FROM Kunde WHERE Kunde.KNr IN (SELECT Ausleihe.KNr FROM Ausleihe WHERE Ausleihe.InvNR IN (SELECT Exemplar.InvNR FROM Exemplar WHERE Exemplar.ISBN NOT IN (SELECT Klassifikation.ISBN FROM Klassifikation WHERE Klassifikation.Gebiet LIKE '%elletristik')));
    11.) SELECT DISTINCT Klassifikation.Gebiet, COUNT(Ausleihe.InvNR) FROM Klassifikation, Ausleihe, Exemplar WHERE Ausleihe.bis = null AND Ausleihe.InvNR = Exemplar.InvNR AND Exemplar.ISBN = Klassifikation.ISBN GROUP BY Klassifikation.Gebiet;
    12.) SELECT Kunde.Nachname, Kunde.Vorname FROM Kunde, (SELECT Ausleihe.Knr, COUNT (DISTINCT Klassifikation.Gebiet) AS zahl FROM Ausleihe WHERE Ausleihe.InvNR = Exemplar.InvNR AND Exemplar.ISBN = Klassifikation.ISBN GROUP BY Ausleihe.KNr) AS kzahl, (SELECT COUNT (DISTINCT Klassifikation.Gebiet) AS zahl FROM Klassifikation) AS gzahl WHERE kzahl.KNr = Kunde.KNr AND kzahl.zahl = gzahl.zahl;
    13.) SELECT DISTINCT Exemplar.RegalNr, COUNT (Exemplar.RegalNr) FROM Exemplar WHERE Exemplar.InvNR NOT IN (SELECT Ausleihe.InvNR FROM Ausleihe WHERE Ausleihe.bis IS NULL) GROUP BY Exemplar.RegalNr;
    14.) SELECT Exemplar.RegalNr, SUM (Exemplar.Kaufpreis) AS Gesamtpreis, AVG (Exemplar.Kaufpreis) AS Durchschnittspreis FROM Exemplar GROUP BY Exemplar.RegalNr;
    15.) SELECT Exemplar.InvNR, Exemplar.ISBN, Buch.Titel, Exemplar.Kaufpreis FROM Exemplar, Buch WHERE Exemplar.ISBN = Buch.ISBN AND Exemplar.Kaufpreis >= all (SELECT Exemplar.Kaufpreis FROM Exemplar);
    16.) SELECT Kunde.Nachname, Kunde.Vorname FROM Kunde, (SELECT Ausleihe.KNr, COUNT (Ausleihe.KNr) AS Anzahl FROM Ausleihe GROUP BY Ausleihe.KNr) AS Klist WHERE Klist.Anzahl >= 10 AND Kunde.KNr = Klist.KNr;
    17.) SELECT nachname, vorname FROM (SELECT nachname,vorname,COUNT(*) AS anzahl FROM ausleihe,exemplar,autor WHERE autor.isbn= exemplar.isbn AND ausleihe.invnr = exemplar.invnr GROUP BY nachname, vorname) AS autcount2 WHERE autcount2.anzahl >= (SELECT MAX(anzahl) FROM (SELECT COUNT(*) AS anzahl FROM ausleihe,exemplar,autor WHERE autor.isbn= exemplar.isbn AND ausleihe.invnr = exemplar.invnr GROUP BY nachname, vorname) AS autcount);
    18.) SELECT Exemplar.InvNR, Exemplar.ISBN FROM Exemplar WHERE Exemplar.ISBN IN (SELECT list.ISBN FROM (SELECT Exemplar.ISBN, COUNT (Exemplar.InvNR) AS anz FROM Exemplar GROUP BY Exemplar.ISBN) AS list WHERE list.anz >=2);
    19.) SELECT Verlag, SUM (Exemplar.Kaufpreis) FROM Buch, Exemplar WHERE Buch.ISBN = Exemplar.ISBN GROUP BY Buch.Verlag;
    20.) SELECT Kunde.Telefon, Kunde.Nachname, Kunde.Vorname FROM Kunde, (SELECT Ausleihe.KNr, COUNT (DISTINCT Exemplar.ISBN)AS zahl FROM Ausleihe WHERE Ausleihe.InvNR = Exemplar.InvNR AND Exemplar.ISBN = Autor.ISBN AND Autor.Vorname = 'Karl' AND Autor.Nachname = 'May' GROUP BY Ausleihe.KNr) AS KBzahl, (SELECT COUNT (Autor.ISBN)as zahl FROM Autor WHERE Autor.Vorname = 'Karl' AND Autor.Nachname = 'May')AS buchzahl WHERE KBzahl.zahl = buchzahl.zahl AND KBzahl.KNr = Kunde.KNr;

    viel spass damit
    mfg
    blue1, scells, eruez
    Last edited by blue1; 20-05-2002 at 15:46.

  2. #2
    dj_m.o.h.t.'s Avatar
    Title
    Elite
    Join Date
    Jan 2002
    Posts
    428
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Alle 20 SQL-BSP

    Habe sie durchgestest. Stimmen alle überein. Haut wunderbar hin.

  3. #3
    blue1's Avatar
    Title
    Hero
    Join Date
    May 2002
    Posts
    183
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Talking Hier nun die ER Relationen und die ER-Diagramme

    Beispiel 1:
    Kunde (Kundennummer, Name)
    Firma (Name, Adresse)
    Produkt (Bezeichnung, Kategorie)
    Kauft (Kunde.Kundennummer, Produkt.Bezeichnung, Produkt.Kategorie, erstes Datum, letztes Datum, Firma.Name)
    produziert (Firma.Name, Produkt.Bezeichnung, Produkt.Kategorie, Kosten)


    Beispiel 2:

    Haus (Postleitzahl, Straße, Hausnummer, Kategorie)
    Stockwerk (Nummer, Fläche, Haus.Postleitzahl, Haus.Straße, Haus.Hausnummer)
    Wohnung (Türnummer, Fläche, Kategorie, Stockwerk.Nummer, Haus.Postleitzahl, Haus.Straße, Haus.Hausnummer )


    Beispiel 3:

    Zug (Code, Name, Kategorie)
    Bahnhof (Name, Bahnsteige)
    Wagon (Inventarnr, Plätze, Baujahr)
    Schlafwagon (Wagon.Inventarnr, Bad, 2Bett/4Bett)
    Speisewagon (Wagon.Inventarnr, Klimaanlage)
    Sitzwagon (Wagon.Inventarnr, Klasse)
    Hält (Zug.Code, Bahnhof.Name, Ankunft, Abfahrt)
    Zugdetails (Zug.Code, Wagon.Inventarnr)


    Beispiel 4:

    Abteilung (Nummer, Name, Angestellter.SVNr (leitender Angestellter))
    Angestellter (SVNr., Name, Adresse, Gehalt, Bonus, SVNr. (Vorgesetzter) Raum.Adresse, Raum.Raumcode)
    Raum (Adresse, Raumcode, Fläche)


    Beispiel 5:

    CD (ISSNr., Titel, Firma)
    Werk (Name, Komponist, Datum)
    Instrument (Ton tief, Ton hoch, Name)
    Aufnahme (Datum, Tonstudio, Dauer, Werk.Name, Werk.Komponist)
    Musiker (Name, Adresse, Geburtsdatum)
    Beherrscht (Musiker.Name, Musiker.Adresse, Instrument.Name)
    Spielt (Aufnahme.Datum, Aufnahme.Tonstudio, Musiker.Name, Musiker.Adresse, Instrument.Name)
    Erscheint (CD.ISSNr, Aufnahme.Datum, Aufnahme.Tonstudio, Werk.Name, Werk.Komponist)




    Anschließend sind noch die ER-Diagramme und Relationen gezipt zum herunterladen.


    nochmals viel spass damit
    blue1, eruez, scells


    P.S.: wir übernehmen keine garantie, dass alle bsp auch wirklich richtig sind, kommt auch auf den tutor an!
    Attached Files Attached Files
    Last edited by blue1; 24-05-2002 at 10:43.
    LINUX: for those who don't like Windows
    *BSD: for those who like UNIX

  4. #4
    jeuneS2's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Posts
    547
    Thanks
    1
    Thanked 45 Times in 29 Posts
    Ich glaub, dass bei Wohnung die Angabe der Haus-Schlüssel überflüssig ist (findet man ja auch beim Stockwerk) und bei 'erscheint' kommen mir Name und Komponist (nehm an des Werkes) redundant vor... sonst bin ich aufs gleiche gekommen...
    Why bother spending time reading up on things? Everybody's an authority, in a free land.

  5. #5
    blue1's Avatar
    Title
    Hero
    Join Date
    May 2002
    Posts
    183
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Die ER-Diagramm von ihnen wurden ein wenig verändert! Bei der neueren Verision ist Wohnung ebenfalls eine weak-entity und dann müsste es wieder stimmen. (Die alte Version der ER-Diagramme wird auch noch angenommen).

    Zu deiner 2. Frage:
    Der Tutor selbst hat gesagt, dass Name und Komponist noch in "Erscheint" vorkommen muß!

    mfg
    blue1
    LINUX: for those who don't like Windows
    *BSD: for those who like UNIX

  6. #6
    jeuneS2's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Posts
    547
    Thanks
    1
    Thanked 45 Times in 29 Posts
    na fein, dass weak entities im buch ausführlichst beschrieben sind, die VO ganz genau nach dem buch vorgeht und niemand zur gleichen eine andere LVA hat... wunderbar!

    btw: warum stehen Name und Komponist nicht bei spielt vor?
    Why bother spending time reading up on things? Everybody's an authority, in a free land.

  7. #7
    steve's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Location
    planet earth
    Posts
    539
    Thanks
    14
    Thanked 2 Times in 2 Posts
    @jeuneS2: hast recht. NAME und KOMPONIST müssten bei "spielt" dabeistehen, sonst ist die Aufnahme nicht eindeutig identifizierbar.

    @NAME und KOMPONIST bei "erscheint": muss meiner meinung nach auch vorkommen, denn du weißt ja sonst nicht, auf welche aufnahme es sich bezieht.
    z.B.wennst "we will rock u" und wagners "ritt der valkyren" im selben tonstudio am selben tag aufgenommen hast, weißt nicht, was du nehmen sollst.

    sonst: ich hab zum Wagon noch den Code des zuges gehängt, an dem er hängt. dadurch hab ich mir die zugdetails erspart. darf ich das? (glaub nicht, denn der wagon kann ja umgehängt werden)
    -----BEGIN GEEK CODE BLOCK-----
    Version: 3.12
    GAT d-(+) s++: a- C++$>+$ U++>+++ P++>+++ L+++ !E W++>$ !N K? w(--)@ !O !M V? PS+ PE++(-)> Y+ PGP(+) t---(-) !5 X R- tv-(--) b++>$ DI+ D+(++) G(+) e>++++* h-- r++ y++
    ------END GEEK CODE BLOCK------ .

  8. #8
    jeuneS2's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Posts
    547
    Thanks
    1
    Thanked 45 Times in 29 Posts
    eine naive Vorstellung, wies im Tonstudio zugeht, aber is halt von der angabe her so

    ich GLAUB das geht nicht midm dazugeben des ZugCodes zum Wagon, weil er ja, wiest eh schreibst, umgehängt werden kann...
    Why bother spending time reading up on things? Everybody's an authority, in a free land.

  9. #9
    steve's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Location
    planet earth
    Posts
    539
    Thanks
    14
    Thanked 2 Times in 2 Posts
    und außerdem: Bibliotheksbeispiel:
    ich hab auch eine dreiecksrelation EXEMPLAR-KUNDE-AUSLEIHE ("ausleiht" oder so )
    die kardinalitäten:
    bei KUNDE: 0,* (kunde muss ja nichts ausgeliehen haben
    bei EXEMPLAR: 0,* (exemplar muss noch nicht ausgeliehen sein)
    bei AUSLEIHE: 1,1 (jede ausleihe kommt nur genau einmal vor)

    berichtigts mich, wenn ich falsch lieg (in 13 stunden abgabe! )
    -----BEGIN GEEK CODE BLOCK-----
    Version: 3.12
    GAT d-(+) s++: a- C++$>+$ U++>+++ P++>+++ L+++ !E W++>$ !N K? w(--)@ !O !M V? PS+ PE++(-)> Y+ PGP(+) t---(-) !5 X R- tv-(--) b++>$ DI+ D+(++) G(+) e>++++* h-- r++ y++
    ------END GEEK CODE BLOCK------ .

  10. #10
    jeuneS2's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Posts
    547
    Thanks
    1
    Thanked 45 Times in 29 Posts
    ...bei Ausleihe brauchst eh nix (is ja Relation), beim Exemplar stimmt imho 0,n... bei Kunde könnte man argumentieren, dass er erst in die db aufgenommen wird, wenn er etwas ausgeliehen hat...
    also schön schwafeln und viel glück!
    Why bother spending time reading up on things? Everybody's an authority, in a free land.

  11. #11
    steve's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Location
    planet earth
    Posts
    539
    Thanks
    14
    Thanked 2 Times in 2 Posts
    *räusper* _DREIECKSRELATION_!

    d.h. ich brauch zu Ausleihe (ist bei mir eine Entity) sehr wohl eine Kardinalität. aber werma sehn. ich hoff das geht gut.......
    -----BEGIN GEEK CODE BLOCK-----
    Version: 3.12
    GAT d-(+) s++: a- C++$>+$ U++>+++ P++>+++ L+++ !E W++>$ !N K? w(--)@ !O !M V? PS+ PE++(-)> Y+ PGP(+) t---(-) !5 X R- tv-(--) b++>$ DI+ D+(++) G(+) e>++++* h-- r++ y++
    ------END GEEK CODE BLOCK------ .

  12. #12
    steve's Avatar
    Title
    Baccalaureus
    Join Date
    Jan 2002
    Location
    planet earth
    Posts
    539
    Thanks
    14
    Thanked 2 Times in 2 Posts
    mir kommen die vielen schlüssel in den Relationen vom 5. Beispiel ("instrumentalisierung", "beherrscht", "erscheint auf") ein bisserl spanisch vor, aber ich wüsst nicht, was man anders machen soll...
    gibts da bereits erfahrungswerte? stimmt das so?
    -----BEGIN GEEK CODE BLOCK-----
    Version: 3.12
    GAT d-(+) s++: a- C++$>+$ U++>+++ P++>+++ L+++ !E W++>$ !N K? w(--)@ !O !M V? PS+ PE++(-)> Y+ PGP(+) t---(-) !5 X R- tv-(--) b++>$ DI+ D+(++) G(+) e>++++* h-- r++ y++
    ------END GEEK CODE BLOCK------ .

  13. #13
    lifelikebmx's Avatar
    Title
    Master
    Join Date
    Feb 2002
    Posts
    165
    Thanks
    0
    Thanked 0 Times in 0 Posts
    10.) SELECT Kunde.Nachname, Kunde.Vorname, Kunde.KNr FROM Kunde WHERE Kunde.KNr IN (SELECT Ausleihe.KNr FROM Ausleihe WHERE Ausleihe.InvNR IN (SELECT Exemplar.InvNR FROM Exemplar WHERE Exemplar.ISBN NOT IN (SELECT Klassifikation.ISBN FROM Klassifikation WHERE Klassifikation.Gebiet LIKE '%elletristik')));
    bist du dir da sicher?
    deine abfrage ergibt 8 ergebnisse,

    select Nachname,Vorname,KNr from Kunde where KNr not in (select KNr from Ausleihe)
    ergibt 10 ergebnisse und ist die anzahl der leute die noch nie ein buch ausgeliehen haben - ist doch ein widerspruch oder?

    meine lösung:
    select Nachname,Vorname,KNr from Kunde where KNr not in (select Knr from Ausleihe where Ausleihe.InvNr = Exemplar.InvNr and Klassifikation.ISBN = Exemplar.ISBN and Klassifikation.Gebiet = 'Belletristik')

  14. #14
    blue1's Avatar
    Title
    Hero
    Join Date
    May 2002
    Posts
    183
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Thumbs up BSP.: 10

    Dein modifiziert 10er Bsp ist "noch" korrekter als unseres. Genauergesagt es stimmt und unseres ist nicht präzise genug!

    mfg
    scells,blue1
    LINUX: for those who don't like Windows
    *BSD: for those who like UNIX

  15. #15
    lifelikebmx's Avatar
    Title
    Master
    Join Date
    Feb 2002
    Posts
    165
    Thanks
    0
    Thanked 0 Times in 0 Posts
    ... ist "noch" korrekter .... nicht präzise genug!
    "noch" korrekter, präzise genug , wie soll ich den das interpretieren?

  16. #16
    blue1's Avatar
    Title
    Hero
    Join Date
    May 2002
    Posts
    183
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Nimm deines und nicht unseres! Unseres mach probleme das es ja bücher gibt, die in der Kategorie Mathemaitk und Belleristik sind! Deines müsste stimmen!

    mfg
    blue1
    LINUX: for those who don't like Windows
    *BSD: for those who like UNIX

  17. #17

    Title
    Baccalaureus
    Join Date
    Feb 2002
    Posts
    780
    Thanks
    25
    Thanked 18 Times in 8 Posts
    bei bsp4 geht aber unter wer eine abteilung leitet! man müsste noch abteilung.nummer in die relation Angestellter geben.

    oder?

    laborg

  18. #18

    Title
    Elite
    Join Date
    Jan 2002
    Posts
    314
    Thanks
    0
    Thanked 0 Times in 0 Posts
    @laborg: also, wer eine abteilung leitet, steht eh drinnen (in der Abteilungsrelation)

    was nicht drinnen vorkommt, ist, in welcher abteilung ein angestellter sitzt,,
    Last edited by Chris; 26-05-2002 at 22:46.
    hi, i'm a signature virus. copy me into your signature to help me spread.

  19. #19

    Title
    Master
    Join Date
    Mar 2002
    Posts
    158
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Bsp 2 Publikationen

    Könnte man die Ausgabe nicht auch in eine ist-Beziehung zu Zeitschrift setzen oder spricht das was dagegen??

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •