Fallstudie im Fach Datenmanagement und Datenintegration
Find a file
2026-05-15 15:09:46 +02:00
dwh Initial: Quelldaten Verbund (XL) + DWH (XL) + README 2026-05-15 13:50:14 +02:00
verbund Szenario B: Beispiel-Skript für LLM-Match mit Pydantic-Validierung 2026-05-15 15:09:46 +02:00
README.md Szenario B: Beispiel-Skript für LLM-Match mit Pydantic-Validierung 2026-05-15 15:09:46 +02:00

Fallstudie Datenmanagement — Quelldaten

Quelldaten für die Fallstudienphase des Master-Kurses Data and Process Integration (FRA-UAS, SoSe 2026, Prof.\ Dr.\ Markus Grüne).

Dieses Repository enthält ausschließlich die Eingangsdaten für die drei Szenarien (A, B, C). Die vollständige Aufgabenstellung steht in projektaufgabe.pdf (separat über Moodle).

Inhalt

verbund/   Quelldaten für Szenario A (deterministisch) und B (AI-gestützt)
dwh/       Quelldaten für Szenario C (DWH-Verdichtung)

verbund/ — VetKliniken-Verbund Hessen

Datei Format Inhalt
praxis_juckstadt_kunden.csv CSV, Semikolon, deutsch 200 Kunden Stammformat
praxis_juckstadt_behandlungen.csv CSV, Semikolon 150 Behandlungen, EUR mit Komma als Dezimaltrenner, ISO-Datum
praxis_waldrand_kunden.csv CSV, Komma, englisch ~227 Kunden, MM/DD/YYYY
praxis_waldrand_behandlungen.csv CSV, Komma 150 Behandlungen, EUR mit Punkt als Dezimaltrenner
praxis_schmidt_kunden.csv CSV, Pipe-getrennt ~234 Kunden
praxis_schmidt_behandlungen.json JSON 150 Behandlungen, verschachtelt, Betrag als String
praxis_bergblick_export.xml XML mit Namespace ~232 Patienten + 150 Behandlungen, netto + MwSt
zielschema.sql PostgreSQL-DDL Verbund-Zielschema
gold_cluster.csv CSV Goldstandard: wahre Cluster-Zuordnungen für Auswertung
beispiel_embeddings.py Python Startvorlage für Szenario B: Embeddings mit Ollama + DuckDB-VSS berechnen, speichern, Kandidatenpaare ermitteln
beispiel_llm_match.py Python Startvorlage für Szenario B: Pydantic-validierte LLM-Entscheidung pro Kandidatenpaar (baut auf der Embedding-Tabelle auf)

Volumen: 916 Kunden, 600 Behandlungen, 113 Cluster mit Dubletten.

gold_cluster.csv-Spalten: cluster_id, praxis, quell_id, vorname, nachname. Gleiche cluster_id bedeutet: dieselbe reale Person. Gegen diese Datei werden Precision, Recall und F1 berechnet.

dwh/ — Tierarztpraxis Canini (OLTP + DWH-Schemata)

Datei Inhalt
tierarztpraxis_schema.sql OLTP-Schema (PostgreSQL, 10 Tabellen)
tierarztpraxis_testdaten_xl.sql OLTP-Daten XL: 100 Kunden, 222 Tiere, ~1990 Behandlungen, 3820 Rechnungspositionen, 400 Laborbefunde
dwh_star_schema.sql Zielschema Star (Dimensionen + Faktentabellen)
dwh_snowflake_schema.sql Alternativvariante Snowflake (Vergleichsobjekt)

Zeitraum der OLTP-Daten: 2025-01-01 bis 2026-03-31.

Verwendung

git clone https://git.x-breed.de/magruene/fallstudie_datenmanagement_master.git
cd fallstudie_datenmanagement_master

OLTP/DWH laden (PostgreSQL):

createdb tierarztpraxis_xl
psql -d tierarztpraxis_xl -f dwh/tierarztpraxis_schema.sql
psql -d tierarztpraxis_xl -f dwh/tierarztpraxis_testdaten_xl.sql

Verbund mit DuckDB einlesen (Beispiel):

import duckdb
con = duckdb.connect("verbund.duckdb")
con.execute("""
  CREATE TABLE stg_juck_kunden AS
  SELECT * FROM read_csv_auto('verbund/praxis_juckstadt_kunden.csv',
                              sep=';', header=true);
""")

Team-Repositories

Jedes Team legt für seine Lösung ein eigenes Repository auf einer Git-Plattform der Wahl an (GitHub, GitLab, Forgejo, Codeberg). Die URL wird beim Kickoff in Woche 7 mitgeteilt; Abgaben erfolgen über Git-Tags pro Meilenstein.

Dieses Vorlagen-Repository wird im Verlauf des Semesters nicht verändert; ein Klon zu Beginn reicht.

Lizenz

Die Daten sind synthetisch erzeugt und für Lehrzwecke frei nutzbar.

Kontakt

Prof.\ Dr.\ Markus Grüne — markus.gruene@fra-uas.de