SQL-Queries

GuStaV%%

Mitglied
Hallo zusammen,

ich hätte die folgenden 2 Queries bei denen ich mir unsicher bin, ob sie stimmen:

SQL:
Kursleiter (ID, Nachname)
Kurs (Nr, AnzTeiln, Ort)
Thema (Name, nachgefragt)

leitet (LeiterID, KursNr)
FOREIGN KEY (LeiterID) REFERENCES Kursleiter (ID)
FOREIGN KEY (KursNr) REFERENCES Kurs (Nr)

Kenntnis (LeiterID, ThemaBez)
FOREIGN KEY (LeiterID) REFERENCES Kursleiter (ID)
FOREIGN KEY (ThemaBez) REFERENCES Thema (Name)

behandelt (ThemaBez, KursNr)
FOREIGN KEY (ThemaBez) REFERENCES Thema (Name)
FOREIGN KEY (KursNr) REFERENCES Kurs (Nr)

Formulieren Sie jeweils eine SQL-Anfrage, um die folgenden Informationen zu
erhalten:

2 Punkte (a) Listen Sie die Namen aller stark nachgefragten Themen auf, in denen sich der
Kursleiter mit der ID ”3“ auskennt.

(b) Welche Kursleiter kennen sich nicht im Thema mit dem Namen "Webdesign“ aus?

(c) Listen Sie jeden Kursort und die bisherige Gesamtteilnehmerzahl über alle
Kurse an diesem Ort dann auf, falls diese mindestens 30 beträgt.

a)

SQL:
SELECT NAME
FROM THEMA, KENNTNIS
WHERE THEMA.name = KENNTNIS.ThemaBez
AND Kenntnis.LeiterID = 3


b)

SQL:
SELECT ID, Nachname
FROM Kursleiter, Kenntnis
WHERE Kursleiter.ID NOT IN
( SELECT ThemaBez
FROM Kenntnis
WHERE ThemaBez = "Webdesign" )

c)

SQL:
SELECT DISTINCT SUM(AnzTeil), Ort
FROM KURS
GROUP BY ORT
HAVING SUM (AnzTeiln) > 29


Was meint ihr? passt das?

Vielen Dank im Voraus
 
Zuletzt bearbeitet von einem Moderator:

mrBrown

Super-Moderator
Mitarbeiter
a) Besser explizite Joins nutzen, die Einschränkung auf "stark nachgefragten Themen" fehlt auch

b) Das erste FROM passt nicht (wofür brauchst du Kenntnis?), das innere Select passt nicht (Kursleiter.ID und ThemaBez passen nicht zusammen)

c) Das DISTINCT ist überflüssig, AnzTeiln sollte beide Male richtig geschrieben werden


Hast du die Queries einfach mal getestet? Einfach mal ein paar Beispieldaten erstellen und die Queries ausführen :)
 

GuStaV%%

Mitglied
Hallo,

vielen Dank schon mal.

b) Bei dem Subquery sollte ich doch eine Tabelle erhalten, welche mir nur noch die Werte liefert, welche in Themenbezeichnung = "Webdesign" haben, oder? und darauf wird nun die ID und der Name aus Kursleiter selektiert (Mit dem Kenntnis hast du natürlich Recht) : ).

c) Aber falsch ist es auch nicht, oder?

würde es bei

a) 2 Punkte geben

b) 3 Punkte

c) 4 Punkte

was denkst du habe ich rausgeholt. Das waren meine Selects in einer Klausur : ).
 

GuStaV%%

Mitglied
Hallo,

vielen Dank schon mal.

b) Bei dem Subquery sollte ich doch eine Tabelle erhalten, welche mir nur noch die Werte liefert, welche in Themenbezeichnung = "Webdesign" haben, oder? und darauf wird nun die ID und der Name aus Kursleiter selektiert (Mit dem Kenntnis hast du natürlich Recht) : ).

c) Aber falsch ist es auch nicht, oder?

würde es bei

a) 2 Punkte geben

b) 3 Punkte

c) 4 Punkte

was denkst du habe ich rausgeholt. Das waren meine Selects in einer Klausur : ).
AnzTeiln habe ich in c) eigentlich richtig geschrieben gehabt : )
 

mrBrown

Super-Moderator
Mitarbeiter
Bei dem Subquery sollte ich doch eine Tabelle erhalten, welche mir nur noch die Werte liefert, welche in Themenbezeichnung = "Webdesign" haben, oder?
Die Subquery hat aktuell als Ergebnis einfach nur "Webdesign", du selectest nur die Themenbezeichnung – du brauchst aber die ID des Kursleiters.

was denkst du habe ich rausgeholt.
Wenn nur das Ergebnis relevant ist und der Schreibfehler in c korrigiert ist: 4 Punkte.
Wenns Teilpunkte gibt und das eigentliche Ergebnis egal ist: 3 - 4 Punkte. ;)
 

GuStaV%%

Mitglied
hmm okay, vielen Dank : ).

Kennst du dich vielleicht auch mit mit Normalformen aus?

da war es diese Aufgabe hier:

Pr ̈ufen Sie, in welchen Normalformen die folgenden Relationenschemata mit funk-
tionalen Abh ̈angigkeiten F vorliegen. Begr ̈unden Sie Ihre Antwort.

(a) PRODUKTKOSTEN1(AuftragsNr , Herstellungsdatum, Bezeichnung,

RechnungsNr, VerpackungsNr)

F = {AuftragsNr → Herstellungsdatum, AuftragsNr → Bezeichnung,
AuftragsNr → RechnungsNr, AuftragsNr → V erpackungsNr,
V erpackungsNr → Herstellungsdatum}

(b) PRODUKTKOSTEN 2(AuftragsNr , Herstellungsdatum, Bezeichnung,

RechnungsNr, VerpackungsNr)

F = {AuftragsNr → Herstellungsdatum, AuftragsNr → Bezeichnung,
AuftragsNr → RechnungsNr, AuftragsNr → V erpackungsNr,
RechnungsNr → V erpackungsNr, RechnungsNr → AuftragsNr}

(c) PRODUKTKOSTEN 3(AuftragsNr , Herstellungsdatum, Bezeichnung,

RechnungsNr, VerpackungsNr)
F = {(AuftragsNr, Bezeichnung) → Herstellungsdatum,
(AuftragsNr, Bezeichnung) → RechnungsNr,
(AuftragsNr, Bezeichnung) → V erpackungsNr,
Bezeichnung → V erpackungsNr}




Meine Lösung:

a) Liegt in der 2 NF vor

b) Es liegt in der 2 NF vor, da die VerpackungsNr nicht funktional abhängig ist von dem Schlüssel AuftragsNr.

c) Liegt in der 1 NF vor, da VerpackungsNr alleine schon durch Bezeichnung bestimmt werden kann (funktional abhängig) ist und nicht vom gesamten Schlüsselpaar.

Würde das wenigstens passen?

Ich glaube ich muss um das Bestehen bangen :/
 

mihe7

Top Contributor
Meine Lösung:

a) Liegt in der 2 NF vor
Begründung?

b) Es liegt in der 2 NF vor, da die VerpackungsNr nicht funktional abhängig ist von dem Schlüssel AuftragsNr.
Wenn ich mich nicht verschaue, dann lese ich da was von "AuftragsNr → VerpackungsNr".

c) Liegt in der 1 NF vor, da VerpackungsNr alleine schon durch Bezeichnung bestimmt werden kann (funktional abhängig) ist und nicht vom gesamten Schlüsselpaar.
Wobei ich hier von Schlüsselkandidat oder (zusammengesetzten) Schlüssel und nicht von einem Schlüsselpaar reden würde. Kann aber sein, dass Ihr da eine etwas andere Terminologie benutzt.

Evtl. solltest Du noch - mit Begründung - dazu schreiben, dass alle die 1. NF erfüllen.
 

GuStaV%%

Mitglied
hmm also liegt b) wohl doch in der 3NF vor, oder? Ich dachte weil VerpackungsNr auch über ein Nichtschlüsselattribut bestimmt werden kann, oder irre ich mich da?

Die gleiche Begründung auch für a)

Oder liege ich falsch?
 

mihe7

Top Contributor
Wenn AuftragsNr Schlüssel ist, dann ist auch RechnungsNr ein Schlüssel, aufgrund der wechselseitigen Abhängigkeit. Damit sind AuftragsNr und RechnungsNr Schlüsselattribute...
 

GuStaV%%

Mitglied
hmmm okay, also was wäre dann die Lösung für b?

und noch mal gefragt c) habe ich richtig gemacht, oder : )

Tut mir leid, ich bin leider sehr nervös, dass ich eventuell durchgefallen bin.
 

GuStaV%%

Mitglied
Puh, da bin ich erleichert..... : D

Es wird eine extrem knappe Geschichte.

Kannst du vielleicht auch ER-Diagramme? Und könntest da mal kurz einen Blick über meines werfen und mir sagen, was du davon hälst? Da gab es 15 Punkte drauf. Ich brauch dabei mindestens 7 (sonst bin ich im Eimer : D)
 

Ähnliche Java Themen

Neue Themen


Oben