{"beispielaufgaben":[{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Der Fahrradverleih „GrünRad“ betreibt an mehreren Standorten Leihstationen und möchte seine Ausleihvorgänge künftig in einer relationalen Datenbank erfassen. Die Tabellen Fahrrad mit dem Primärschlüssel FahrradID und Kunde mit dem Primärschlüssel KundenID wurden bereits angelegt und mit Daten gefüllt. Nun fehlt die Tabelle Ausleihe. Sie soll die Spalte AusleiheID als Primärschlüssel (Ganzzahl), die Spalten FahrradID und KundenID jeweils als Ganzzahl sowie Startzeit und Rueckgabezeit jeweils als Text enthalten. FahrradID muss als Fremdschlüssel auf die Tabelle Fahrrad und KundenID als Fremdschlüssel auf die Tabelle Kunde verweisen. Erstellen Sie die SQL-Anweisung CREATE TABLE, mit der die Tabelle Ausleihe einschließlich Primärschlüssel und beider Fremdschlüssel erzeugt wird.","typ":"absatz"}],"beispiel_id":"bsp-sql-datendefinition-erstellen-quellcode-01","freigabeart":"maschinell","loesung":[{"text":"Erwartete Lösung:\nCREATE TABLE Ausleihe (AusleiheID INTEGER PRIMARY KEY, FahrradID INTEGER, KundenID INTEGER, Startzeit TEXT, Rueckgabezeit TEXT, FOREIGN KEY (FahrradID) REFERENCES Fahrrad(FahrradID), FOREIGN KEY (KundenID) REFERENCES Kunde(KundenID));","typ":"code"},{"text":"Punkteverteilung: alle fünf Spalten mit korrekten Datentypen 2 P; korrekt gesetzter Primärschlüssel AusleiheID 1 P; Fremdschlüssel FahrradID auf Fahrrad 1 P; Fremdschlüssel KundenID auf Kunde 1 P. Gleichwertige Datentypschreibweisen (z. B. INT) sind zulässig.","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE","FIDP"],"teil":"AP2"},"punkte":5,"punkterahmen":{"max":8,"min":3},"quellen":["ap2-fiae-2021-winter-ae2-a04-a","ap2-fiae-2023-sommer-ae2-a04-d","ap2-fiae-2025-sommer-ae2-a04-d","ap2-fiae-2025-winter-ae2-a04-d","ap2-fidp-2023-sommer-fdp2-a03-b-ba","ap2-fidp-2025-winter-fdp2-a02-b"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Die Musikschule „Klangwelt“ möchte die Belegung ihrer Kurse künftig digital verwalten. Die Tabellen Schueler mit dem Primärschlüssel SchuelerID und Kurs mit dem Primärschlüssel KursID sind bereits angelegt und mit Datensätzen gefüllt. Für die Zuordnung der Schüler zu den belegten Kursen fehlt noch die Verbindungstabelle Belegung. Diese soll die Spalte BelegungID als Primärschlüssel (Ganzzahl) enthalten, außerdem SchuelerID und KursID jeweils als Ganzzahl, das Anmeldedatum als Datum sowie die monatliche Gebuehr als Festkommazahl. SchuelerID muss als Fremdschlüssel auf die Tabelle Schueler und KursID als Fremdschlüssel auf die Tabelle Kurs verweisen. Formulieren Sie die SQL-Anweisung CREATE TABLE zur Erzeugung der Tabelle Belegung einschließlich Primärschlüssel und beider Fremdschlüssel.","typ":"absatz"}],"beispiel_id":"bsp-sql-datendefinition-erstellen-quellcode-02","freigabeart":"maschinell","loesung":[{"text":"Erwartete Lösung:\nCREATE TABLE Belegung (BelegungID INTEGER PRIMARY KEY, SchuelerID INTEGER, KursID INTEGER, Anmeldedatum DATE, Gebuehr DECIMAL, FOREIGN KEY (SchuelerID) REFERENCES Schueler(SchuelerID), FOREIGN KEY (KursID) REFERENCES Kurs(KursID));","typ":"code"},{"text":"Punkteverteilung: alle fünf Spalten mit korrekten Datentypen 3 P; korrekt gesetzter Primärschlüssel BelegungID 1 P; Fremdschlüssel SchuelerID auf Schueler 1 P; Fremdschlüssel KursID auf Kurs 1 P. Gleichwertige Datentypschreibweisen (z. B. INT, NUMERIC) sind zulässig.","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE","FIDP"],"teil":"AP2"},"punkte":6,"punkterahmen":{"max":8,"min":3},"quellen":["ap2-fiae-2021-winter-ae2-a04-a","ap2-fiae-2023-sommer-ae2-a04-d","ap2-fiae-2025-sommer-ae2-a04-d","ap2-fiae-2025-winter-ae2-a04-d","ap2-fidp-2023-sommer-fdp2-a03-b-ba","ap2-fidp-2025-winter-fdp2-a02-b"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Der Paketdienst „FlinkPost“ verwaltet seine Zustellungen in einer relationalen Datenbank. Die Tabelle Empfaenger mit dem Primärschlüssel EmpfaengerID ist bereits vorhanden und befüllt. Ergänzen Sie nun die Tabelle Sendung. Sie soll SendungID als Primärschlüssel (Ganzzahl), EmpfaengerID als Ganzzahl, Gewicht als Festkommazahl und Versanddatum als Datum enthalten. EmpfaengerID muss als Fremdschlüssel auf die Tabelle Empfaenger verweisen. Erstellen Sie die passende CREATE-TABLE-Anweisung einschließlich Primär- und Fremdschlüssel.","typ":"absatz"}],"beispiel_id":"bsp-sql-datendefinition-erstellen-quellcode-03","freigabeart":"maschinell","loesung":[{"text":"Erwartete Lösung:\nCREATE TABLE Sendung (SendungID INTEGER PRIMARY KEY, EmpfaengerID INTEGER, Gewicht DECIMAL, Versanddatum DATE, FOREIGN KEY (EmpfaengerID) REFERENCES Empfaenger(EmpfaengerID));","typ":"code"},{"text":"Punkteverteilung: alle vier Spalten mit korrekten Datentypen 2 P; korrekt gesetzter Primärschlüssel SendungID 1 P; Fremdschlüssel EmpfaengerID auf Empfaenger 1 P. Gleichwertige Datentypschreibweisen (z. B. INT, NUMERIC) sind zulässig.","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE","FIDP"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":8,"min":3},"quellen":["ap2-fiae-2021-winter-ae2-a04-a","ap2-fiae-2023-sommer-ae2-a04-d","ap2-fiae-2025-sommer-ae2-a04-d","ap2-fiae-2025-winter-ae2-a04-d","ap2-fidp-2023-sommer-fdp2-a03-b-ba","ap2-fidp-2025-winter-fdp2-a02-b"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Ein regionaler Verkehrsbetrieb betreibt im Stadtgebiet ein Leihradsystem mit mehreren Verleihstationen. Ihr Team entwickelt die zugehörige Verwaltungssoftware und legt dafür eine relationale Datenbank an. Die Stammdaten der Räder und der Stationen liegen bereits in den Tabellen Fahrrad (RadID als Primärschlüssel, Modell) und Station (StationID als Primärschlüssel, Bezeichnung) vor. Nun soll jeder einzelne Ausleihvorgang gespeichert werden. Ein Datensatz enthält eine eindeutige Vorgangsnummer, das ausgeliehene Rad, die Startstation, den Startzeitpunkt, den Endzeitpunkt sowie die berechnete Gebühr.","typ":"absatz"},{"text":"Die folgende Beispielzeile zeigt den geplanten Aufbau:\nAusleiheID=1, RadID=17, StartStationID=4, Startzeit=2026-05-02 09:15, Endzeit=2026-05-02 09:48, Gebuehr=2.50","typ":"absatz"},{"text":"Ein Kollege hat die Anweisung begonnen, aber die Schlüssel und die einzelnen Datentypen offengelassen. Vervollständigen Sie die folgende CREATE-TABLE-Anweisung so, dass die Tabelle Ausleihe entsteht. Ergänzen Sie den Primärschlüssel sowie die beiden Fremdschlüssel auf die vorhandenen Tabellen Fahrrad und Station und wählen Sie für alle Spalten geeignete Datentypen.","typ":"absatz"},{"text":"CREATE TABLE Ausleihe (\n  AusleiheID ______,\n  RadID ______,\n  StartStationID ______,\n  Startzeit ______,\n  Endzeit ______,\n  Gebuehr ______,\n  ______\n);","typ":"code"}],"beispiel_id":"bsp-sql-datendefinition-ergaenzen-quellcode-01","freigabeart":"maschinell","loesung":[{"text":"Erwartete Lösung: CREATE TABLE Ausleihe (AusleiheID INTEGER PRIMARY KEY, RadID INTEGER, StartStationID INTEGER, Startzeit TEXT, Endzeit TEXT, Gebuehr REAL, FOREIGN KEY (RadID) REFERENCES Fahrrad(RadID), FOREIGN KEY (StartStationID) REFERENCES Station(StationID));","typ":"absatz"},{"text":"Punkteverteilung (9 P): sechs Spalten mit fachlich passenden Datentypen 3 P; Primärschlüssel auf AusleiheID 2 P; Fremdschlüssel RadID auf Fahrrad 2 P; Fremdschlüssel StartStationID auf Station 2 P. Fachlich gleichwertige Datentypen (z. B. VARCHAR statt TEXT, DECIMAL/NUMERIC statt REAL, DATE bzw. DATETIME für die Zeitspalten) sind anzuerkennen. Wird nur ein Fremdschlüssel gesetzt, entfallen die 2 P des fehlenden.","typ":"absatz"}],"operator_id":"operator.ergaenzen","pruefungszuordnung":{"berufe":["FIDP"],"teil":"AP2"},"punkte":9,"punkterahmen":{"max":9,"min":9},"quellen":["ap2-fidp-2024-sommer-fdp2-a02-b-bb"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Eine Tierarztpraxis führt eine neue Praxissoftware ein, in der jede durchgeführte Behandlung dauerhaft dokumentiert werden soll. Die Patientenstammdaten sind bereits in der Tabelle Patient gespeichert; diese enthält TierID als Primärschlüssel sowie die Spalten Name und Tierart. Für die Behandlungen ist eine weitere Tabelle nötig. Jeder Eintrag beschreibt eine einzelne Behandlung mit einer eindeutigen Behandlungsnummer, dem zugehörigen Tier, dem Behandlungsdatum, der gestellten Diagnose als Freitext und den entstandenen Kosten. Da eine Behandlung immer einem erfassten Patienten zugeordnet sein muss, darf die Spalte mit dem Tierbezug niemals leer bleiben.","typ":"absatz"},{"text":"Beispielhafter Datensatz:\nBehandlungID=1, TierID=8, Behandlungsdatum=2026-03-11, Diagnose=Ohrenentzündung, Kosten=54.90","typ":"absatz"},{"text":"Vervollständigen Sie die begonnene Anweisung so, dass die Tabelle Behandlung korrekt angelegt wird. Ergänzen Sie den Primärschlüssel, den Fremdschlüssel auf die Tabelle Patient sowie die Pflichtfeldangabe für den Tierbezug und wählen Sie für alle Spalten geeignete Datentypen.","typ":"absatz"},{"text":"CREATE TABLE Behandlung (\n  BehandlungID ______,\n  TierID ______,\n  Behandlungsdatum ______,\n  Diagnose ______,\n  Kosten ______,\n  ______\n);","typ":"code"}],"beispiel_id":"bsp-sql-datendefinition-ergaenzen-quellcode-02","freigabeart":"maschinell","loesung":[{"text":"Erwartete Lösung: CREATE TABLE Behandlung (BehandlungID INTEGER PRIMARY KEY, TierID INTEGER NOT NULL, Behandlungsdatum TEXT, Diagnose TEXT, Kosten REAL, FOREIGN KEY (TierID) REFERENCES Patient(TierID));","typ":"absatz"},{"text":"Punkteverteilung (9 P): fünf Spalten mit fachlich passenden Datentypen 3 P; Primärschlüssel auf BehandlungID 2 P; NOT-NULL-Pflichtfeld auf TierID 2 P; Fremdschlüssel TierID auf Patient 2 P. Fachlich gleichwertige Datentypen (z. B. VARCHAR statt TEXT, DECIMAL/NUMERIC statt REAL, DATE für das Datum) sind anzuerkennen.","typ":"absatz"}],"operator_id":"operator.ergaenzen","pruefungszuordnung":{"berufe":["FIDP"],"teil":"AP2"},"punkte":9,"punkterahmen":{"max":9,"min":9},"quellen":["ap2-fidp-2024-sommer-fdp2-a02-b-bb"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Ein Dienstleister betreut Photovoltaikanlagen und plant eine Datenbank zur Nachverfolgung aller Wartungseinsätze. Die Anlagen sind in der Tabelle Anlage mit AnlageID als Primärschlüssel und dem Standort erfasst; die Mitarbeitenden stehen in der Tabelle Techniker mit TechnikerID als Primärschlüssel und dem Nachnamen. Für jeden Vor-Ort-Einsatz soll ein Datensatz gespeichert werden. Er enthält eine eindeutige Einsatznummer, die gewartete Anlage, den ausführenden Techniker, das Einsatzdatum, die Dauer in Minuten sowie eine kurze Bemerkung.","typ":"absatz"},{"text":"Beispielhafter Datensatz:\nEinsatzID=1, AnlageID=12, TechnikerID=3, Einsatzdatum=2026-04-20, Dauer_Minuten=95, Bemerkung=Wechselrichter geprüft","typ":"absatz"},{"text":"Ein Entwurf der Anweisung liegt vor, in dem die Schlüssel und die Datentypen noch fehlen. Vervollständigen Sie die CREATE-TABLE-Anweisung so, dass die Tabelle Wartungseinsatz entsteht. Ergänzen Sie den Primärschlüssel sowie die beiden Fremdschlüssel auf die vorhandenen Tabellen Anlage und Techniker und wählen Sie für alle Spalten geeignete Datentypen.","typ":"absatz"},{"text":"CREATE TABLE Wartungseinsatz (\n  EinsatzID ______,\n  AnlageID ______,\n  TechnikerID ______,\n  Einsatzdatum ______,\n  Dauer_Minuten ______,\n  Bemerkung ______,\n  ______\n);","typ":"code"}],"beispiel_id":"bsp-sql-datendefinition-ergaenzen-quellcode-03","freigabeart":"maschinell","loesung":[{"text":"Erwartete Lösung: CREATE TABLE Wartungseinsatz (EinsatzID INTEGER PRIMARY KEY, AnlageID INTEGER, TechnikerID INTEGER, Einsatzdatum TEXT, Dauer_Minuten INTEGER, Bemerkung TEXT, FOREIGN KEY (AnlageID) REFERENCES Anlage(AnlageID), FOREIGN KEY (TechnikerID) REFERENCES Techniker(TechnikerID));","typ":"absatz"},{"text":"Punkteverteilung (9 P): sechs Spalten mit fachlich passenden Datentypen 3 P; Primärschlüssel auf EinsatzID 2 P; Fremdschlüssel AnlageID auf Anlage 2 P; Fremdschlüssel TechnikerID auf Techniker 2 P. Fachlich gleichwertige Datentypen (z. B. VARCHAR statt TEXT, DATE für das Datum) sind anzuerkennen; Dauer_Minuten muss ganzzahlig sein. Wird nur ein Fremdschlüssel gesetzt, entfallen die 2 P des fehlenden.","typ":"absatz"}],"operator_id":"operator.ergaenzen","pruefungszuordnung":{"berufe":["FIDP"],"teil":"AP2"},"punkte":9,"punkterahmen":{"max":9,"min":9},"quellen":["ap2-fidp-2024-sommer-fdp2-a02-b-bb"]}],"konzept_id":"fachkonzept.sql-datendefinition","schema_version":3}