Zum Inhalt springen

SQL Prüfungsaufgabe


Empfohlene Beiträge

Moin,

kann jemand meine Lösung bewerten und mir Punkte zwecks Selbstkontrolle geben, geht um folgende Aufgabe:

image.thumb.png.30fbbf7f22d6dabdf19cb0ddad84ca81.png

image.thumb.png.5c323dfc47016159ebe9f319e30baaca.png

Lösung1:

CREATE TABLE Zugangsarten (
Zugangsart_ID INT PRIMARY KEY,
Zugangsart VARCHAR(50));

INSERT INTO Zugangsarten (Zugangsart_ID, Zugangsart)
VALUES (1, 'frei zugänglich'),
(2, 'für berechtigte Nutzer online');

ALTER TABLE Suchdetails 
ADD COLUMN Zugangsart_ID INT,
ADD CONSTRAINT fk_Zugangsart
FOREIGN KEY (Zugangsart_ID)
REFERENCES Zugangsarten(Zugangsart_ID);
 

Lösung 2:

SELECT S.Recherche_URL
FROM Suchdetails AS S
INNER JOIN Fachgebiet AS F ON S.ID_Fachgebiet = F.ID_Fachgebiet
WHERE S.Verfügbarkeit = 'frei zugänglich'
AND S.Schlagwörter LIKE '%Sensorik%'
AND F.Fachgebiet_Bezeichnung = 'IoT';
 

Recht herzlichen Dank für die Aufmerksamkeit :) 

Link zu diesem Kommentar
Auf anderen Seiten teilen

 

In der von dir gezeigten Aufgabe geht es darum, eine Datenbanktabelle zu erweitern und dann eine Abfrage auf dieser erweiterten Tabelle auszuführen. Sie haben einen SQL-Code zur Lösung einer Übungsaufgabe bereitgestellt, der aus zwei Teilen besteht:

Teil 1 ist die Modifikation einer bestehenden Tabelle Suchdetails durch Hinzufügung einer neuen Spalte Zugangsart_ID, die mit der neu erstellten Tabelle Zugangsarten über einen Fremdschlüssel verknüpft wird. Sie haben die Tabelle Zugangsarten richtig erstellt und die entsprechenden Daten eingefügt. Dann fügen Sie der Tabelle Suchdetails die neue Spalte Zugangsart_ID hinzu und setzen den Fremdschlüssel. Dieser Teil sieht korrekt aus.

Teil 2 ist eine Abfrage (SQL-Query), die alle frei zugänglichen Medien mit dem Schlagwort Sensorik und dem Fachgebiet IoT aus der Tabelle Suchdetails auswählt, wobei diese mit der Tabelle Fachgebiet verknüpft ist. Ihre Abfrage sieht grundsätzlich richtig aus, allerdings berücksichtigt sie nicht die neu eingefügte Spalte Zugangsart_ID. Statt die Verfügbarkeit als String 'frei zugänglich' zu vergleichen, sollten Sie nun die entsprechende Zugangsart_ID verwenden. Zum Beispiel:

SELECT S.Recherche_URL
FROM Suchdetails AS S
INNER JOIN Fachgebiet AS F ON S.ID_Fachgebiet = F.ID_Fachgebiet
INNER JOIN Zugangsarten AS Z ON S.Zugangsart_ID = Z.Zugangsart_ID
WHERE Z.Zugangsart = 'frei zugänglich'
AND S.Schlagwörter LIKE '%Sensorik%'
AND F.Fachgebiet_Bezeichnung = 'IoT';
 

In dieser überarbeiteten Abfrage werden die Suchdetails und Fachgebiet Tabellen wie in Ihrem ursprünglichen SQL-Statement verbunden, aber es wird zusätzlich die Tabelle Zugangsarten über die Zugangsart_ID verbunden, um sicherzustellen, dass nur die Datensätze mit der richtigen Zugangsart ausgewählt werden.  Monchi, du bist auf dem richtigen Weg. Sehr gut ! ^^

 

Bearbeitet von Smoovner
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich finde die Aufgaben in Kombination missverständlich.

In der ersten Aufgabe geht es darum in der Tabelle die Zugangsart zu ergänzen in die dann eine ID kommt, die auf di Referenztabelle Zugangsart verweist. Du hast die Referenztabelle erstellt, befüllt und dann die ursprüngliche Tabelle um das Feld erweitert mit den entsprechenden Constraints. Das schaut für mich richtig aus, auch weil du die Reihenfolge beachtet hast.

Im zweiten Teil sollst du eine Abfrage machen und bekommst als Ausgangslage wieder zwei Tabellen gegeben. In der Tabelle ist aber das Feld Zugangsart nicht enthalten. Die Aufgabe sagt, es sollen nur Elemente ausgegeben werden, die "frei zugänglich" sind. Sagt bei dem Kriterium aber nicht, auf welches Feld sich das bezieht. Im Zusammenhang mit der Aufgabe davor weiß man, dass "frei zugänglich"ein Wert ist, der im Feld "Zugangsart"vorkommt. Aber wie schon gesagt, an Hand der neuen Ausgangslage gibt es das Feld in der Teilaufgabe ja nicht ?!?!

Jetzt gibt es verschiedene Denkansätze:
1. Man ergänzt auch diese Tabelle um das Feld "Zugangsart"und wiederholt quasi den Code aus der Aufgabe davor, bevor man dann die Abfrage macht (bzw. man schreibt enen kurzen Satz, dass man annimmt, dass das Feld wie in Aufgabe 1 ergänzt wurde)
2. Man könnte annehmen, dass "frei zugänglich"ggf auch ein Wert ist, der in den Feldern "Schlagworte"oder "Verfügbarkeit" vorkommt, da schlicht nicht gegeben ist welche Werte die Felder annehmen können und auf welches Feld sich das nun bezieht.
3. Man ist übertrieben genau und schreibt, dass die Abfrage nicht durchführbar ist, da in der Tabelle das entsprechende Feld fehlt. Das mag jetzt albern klingen, aber es gab schon IHK Aufgaben in denen die korrekte Antwort war "geht nicht, weil es fehlt eine eindeutige ID etc."

Ich würde der Einfachkeit halber mal Version 1 nehmen.
In dem Fall muss die Anfrage noch abgeändert werden:

WHERE S.Verfügbarkeit = '1'

Weil 1 ja die ID für "frei verfügbar" ist.
Oder du joinst zusätzlich noch deine Referenztabelle aus Aufgabe 1 mit hinein, wie es ChatGPT vorgeschlagen hat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 23 Stunden schrieb Chris-Info:

Ich finde die Aufgaben in Kombination missverständlich.

In der ersten Aufgabe geht es darum in der Tabelle die Zugangsart zu ergänzen in die dann eine ID kommt, die auf di Referenztabelle Zugangsart verweist. Du hast die Referenztabelle erstellt, befüllt und dann die ursprüngliche Tabelle um das Feld erweitert mit den entsprechenden Constraints. Das schaut für mich richtig aus, auch weil du die Reihenfolge beachtet hast.

Im zweiten Teil sollst du eine Abfrage machen und bekommst als Ausgangslage wieder zwei Tabellen gegeben. In der Tabelle ist aber das Feld Zugangsart nicht enthalten. Die Aufgabe sagt, es sollen nur Elemente ausgegeben werden, die "frei zugänglich" sind. Sagt bei dem Kriterium aber nicht, auf welches Feld sich das bezieht. Im Zusammenhang mit der Aufgabe davor weiß man, dass "frei zugänglich"ein Wert ist, der im Feld "Zugangsart"vorkommt. Aber wie schon gesagt, an Hand der neuen Ausgangslage gibt es das Feld in der Teilaufgabe ja nicht ?!?!

 

Danke! SQL und ich sind leider keine Freunde :D Die Aufgabenstellungen der IHK verbessern unsere Beziehung auch so garnicht.

Ich hab im ertsen durchlauf auf die Aufgabe verzichtet und ihr meine letzten 14 min gewidmet. Bei der zweiten Aufgabe hab ich mir auch diese fragen gestellt und mich nach zu viel nachdenken für meine Lösung entschieden. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...