{"beispielaufgaben":[{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Die Musikschule „ClaviTon\" verwaltet ihren Instrumentenverleih in einer relationalen Datenbank. Die Tabelle Kategorie enthält die Spalten KategorieID (Primärschlüssel) und Bezeichnung. Die Tabelle Instrument enthält die Spalten InstrumentID (Primärschlüssel), Name, Baujahr, Verleihpreis sowie KategorieID als Fremdschlüssel auf Kategorie. In Kategorie sind bereits „Saiteninstrument\" (KategorieID 1) und „Tasteninstrument\" (KategorieID 2) gespeichert. In Instrument existiert bereits die Konzertgitarre (InstrumentID 10). Ergänzen Sie den Datenbestand mit SQL-Anweisungen: Fügen Sie ein neues Instrument mit der InstrumentID 11, dem Namen „E-Piano P-45\", dem Baujahr 2022, dem Verleihpreis 18.0 und der Kategorie „Tasteninstrument\" (KategorieID 2) hinzu. Aktualisieren Sie außerdem den Verleihpreis der Konzertgitarre (InstrumentID 10) auf 14.0. Formulieren Sie die dafür benötigten Anweisungen.","typ":"absatz"}],"beispiel_id":"bsp-sql-datenmanipulation-ergaenzen-quellcode-01","freigabeart":"maschinell","loesung":[{"text":"INSERT INTO Instrument (InstrumentID, Name, Baujahr, Verleihpreis, KategorieID) VALUES (11, 'E-Piano P-45', 2022, 18.0, 2); — korrekte Spaltenliste (1 P), korrekte Werte einschließlich Fremdschlüsselwert KategorieID 2 (2 P), gültige INSERT-Syntax (1 P). UPDATE Instrument SET Verleihpreis = 14.0 WHERE InstrumentID = 10; — korrekte SET-Klausel (2 P), korrekte WHERE-Bedingung auf InstrumentID 10 (2 P). Insgesamt 8 Punkte.","typ":"absatz"}],"operator_id":"operator.ergaenzen","pruefungszuordnung":{"berufe":["FIDP"],"teil":"AP2"},"punkte":8,"punkterahmen":{"max":9,"min":6},"quellen":["ap2-fidp-2022-sommer-fdp2-a02-c-cc","ap2-fidp-2024-sommer-fdp2-a02-b-bb"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Der Fahrradverleih „RadFrei\" speichert seinen Fuhrpark in der Tabelle Fahrrad mit den Spalten FahrradID (Primärschlüssel), Modell und Status. Nach der wöchentlichen technischen Kontrolle sind zwei Änderungen in den Datenbestand einzupflegen: Das Fahrrad mit der FahrradID 2 wurde zur Reparatur gegeben und erhält den Status „in Wartung\". Das Fahrrad mit der FahrradID 3 ist irreparabel beschädigt und wird endgültig aus dem Bestand entfernt. Ergänzen Sie den Datenbestand entsprechend. Formulieren Sie die beiden dafür notwendigen SQL-Anweisungen so, dass ausschließlich die genannten Datensätze verändert beziehungsweise gelöscht werden und alle übrigen Fahrräder unverändert bleiben.","typ":"absatz"}],"beispiel_id":"bsp-sql-datenmanipulation-ergaenzen-quellcode-02","freigabeart":"maschinell","loesung":[{"text":"Erwartete Lösung:\nUPDATE Fahrrad SET Status = 'in Wartung' WHERE FahrradID = 2; (3 P)\nDELETE FROM Fahrrad WHERE FahrradID = 3; (3 P)","typ":"code"},{"text":"Punkteverteilung: korrektes UPDATE mit SET auf Status 1 P, zutreffende WHERE-Bedingung FahrradID = 2 1 P, korrekter Zielwert 'in Wartung' 1 P; korrektes DELETE FROM Fahrrad 1 P, zutreffende WHERE-Bedingung FahrradID = 3 1 P, ausschließlich dieser Datensatz betroffen 1 P. Fehlende oder falsche WHERE-Klausel (z. B. gesamter Bestand betroffen) ist mit Punktabzug zu bewerten.","typ":"absatz"}],"operator_id":"operator.ergaenzen","pruefungszuordnung":{"berufe":["FIDP"],"teil":"AP2"},"punkte":6,"punkterahmen":{"max":9,"min":6},"quellen":["ap2-fidp-2022-sommer-fdp2-a02-c-cc","ap2-fidp-2024-sommer-fdp2-a02-b-bb"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Die Kfz-Werkstatt „MotorFix\" speichert Reparaturaufträge in einer relationalen Datenbank. Die Tabelle Kunde besteht aus den Spalten KundeID (Primärschlüssel) und Name. Die Tabelle Auftrag besteht aus den Spalten AuftragID (Primärschlüssel), Beschreibung, Status und KundeID als Fremdschlüssel auf Kunde. In Kunde ist unter anderem der Kunde mit der KundeID 3 gespeichert. In Auftrag existieren bereits der stornierte Auftrag mit der AuftragID 5 sowie ein offener Auftrag mit der AuftragID 8. Ergänzen Sie den Datenbestand mit SQL-Anweisungen: Fügen Sie einen neuen Auftrag mit der AuftragID 12, der Beschreibung „Bremsbeläge wechseln\", dem Status „offen\" und der KundeID 3 hinzu. Entfernen Sie anschließend den stornierten Auftrag mit der AuftragID 5 dauerhaft aus der Tabelle. Formulieren Sie die dafür benötigten Anweisungen.","typ":"absatz"}],"beispiel_id":"bsp-sql-datenmanipulation-ergaenzen-quellcode-03","freigabeart":"maschinell","loesung":[{"text":"INSERT INTO Auftrag (AuftragID, Beschreibung, Status, KundeID) VALUES (12, 'Bremsbeläge wechseln', 'offen', 3); — korrekte Spaltenliste (1 P), korrekte Werte einschließlich Fremdschlüsselwert KundeID 3 (2 P). DELETE FROM Auftrag WHERE AuftragID = 5; — DELETE FROM mit korrekter Zieltabelle (1 P), korrekte WHERE-Bedingung auf AuftragID 5 (2 P). Insgesamt 6 Punkte.","typ":"absatz"}],"operator_id":"operator.ergaenzen","pruefungszuordnung":{"berufe":["FIDP"],"teil":"AP2"},"punkte":6,"punkterahmen":{"max":9,"min":6},"quellen":["ap2-fidp-2022-sommer-fdp2-a02-c-cc","ap2-fidp-2024-sommer-fdp2-a02-b-bb"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Die Vitalis-Sportakademie verwaltet ihre Kursbuchungen in einer relationalen Datenbank. Die Tabelle Kurs enthält die Spalten K_ID (Primärschlüssel) und K_Name. Die Tabelle Buchung enthält B_ID (Primärschlüssel), B_KID (Fremdschlüssel auf Kurs), B_Teilnehmer sowie B_Status, wobei B_Status entweder den Wert 'offen' oder den Wert 'abgeschlossen' besitzt. Für die Langzeitauswertung existiert bereits die eigenständige Tabelle Buchung_Archiv mit den Spalten A_BID, A_KursName und A_Teilnehmer. Beachten Sie, dass im Archiv anstelle der Kursnummer der ausgeschriebene Kursname gespeichert wird und die Spaltenreihenfolge von der Tabelle Buchung abweicht. Erstellen Sie genau eine SQL-Anweisung, die alle abgeschlossenen Buchungen in die Tabelle Buchung_Archiv überträgt. Übernehmen Sie dabei die Buchungsnummer, den zugehörigen Kursnamen aus der Tabelle Kurs sowie den Teilnehmer. Ein Löschen der Ursprungsdaten ist nicht gefordert.","typ":"absatz"}],"beispiel_id":"bsp-sql-datenmanipulation-erstellen-quellcode-01","freigabeart":"maschinell","loesung":[{"text":"Erwartete Lösung: INSERT INTO Buchung_Archiv (A_BID, A_KursName, A_Teilnehmer) SELECT b.B_ID, k.K_Name, b.B_Teilnehmer FROM Buchung b JOIN Kurs k ON k.K_ID = b.B_KID WHERE b.B_Status = 'abgeschlossen';","typ":"absatz"},{"text":"Punkteverteilung (6 Punkte): INSERT INTO mit expliziter Zielspaltenliste in der Archivreihenfolge 1 P; SELECT der drei geforderten Werte inklusive des Kursnamens K_Name 2 P; korrekter JOIN von Buchung und Kurs über K_ID = B_KID 2 P; WHERE B_Status = 'abgeschlossen' 1 P. Hinweis: Da Buchung_Archiv eine abweichende Spaltenstruktur und -reihenfolge besitzt, ist die explizite Spaltenauswahl zwingend; eine Variante mit SELECT * ist hier fachlich falsch. Syntaxvarianten anderer SQL-Dialekte sind bei gleicher Logik anzuerkennen.","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE","FIDP"],"teil":"AP2"},"punkte":6,"punkterahmen":{"max":10,"min":2},"quellen":["ap2-fiae-2021-winter-ae2-a04-c","ap2-fiae-2022-sommer-ae2-a04-b-bb","ap2-fiae-2022-winter-ae2-a04-b","ap2-fiae-2024-sommer-ae2-a04-a","ap2-fiae-2024-sommer-ae2-a04-c","ap2-fiae-2025-sommer-ae2-a04-a","ap2-fiae-2025-sommer-ae2-a04-d","ap2-fiae-2025-winter-ae2-a04-a","ap2-fiae-2025-winter-ae2-a04-d","ap2-fiae-2026-sommer-ae2-a04-c-ca","ap2-fidp-2021-winter-fdp2-a02-d","ap2-fidp-2025-winter-fdp2-a03-a","ap2-fidp-2026-sommer-fdp2-a04-d"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Die AutoFlott GmbH vermietet Fahrzeuge an Privatkunden. Alle Mietvorgänge werden in der Tabelle Mietvorgang gespeichert. Sobald ein Vorgang den Status 'abgeschlossen' erhält, soll er dauerhaft in die Tabelle Mietarchiv überführt werden.","typ":"absatz"},{"text":"Tabelle Mietvorgang:\nM_ID | M_Kunde | M_Fahrzeug | M_Tage | M_Status\n1 | Berger | VW Golf | 3 | abgeschlossen\n2 | Lorenz | Opel Corsa | 5 | laufend\n3 | Simon | BMW X1 | 2 | abgeschlossen\n4 | Kaiser | Audi A3 | 7 | laufend","typ":"absatz"},{"text":"Die Tabelle Mietarchiv besitzt denselben Aufbau wie die Tabelle Mietvorgang und ist zu Beginn leer.","typ":"absatz"},{"text":"Erstellen Sie die SQL-Anweisungen, die alle Mietvorgänge mit dem Status 'abgeschlossen' zunächst vollständig in die Tabelle Mietarchiv kopieren und sie anschließend aus der Tabelle Mietvorgang löschen. Geben Sie beide Anweisungen in der fachlich korrekten Reihenfolge an.","typ":"absatz"}],"beispiel_id":"bsp-sql-datenmanipulation-erstellen-quellcode-02","freigabeart":"maschinell","loesung":[{"text":"Erwartet werden zwei Anweisungen in korrekter Reihenfolge (erst Kopieren, dann Löschen).","typ":"absatz"},{"text":"1) Kopieren (4 Punkte):\nINSERT INTO Mietarchiv (M_ID, M_Kunde, M_Fahrzeug, M_Tage, M_Status) SELECT M_ID, M_Kunde, M_Fahrzeug, M_Tage, M_Status FROM Mietvorgang WHERE M_Status = 'abgeschlossen';","typ":"code"},{"text":"2) Löschen (4 Punkte):\nDELETE FROM Mietvorgang WHERE M_Status = 'abgeschlossen';","typ":"code"},{"text":"Punkte: korrektes INSERT ... SELECT mit Filter auf 'abgeschlossen' 4 P; korrektes DELETE mit gleichem Filter 4 P. Ergebnis: Mietarchiv enthält die Vorgänge 1 und 3, Mietvorgang nur noch 2 und 4. Wird das Löschen vor dem Kopieren angeordnet, ist die Reihenfolge fehlerhaft (max. 4 P).","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE","FIDP"],"teil":"AP2"},"punkte":8,"punkterahmen":{"max":10,"min":2},"quellen":["ap2-fiae-2021-winter-ae2-a04-c","ap2-fiae-2022-sommer-ae2-a04-b-bb","ap2-fiae-2022-winter-ae2-a04-b","ap2-fiae-2024-sommer-ae2-a04-a","ap2-fiae-2024-sommer-ae2-a04-c","ap2-fiae-2025-sommer-ae2-a04-a","ap2-fiae-2025-sommer-ae2-a04-d","ap2-fiae-2025-winter-ae2-a04-a","ap2-fiae-2025-winter-ae2-a04-d","ap2-fiae-2026-sommer-ae2-a04-c-ca","ap2-fidp-2021-winter-fdp2-a02-d","ap2-fidp-2025-winter-fdp2-a03-a","ap2-fidp-2026-sommer-fdp2-a04-d"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Ein Carsharing-Anbieter verwaltet seine Fahrzeuge in der Tabelle Fahrzeug. Zu jedem Fahrzeug werden die Fahrzeugnummer F_ID, das amtliche Kennzeichen F_Kennzeichen sowie der aktuelle Kilometerstand F_Kilometerstand gespeichert. Beim Fahrzeug mit der Fahrzeugnummer 3 wurden bei der Erfassung fehlerhafte Angaben eingetragen. Das Kennzeichen muss auf 'M-CS 1234' und der Kilometerstand auf 45000 berichtigt werden. Alle übrigen Fahrzeuge bleiben unverändert.","typ":"absatz"},{"text":"Erstellen Sie die SQL-Anweisung, mit der beide Felder dieses Fahrzeugs in einem einzigen Befehl korrigiert werden.","typ":"absatz"}],"beispiel_id":"bsp-sql-datenmanipulation-erstellen-quellcode-03","freigabeart":"maschinell","loesung":[{"text":"UPDATE Fahrzeug SET F_Kennzeichen = 'M-CS 1234', F_Kilometerstand = 45000 WHERE F_ID = 3; (4 P.: UPDATE Fahrzeug SET 1 P., F_Kennzeichen = 'M-CS 1234' 1 P., F_Kilometerstand = 45000 1 P., WHERE F_ID = 3 1 P.). Beide Zuweisungen müssen in einem UPDATE erfolgen; ohne WHERE-Bedingung ist die Lösung falsch.","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE","FIDP"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":10,"min":2},"quellen":["ap2-fiae-2021-winter-ae2-a04-c","ap2-fiae-2022-sommer-ae2-a04-b-bb","ap2-fiae-2022-winter-ae2-a04-b","ap2-fiae-2024-sommer-ae2-a04-a","ap2-fiae-2024-sommer-ae2-a04-c","ap2-fiae-2025-sommer-ae2-a04-a","ap2-fiae-2025-sommer-ae2-a04-d","ap2-fiae-2025-winter-ae2-a04-a","ap2-fiae-2025-winter-ae2-a04-d","ap2-fiae-2026-sommer-ae2-a04-c-ca","ap2-fidp-2021-winter-fdp2-a02-d","ap2-fidp-2025-winter-fdp2-a03-a","ap2-fidp-2026-sommer-fdp2-a04-d"]}],"konzept_id":"fachkonzept.sql-datenmanipulation","schema_version":3}