Datenbanken und SQL für technische Anwendungen
Einleitung
Du entwickelst eine lokale Prüfobjekt-Datenbank für synthetische Messwerte eines ungefährlichen Lehrbauteils. Das Ergebnis ist keine Maschinensteuerung und keine Sicherheitsfreigabe, sondern ein nachvollziehbares Lernprodukt: Daten anlegen, gezielt abfragen und drei Fehlerfälle sicher zurückweisen. Zielgruppe sind Auszubildende im 1. bis 2. Ausbildungsjahr. Du solltest Dateien und Maßeinheiten verstehen; Programmierkenntnisse sind nicht erforderlich. Plane 5 bis 8 Unterrichtseinheiten mit einer zusätzlichen Vertiefung.
Dein Lernweg: Grundlagen kurz aktivieren, mit SQLite zwei Tabellen und Abfragen nachvollziehen, die Datenbank selbst erweitern und anhand von Testprotokollen Entscheidungen begründen. Ein normaler Rechner mit kostenloser SQLite-Software genügt. Die Beispiele sind erfunden, können als SQL-Text offline gespeichert und ohne bezahltes KI-Konto bearbeitet werden.
Anschluss an bestehendes Wissen: Vorhandene MOOCwiki-Grundlage, bereitgestellter Einstieg. Wiederhole dort, soweit erreichbar, nur die Begriffe Datei, Datensatz und Einheit. Der Inhalt der verlinkten Seite konnte beim Quellenabruf nicht eingesehen werden; dieser Kurs behauptet daher keine bestimmten dortigen Lernziele. Ohne den Link genügt die folgende Aktivierung: Eine CSV-Datei kann Zeilen speichern; eine Datenbank ergänzt prüfbare Beziehungen und Regeln.
Lernziele: Du erklärst Tabelle, Datensatz, Primärschlüssel und Fremdschlüssel, formulierst SELECT-Abfragen, baust eine lokale SQLite-Datenbank, prüfst ID-Eindeutigkeit, Verknüpfung und parametrisierte Eingaben und begründest mindestens einen Fehlerfall. Technische Ergebnisse werden nur simuliert. Das Angebot ist unabhängig und weder eine offizielle Liebherr- noch eine IHK-Zertifizierung.
Vom Messwert zum Datenmodell
Dateien, Datensätze und Tabellen
Eine einfache Text- oder CSV-Datei enthält Informationen, doch ohne zusätzliche Software verhindert sie weder doppelte Kennungen noch widersprüchliche Bezüge. In einer relationalen Datenbank stehen zusammengehörige Werte in Tabellen. Jede Zeile ist ein Datensatz, jede Spalte ein Attribut. Eine ID identifiziert einen Eintrag eindeutig. SQL bedeutet Structured Query Language und dient zum Definieren, Speichern, Verändern und Abfragen von Daten.

Mediennachweis: Wikimedia Commons, Relational database terms.svg, Booyabazooka; Gemeinfreiheit laut Dateiseite. Die Grafik ergänzt die Definitionen, ersetzt sie aber nicht.
Beispiel: Das Objekt P-101 heißt Lehrteil A und hat einen erfundenen Sollwert von 20,0 mm. Für dieses Objekt werden Messungen von 20,2 mm und 19,8 mm protokolliert. Ein Prüfobjekt kann beliebig viele Messdatensätze besitzen; eine Messung gehört in unserem Modell genau zu einem Prüfobjekt. Alle Werte sind synthetisch und haben keine reale Prüf- oder Qualitätsaussage.
Primärschlüssel, Fremdschlüssel und Kardinalität
Ein Primärschlüssel (PRIMARY KEY) muss eindeutig sein. Ein Fremdschlüssel (FOREIGN KEY) verknüpft einen Wert in einer Tabelle mit einem vorhandenen Schlüssel der anderen Tabelle. Die Beziehung eins zu viele (1:n) bedeutet: Ein Prüfobjekt kann viele Messungen haben, eine Messung verweist hier auf genau ein Prüfobjekt. Das verhindert doppelte Objektbeschreibungen in jeder Messzeile.

Mediennachweis: Wikimedia Commons, ER-Beispiel, Fishpi; gemeinfrei laut Dateiseite. Die abgebildeten Unternehmen sind ein Strukturbeispiel, keine Daten unseres Modellfalls.
Mini-Aktivierung: Ordne die Begriffe ID, Messwert, Prüfobjekt, Beziehung den vier Beschreibungen zu: eindeutige Kennung, erfasste Zahl mit Einheit, zu untersuchender Lehrgegenstand und Verweis zwischen Tabellen. Nutze die interaktive Memory-Aufgabe zur Selbstkontrolle.
Struktur vor Inhalt
Normalisierung bedeutet vereinfacht: Ein Sachverhalt soll möglichst nur an einem geeigneten Ort gepflegt werden. Deshalb speichern wir die Objektbezeichnung in pruefobjekt und nicht erneut in jeder Messung. Getrennte Tabellen verringern Inkonsistenzen. Die referenzielle Integrität bezeichnet die Gültigkeit solcher Verweise. Eine Transaktion fasst zusammengehörige Änderungen zusammen und erlaubt, sie als Einheit zu speichern oder bei Fehlern zurückzunehmen.
Denkhilfe: Eine Excel-Liste reicht oft für wenige unverbundene Zeilen. Benötigst du dauerhafte Eindeutigkeit, überprüfbare Beziehungen und gezielte Abfragen, ist das relationale Modell häufig geeigneter. Welche Lösung passt, hängt von Umfang und Einsatzbedingungen ab.
Eine lokale SQLite-Datenbank aufbauen
Werkzeug und Datenmodell
SQLite ist eine lokale Datenbankbibliothek ohne eigenen Datenbankserver. Du kannst die freie SQLite-Kommandozeile oder eine kostenlos nutzbare lokale SQLite-Oberfläche verwenden. Speichere die Datei als pruefobjekte.db im eigenen Übungsordner. Für den reinen Papiermodus zeichne Tabellen und markiere erwartete Fehlermeldungen; die vollständige Prüfung der tatsächlichen Datenbankregeln erfordert jedoch das Ausführen der SQL-Befehle.

Mediennachweis: Wikimedia Commons, SQLite Architecture.svg, nach SQLite-Architekturdokumentation; CC0 1.0 laut Dateiseite.
Video zum Nacharbeiten (deutsch, externer Inhalt): SQLite-Einstieg mit CREATE TABLE, INSERT, SELECT, PRIMARY KEY und JOIN von Mit Mario, veröffentlicht 01.12.2021. Die Video-Metadaten waren abrufbar; tatsächliche Wiedergabe und regionale Verfügbarkeit können variieren. Offline-Alternative: Befolge die vollständigen SQL-Anweisungen unterhalb.
Tabellen anlegen: geführtes Beispiel
Zuerst aktiviere die Fremdschlüsselprüfung. Wichtig: Bei SQLite gilt die Einstellung für jede neue Datenbankverbindung gesondert. Ein Text-Primärschlüssel bekommt ausdrücklich NOT NULL. Die Wertebereiche 0 bis 100 mm sind nur didaktische Grenzen, keine technische Prüfnorm.
PRAGMA foreign_keys = ON; CREATE TABLE pruefobjekt ( objekt_id TEXT PRIMARY KEY NOT NULL, bezeichnung TEXT NOT NULL, sollwert_mm REAL NOT NULL CHECK (sollwert_mm BETWEEN 0 AND 100) ); CREATE TABLE messung ( messung_id INTEGER PRIMARY KEY, objekt_id TEXT NOT NULL, istwert_mm REAL NOT NULL CHECK (istwert_mm BETWEEN 0 AND 100), zeitpunkt TEXT NOT NULL, FOREIGN KEY (objekt_id) REFERENCES pruefobjekt(objekt_id) );
Begriffe: CREATE TABLE legt ein Schema an. TEXT speichert Zeichen, REAL Fließkommazahlen, INTEGER ganze Zahlen. NOT NULL schließt fehlende Werte aus, CHECK kontrolliert einen Ausdruck, PRIMARY KEY verhindert doppelte IDs. Gleitkommazahlen sind für diese Lehrsimulation ausreichend; für hochpräzise oder metrologisch verbindliche Anwendungen braucht es ein passendes Mess- und Datentypkonzept.
Synthetische Werte eintragen
INSERT INTO pruefobjekt (objekt_id, bezeichnung, sollwert_mm)
VALUES ('P-101', 'Lehrteil A', 20.0);
INSERT INTO pruefobjekt (objekt_id, bezeichnung, sollwert_mm)
VALUES ('P-102', 'Lehrteil B', 30.0);
INSERT INTO messung (messung_id, objekt_id, istwert_mm, zeitpunkt)
VALUES (1, 'P-101', 20.2, '2026-10-22T10:00:00');
INSERT INTO messung (messung_id, objekt_id, istwert_mm, zeitpunkt)
VALUES (2, 'P-101', 19.8, '2026-10-22T10:05:00');
INSERT INTO messung (messung_id, objekt_id, istwert_mm, zeitpunkt)
VALUES (3, 'P-102', 30.4, '2026-10-22T10:10:00');
Jede INSERT-Anweisung fügt genau den angegebenen Datensatz hinzu. Ein Zeitstempel ist hier eine vereinbarte Textdarstellung und kein automatisch überprüfter Echtzeitbeleg. Führe vor wiederholten Übungen eine frische leere Datenbankdatei ein oder passe die Test-IDs an; sonst können erwartete Doppelungen bereits durch vorangegangene Versuche entstehen.
Erwartetes Ergebnis: Zwei Prüfobjekte, drei Messungen und gültige Zuordnungen. Dokumentiere die Zeilenanzahl statt nur eine Bildschirmansicht abzufotografieren.
Daten mit SQL gezielt abfragen
SELECT, WHERE und ORDER BY
SELECT wählt Spalten, FROM benennt eine Tabelle, WHERE filtert Datensätze, ORDER BY sortiert das Ergebnis. Die Abfrage verändert keine gespeicherten Werte.
SELECT objekt_id, istwert_mm, zeitpunkt FROM messung WHERE objekt_id = 'P-101' ORDER BY zeitpunkt;
Erwartet: Die Messungen 20,2 und 19,8 mm für P-101, zeitlich sortiert. Vergleiche das Ergebnis mit deiner Eingabetabelle. Wenn eine Zeile fehlt, überprüfe Kennung und Schreibweise. Teste zusätzlich COUNT(*) für die Anzahl der Messungen, zum Beispiel:
SELECT objekt_id, COUNT(*) AS anzahl FROM messung GROUP BY objekt_id;
JOIN verknüpft Messung und Sollwert
JOIN kombiniert in einer Abfrage Daten aus zwei Tabellen. Die ON-Bedingung muss die passende Beziehung benennen. Ohne eine geeignete Verknüpfungsbedingung können falsche Kombinationen entstehen.
SELECT p.objekt_id, p.bezeichnung,
p.sollwert_mm, m.istwert_mm,
ABS(m.istwert_mm - p.sollwert_mm) AS abweichung_mm
FROM pruefobjekt AS p
JOIN messung AS m ON m.objekt_id = p.objekt_id
ORDER BY p.objekt_id, m.messung_id;
Erwartet: Für P-101 erscheinen zwei Zeilen mit 0,2 mm Abweichung, für P-102 eine Zeile mit 0,4 mm Abweichung. ABS macht eine Differenz positiv. Ein Alias wie p ist ein kurzer Tabellenname innerhalb der Abfrage. Die Ausgabe stellt keine technische Freigabe dar. Als rein didaktisches Vergleichskriterium kannst du eine maximale Abweichung von 0,5 mm annehmen und begründen, warum eine solche Grenze in echter Qualitätssicherung erst fachlich festgelegt werden müsste.
Speichern, ändern, sichern
UPDATE ändert vorhandene Daten, DELETE entfernt Datensätze. Diese Befehle brauchen eine sorgfältig geprüfte WHERE-Bedingung. Eine Sicherheitskopie der lokalen Datei ist bei geschlossenem Datenbankzugriff oder über die dafür vorgesehenen SQLite-Backupfunktionen sinnvoll; ein bloßes Kopieren während laufender Änderungen kann unzuverlässig sein. Verwende für Experimente ausschließlich eine Kopie. Mit BEGIN und COMMIT kannst du Änderungen als Transaktion abschließen; ROLLBACK verwirft unbestätigte Änderungen.
Vertiefung: Suche in der offiziellen SQLite-Dokumentation nach UNIQUE und CHECK. Beschreibe, warum Datenbankregeln stärker sind als eine reine Warnmeldung der Benutzeroberfläche.
Datenintegrität und Eingabesicherheit prüfen
Test eins: doppelte ID abweisen
Führe nach dem Anlegen von P-101 in einer Übungsdatenbank absichtlich Folgendes aus:
INSERT INTO pruefobjekt (objekt_id, bezeichnung, sollwert_mm)
VALUES ('P-101', 'Duplikat', 21.0);
Erwartet: Die Anweisung scheitert wegen PRIMARY KEY mit einer UNIQUE-Constraint-Fehlermeldung. Die Tabelle enthält weiterhin nur einen Datensatz mit ID P-101. Entscheidung: Die ID bleibt gleichbedeutend mit einem einzigen Prüfobjekt; der neue Satz darf nicht stillschweigend überschreiben. Dokumentiere vorher, Eingabe, beobachtete Meldung, Nachher und Begründung. Ohne echten Programmlauf ist das nur eine Vorhersage.
Test zwei: Verknüpfung prüfen
Setze sicherheitshalber in deiner aktuellen Verbindung PRAGMA foreign_keys = ON; und prüfe danach optional mit PRAGMA foreign_keys;, ob 1 ausgegeben wird. Versuche anschließend:
INSERT INTO messung (messung_id, objekt_id, istwert_mm, zeitpunkt) VALUES (4, 'P-999', 20.0, '2026-10-22T10:15:00');
Erwartet: FOREIGN KEY constraint failed; P-999 existiert nicht. Die Messungszahl bleibt bei drei. Entscheidung: Eine Messung ohne zugehöriges Prüfobjekt wäre in unserem Modell ein verwaister Datensatz; sie ist nicht zulässig. Ist die Fremdschlüsselprüfung ausgeschaltet, kann SQLite diesen Test anders behandeln. Begründe deshalb, warum die aktivierte Einstellung selbst Teil des Testprotokolls ist.
Test drei: manipulierende Eingabe als Datenwert behandeln
SQL Injection bedeutet, dass eine ungeeignet zusammengesetzte Abfrage ungewollte SQL-Syntax aus einer Eingabe übernimmt. Nutze in einer lokalen Beispiel-App parametrisierte Abfragen: Die Struktur der SQL-Anweisung bleibt fest; der Eingabewert wird separat gebunden. Hier ist eine optionale Python-Variante für Lernende mit Programmiererfahrung; die Anwendung ist auch ohne Python als SQL-Simulation bearbeitbar.
import sqlite3
verbindung = sqlite3.connect("pruefobjekte.db")
verbindung.execute("PRAGMA foreign_keys = ON")
eingabe = "P-101' OR '1'='1"
zeilen = verbindung.execute(
"SELECT objekt_id FROM pruefobjekt WHERE objekt_id = ?",
(eingabe,)
).fetchall()
print(zeilen)
verbindung.close()
Erwartet: Eine leere Liste, weil die gesamte Zeichenfolge als einzelner Wert gesucht wird. Es werden keine anderen Objekte geliefert und keine zusätzliche SQL-Anweisung ausgeführt. Teste als Vergleich die reguläre Eingabe P-101: genau ein Datensatz wird gefunden. Entscheidung: Werte über Platzhalter binden, nicht per Zeichenkettenverkettung in SQL einsetzen. Parameter schützen Werte, aber nicht beliebig dynamisch eingesetzte Tabellen- oder Spaltennamen; für solche Bezeichner wären feste Auswahllisten notwendig. Parametrisierung ersetzt keine Dateirechte, Zugangskontrolle oder Plausibilitätsprüfungen.
Fehlerfall begründen: Wenn bei Test zwei doch ein Datensatz mit P-999 gespeichert wurde, liegt die wahrscheinlichste Ursache in diesem Beispiel bei einer fehlenden Aktivierung von PRAGMA foreign_keys. Prüfe die Einstellung in derselben Verbindung und wiederhole den Test in einer frischen Kopie. Nenne alternativ weitere plausible Ursachen, ohne eine ungeprüfte Diagnose als sicher auszugeben.
Testprotokoll und Sicherheitsgrenzen
| Prüfkriterium | Testeingabe | Erwartetes Ergebnis | Nachweis | Fachliche Begründung |
|---|---|---|---|---|
| Doppelte ID | P-101 erneut eintragen | Einfügen abgewiesen | Objektanzahl unverändert | Eindeutigkeit durch PRIMARY KEY |
| Verknüpfung | Messung zu P-999 | Einfügen abgewiesen | Messungsanzahl unverändert | referenzielle Integrität bei eingeschaltetem PRAGMA |
| Manipulation | P-101' OR '1'='1 | keine zusätzlichen Treffer | leere Trefferliste bei Parameterbindung | Eingabe bleibt Datenwert statt SQL-Syntax |
Unterschied zwischen Integrität und Richtigkeit: Eine gültige Datenbankregel beweist nicht, dass ein tatsächlich gemessener Wert physikalisch wahr ist. Lokale Dateien können außerhalb der App manipuliert oder gelöscht werden. Eine reale Prüfanwendung benötigt zusätzliche Zugriffskontrollen, Datensicherung, geeignete Prüfverfahren, Auditierung und unabhängige fachliche Freigaben. Hier gibt es ausschließlich synthetische Übungsdaten und keine reale Maschinenanbindung.
Die lokale Prüfobjekt-Datenbank selbstständig erweitern
Transferauftrag: ein drittes Prüfobjekt
Ergänze P-103 als Lehrteil C mit synthetischem Sollwert 40,0 mm und mindestens zwei Messungen. Erstelle eine Abfrage, die für jedes Objekt Anzahl und größte absolute Abweichung berechnet. Notiere das erwartete Ergebnis vor der Ausführung und vergleiche anschließend mit der tatsächlichen Ausgabe. Hilfestufe eins: Beginne mit INSERT und SELECT. Hilfestufe zwei: Prüfe COUNT, MAX, ABS, GROUP BY und JOIN. Herausforderung: Erkläre, weshalb Messungen ohne Verknüpfung nicht in einer INNER-JOIN-Ausgabe erscheinen und wann LEFT JOIN sinnvoll wäre.
Entscheidungsregel im Modell: Jede Prüfobjekt-ID bleibt eindeutig, Messungen brauchen eine vorhandene Objekt-ID, und frei eingegebene Filterwerte werden als Parameter gebunden. Entwickle die Regeln zu drei überprüfbaren Akzeptanzkriterien. Jede Entscheidung braucht ein SQL-Ergebnis oder ein nachvollziehbares Testprotokoll sowie eine kurze Begründung.
Lernprodukt dokumentieren
Gib als Ergebnis ab: ein kleines Schema mit zwei Tabellen und einem 1:n-Pfeil, eine lokale Datenbankdatei oder gleichwertige SQL-Datei, ein anonymes synthetisches Beispieldatenset, mindestens zwei erfolgreiche SELECT-Abfragen, die drei Negativtests und eine kurze Reflexion. Ergänze die lokale SQLite-Version mit SELECT sqlite_version();, die verwendete Oberfläche und das Testdatum. Sensible personenbezogene Daten gehören nicht hinein. Fotos, Videos oder Audioaufnahmen von realen Arbeitsplätzen sind für dieses Lernprodukt nicht nötig.
Offline-Alternative: Drucke Schema, Beispieltabelle, SQL-Anweisungen und die erwarteten Ergebnisse aus. Du kannst so Datenmodell, Abfrageverständnis und Fehlervorhersagen nachweisen; kennzeichne klar, dass die reale Zurückweisung durch die Datenbank dabei nicht ausgeführt und somit nicht empirisch bestätigt wurde.
Optional: andere Datenbankmodelle vergleichen
Relationale Tabellen sind nicht die einzige Art der Datenspeicherung. Die folgende freie Animation zeigt Knoten und Kanten einer Graphdatenbank, nicht SQLite und nicht das konkrete Prüfobjektmodell. Vergleiche die Kanten mit den 1:n-Schlüsselbeziehungen unseres Schemas. Textalternative: In einem Graphen verbinden Kanten einzelne Knoten; in unserem relationalen Modell verweisen Fremdschlüsselwerte auf Primärschlüssel.

Mediennachweis: Wikimedia Commons, Org Graph Animation.gif, Walter L Brown III, CC BY-SA 4.0.
Audio zur Fachsprache: Englische Aussprache des Wortes database (Paul2520, CC BY-SA 4.0). Textalternative: Das englische Wort database heißt auf Deutsch Datenbank; die Aufnahme erläutert keine SQL-Regeln.
Weiteres Video (deutsch): SQL-Grundkurs mit Filterung, JOIN und Datenänderungen, Programmieren lernen, veröffentlicht 25.09.2021; geprüft wurde der öffentlich auffindbare Videoeintrag, nicht eine garantierte Wiedergabe an jedem Endgerät. Ohne Video dienen die SQL-Beispiele dieses Kurses als Ersatz.
Interaktive Aufgaben
Multiple-Choice-Quiz
Bearbeite genau zehn Fragen. Wähle jeweils die fachlich richtige Aussage und nutze die Rückmeldung der Quizfunktion nach deiner Auswahl. Die Lösungen werden nicht vorab als separater Lösungsschlüssel angezeigt.
Warum eignet sich eine relationale Datenbank für Messungen mehrerer Prüfobjekte? (Weil Messungen über Schlüssel mit genau bezeichneten Prüfobjekten verknüpft werden können) (!Weil Tabellen automatisch jeden Messfehler korrigieren) (!Weil jedes Objekt einen eigenen Datenbankserver benötigt) (!Weil Tabellen grundsätzlich keine IDs enthalten dürfen)
Was verhindert in unserer Tabelle pruefobjekt eine doppelte objekt_id? (Der PRIMARY KEY auf objekt_id) (!Ein ORDER BY auf bezeichnung) (!Eine SELECT Abfrage ohne WHERE) (!Ein zusätzliches Vorschaubild)
Welche Aussage beschreibt einen Fremdschlüssel zutreffend? (Er verweist von einem Messdatensatz auf einen vorhandenen Prüfobjektdatensatz) (!Er wandelt Millimeter automatisch in Zentimeter um) (!Er ist immer die Uhrzeit der Messung) (!Er ersetzt sämtliche Prüfregeln)
Welche SQLite Anweisung ist je Verbindung wichtig für die Fremdschlüsselprüfung? (PRAGMA foreign_keys = ON;) (!ORDER BY foreign_keys;) (!SELECT UNIQUE FROM messung;) (!DROP TABLE foreign_keys;)
Was liefert SELECT mit WHERE objekt_id gleich P-101? (Nur Datensätze mit passender Objektkennung) (!Immer sämtliche Tabellen des Computers) (!Nur die Anzahl vorhandener Spalten) (!Eine automatische Freigabe der Messung)
Welche Abfrage verbindet Sollwerte und Istwerte sinnvoll? (Ein JOIN über die übereinstimmende objekt_id) (!Ein Vergleich ausschließlich der Tabellenüberschriften) (!Ein zufälliges Mischen aller Messungen) (!Ein Löschen der Prüfobjekttabelle)
Warum ist CHECK für einen Messwertebereich sinnvoll? (Weil ungültige Werte beim Einfügen oder Ändern abgewiesen werden können) (!Weil CHECK einen Sensor kalibriert) (!Weil CHECK externe Webseiten sperrt) (!Weil CHECK ohne SQL alle Dateien verschlüsselt)
Was ist bei Eingaben für SQL Abfragen die sichere Grundregel? (Werte als gebundene Parameter statt als SQL Text einfügen) (!Eingaben direkt an einen SQL Befehl anhängen) (!Apostrophe durch doppelte Bildschirmhelligkeit ersetzen) (!Benutzereingaben nur per ORDER BY absichern)
Was beweist ein erfolgreich zurückgewiesener SQL Injection Test? (Die getestete Eingabe wird in diesem Pfad als Datenwert behandelt und führt keinen zusätzlichen SQL Befehl aus) (!Das gesamte Betriebssystem ist nun gegen alle Angriffe geschützt) (!Die Prüfwerte sind automatisch physikalisch korrekt) (!Die Anwendung braucht niemals weitere Sicherheitsprüfungen)
Welche Aussage beschreibt den Lernnachweis am besten? (Ein lokales Datenmodell mit Abfragen und drei begründeten Negativtests) (!Ein Screenshot ohne gespeicherte Werte) (!Nur das Auswendiglernen der vier SQL Buchstaben) (!Die unveränderte Übernahme einer fremden Produktionsdatenbank)
Memory
Ordne die fünf unterschiedlichen Fachbegriffe ihren Bedeutungen zu.
| Primärschlüssel | Eindeutige Kennung eines Datensatzes |
| Fremdschlüssel | Verweis auf einen Datensatz einer anderen Tabelle |
| SELECT | Abfragebefehl zum Lesen von Daten |
| CHECK | Prüfung einer Bedingung beim Schreiben |
| Transaktion | Zusammengehörige Folge von Datenänderungen |
Drag-and-Drop
Ordne fünf Sicherheits- und Abfragehandlungen den passenden Fachausdrücken zu.
| Passender Fachausdruck | Beschreibung |
|---|---|
| PRIMARY KEY | Doppelte Objektkennung verhindern |
| FOREIGN KEY | Fehlende Objektverknüpfung zurückweisen |
| WHERE | Zeilen nach einem Wert filtern |
| JOIN | Sollwert und Messung verbinden |
| Parameterbindung | Nutzereingabe als getrennten Datenwert übergeben |
Kreuzworträtsel
Trage die sechs Fachwörter ohne Leerzeichen ein.
| Tabelle | Struktur aus Zeilen und Spalten in einer relationalen Datenbank |
| Abfrage | SQL-Anweisung zum gezielten Lesen von Daten |
| Schema | Beschreibung der Tabellen und ihrer Spalten |
| Integritaet | Eigenschaft konsistenter Beziehungen und gültiger Daten |
| Filter | Bedingung zur Auswahl bestimmter Datensätze |
| Index | Datenstruktur, die bestimmte Suchen beschleunigen kann |
LearningApps
Externe thematische Aufgabensuche zu SQL und Datenbanken. Sie kann unterschiedliche oder zeitweise keine passenden Beiträge liefern; nutze dann Memory, Drag-and-Drop und Lückentext dieser Seite als vollständige Alternative.
Lückentext
Ergänze je Satz den passenden Fachbegriff. Jede Lücke bezieht sich auf eine erklärte Regel und kann ohne externe Medien gelöst werden.
Offene Aufgaben
Leicht
- Datenbank: Erkläre anhand von drei synthetischen Messwerten den Unterschied zwischen CSV-Datei, Datensatz und Datenbanktabelle. Verwende die Einheit Millimeter korrekt.
- Primärschlüssel: Zeichne die Tabelle pruefobjekt mit drei Spalten und kennzeichne den Schlüssel. Begründe, warum zwei Einträge mit derselben ID problematisch sind.
- SQL: Schreibe eine SELECT-Abfrage für alle Messungen von P-101 und notiere die erwarteten Werte vor dem Ausprobieren.
- Entity-Relationship-Modell: Zeichne zwei Tabellen und einen 1:n-Pfeil. Erkläre die Verbindung in zwei verständlichen Sätzen.
Standard
- SQLite: Lege die beiden Tabellen lokal an, trage die drei Beispieldaten ein und dokumentiere SQLite-Version sowie Ergebnis der Zeilenzählung.
- Datenintegrität: Führe die drei Negativtests aus und dokumentiere Eingabe, Fehlermeldung oder Ergebnis und die unveränderte Datenmenge.
- SQL JOIN: Erstelle eine Abfrage mit Objektbezeichnung, Sollwert, Istwert und absoluter Abweichung. Interpretiere den Unterschied zwischen P-101 und P-102.
- Datensicherheit: Formuliere drei Akzeptanzkriterien für eine lokale Messdaten-App und ordne jedem Kriterium eine Abfrage oder einen Test zu.
Schwer
- Parametrisierte Abfrage: Zeige mit Python sqlite3 oder einer gleichwertigen lokalen Schnittstelle eine harmlose Zeichenfolge mit Apostrophen als gebundenen Filterwert und begründe, warum sie keine SQL-Syntax ausführt.
- Datenbanknormalisierung: Entwickle eine dritte Tabelle für synthetische Prüftermine. Lege Schlüssel und Beziehungen fest, verhindere redundante Stammdaten und benenne einen möglichen Fehlerfall.
- Transaktion (Informatik): Simuliere zwei zusammengehörige Änderungen; erkläre, wann COMMIT bzw. ROLLBACK angemessen wäre. Vergleiche Ergebnisse mit und ohne Rücknahme in einer Kopie.
- Softwaretest: Entwirf ein kleines Testprotokoll mit mindestens sechs Fällen einschließlich Grenzwerten, doppelter ID und fehlender Verknüpfung. Unterscheide erwartete, beobachtete und nur angenommene Ergebnisse.


Lernkontrolle
- Datenmodellierung: Begründe mit einem Beispiel, warum Prüfobjekte und Messungen in getrennte Tabellen gehören, und erkläre die 1:n-Beziehung.
- SQL-Abfrage: Formuliere eine WHERE-Abfrage und einen JOIN, mit denen du alle synthetischen Abweichungen eines bestimmten Objekts nachvollziehen kannst.
- Eindeutigkeit: Erläutere, welcher Mechanismus die erneute P-101-Eingabe stoppt und wie du beweist, dass der Ursprungsdatensatz nicht überschrieben wurde.
- Referenzielle Integrität: Analysiere, warum eine P-999-Messung manchmal unerwartet akzeptiert werden könnte, und beschreibe die nötige SQLite-Einstellung.
- SQL Injection: Begründe den Unterschied zwischen gebundenem Wert und zusammengebautem SQL-Text an einer harmlosen Filtereingabe. Nenne eine Grenze des Schutzes.
- Qualitätssicherung: Beurteile, was ein technisch bestandener Datenbanktest über Datenintegrität aussagt und was er gerade nicht über physikalische Messgenauigkeit oder Sicherheitsfreigabe beweist.
Lernnachweis
Pflichtprodukt: Lokale Prüfobjekt-Datenbank. Reiche das Datenmodell, eine lokale Datenbank- oder SQL-Datei mit ausschließlich synthetischen Datensätzen, zwei dokumentierte SELECT-Abfragen, drei Negativtests und eine verständliche Begründung einer Fehlerursache ein. Verwende die Überschriften Aufbau, Abfragen, Testfälle, Begründung und Grenzen. Nenne SQLite-Version, Datum und Werkzeug. Wenn du ohne Laufzeit gearbeitet hast, kennzeichne jeden Test ausdrücklich als theoretisch und nicht als ausgeführt.
Bewertungsraster (100 Punkte): Fachlich korrektes Schema und Schlüssel 25; funktionsfähige Abfragen 20; drei nachvollziehbare Negativtests je 10, zusammen 30; Erklärung des Fehlerfalls 15; Reflexion über Grenzen, Quellen und Synthetik 10. Bestehensvorschlag für die Übung: mindestens 60 Punkte und keine Behauptung einer realen Sicherheitsfreigabe. Dieses Raster ist eine didaktische Empfehlung, kein amtlicher Abschluss.
Selbstcheck: Kannst du vor jeder Eingabe vorhersagen, was passiert? Kannst du ein erwartetes Ergebnis mit einer echten Ausgabe vergleichen? Kannst du erklären, warum eine doppelte ID abgewiesen, eine unzulässige Verknüpfung verhindert und manipulierender Eingabetext als Datenwert behandelt wird? Wenn ja, hast du den Transfer vom Verständnis zur eigenen Datenbank geschafft.
OER und Wikipedia
Fachliche Primärquellen und Recherche (Stand der Prüfung: 22.10.2026):
- SQLite SQL Language Reference: CREATE TABLE, fortlaufende Online-Dokumentation, am 22.10.2026 geprüft; Schlüssel, Constraints und Verhalten der SQLite-Datenbank.
- SQLite Foreign Key Support, am 22.10.2026 geprüft; ausdrücklich wichtig: PRAGMA foreign_keys pro Verbindung.
- Python-Dokumentation: sqlite3, Online-Dokumentation am 22.10.2026 geprüft; zeigt Platzhalter für Parameterbindung. Die installierte Python- und SQLite-Version kann abweichen.
- NIST AI 600-1, Generative Artificial Intelligence Profile, Juli 2024, mit Titelblatt geprüft. Relevanter Kontext für Risikobewertung KI-gestützter Systeme, aber keine SQL-Syntaxnorm und keine Norm für unsere Messwerte.
- MCP Security Best Practices, Dokumentationspfad 2026-07-28, abgerufen am 22.10.2026; Kontext für sichere Schnittstellen, Berechtigungen und Eingabegrenzen, nicht das Datenbankschema dieses Kurses.
- SQLite PRAGMA-Dokumentation, für lokale Versions- und Konfigurationsprüfungen.
Einordnung: Hersteller- und Softwaredokumentation kann sich verändern; SQL-Dialekte unterscheiden sich. Ergebnisse sind für die jeweils dokumentierte lokale SQLite-Version zu überprüfen. Die Sicherheitsquellen NIST und MCP dienen der vertiefenden Einordnung und ersetzen nicht die spezifische SQLite-Dokumentation.
Wikipedia zum Nachlesen: Relationale Datenbank, SQL, SQLite und SQL-Injection. Die externen Enzyklopädieseiten ergänzen den Kurs; zentrale Inhalte und Aufgaben stehen vollständig oben.
Wikimedia-Medien, kontrollierbare Dateiseiten und Rechte:
| Medium und Textalternative | Urheberschaft | Nutzungshinweis |
|---|---|---|
| Relational database terms.svg – Zeilen/Spalten | Booyabazooka | Public Domain laut Commons |
| Relational DB Example ER Diagram Corporation.svg – 1:n-Beziehung | Fishpi | Public Domain laut Commons |
| SQLite Architecture.svg – lokale SQLite-Schichten | SQLite-Projekt, SVG-Fassung nach Dokumentation | CC0 1.0 laut Commons |
| Org Graph Animation.gif – Knoten und Kanten | Walter L Brown III | CC BY-SA 4.0 laut Commons |
| En-us-database.oga – englisches Wort database | Paul2520 | CC BY-SA 4.0 laut Commons |
Videonachweise: Lerne SQLite in 60 Minuten, Mit Mario, 2021 und SQL Tutorial für Anfänger, Programmieren lernen, 2021. Für YouTube gelten die jeweiligen Rechte und Nutzungsbedingungen, keine OER-Lizenz ist behauptet. Die öffentlich auffindbaren Videoeinträge wurden geprüft; eine dauerhafte Abspielgarantie besteht nicht. Alle Lernaufgaben haben textbasierte Offline-Alternativen.
Verknüpfte Lernbereiche
aiMOOC-Projekte
Schulfach+


aiMOOCs


aiMOOC Projekte


MOOCwiki · Deutsch
Nach dem Lernen ist vor dem Lernen
Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.
Zur MOOCwiki-HauptseiteMediathek
Mediathek wird aus dem Wiki geladen ...
Keine passenden Inhalte gefunden. Bitte ändere Suche oder Filter.
NEWSLernweltNOAH fragenInhalt melden · Hinweise zu Fehlern, Quellen, Medienrechten oder Dubletten