fallstudie_datenmanagement_.../README.md

91 lines
3.6 KiB
Markdown

# 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
```bash
git clone https://git.x-breed.de/magruene/fallstudie_datenmanagement_master.git
cd fallstudie_datenmanagement_master
```
**OLTP/DWH laden (PostgreSQL):**
```bash
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):**
```python
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