{"beispielaufgaben":[{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Backhaus Retzlaff GmbH beliefert von ihrer Produktionsbäckerei in Fulda aus siebzehn eigene Filialen. Sie absolvieren Ihre Ausbildung in der IT-Abteilung und betreuen dort das Warenwirtschaftssystem.","typ":"absatz"},{"text":"Aufgabe (9 Punkte)","typ":"ueberschrift"},{"text":"Die täglichen Absatzmengen aller Filialen werden in einer relationalen Datenbank gespeichert. Folgender Datenbankauszug liegt vor:","typ":"absatz"},{"text":"Filiale: F_ID (PK), Ort, Verkaufsflaeche\nGebaeck: G_ID (PK), Bezeichnung, Warengruppe, Stueckpreis\nTagesabsatz: F_ID (PK, FK), G_ID (PK, FK), Absatzdatum (PK), Menge, Retoure","typ":"absatz"},{"text":"Beziehungen: Filiale 1:n Tagesabsatz; Gebaeck 1:n Tagesabsatz.","typ":"absatz"},{"text":"Beschreibung der einzelnen Felder:\nStueckpreis: Verkaufspreis eines Stücks in EUR\nMenge: an einem Tag verkaufte Stückzahl\nRetoure: am Abend zurückgenommene Stückzahl","typ":"absatz"},{"text":"Hinweis: Datumswerte liegen im Format JJJJ-MM-TT vor.","typ":"absatz"},{"text":"a) Erstellen Sie eine SQL-Abfrage, die alle Bezeichnungen der Warengruppe „Feingebaeck\" mit einem Stueckpreis über 2,50 EUR ausgibt.","typ":"absatz"},{"text":"3 Punkte","typ":"punktzeile"},{"text":"b) Erstellen Sie eine SQL-Abfrage, die je Filiale den Ort und die Summe der Retouren im Juni 2026 ausgibt. Angezeigt werden nur Filialen mit einer Retourensumme über 900 Stück, absteigend sortiert nach dieser Summe.","typ":"absatz"},{"text":"6 Punkte","typ":"punktzeile"}],"beispiel_id":"bsp-sql-abfragen-erstellen-quellcode-01","freigabeart":"maschinell","loesung":[{"text":"Aufgabe (9 Punkte)","typ":"ueberschrift"},{"text":"Die Syntax anderer SQL-Versionen ist ebenfalls als richtig zu bewerten.","typ":"absatz"},{"text":"a) 3 Punkte","typ":"ueberschrift"},{"text":"SELECT Bezeichnung\nFROM Gebaeck\nWHERE Warengruppe = 'Feingebaeck'\n  AND Stueckpreis > 2.50;","typ":"code"},{"text":"Bewertung:","typ":"ueberschrift"},{"eintraege":["SELECT der Spalte Bezeichnung aus Gebaeck: 1 Punkt","Bedingung auf die Warengruppe: 1 Punkt","Bedingung auf den Stueckpreis mit korrektem Vergleichsoperator: 1 Punkt"],"typ":"liste"},{"text":"Hinweis für den Prüfer: Eine zusätzliche Ausgabe weiterer Spalten ist nicht verlangt, aber auch nicht als Fehler zu werten. Wird der Stueckpreis mit Dezimalkomma statt Dezimalpunkt geschrieben, ist dies zu tolerieren.","typ":"absatz"},{"text":"b) 6 Punkte","typ":"ueberschrift"},{"text":"SELECT f.Ort, SUM(t.Retoure) AS Retourensumme\nFROM Tagesabsatz t\nJOIN Filiale f ON t.F_ID = f.F_ID\nWHERE t.Absatzdatum BETWEEN '2026-06-01' AND '2026-06-30'\nGROUP BY f.F_ID, f.Ort\nHAVING SUM(t.Retoure) > 900\nORDER BY Retourensumme DESC;","typ":"code"},{"text":"Bewertung:","typ":"ueberschrift"},{"eintraege":["Ausgabe von Ort und Summenbildung über Retoure: 1 Punkt","Verknüpfung von Tagesabsatz und Filiale über F_ID: 1 Punkt","Einschränkung auf den Zeitraum Juni 2026: 1 Punkt","Gruppierung je Filiale: 1 Punkt","Einschränkung der Gruppen auf mehr als 900 Stück mittels HAVING: 1 Punkt","Absteigende Sortierung nach der Retourensumme: 1 Punkt"],"typ":"liste"},{"text":"Hinweis für den Prüfer: Statt BETWEEN sind gleichwertige Formulierungen zulässig, etwa YEAR(t.Absatzdatum) = 2026 AND MONTH(t.Absatzdatum) = 6 oder zwei Vergleiche mit >= und <=. Wird die Bedingung auf die Retourensumme in der WHERE-Klausel statt in HAVING gesetzt, ist dieser Punkt nicht zu vergeben, da die Aggregation dort noch nicht vorliegt. Ein Alias ist nicht gefordert; wird ohne Alias sortiert (ORDER BY SUM(t.Retoure) DESC), ist der Punkt ebenfalls zu vergeben.","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE","FIDP"],"teil":"AP2"},"punkte":9,"punkterahmen":{"max":12,"min":3},"quellen":["ap1-2022-herbst-gesamt-a04-a-aa","ap1-2023-fruehjahr-gesamt-a04-d-db","ap2-fiae-2021-winter-ae2-a04-b","ap2-fiae-2022-winter-ae2-a04-c","ap2-fiae-2023-sommer-ae2-a04-b","ap2-fiae-2024-winter-ae2-a04-a","ap2-fiae-2024-winter-ae2-a04-b","ap2-fiae-2024-winter-ae2-a04-c","ap2-fidp-2022-sommer-fdp2-a02-c-ca","ap2-fidp-2026-sommer-fdp2-a04-a"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Der Wassersportbetrieb Möwenkiel e. K. vermietet am Steinhuder Meer 64 Segel- und Ruderboote an Tagesgäste und Vereinsmitglieder. Sie arbeiten in der IT-Abteilung des Betriebs und erweitern das Vermietungsprogramm um neue Auswertungen.","typ":"absatz"},{"text":"Aufgabe (8 Punkte)","typ":"ueberschrift"},{"text":"Die Vermietungen werden in einer relationalen Datenbank gespeichert. Folgender Datenbankauszug liegt vor:","typ":"absatz"},{"text":"Boot: B_ID (PK), Bootsname, Bauart, Sitzplaetze, Tagessatz\nKunde: K_ID (PK), Nachname, Vorname, Mitgliedschaft\nVermietung: V_ID (PK), B_ID (FK), K_ID (FK), Ausleihdatum, Rueckgabedatum","typ":"absatz"},{"text":"Beziehungen: Boot 1:n Vermietung; Kunde 1:n Vermietung.","typ":"absatz"},{"text":"Beschreibung der einzelnen Felder:\nTagessatz: Mietpreis je angefangenem Tag in EUR\nMitgliedschaft: Datentyp BOOLEAN, wahr bei Vereinsmitgliedern\nRueckgabedatum: bleibt NULL, solange ein Boot nicht zurückgebracht wurde","typ":"absatz"},{"text":"a) Erstellen Sie eine SQL-Abfrage, die die Bootsnamen aller Boote der Bauart „Jolle\" mit mindestens vier Sitzplaetzen aufsteigend nach Tagessatz ausgibt.","typ":"absatz"},{"text":"3 Punkte","typ":"punktzeile"},{"text":"b) Erstellen Sie eine SQL-Abfrage, die zu jedem noch nicht zurückgebrachten Boot den Bootsnamen, den Nachnamen des Kunden und das Ausleihdatum ausgibt. Ältere Ausleihen sollen zuerst erscheinen.","typ":"absatz"},{"text":"5 Punkte","typ":"punktzeile"}],"beispiel_id":"bsp-sql-abfragen-erstellen-quellcode-02","freigabeart":"maschinell","loesung":[{"text":"Aufgabe (8 Punkte)","typ":"ueberschrift"},{"text":"Die Syntax anderer SQL-Versionen ist ebenfalls als richtig zu bewerten.","typ":"absatz"},{"text":"a) 3 Punkte","typ":"ueberschrift"},{"text":"SELECT Bootsname\nFROM Boot\nWHERE Bauart = 'Jolle'\n  AND Sitzplaetze >= 4\nORDER BY Tagessatz ASC;","typ":"code"},{"text":"Bewertung:","typ":"ueberschrift"},{"eintraege":["SELECT der Spalte Bootsname aus Boot: 1 Punkt","Beide Bedingungen auf Bauart und Sitzplaetze: 1 Punkt","Aufsteigende Sortierung nach Tagessatz: 1 Punkt"],"typ":"liste"},{"text":"Hinweis für den Prüfer: ASC darf entfallen, da es der Voreinstellung entspricht. Für „mindestens vier Sitzplaetze\" ist eine Bedingung zu verlangen, die den ganzzahligen Grenzwert 4 einschließt.","typ":"absatz"},{"text":"b) 5 Punkte","typ":"ueberschrift"},{"text":"SELECT b.Bootsname, k.Nachname, v.Ausleihdatum\nFROM Vermietung v\nJOIN Boot b ON v.B_ID = b.B_ID\nJOIN Kunde k ON v.K_ID = k.K_ID\nWHERE v.Rueckgabedatum IS NULL\nORDER BY v.Ausleihdatum ASC;","typ":"code"},{"text":"Bewertung:","typ":"ueberschrift"},{"eintraege":["Ausgabe der drei geforderten Spalten: 1 Punkt","Verknüpfung von Vermietung und Boot über B_ID: 1 Punkt","Verknüpfung von Vermietung und Kunde über K_ID: 1 Punkt","Einschränkung auf offene Ausleihen über IS NULL: 1 Punkt","Aufsteigende Sortierung nach Ausleihdatum: 1 Punkt"],"typ":"liste"},{"text":"Hinweis für den Prüfer: Die Verknüpfung darf auch über die WHERE-Klausel mit Gleichheitsbedingungen erfolgen. Die Prüfung auf ein fehlendes Rueckgabedatum muss über IS NULL erfolgen; ein Vergleich mit = NULL ist nicht zu bewerten. Die Reihenfolge der ausgegebenen Spalten ist frei.","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE","FIDP"],"teil":"AP2"},"punkte":8,"punkterahmen":{"max":12,"min":3},"quellen":["ap1-2022-herbst-gesamt-a04-a-aa","ap1-2023-fruehjahr-gesamt-a04-d-db","ap2-fiae-2021-winter-ae2-a04-b","ap2-fiae-2022-winter-ae2-a04-c","ap2-fiae-2023-sommer-ae2-a04-b","ap2-fiae-2024-winter-ae2-a04-a","ap2-fiae-2024-winter-ae2-a04-b","ap2-fiae-2024-winter-ae2-a04-c","ap2-fidp-2022-sommer-fdp2-a02-c-ca","ap2-fidp-2026-sommer-fdp2-a04-a"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Nordluft Energie GmbH betreibt in Schleswig-Holstein sechs Windparks mit insgesamt 94 Anlagen. Sie sind in der Softwareentwicklung des Unternehmens tätig und liefern der Instandhaltung regelmäßig Auswertungen zu.","typ":"absatz"},{"text":"Aufgabe (12 Punkte)","typ":"ueberschrift"},{"text":"Wartungen und Tageserträge werden in einer relationalen Datenbank gespeichert. Folgender Datenbankauszug liegt vor:","typ":"absatz"},{"text":"Anlage: A_ID (PK), Anlagenname, Park, Nennleistung\nTechniker: T_ID (PK), Nachname, Qualifikation\nWartung: W_ID (PK), A_ID (FK), T_ID (FK), Plandatum, Abschlussdatum, Kosten\nTagesertrag: A_ID (PK, FK), Ertragsdatum (PK), Arbeit","typ":"absatz"},{"text":"Beziehungen: Anlage 1:n Wartung; Techniker 1:n Wartung; Anlage 1:n Tagesertrag.","typ":"absatz"},{"text":"Beschreibung der einzelnen Felder:\nNennleistung: Leistung einer Anlage in Kilowatt\nArbeit: an einem Tag eingespeiste Arbeit in Kilowattstunden\nAbschlussdatum: bleibt NULL, solange eine Wartung offen ist","typ":"absatz"},{"text":"a) Erstellen Sie eine SQL-Abfrage, die die Anzahl der offenen Wartungen mit einem Plandatum im Jahr 2026 ausgibt.","typ":"absatz"},{"text":"4 Punkte","typ":"punktzeile"},{"text":"b) Erstellen Sie eine SQL-Abfrage, die zu jeder Anlage des Parks „Beltring\" den Anlagennamen, die im Jahr 2025 eingespeiste Arbeit sowie deren Verhältnis zur Nennleistung ausgibt. Berücksichtigt werden nur Anlagen mit mehr als 300 Ertragstagen; sortiert wird absteigend nach der eingespeisten Arbeit.","typ":"absatz"},{"text":"8 Punkte","typ":"punktzeile"},{"text":"Ergebnistabelle:\nAnlagenname | Jahresarbeit | Volllaststunden\nBeltring 07 | 9450000 | 3150\nBeltring 02 | 8820000 | 2940\nBeltring 11 | 7128000 | 2376","typ":"absatz"}],"beispiel_id":"bsp-sql-abfragen-erstellen-quellcode-03","freigabeart":"maschinell","loesung":[{"text":"Aufgabe (12 Punkte)","typ":"ueberschrift"},{"text":"Die Syntax anderer SQL-Versionen ist ebenfalls als richtig zu bewerten.","typ":"absatz"},{"text":"a) 4 Punkte","typ":"ueberschrift"},{"text":"SELECT COUNT(*)\nFROM Wartung\nWHERE YEAR(Plandatum) = 2026\n  AND Abschlussdatum IS NULL;","typ":"code"},{"text":"Bewertung:","typ":"ueberschrift"},{"eintraege":["Zählung der Datensätze mit COUNT: 1 Punkt","Zugriff auf die Tabelle Wartung: 1 Punkt","Einschränkung des Plandatums auf das Jahr 2026: 1 Punkt","Einschränkung auf offene Wartungen über IS NULL: 1 Punkt"],"typ":"liste"},{"text":"Hinweis für den Prüfer: Statt YEAR(Plandatum) = 2026 ist eine Eingrenzung über zwei Datumsvergleiche oder BETWEEN gleichwertig. Ein Vergleich mit = NULL statt IS NULL ist nicht zu bewerten.","typ":"absatz"},{"text":"b) 8 Punkte","typ":"ueberschrift"},{"text":"SELECT a.Anlagenname,\n       SUM(t.Arbeit) AS Jahresarbeit,\n       SUM(t.Arbeit) / a.Nennleistung AS Volllaststunden\nFROM Anlage a\nJOIN Tagesertrag t ON a.A_ID = t.A_ID\nWHERE a.Park = 'Beltring'\n  AND YEAR(t.Ertragsdatum) = 2025\nGROUP BY a.A_ID, a.Anlagenname, a.Nennleistung\nHAVING COUNT(*) > 300\nORDER BY Jahresarbeit DESC;","typ":"code"},{"text":"Bewertung:\n- Ausgabe des Anlagennamens: 1 Punkt\n- Summenbildung über Arbeit: 1 Punkt\n- Division der Summe durch die Nennleistung: 1 Punkt\n- Verknüpfung von Anlage und Tagesertrag über A_ID: 1 Punkt\n- Einschränkung auf den Park „Beltring\": 1 Punkt\n- Einschränkung der Ertragsdaten auf das Jahr 2025: 1 Punkt\n- Gruppierung je Anlage mit Einschränkung auf mehr als 300 Ertragstage mittels HAVING: 1 Punkt\n- Absteigende Sortierung nach der eingespeisten Arbeit: 1 Punkt","typ":"absatz"},{"text":"Hinweis für den Prüfer: Die Bedingung auf die Zahl der Ertragstage muss in\nHAVING stehen, da sie sich auf die gebildete Gruppe bezieht; in der\nWHERE-Klausel ist sie nicht zu bewerten. Statt COUNT(*) ist\nCOUNT(t.Ertragsdatum) gleichwertig. Ob die Nennleistung in der\nGROUP-BY-Klausel wiederholt wird, hängt vom Datenbanksystem ab und ist\nnicht zu bemängeln. Aliasnamen sind frei wählbar; wird ohne Alias sortiert,\nist der Punkt für die Sortierung ebenfalls zu vergeben.","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE","FIDP"],"teil":"AP2"},"punkte":12,"punkterahmen":{"max":12,"min":3},"quellen":["ap1-2022-herbst-gesamt-a04-a-aa","ap1-2023-fruehjahr-gesamt-a04-d-db","ap2-fiae-2021-winter-ae2-a04-b","ap2-fiae-2022-winter-ae2-a04-c","ap2-fiae-2023-sommer-ae2-a04-b","ap2-fiae-2024-winter-ae2-a04-a","ap2-fiae-2024-winter-ae2-a04-b","ap2-fiae-2024-winter-ae2-a04-c","ap2-fidp-2022-sommer-fdp2-a02-c-ca","ap2-fidp-2026-sommer-fdp2-a04-a"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Sie absolvieren Ihre Ausbildung bei der Radlotte GmbH. Das Unternehmen vermietet in Bremen Lastenräder über Selbstbedienungsstationen. Jede Vermietung wird in einer Datenbank erfasst.","typ":"absatz"},{"text":"Ausleihe: AusleiheID (PK), RadID, KundenID, Startzeit, Rueckgabezeit, Zustand, Kilometer","typ":"absatz"},{"text":"Beschreibung der einzelnen Felder:\nZustand: Stand der Vermietung, mögliche Werte \"laufend\" und \"beendet\"\nKilometer: bisher zurückgelegte Strecke","typ":"absatz"},{"text":"Die Betriebsleitung sucht lange laufende Lastenradvermietungen. Dazu liegt eine SQL-Server-Abfrage vor.","typ":"absatz"},{"text":"Analysieren Sie die vorliegende Abfrage. Beschreiben Sie das zu erwartende Ergebnis dieser Abfrage.","typ":"absatz"},{"text":"3 Punkte","typ":"punktzeile"},{"text":"SELECT RadID, Startzeit, Kilometer FROM Ausleihe\nWHERE Zustand = 'laufend' AND Startzeit < DATEADD(DAY, -3, GETDATE())\nORDER BY Startzeit ASC;","typ":"code"}],"beispiel_id":"bsp-sql-abfragen-analysieren-freitextantwort-01","freigabeart":"maschinell","loesung":[{"text":"3 Punkte","typ":"punktzeile"},{"text":"Mögliche Beschreibung:","typ":"ueberschrift"},{"text":"— Ausgegeben werden nur laufende Vermietungen, also Ausleihen ohne Rückgabe, deren Startzeit\n  mehr als drei Tage zurückliegt. Beide Bedingungen müssen gleichzeitig erfüllt sein.\n  1 Punkt","typ":"code"},{"text":"— Angezeigt werden je Treffer ausschließlich die Radnummer, die Startzeit und die bisher\n  zurückgelegte Strecke. Kunden- und Ausleihnummer erscheinen nicht in der Ergebnismenge.\n  1 Punkt","typ":"code"},{"text":"— Das Ergebnis ist aufsteigend nach der Startzeit sortiert, die am längsten laufende\n  Vermietung steht damit an erster Stelle.\n  1 Punkt","typ":"code"},{"text":"Hinweise für den Prüfer:","typ":"ueberschrift"},{"text":"Die Bezeichnung der Dauerbedingung als \"seit mehr als drei Tagen ausgeliehen\" ist gleichwertig zu bewerten.","typ":"absatz"},{"text":"Die Feststellung, dass der Bezugspunkt der Berechnung der Ausführungszeitpunkt der Abfrage ist und das Ergebnis deshalb an jedem Tag anders ausfallen kann, wird als zutreffende Beobachtung anerkannt, ist aber nicht gefordert.","typ":"absatz"},{"text":"Eine reine Wiederholung der SQL-Klauseln ohne Aussage über die Ergebnismenge (\"die Abfrage selektiert mit WHERE und sortiert mit ORDER BY\") ist mit 0 Punkten zu bewerten.","typ":"absatz"}],"operator_id":"operator.analysieren","pruefungszuordnung":{"berufe":[],"teil":"AP1"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap1-2023-herbst-gesamt-a04-c-cd"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Sie arbeiten in der Tierklinik am Deichtor, die Kleintiere und Nutztiere versorgt. Jede Behandlung wird in einer Datenbank dokumentiert.","typ":"absatz"},{"text":"Behandlung: BehandlungID (PK), TierID, Tierart, Behandlungsdatum, Leistung, Honorar","typ":"absatz"},{"text":"Beschreibung der einzelnen Felder:\nTierart: Art des versorgten Tieres, etwa Hund, Pferd oder Rind\nHonorar: berechneter Betrag der Behandlung in Euro","typ":"absatz"},{"text":"Für den Jahresbericht wertet eine Kollegin die Behandlungszahlen aus. Sie legt Ihnen ihre Abfrage zur Durchsicht vor.","typ":"absatz"},{"text":"Analysieren Sie die vorliegende Abfrage. Beschreiben Sie das zu erwartende Ergebnis der Auswertung.","typ":"absatz"},{"text":"3 Punkte","typ":"punktzeile"},{"text":"SELECT Tierart, COUNT(*) AS Anzahl FROM Behandlung\nWHERE YEAR(Behandlungsdatum) = 2025\nGROUP BY Tierart\nHAVING COUNT(*) > 50;","typ":"code"}],"beispiel_id":"bsp-sql-abfragen-analysieren-freitextantwort-02","freigabeart":"maschinell","loesung":[{"text":"3 Punkte","typ":"punktzeile"},{"text":"Mögliche Beschreibung:","typ":"ueberschrift"},{"text":"— Berücksichtigt werden ausschließlich Behandlungen mit einem Behandlungsdatum im Jahr 2025;\n  alle übrigen Jahrgänge bleiben unberücksichtigt.\n  1 Punkt","typ":"code"},{"text":"— Die verbleibenden Behandlungen werden nach Tierart zusammengefasst und je Tierart gezählt.\n  Ausgegeben werden die Tierart und die zugehörige Anzahl unter der Überschrift Anzahl.\n  1 Punkt","typ":"code"},{"text":"— Angezeigt werden nur Tierarten mit mehr als 50 Behandlungen im Jahr 2025. Seltener\n  behandelte Tierarten fallen aus dem Ergebnis heraus.\n  1 Punkt","typ":"code"},{"text":"Hinweise für den Prüfer:","typ":"ueberschrift"},{"text":"Der Hinweis, dass die Schwelle erst nach der Gruppierung wirkt und deshalb HAVING statt WHERE verwendet wird, ist eine zutreffende Ergänzung, aber nicht Bedingung für die volle Punktzahl.","typ":"absatz"},{"text":"Die Feststellung, dass keine Sortierung vereinbart ist und die Reihenfolge der Zeilen daher offen bleibt, wird ebenfalls anerkannt.","typ":"absatz"},{"text":"Die Angabe einer konkreten Zeilenzahl ist nicht möglich und darf nicht verlangt werden.","typ":"absatz"}],"operator_id":"operator.analysieren","pruefungszuordnung":{"berufe":[],"teil":"AP1"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap1-2023-herbst-gesamt-a04-c-cd"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Sie sind Mitarbeiter der IT-Abteilung der Kammerbühne Weyher, eines Theaters mit zwei Spielstätten. Der Kartenverkauf läuft über eine eigene Datenbank.","typ":"absatz"},{"text":"Vorstellung: VorstellungID (PK), Titel, Spieldatum, Spielstaette Karte: KartenID (PK), VorstellungID (FK), Platzkategorie, Preis, Storniert","typ":"absatz"},{"text":"Beziehungen: Vorstellung 1:n Karte.","typ":"absatz"},{"text":"Hinweis: Das Attribut Storniert hat den Datentyp BOOLEAN.","typ":"absatz"},{"text":"Die Intendanz prüft den Vorverkauf. Eine Kollegin übergibt Ihnen dazu eine Abfrage.","typ":"absatz"},{"text":"Analysieren Sie die vorliegende Abfrage. Beschreiben Sie das zu erwartende Ergebnis der Abfrage.","typ":"absatz"},{"text":"3 Punkte","typ":"punktzeile"},{"text":"SELECT Titel, SUM(Preis) AS Einnahmen FROM Vorstellung\nJOIN Karte ON Vorstellung.VorstellungID = Karte.VorstellungID\nWHERE Storniert = FALSE\nGROUP BY Titel\nORDER BY Einnahmen DESC;","typ":"code"}],"beispiel_id":"bsp-sql-abfragen-analysieren-freitextantwort-03","freigabeart":"maschinell","loesung":[{"text":"3 Punkte","typ":"punktzeile"},{"text":"Mögliche Beschreibung:","typ":"ueberschrift"},{"text":"— Jede Karte wird über die Vorstellungsnummer ihrer Vorstellung zugeordnet. Stornierte Karten\n  bleiben unberücksichtigt, es fließen also nur gültig verkaufte Karten ein.\n  1 Punkt","typ":"code"},{"text":"— Für jeden Titel werden die Preise der verbleibenden Karten aufsummiert. Ausgegeben werden\n  der Titel und die Summe unter der Überschrift Einnahmen.\n  1 Punkt","typ":"code"},{"text":"— Das Ergebnis ist absteigend nach dieser Summe sortiert; der Titel mit den höchsten\n  Einnahmen steht an erster Stelle.\n  1 Punkt","typ":"code"},{"text":"Hinweise für den Prüfer:","typ":"ueberschrift"},{"text":"Da nach dem Titel und nicht nach der Vorstellungsnummer gruppiert wird, fasst die Abfrage mehrere Aufführungen desselben Stücks und beide Spielstätten zu einer Zeile zusammen. Wird dieser Umstand erkannt und benannt, ersetzt er einen der drei genannten Punkte.","typ":"absatz"},{"text":"Titel ohne verkaufte Karte erscheinen wegen des inneren Verbunds nicht im Ergebnis. Diese Beobachtung wird als zutreffend anerkannt, ist aber nicht gefordert.","typ":"absatz"},{"text":"Eine reine Übersetzung der Klauselnamen ohne Aussage über die Ergebnismenge ist mit 0 Punkten zu bewerten.","typ":"absatz"}],"operator_id":"operator.analysieren","pruefungszuordnung":{"berufe":[],"teil":"AP1"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap1-2023-herbst-gesamt-a04-c-cd"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Sie absolvieren Ihre Ausbildung bei der Nordluft Energie GmbH. Das Unternehmen betreut 62 Windenergieanlagen; alle Störungsmeldungen werden in einer Datenbank gespeichert.","typ":"absatz"},{"text":"Tabelle Stoerung: MeldungID, AnlageID, Bauteil, Meldedatum, Schweregrad, Status","typ":"absatz"},{"text":"Beschreibung der einzelnen Felder\nSchweregrad: Ganzzahl von 1 (gering) bis 5 (kritisch)\nStatus: Text mit den Werten 'offen' oder 'behoben'","typ":"absatz"},{"text":"Analysieren Sie die abgebildete SQL-Abfrage und beschreiben Sie die zu erwartende Ergebnismenge.","typ":"absatz"},{"text":"3 Punkte","typ":"punktzeile"},{"text":"SELECT AnlageID, Bauteil, Meldedatum FROM Stoerung\nWHERE Schweregrad >= 4 AND Status = 'offen'\nORDER BY Meldedatum ASC;","typ":"code"}],"beispiel_id":"bsp-sql-abfragen-beschreiben-freitextantwort-01","freigabeart":"maschinell","loesung":[{"text":"3 Punkte","typ":"punktzeile"},{"text":"Mögliche Beschreibung:","typ":"ueberschrift"},{"text":"— Ausgegeben werden Anlagennummer, betroffenes Bauteil und Meldedatum der\n  Störungsmeldungen aus der Tabelle Stoerung; weitere Felder erscheinen nicht.\n  1 Punkt","typ":"code"},{"text":"— Berücksichtigt werden ausschließlich Meldungen, die noch den Status 'offen'\n  tragen und einen Schweregrad von mindestens 4 aufweisen, also die\n  Schweregrade 4 und 5. Beide Bedingungen müssen gleichzeitig erfüllt sein.\n  1 Punkt","typ":"code"},{"text":"— Das Ergebnis ist aufsteigend nach dem Meldedatum sortiert; die älteste noch\n  offene Meldung steht an erster Stelle.\n  1 Punkt","typ":"code"},{"text":"Hinweis für den Prüfer:\nSinngemäße Formulierungen sind als richtig zu bewerten. Die Angabe\n„Schweregrad 4 oder 5“ ist gleichwertig zu „mindestens 4“. Ein Hinweis darauf,\ndass bereits behobene Meldungen nicht erscheinen, ist im zweiten Punkt\nenthalten und nicht zusätzlich zu bewerten.","typ":"absatz"}],"operator_id":"operator.beschreiben","pruefungszuordnung":{"berufe":[],"teil":"AP1"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap1-2023-herbst-gesamt-a04-c-cd"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Kornrast Backwaren GmbH beliefert täglich 34 eigene Filialen. Nicht verkaufte Ware wird abends je Filiale und Artikel als Retoure erfasst.","typ":"absatz"},{"text":"Tabelle Retoure: RetoureID, FilialNr, Artikel, Datum, Stueckzahl","typ":"absatz"},{"text":"Hinweis: Stueckzahl ist eine Ganzzahl.","typ":"absatz"},{"text":"Untersuchen Sie die abgebildete SQL-Abfrage und beschreiben Sie, welches Ergebnis sie liefert.","typ":"absatz"},{"text":"3 Punkte","typ":"punktzeile"},{"text":"SELECT FilialNr, SUM(Stueckzahl) AS Menge FROM Retoure\nWHERE Artikel = 'Roggenbrot'\nGROUP BY FilialNr\nHAVING SUM(Stueckzahl) > 400\nORDER BY Menge DESC;","typ":"code"}],"beispiel_id":"bsp-sql-abfragen-beschreiben-freitextantwort-02","freigabeart":"maschinell","loesung":[{"text":"3 Punkte","typ":"punktzeile"},{"text":"Mögliche Beschreibung:","typ":"ueberschrift"},{"text":"— Die Abfrage betrachtet nur Retouren des Artikels 'Roggenbrot' und fasst diese\n  je Filiale zusammen. Ausgegeben werden die Filialnummer und die aufsummierte\n  Stückzahl unter der Überschrift Menge. Eine zeitliche Einschränkung besteht\n  nicht, ausgewertet wird der gesamte Datenbestand.\n  1 Punkt","typ":"code"},{"text":"— Angezeigt werden nur Filialen, deren aufsummierte Roggenbrot-Retoure größer\n  als 400 Stück ist. Die Bedingung wirkt erst nach der Gruppierung, eine Filiale\n  mit genau 400 Stück erscheint deshalb nicht.\n  1 Punkt","typ":"code"},{"text":"— Das Ergebnis ist absteigend nach der Summe sortiert; die Filiale mit der\n  größten Retourenmenge steht an erster Stelle.\n  1 Punkt","typ":"code"},{"text":"Hinweis für den Prüfer:\nSinngemäße Formulierungen sind als richtig zu bewerten. Wird die Grenze als\n„mindestens 400“ beschrieben, ist der zweite Punkt nicht zu vergeben, da die\nAbfrage echt größer als 400 prüft.","typ":"absatz"}],"operator_id":"operator.beschreiben","pruefungszuordnung":{"berufe":[],"teil":"AP1"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap1-2023-herbst-gesamt-a04-c-cd"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Sie arbeiten in der IT der Stadtbibliothek Marbeck. Ausleihen und Rückgaben werden in einer relationalen Datenbank geführt.","typ":"absatz"},{"text":"Tabelle Leser: LeserNr, Nachname, Ort\nTabelle Ausleihe: AusleihNr, LeserNr, Signatur, Ausleihdatum, Rueckgabedatum","typ":"absatz"},{"text":"Beziehungen: Leser 1:n Ausleihe","typ":"ueberschrift"},{"text":"Hinweis: Rueckgabedatum bleibt NULL, solange ein Medium nicht zurückgegeben wurde.","typ":"absatz"},{"text":"Analysieren Sie die abgebildete SQL-Abfrage und beschreiben Sie, welche Datensätze ausgegeben werden.","typ":"absatz"},{"text":"3 Punkte","typ":"punktzeile"},{"text":"SELECT L.Nachname, A.Signatur, A.Ausleihdatum\nFROM Leser L JOIN Ausleihe A ON L.LeserNr = A.LeserNr\nWHERE A.Rueckgabedatum IS NULL AND YEAR(A.Ausleihdatum) < 2026\nORDER BY A.Ausleihdatum ASC;","typ":"code"}],"beispiel_id":"bsp-sql-abfragen-beschreiben-freitextantwort-03","freigabeart":"maschinell","loesung":[{"text":"3 Punkte","typ":"punktzeile"},{"text":"Mögliche Beschreibung:","typ":"ueberschrift"},{"text":"— Die Abfrage verbindet die Tabellen Leser und Ausleihe über die LeserNr und\n  gibt zu jeder gefundenen Ausleihe den Nachnamen des Lesers, die Signatur des\n  Mediums und das Ausleihdatum aus.\n  1 Punkt","typ":"code"},{"text":"— Ausgewählt werden nur Ausleihen ohne Rückgabedatum, bei denen das Medium also\n  noch nicht zurückgegeben wurde, und deren Ausleihdatum vor dem Jahr 2026\n  liegt. Das Ergebnis enthält damit die Altfälle aus früheren Jahren.\n  1 Punkt","typ":"code"},{"text":"— Das Ergebnis ist aufsteigend nach dem Ausleihdatum sortiert; die am längsten\n  ausstehende Ausleihe steht an erster Stelle.\n  1 Punkt","typ":"code"},{"text":"Hinweis für den Prüfer:\nSinngemäße Formulierungen sind als richtig zu bewerten. Der Hinweis, dass\nLeser ohne Ausleihe wegen des INNER JOIN nicht erscheinen, ist eine\nzutreffende Ergänzung, aber keine Voraussetzung für die volle Punktzahl.","typ":"absatz"}],"operator_id":"operator.beschreiben","pruefungszuordnung":{"berufe":[],"teil":"AP1"},"punkte":3,"punkterahmen":{"max":3,"min":3},"quellen":["ap1-2023-herbst-gesamt-a04-c-cd"]}],"konzept_id":"fachkonzept.sql-abfragen","schema_version":3}