DasMonchi Geschrieben 13. April Teilen Geschrieben 13. April Moin, kann jemand meine Lösung bewerten und mir Punkte zwecks Selbstkontrolle geben, geht um folgende Aufgabe: 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smoovner Geschrieben 14. April Teilen Geschrieben 14. April (bearbeitet) 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 14. April von Smoovner Brapchu reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DasMonchi Geschrieben 14. April Autor Teilen Geschrieben 14. April Moin, danke für die Antwort und deine mühe. Liest sich wie ein bekannter Chatbot Ich denke ich könnte hier mit 7 und 2 Punkten rechnen wenn ich kritisch wäre...Richtung stimmt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Chris-Info Geschrieben 14. April Teilen Geschrieben 14. April 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smoovner Geschrieben 14. April Teilen Geschrieben 14. April ✌️ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DasMonchi Geschrieben 15. April Autor Teilen Geschrieben 15. April 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 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.