LF05 Software zur Verwaltung von Daten anpassen
Du kannst gerne unter meinem GitHub mithelfen.
Hier passt du Software so an, dass sie Daten sinnvoll speichert, abfragt und verändert.
Du lernst die Basics von Datenbanken, Modellierung (ERM), SQL, einfache Python‑Anwendungen, Dateizugriffe, sowie Testen und Dokumentation.
I. Warum Daten verwalten?
Ohne Struktur wirst du langsam, machst Fehler und findest nichts wieder.
Mit Datenbank + Regeln (Modell, Normalisierung, SQL) werden Daten verlässlich, schnell und auswertbar.
Kernideen (sehr kurz)
- Daten vs. Information: Daten sind Rohmaterial; Information entsteht durch Bedeutung.
- DBMS: Software, die Daten speichert, schützt und zugreifbar macht.
- Ziel: Weniger Redundanz, mehr Konsistenz, klare Zugriffe (CRUD: Create/Read/Update/Delete).
II. Modellieren mit ERM (vor der Technik denken)
Erst Fachwelt verstehen, dann Tabellen bauen.
Du beschreibst Dinge (Entitäten), Eigenschaften (Attribute) und Beziehungen.
Bausteine
- Entität/Entitätstyp: „Ding“ der Fachwelt (z. B. Kunde, Artikel)
- Attribut: Eigenschaft (z. B. KundenNr als Schlüsselattribut)
- Beziehung: Verknüpfung (z. B. Kunde kauft Artikel)
- Kardinalität: 1:1, 1:n, m:n (wie viele gehören zusammen?)
Mini‑Beispiel (Konzept → Tabellen)
| Konzept | Tabelle | Schlüssel |
|---|---|---|
| Kunde | Kunde |
Primary Key KundenNr |
| Artikel | Artikel |
Primary Key ArtikelNr |
| Kauf (1:n) | Bestellung |
Foreign Key KundenNr, ArtikelNr |
m:n wird zu eigener Tabelle (Zwischentabelle) mit zwei Foreign Keys.
III. Relationales Datenmodell und Normalisierung
Tabellen + Schlüssel + Regeln = saubere Daten.
Normalisierung reduziert Redundanz und vermeidet Anomalien.
Kurzformeln fürs Denken
- Schlüssel: Primary Key eindeutig, Foreign Key verweist auf Primärschlüssel.
- Referentielle Integrität: Kein verwaister Verweis.
- Normalformen (Daumenregel):
- 1NF: Nur atomare Werte (keine Listen in Zellen).
- 2NF: Nicht‑Schlüsselattribute hängen vom ganzen Schlüssel ab.
- 3NF: Keine transitiven Abhängigkeiten von Nicht‑Schlüsselattributen.
IV. SQL – sprechen mit der Datenbank
Du beschreibst, was du willst – das DBMS macht den Plan.
Aufgeteilt in DDL, DML, DCL, TCL.
Wichtigste Kommandos (mini‑Spickzettel)
- DDL (Struktur):
CREATE TABLE,ALTER TABLE,DROP TABLE - DML (Daten):
SELECT,INSERT,UPDATE,DELETE - TCL (Transaktionen):
COMMIT,ROLLBACK
Abfrage‑Beispiel (Join)
SELECT p.Name, a.Abteilungsname
FROM Person p
JOIN Abteilung a ON a.AbtID = p.AbtID
WHERE a.Abteilungsname = 'Buchhaltung';
Immer WHERE beachten bei UPDATE/DELETE – sonst änderst du ALLE Zeilen.
V. Dateien in Anwendungen nutzen
Programme lesen/schreiben Daten aus/zu Files (CSV, JSON, Bilder, Logs).
Ein sauberer Datei‑Zugriff braucht Pfad‑Handling, Fehlerbehandlung, und Encoding.
Praktische Basics (Python‑Denke)
- Öffnen/Schließen sicher (Kontextmanager), try/except für Fehler.
- Formate: CSV für Tabellen, JSON für strukturierte Objekte.
- Pfade: relativ statt absolut; keine Geheimnisse im Klartext.
VI. Einfache Anwendungen bauen (z. B. Python)
Klein anfangen: Daten einlesen → validieren → speichern → anzeigen.
Klarer Ablauf hilft: Eingabe → Verarbeitung → Ausgabe.
Konstruktionsmuster
- Funktionen klein halten, sprechende Namen.
- Trennen: Logik, Datenzugriff, Darstellung.
- Fehler und Kantenfälle testen (leer, kaputt, doppelt).
VII. Testen und Dokumentation
Qualität ist kein Zufall – du planst sie ein.
Tests fangen Fehler früh, Doku macht dich und andere schneller.
Test‑Landkarte
- Stufen: Modultest → Integrationstest → Systemtest → Abnahmetest
- Verfahren: Black-Box-Test (Spezifikation), White-Box-Test (Code‑Struktur)
- Flow (optional TDD): RED → GREEN → REFACTOR
Doku‑Arten
- Entwickler: Architektur, Modelle, Schnittstellen, Testdokumentation
- Nutzer/Admin: Handbuch, Installation, Betrieb, Troubleshooting
VIII. Mini‑Checklisten (Alltag)
Schnell prüfen, ob du auf Kurs bist.
Modell/Schema
- Habe ich Entitäten, Attribute, Beziehungen klar?
- Passen Kardinalitäten? Brauche ich eine m:n‑Zwischentabelle?
- 3NF erreicht? Schlüssel sauber?
SQL/Transaktionen
- Habe ich Joins korrekt (PK/FK) gesetzt?
- Sind Filter (
WHERE) korrekt und getestet? - Brauche ich
COMMIT/ROLLBACK(Konsistenz)?
Code/Dateien
- Eingaben validiert? Fehler abgefangen?
- Dateien mit Kontextmanager geöffnet? Pfade relativ?
- Keine Geheimnisse im Repo/Log?