Datenbanken und betriebliche Datenmodelle – Ein Datenmodell nachvollziehbar dokumentieren
Datenbanken und betriebliche Datenmodelle – Ein Datenmodell nachvollziehbar dokumentieren
QR-Code
Einleitung
Datenbanken und betriebliche Datenmodelle – Ein Datenmodell nachvollziehbar dokumentieren
Zielgruppe: Auszubildende, insbesondere in IT-Berufen und kaufmännisch-technischen Ausbildungsberufen.
Dauer: ca. 45–60 Minuten zuzüglich Projektaufgaben.
Ausbildungsfall: Die fiktive Fahrradwerkstatt „Sternrad“ möchte Ersatzteile, Lagerbewegungen und Mindestbestände nachvollziehbar verwalten.
Dein Lernziel: Du kannst ein betriebliches Datenmodell so dokumentieren, dass andere Auszubildende und Fachkräfte die Datenfelder, Einheiten, Beziehungen, Regeln und fachlichen Bedeutungen verstehen und überprüfen können.
Lernweg: Betriebsfall verstehen → Beziehungen erkennen → Felder dokumentieren → Daten visualisieren → lokal testen → Dokumentation beurteilen.
Sicherheitsregel: Arbeite ausschließlich mit den fiktiven Kursdaten in einer lokalen Testumgebung. Verwende keine Produktivdatenbanken, Kundendaten, fremden Netze, Zugangsdaten oder realen Anlagen. Übertrage keine betrieblichen Informationen an externe Dienste.
Medien-Einstieg: Was zeigt ein Datenmodell?

Ein einfaches Entity-Relationship-Diagramm als Einstieg. Es zeigt ein allgemeines Beispiel, nicht das Modell unserer Fahrradwerkstatt.
Bild: AlwaysSnailTime, Wikimedia Commons, CC0 1.0.
Lernvideo: „Das Entity-Relationship-Modell in der Praxis – einfach erklärt!“ von Timo Bäuerle. Optionales externes Video; für die praktischen Übungen wird es nicht benötigt.
Einstiegsfrage: Was könnte passieren, wenn in einer Datenbank nur das Feld „Gewicht“ steht, aber niemand weiß, ob Gramm oder Kilogramm gemeint sind?
Lerneinheit 1: Den betrieblichen Datenbedarf verstehen
Zeit: ca. 5 Minuten
Die Werkstatt „Sternrad“ bestellt Ersatzteile und dokumentiert jede Warenbewegung. Dafür werden zwei Tabellen benötigt:
- Artikel: Beschreibt, welches Ersatzteil geführt wird.
- Lagerbewegung: Beschreibt, wann sich der Lagerbestand um wie viele Stück verändert.
Merksatz: Ein Datenmodell beschreibt nicht nur gespeicherte Werte, sondern auch deren Bedeutung und Beziehungen.
Modellsteckbrief
| Merkmal | Dokumentation |
|---|---|
| Modellname | Sternrad-Lagerverwaltung |
| Modellversion | 1.0 |
| Geltungsbereich | Ersatzteilbestand einer fiktiven Fahrradwerkstatt |
| Tabellen | artikel, lagerbewegung |
| Datenquelle | Ausschließlich erfundene Übungsdaten |
| Fachliche Verantwortung | Lagerverwaltung |
| Aktualisierung | Bei jeder Änderung von Feldern, Regeln oder Bedeutungen |
| Prüfstatus | Beispielmodell mit lokalen automatisierten Tests |
Mini-Aufgabe: Überlege, warum der Preis eines Artikels nicht bei jeder Lagerentnahme erneut gespeichert werden muss.
Feedback: Der Preis gehört in diesem vereinfachten Modell zum Artikel. Eine wiederholte Speicherung bei jeder Bewegung wäre redundant. Soll dagegen ein historischer Buchungspreis nachgewiesen werden, wäre ein zusätzliches zeitbezogenes Feld erforderlich.
Lerneinheit 2: Tabellen und Beziehungen erkennen
Zeit: ca. 5 Minuten
Ein Artikel kann beliebig viele Lagerbewegungen besitzen. Jede Lagerbewegung gehört genau zu einem vorhandenen Artikel.
Unser Datenmodell
┌────────────────────────┐
│ ARTIKEL │
├────────────────────────┤
│ artikel_id PK │
│ bezeichnung │
│ gewicht_g │
│ preis_cent │
│ mindestbestand_stk │
└───────────┬────────────┘
│
│ 1
│
│ 0 bis viele
│
┌───────────▼────────────┐
│ LAGERBEWEGUNG │
├────────────────────────┤
│ bewegung_id PK │
│ artikel_id FK │
│ buchungstag │
│ delta_stk │
│ grund │
└────────────────────────┘
PK = Primärschlüssel
FK = Fremdschlüssel
Primärschlüssel: Identifiziert einen Datensatz eindeutig.
Fremdschlüssel: Verweist auf einen Schlüssel in einer anderen Tabelle.
Kardinalität: Beschreibt, wie viele Datensätze miteinander in Beziehung stehen können.

Vergleiche die Beziehungen 1:1, 1:n und n:m. Welcher Fall passt zu Sternrad?
Bild: Chad250, Wikimedia Commons, CC BY-SA 4.0.

Weiteres einfaches Beispiel einer 1:n-Beziehung. Es dient zum Vergleich der Notation.
Bild: Fishpi, Wikimedia Commons, gemeinfrei.
Basisaufgabe: Markiere im Modell die zwei Primärschlüssel und den Fremdschlüssel.
Begründetes Feedback: artikel_id kennzeichnet einen Artikel, bewegung_id eine Lagerbewegung. lagerbewegung.artikel_id ist der Fremdschlüssel, weil er die Bewegung mit einem vorhandenen Artikel verbindet.
Lerneinheit 3: Datenfelder fachlich dokumentieren
Zeit: ca. 8 Minuten
Ein Data-Dictionary ist ein Verzeichnis, das beschreibt, welche Datenfelder vorhanden sind und was sie bedeuten.
Zu jedem Feld dokumentierst Du mindestens:
- Feldname und Tabelle
- Datentyp
- Fachliche Bedeutung
- Einheit und gültigen Wertebereich
- Pflichtfeldstatus und technische Regeln
- Beziehung zu anderen Feldern
Feldkatalog der Tabelle artikel
| Feld | Typ und Regel | Einheit | Fachliche Bedeutung |
|---|---|---|---|
| artikel_id | INTEGER, PRIMARY KEY | keine | Eindeutige Artikelkennung |
| bezeichnung | TEXT, NOT NULL | keine | Name des Ersatzteils |
| gewicht_g | INTEGER, größer als 0 | g/Stück | Masse eines einzelnen Ersatzteils |
| preis_cent | INTEGER, mindestens 0 | EUR-Cent/Stück | Vereinbarter Listenpreis je Stück ohne zusätzliche Steuerberechnung |
| mindestbestand_stk | INTEGER, mindestens 0 | Stück | Schwelle, unterhalb derer eine Nachbestellung geprüft werden soll |
Feldkatalog der Tabelle lagerbewegung
| Feld | Typ und Regel | Einheit | Fachliche Bedeutung |
|---|---|---|---|
| bewegung_id | INTEGER, PRIMARY KEY | keine | Eindeutige Kennung einer Bewegung |
| artikel_id | INTEGER, NOT NULL, FOREIGN KEY | keine | Verweis auf den betroffenen Artikel |
| buchungstag | TEXT, Pflichtfeld | Datum | Buchungstag im vereinbarten Format JJJJ-MM-TT |
| delta_stk | INTEGER, ungleich 0 | Stück | Bestandsänderung mit Vorzeichen |
| grund | TEXT, festgelegte Werte | keine | Eingang, Entnahme oder Korrektur |
Wichtige Unterscheidung: Ein dokumentiertes Format ist nicht automatisch technisch erzwungen. In unserem Beispiel prüft die Datenbank bei buchungstag nur, dass ein Wert vorhanden ist. Ob das Datum gültig und richtig formatiert ist, muss zusätzlich geprüft werden.
Einheiten korrekt interpretieren
| Gespeicherter Wert | Bedeutung | Anzeige |
|---|---|---|
| gewicht_g = 180 | 180 Gramm pro Stück | 0,180 kg/Stück |
| preis_cent = 2499 | 2499 EUR-Cent pro Stück | 24,99 EUR/Stück |
| delta_stk = 10 | Zugang von zehn Stück | +10 Stück |
| delta_stk = -3 | Entnahme von drei Stück | −3 Stück |
| mindestbestand_stk = 5 | Nachbestellschwelle | 5 Stück |
Merke: Speichereinheit und Anzeigeeinheit können unterschiedlich sein. Die Umrechnung muss eindeutig festgelegt sein.
Häufiger Fehler: Die Zahl 2499 ohne dokumentierte Einheit kann als 2499 Euro statt als 24,99 Euro missverstanden werden.
Gestufte Hilfen zur Felddokumentation
Hilfe 1 – Orientieren: Frage Dich, was das Feld im Arbeitsablauf bedeutet. Wer benötigt diesen Wert und warum?
Hilfe 2 – Präzisieren: Ergänze Datentyp, Einheit, Wertebereich, Pflichtfeldstatus und Beispielwert.
Hilfe 3 – Überprüfen: Suche einen realistischen Grenzfall. Für gewicht_g wäre ein negativer Wert unzulässig. Für preis_cent kann ein Nullwert im Übungsmodell erlaubt sein, sofern das fachlich vereinbart wurde.
Anwendungsaufgabe: Dokumentiere das zusätzliche Feld lieferzeit_tage.
Beispiel mit Feedback: „INTEGER, mindestens 0, Einheit Kalendertage, erwartete Zeitspanne von der Bestellung bis zur Lieferung“. Diese Beschreibung ist nachvollziehbar, sofern die Werkstatt tatsächlich Kalendertage und nicht Arbeitstage meint. Ohne diese Festlegung bleibt der Wert mehrdeutig.
Lerneinheit 4: Daten sichtbar machen und prüfen
Zeit: ca. 5 Minuten
Die folgenden Daten sind vollständig erfunden.
Beispieldaten: Artikel
| artikel_id | bezeichnung | gewicht_g | preis_cent | mindestbestand_stk |
|---|---|---|---|---|
| 101 | Bremsbelag | 180 | 2499 | 5 |
| 102 | Kette | 320 | 1990 | 3 |
Beispieldaten: Lagerbewegungen
| bewegung_id | artikel_id | buchungstag | delta_stk | grund |
|---|---|---|---|---|
| 1 | 101 | 2026-09-01 | +10 | Eingang |
| 2 | 101 | 2026-09-02 | -3 | Entnahme |
| 3 | 102 | 2026-09-01 | +4 | Eingang |
| 4 | 102 | 2026-09-03 | -2 | Entnahme |
Der aktuelle Bestand ergibt sich im Beispiel aus der Summe aller Bestandsänderungen eines Artikels. Es wird ein Anfangsbestand von null vor der ersten dokumentierten Bewegung angenommen.
Visualisierung der Lagerbestände
LAGERBESTAND STERNRAD Bremsbelag ███████ 7 Stück Kette ██ 2 Stück Ein Block = ein Stück Artikel Bestand Mindestbestand Status Bremsbelag 7 5 OK Kette 2 3 Prüfen
Auswertungsregel: Wenn Bestand kleiner als Mindestbestand ist, wird eine Nachbestellprüfung ausgelöst. Gleichstand genügt in diesem Beispiel noch nicht.
Anwendungsaufgabe mit Feedback
Aufgabe: Bei Artikel 102 werden drei weitere Ketten entnommen. Was geschieht mit dem Bestand?
Lösung: 2 − 3 = −1 Stück.
Begründetes Feedback: Die Rechnung zeigt einen negativen Bestand. Das ist ein Hinweis auf einen unzulässigen oder ungeklärten Geschäftsfall. Die gezeigte Datenbankstruktur verhindert diesen Fall noch nicht automatisch. Im späteren lokalen Testlabor wird eine einfache zusätzliche Prüfung für Korrekturbuchungen gezeigt.
Vertiefung: Datenredundanz

Beispiel einer Tabelle, die die Anforderungen der ersten Normalform nicht erfüllt.
Bild: Fishpi, Wikimedia Commons, gemeinfrei.
Optionales Prüfungsvorbereitungsvideo zu Datenbanken, ER-Modellen, Relationen und Normalisierung vom Kanal für Gestaltung von Hogendorf.
Transferfrage: Warum wäre es ungünstig, alle Bewegungen eines Artikels in einem einzigen Textfeld zu speichern?
Feedback: Einzelne Bewegungen wären schwer gezielt abzufragen, zu überprüfen und auszuwerten. Eine eigene Tabelle hält jede Bewegung als einzelnen Datensatz fest und erleichtert die Berechnung.
Lerneinheit 5: Lokales SQLite-Testlabor
Zeit: ca. 10–15 Minuten
Du kannst das Datenmodell selbst ausprobieren. Verwendet werden Python 3 und SQLite aus der Python-Standardbibliothek.
Testumgebung: sqlite3.connect(":memory:") erstellt eine neue Datenbank ausschließlich im Arbeitsspeicher. Das Kursprogramm enthält keine Netzwerkzugriffe und benötigt keine Zugangsdaten. Beim Beenden gehen die Übungsdaten verloren.
Vorbereitung: Erstelle auf Deinem eigenen oder ausdrücklich freigegebenen Übungsrechner eine Datei mit dem Namen datenmodell_demo.py. Kopiere den vollständigen folgenden Code hinein und starte ihn lokal mit dem passenden Python-3-Befehl, zum Beispiel python datenmodell_demo.py. Verwende keinen Online-SQL-Editor und keine fremde Datenbank.
Ausführbares lokales Beispiel
import sqlite3
db = sqlite3.connect(":memory:")
db.execute("PRAGMA foreign_keys = ON")
db.executescript("""
CREATE TABLE artikel (
artikel_id INTEGER PRIMARY KEY,
bezeichnung TEXT NOT NULL,
gewicht_g INTEGER NOT NULL CHECK (gewicht_g > 0),
preis_cent INTEGER NOT NULL CHECK (preis_cent >= 0),
mindestbestand_stk INTEGER NOT NULL
CHECK (mindestbestand_stk >= 0)
);
CREATE TABLE lagerbewegung (
bewegung_id INTEGER PRIMARY KEY,
artikel_id INTEGER NOT NULL,
buchungstag TEXT NOT NULL,
delta_stk INTEGER NOT NULL CHECK (delta_stk != 0),
grund TEXT NOT NULL
CHECK (grund IN ('Eingang', 'Entnahme', 'Korrektur')),
FOREIGN KEY (artikel_id) REFERENCES artikel(artikel_id)
);
INSERT INTO artikel VALUES
(101, 'Bremsbelag', 180, 2499, 5),
(102, 'Kette', 320, 1990, 3);
INSERT INTO lagerbewegung VALUES
(1, 101, '2026-09-01', 10, 'Eingang'),
(2, 101, '2026-09-02', -3, 'Entnahme'),
(3, 102, '2026-09-01', 4, 'Eingang'),
(4, 102, '2026-09-03', -2, 'Entnahme');
""")
abfrage = """
SELECT a.bezeichnung, a.gewicht_g, a.preis_cent,
a.mindestbestand_stk,
COALESCE(SUM(l.delta_stk), 0) AS bestand
FROM artikel AS a
LEFT JOIN lagerbewegung AS l
ON a.artikel_id = l.artikel_id
GROUP BY a.artikel_id
ORDER BY a.artikel_id
"""
daten = db.execute(abfrage).fetchall()
for name, gramm, cent, minimum, bestand in daten:
status = "NACHBESTELLEN" if bestand < minimum else "OK"
print(
f"{name}: {bestand} Stk | {gramm/1000:.3f} kg/Stk | "
f"{cent/100:.2f} EUR/Stk | {status}"
)
assert [zeile[4] for zeile in daten] == [7, 2]
print("Test Bestandsberechnung: OK")
try:
db.execute(
"INSERT INTO lagerbewegung VALUES (?, ?, ?, ?, ?)",
(5, 999, "2026-09-04", 1, "Eingang")
)
except sqlite3.IntegrityError:
print("Test Fremdschluessel: OK")
else:
raise AssertionError("Fremdschluessel nicht geprueft")
try:
db.execute(
"UPDATE artikel SET gewicht_g = ? WHERE artikel_id = ?",
(-1, 101)
)
except sqlite3.IntegrityError:
print("Test Wertebereich: OK")
else:
raise AssertionError("Wertebereich nicht geprueft")
eingabe = input(
"Fiktive Korrektur fuer Artikel 101 in Stk "
"(Enter zum Ueberspringen): "
).strip()
if eingabe:
try:
delta = int(eingabe)
except ValueError:
print("Bitte eine ganze Zahl eingeben.")
else:
if delta == 0 or 7 + delta < 0:
print("Abgelehnt: Nullbuchung oder negativer Bestand.")
else:
db.execute(
"INSERT INTO lagerbewegung VALUES (?, ?, ?, ?, ?)",
(5, 101, "2026-09-04", delta, "Korrektur")
)
neuer_bestand = db.execute(
"SELECT SUM(delta_stk) FROM lagerbewegung "
"WHERE artikel_id = ?",
(101,)
).fetchone()[0]
print("Neuer Testbestand:", neuer_bestand, "Stk")
db.close()
Hinweis: Die Prüfung gegen einen negativen Gesamtbestand erfolgt im interaktiven Teil des Python-Programms, nicht durch eine entsprechende Regel des Datenbankschemas. Die Übung ist kein vollständiges Lagerverwaltungssystem.
Erwartete Ausgabe
Bremsbelag: 7 Stk | 0.180 kg/Stk | 24.99 EUR/Stk | OK Kette: 2 Stk | 0.320 kg/Stk | 19.90 EUR/Stk | NACHBESTELLEN Test Bestandsberechnung: OK Test Fremdschluessel: OK Test Wertebereich: OK
Danach kannst Du eine fiktive Bestandskorrektur eingeben oder mit der Eingabetaste überspringen.
Isolierte interaktive Testfälle
| Eingabe oder Test | Erwartetes Verhalten | Begründetes Feedback |
|---|---|---|
| Korrektur +2 | Neuer Bestand 9 Stück | Der Zugang erhöht den bisherigen Bestand von sieben Stück. |
| Korrektur -2 | Neuer Bestand 5 Stück | Die Entnahme ist im Test zulässig; der Mindestbestand wird erreicht. |
| Korrektur -9 | Eingabe wird abgelehnt | Der bisherige Bestand würde negativ werden. |
| Korrektur 0 | Eingabe wird abgelehnt | Eine Nullbuchung ist durch die Modellregel ausgeschlossen. |
| Korrektur abc | Fehlermeldung zur Eingabe | Nur ganze Zahlen können als Stückzahl verarbeitet werden. |
| Bewegung für Artikel 999 | Fremdschlüsseltest erfolgreich | Ein Verweis auf einen nicht vorhandenen Artikel wird abgelehnt. |
| Negatives Gewicht | Wertebereichstest erfolgreich | Ein negatives Artikelgewicht widerspricht der dokumentierten Fachregel. |
Testgrenze: Der Code prüft bewusst nicht alle denkbaren Fachregeln. Insbesondere sind ein Datum im korrekten Kalenderformat und die Übereinstimmung zwischen Buchungsgrund und Vorzeichen noch nicht vollständig durch Datenbankbedingungen abgesichert.
Gestufte Hilfen für das Testlabor
Hilfe 1 – Daten verstehen: Positive delta_stk-Werte erhöhen den Bestand. Negative Werte vermindern ihn.
Hilfe 2 – Abfrage verstehen: SUM addiert alle Bewegungen. GROUP BY fasst die Datensätze je Artikel zusammen. COALESCE liefert null Stück, wenn zu einem Artikel keine Bewegungen existieren.
Hilfe 3 – Fehler verstehen: PRIMARY KEY, FOREIGN KEY, NOT NULL und CHECK bilden unterschiedliche technische Prüfregeln. Ein fachlicher Text im Data-Dictionary ersetzt diese Regeln nicht automatisch.
Optionales Video „Datenbank in Python verwenden (sqlite3)“ von Binärverkehr. Nutze für die Kursaufgaben weiterhin ausschließlich das bereitgestellte lokale In-Memory-Beispiel.
Lerneinheit 6: Eine gute Dokumentation abgeben
Zeit: ca. 5 Minuten
Eine vollständige Dokumentation für diesen Ausbildungsfall enthält:
- Datenmodell: Tabellen, Beziehung, Kardinalität und Schlüssel.
- Datenwörterbuch: Feldname, Datentyp, Einheit, fachliche Bedeutung und Pflichtfeldstatus.
- Geschäftsregel: Zulässige Werte, Vorzeichen, Nachbestellschwelle und Berechnungsregeln.
- Testfall: Eingabe, erwartetes Ergebnis und tatsächliches Ergebnis.
- Versionsverwaltung: Modellversion, Änderungsgrund, Datum und fachliche Freigabe.
Vorlage für eine dokumentierte Änderung
| Merkmal | Beispiel |
|---|---|
| Version | 1.1 |
| Änderung | Neues Feld lieferzeit_tage |
| Fachlicher Zweck | Geplante Lieferdauer für eine Artikelbestellung |
| Datentyp | INTEGER |
| Einheit | Kalendertage |
| Wertebereich | 0 oder mehr |
| Test | Negative Lieferzeit wird abgelehnt |
| Freigabe | Fachliche Prüfung vor Übernahme in ein reales System erforderlich |
Transferaufgabe: Ein Lieferant gibt seine Lieferzeit in Arbeitstagen an, die Werkstatt erwartet aber Kalendertage. Was musst Du vor der Datenübernahme klären?
Begründetes Feedback: Die Angabe ist ohne Umrechnungsregel nicht eindeutig. Arbeitstage hängen unter anderem von Wochenenden und Feiertagen ab. Die Dokumentation muss die Einheit, den Bezugskalender und die Umrechnungslogik verbindlich festlegen.
Vom kleinen Modell zum betrieblichen System

Ein größeres Datenbankschema als Vergleich: Mit zunehmender Zahl der Tabellen wachsen die Anforderungen an Dokumentation und Übersichtlichkeit. Das Bild zeigt ein historisches MediaWiki-Schema, nicht die aktuelle Struktur von moocwiki.org.
Bild: Timo Tijhof, Wikimedia Commons, CC BY 4.0.
Abschlussgedanke: Ein Datenmodell ist erst dann gut dokumentiert, wenn jemand anderes die Daten ohne Raten fachlich richtig interpretieren und die wichtigsten Regeln überprüfen kann.
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Was ist die Hauptaufgabe eines Data-Dictionary? (Die Bedeutung und Struktur von Datenfeldern dokumentieren) (!Datenbanken automatisch im Internet veröffentlichen) (!Alle Tabellen durch eine einzige Datei ersetzen) (!Ausschließlich Passwörter verwalten)
Was beschreibt ein Primärschlüssel? (Eine eindeutige Kennung eines Datensatzes) (!Die Masse eines Ersatzteils) (!Den aktuellen Gesamtbestand aller Artikel) (!Den Speicherort einer Sicherungskopie)
Welche Aufgabe hat ein Fremdschlüssel? (Datensätze aus unterschiedlichen Tabellen miteinander verknüpfen) (!Text automatisch in Geldbeträge umrechnen) (!Jede Tabelle verschlüsseln) (!Einen Lagerbestand ohne Bewegungen berechnen)
Welche Einheit ist für preis_cent dokumentiert? (EUR-Cent pro Stück) (!Kilogramm pro Stück) (!Euro pro Minute) (!Stück pro Kalendertag)
Was bedeutet delta_stk mit dem Wert minus drei? (Der Lagerbestand vermindert sich um drei Stück) (!Der Artikel kostet drei Euro) (!Der Artikel wiegt drei Gramm) (!Der Mindestbestand erhöht sich um drei Stück)
Welchen Bestand ergeben ein Eingang von zehn und eine Entnahme von drei Stück? (Sieben Stück) (!Dreizehn Stück) (!Dreißig Stück) (!Drei Stück)
Wann entsteht im Beispiel ein Nachbestellhinweis? (Wenn der Bestand kleiner als der Mindestbestand ist) (!Wenn der Bestand größer als der Mindestbestand ist) (!Bei jeder Lagerbewegung unabhängig vom Bestand) (!Nur wenn der Artikel keinen Namen besitzt)
Was bewirkt die CHECK-Regel für gewicht_g im Beispiel? (Sie verhindert Werte kleiner oder gleich null) (!Sie berechnet den Verkaufspreis automatisch) (!Sie erzeugt eine Lagerbewegung) (!Sie erlaubt beliebige negative Gewichte)
Was bewirkt die Verbindung mit sqlite3 im Arbeitsspeicher? (Sie erstellt eine flüchtige lokale Testdatenbank) (!Sie öffnet automatisch eine fremde Unternehmensdatenbank) (!Sie versendet die Testdaten an einen Webserver) (!Sie verändert alle vorhandenen Datenbankdateien)
Warum müssen Einheiten im Datenmodell dokumentiert werden? (Damit gespeicherte Zahlen fachlich eindeutig interpretierbar sind) (!Damit jeder Zahlenwert automatisch ein Primärschlüssel wird) (!Damit eine Datenbank keine Datentypen benötigt) (!Damit SQL-Abfragen ohne Tabellen ausgeführt werden)
Memory
Finde die zusammengehörenden Begriffe und Bedeutungen.
| Primärschlüssel | Eindeutige Datensatzkennung |
| Fremdschlüssel | Verweis auf einen vorhandenen Artikel |
| gewicht_g | Masse eines Ersatzteils in Gramm |
| preis_cent | Listenpreis in EUR-Cent pro Stück |
| delta_stk | Bestandsänderung mit Vorzeichen |
| mindestbestand_stk | Nachbestellschwelle in Stück |
| Data-Dictionary | Katalog fachlicher und technischer Felddefinitionen |
Drag and Drop
Ordne die fachlich passenden Beschreibungen zu.
| Ordne die richtigen Begriffe zu. | Fachliche Bedeutung |
|---|---|
| Artikelkennung | Identifiziert ein Ersatzteil eindeutig |
| Buchungstag | Beschreibt das Datum einer Lagerbewegung |
| Gewichtsangabe | Beschreibt die Masse eines Ersatzteils |
| Lagerkorrektur | Verändert einen bereits dokumentierten Bestand |
| Mindestbestand | Bildet die Schwelle für eine Nachbestellprüfung |
| Datenwörterbuch | Erläutert Felder und ihre fachliche Bedeutung |
Kreuzworträtsel
| Artikel | Wie heißt ein Ersatzteilobjekt in unserem Modell? |
| Fremdschluessel | Wie heißt ein Feld, das auf einen Schlüssel einer anderen Tabelle verweist? |
| Gramm | In welcher Masseeinheit wird das Artikelgewicht gespeichert? |
| Metadaten | Wie nennt man Informationen über die Struktur und Bedeutung von Daten? |
| Bestand | Wie heißt die aus den Lagerbewegungen berechnete vorhandene Stückzahl? |
| Validierung | Wie heißt die Prüfung auf Einhaltung festgelegter Regeln? |
LearningApps
Suche nach ergänzenden Aufgaben zu diesem Thema. Die externe Materialsuche ist kein Bestandteil der lokalen Testdatenbank. Gib dort keine betrieblichen oder personenbezogenen Daten ein.
Lückentext
Praxiswerkstatt: Basis, Anwendung und Transfer
Basisaufgaben
Basisfall A: Im Feld gewicht_g steht 320. Gib die Masse in Kilogramm je Stück an.
Feedback: Richtig ist 0,320 kg/Stück. Die Umrechnung erfolgt durch Division durch 1000. Ein bloßer Wert 0,320 ohne Einheit ist nicht vollständig dokumentiert.
Basisfall B: Bei Artikel 102 ist der Mindestbestand drei Stück, der aktuelle Bestand zwei Stück. Entscheide, ob eine Nachbestellprüfung nötig ist.
Feedback: Ja. Der Bestand unterschreitet die dokumentierte Schwelle. Die Entscheidung folgt aus einer fachlichen Regel, nicht allein aus dem Datentyp.
Anwendungsaufgaben
Anwendungsfall A: Ergänze in Deiner Kopie des Modells ein Feld lagerort_code, das den Lagerplatz eines Ersatzteils beschreibt.
Feedback: Eine geeignete Dokumentation nennt TEXT als Typ, keine physikalische Einheit und eine Regel für das zulässige Codeformat. Ob leere Werte erlaubt sind, muss mit der Fachabteilung geklärt werden.
Anwendungsfall B: Berechne den Bestand von Artikel 101 nach einer weiteren Entnahme von vier Stück.
Feedback: Es verbleiben drei Stück. Damit liegt der Bestand unter dem Mindestbestand von fünf Stück. Die Bewegung und die daraus abgeleitete Warnung sind fachlich zu unterscheiden.
Transferaufgaben
Transferfall A: Ein Lieferant liefert zehn Kartons mit jeweils zwölf Bremsbelägen. Die Werkstatt erfasst den Bestand in Stück. Entwirf eine sichere Umrechnungs- und Dokumentationsregel.
Feedback: Zehn Kartons ergeben 120 Stück. Dafür muss die Verpackungseinheit mit zwölf Stück pro Karton eindeutig dokumentiert und vor der Lagerbuchung umgerechnet werden. Die reine Zahl zehn wäre im bisherigen Modell fachlich falsch.
Transferfall B: Eine zweite Abteilung bezeichnet gewicht_g als „Transportgewicht“. Erkläre, warum eine Abstimmung nötig ist.
Feedback: Das bisherige Feld bezeichnet die Masse eines einzelnen Ersatzteils. Ein Transportgewicht kann zusätzlich Verpackung und mehrere Einheiten umfassen. Dafür wird eine eigene fachliche Definition und gegebenenfalls ein zusätzliches Feld benötigt.
Offene Aufgaben
Leicht
- Datenfeld: Zeichne eine Feldkarte zu gewicht_g mit Name, Typ, Einheit, Beispielwert und fachlicher Bedeutung.
- Maßeinheit: Erstelle eine kleine Umrechnungsgrafik für Gramm und Kilogramm sowie EUR-Cent und Euro.
- Primärschlüssel: Markiere im Datenmodell die Schlüssel und erkläre ihre Aufgaben in eigenen Worten.
- Datenqualität: Entwirf ein Poster mit drei typischen Fehlern durch fehlende Einheiten oder unklare Feldnamen.
Standard
- Data-Dictionary: Ergänze einen vollständigen Feldkatalog für drei selbst entworfene, ausschließlich fiktive Artikelfelder.
- SQL: Verändere im lokalen Testprogramm die Übungsbestände und dokumentiere erwartete sowie tatsächliche Ergebnisse.
- Entity-Relationship-Modell: Zeichne das Sternrad-Modell neu und erläutere die Beziehung zwischen Artikel und Lagerbewegung.
- Datenvisualisierung: Erstelle mit erfundenen Zahlen ein Balkendiagramm, das Bestand und Mindestbestand mehrerer Artikel gegenüberstellt.
Schwer
- Referentielle Integrität: Entwickle weitere lokale Testfälle für ungültige Fremdschlüssel, fehlende Pflichtwerte und widersprüchliche Buchungsgründe.
- Normalisierung: Entwirf eine Erweiterung mit einer eigenen Lieferantentabelle und begründe, welche Daten nicht mehrfach gespeichert werden sollten.
- Versionsverwaltung: Schreibe eine Änderungsdokumentation für Modellversion 1.1 und erläutere die Auswirkungen auf bestehende Abfragen.
- Datenschutz: Entwickle ein Übungskonzept, in dem Auszubildende betriebliche Datenmodelle mit fiktiven Daten untersuchen, ohne auf Produktivsysteme oder echte Kundendaten zuzugreifen.


Lernkontrolle
Bearbeite die folgenden Aufgaben ohne Zugriff auf fremde Datenbanken. Nutze den Sternrad-Ausbildungsfall und begründe Deine Entscheidungen.
- Datenmodellierung: Ein neuer Mitarbeiter verwechselt artikel_id mit bewegung_id. Erkläre anhand des Betriebsfalls, wie beide Kennungen zusammenwirken und weshalb sie nicht dieselbe Aufgabe haben.
- Datenintegrität: Die Lagerverwaltung möchte negative Gesamtbestände verhindern. Untersuche, welche vorhandenen Regeln dafür noch nicht genügen, und schlage eine geeignete zusätzliche Prüflogik vor.
- Maßeinheit: Ein Artikelpreis wird künftig in Euro statt in EUR-Cent angeliefert. Entwickle einen nachvollziehbaren Umrechnungsprozess einschließlich eines Grenzfalltests.
- Datenqualität: Ein Feld heißt nur „Menge“. Zwei Abteilungen interpretieren es unterschiedlich. Entwirf eine vollständige Felddefinition, die den Konflikt vermeidet.
- Datenbankdesign: Ein Ersatzteil soll mehreren Lieferanten zugeordnet werden können. Vergleiche eine Lösung mit mehrfachen Artikelzeilen mit einer Lösung über zusätzliche Tabellen.
- Softwaretest: Entwirf drei Testfälle, die nicht nur die technische Speicherung, sondern auch die fachliche Bedeutung der Daten überprüfen.
- Dokumentation: Erkläre, welche Folgen eine Änderung der Nachbestellregel für Feldkatalog, SQL-Abfragen, Testfälle und Versionsdokumentation hat.
Bewertungshinweis: Gute Antworten benennen eine betriebliche Anforderung, begründen die Modellierungsentscheidung und zeigen, wie die Entscheidung überprüft werden kann.
Lernnachweis
Für einen erfolgreichen Lernnachweis erstellst Du eine kleine, nachvollziehbare Dokumentationsmappe zu Deinem lokalen Ausbildungsfall.
- Modellübersicht: Zwei Tabellen mit ihren Beziehungen, Primärschlüsseln und Fremdschlüssel.
- Feldkatalog: Dokumentation aller zehn vorgegebenen Felder mit Datentyp, Einheit, fachlicher Bedeutung und wesentlichen Regeln.
- Datenbeispiel: Mindestens zwei fiktive Artikel und vier fiktive Bewegungen.
- Visualisierung: Darstellung der berechneten Bestände und Mindestbestände.
- Testprotokoll: Mindestens drei lokale Testfälle, darunter ein gültiger Fall und zwei abgelehnte Eingaben, jeweils mit begründetem Ergebnis.
- Transfer: Ein selbst vorgeschlagener Modellierungs- oder Dokumentationsschritt für eine neue fachliche Anforderung.
- Reflexion: Kurze Erklärung, warum eine technische Datenbankstruktur allein noch keine vollständige betriebliche Datendokumentation ist.
Beurteilungskriterien: Fachliche Richtigkeit, eindeutige Einheiten, konsistente Beziehungen, nachvollziehbare Regeln, funktionierende lokale Tests und verständliche Darstellung.
Sicherheitsnachweis: Bestätige, dass ausschließlich fiktive Daten und eine lokale oder ausdrücklich autorisierte Testumgebung verwendet wurden.
OERs zum Thema
Wikipedia: Datenmodellierung
Wikipedia: Data-Dictionary
Weiterführende freie Lern- und Fachquellen
- Entity-Relationship-Modell: Begriffe, Entitäten, Attribute, Beziehungen und Darstellungsmöglichkeiten.
- Relationale Datenbank: Tabellen, Schlüssel, Datenbankschema und Normalisierung.
- Data-Dictionary: Fachliche Definitionen, Metadaten und Pflege der Datendokumentation.
- SQLite-Dokumentation – Datentypen: Technische Referenz zu INTEGER, TEXT und weiteren Speicherklassen.
- SQLite-Dokumentation – Fremdschlüssel: Referenz zu Fremdschlüsselbedingungen und ihrer Aktivierung.
- SQLite-Dokumentation – CREATE TABLE: Referenz zu Tabellen und Integritätsbedingungen.
- Python-Dokumentation – sqlite3: Lokale Datenbanken im Arbeitsspeicher und parametrisierte SQL-Abfragen.
Hinweis: Die offiziellen SQLite- und Python-Dokumentationen sind frei zugängliche Fachquellen, aber nicht automatisch unter derselben Lizenz wie Wikipedia lizenziert.
Bildquellen und Medienrechte
Die in diesem Kurs verwendeten Commons-Dateien wurden anhand ihrer Dateibeschreibungsseiten ausgewählt. Die jeweiligen Lizenzangaben gelten für die einzelnen Medien.
| Bild | Urheber | Angegebene Lizenz |
|---|---|---|
| SQL ERD Example | AlwaysSnailTime | CC0 1.0 |
| Entity Relationship Diagram Examples | Chad250 | CC BY-SA 4.0 |
| Relational DB Example ER Diagram Corporation | Fishpi | Gemeinfrei |
| Clients table not 1NF | Fishpi | Gemeinfrei |
| MediaWiki database schema | Timo Tijhof | CC BY 4.0 |
Bei einer Weiterverwendung von CC-BY- oder CC-BY-SA-Medien sind die jeweiligen Namensnennungs- und Lizenzbedingungen einzuhalten. Die drei verlinkten YouTube-Videos dienen als optionale externe Einbettungen; für sie wird keine freie Nachnutzungslizenz behauptet. Ihre Verfügbarkeit und Einbettbarkeit können sich ändern.
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 fragen