Datenmodell-Schulungskonsole

Interaktive Schulungsoberfläche für relationale Normalisierung in SQL und flexible Dokumentmodelle in MongoDB.

SQL + MongoDB
Dokumente & Events
MongoDB-Track · Schritt 1 / 5

Dokument-Import

Dieser Lernpfad zeigt, welche Daten nach der SQL-Normalisierung bewusst in flexible Dokumente ausgelagert werden: variierende Produktattribute, Interaktionsprofile und Event-Historien.

Dokumentenfluss aktiv
Schritt 1: Dokument-Import — Nach der SQL-Normalisierung werden Daten ergänzt, die sich ständig ändern oder je Datensatz unterschiedlich aussehen. Dafür liegen drei Collections als NDJSON in MongoDB: Produktdetails, Kundeninteraktionen und Bestellereignisse.
500
Produktdetails
150
Kundeninteraktionen
200
Bestellereignisse

Aktive Collection: Kundeninteraktionen — jeweils mit verschachtelten Objekten und Arrays statt festem Spaltenschema.

K00001

{
    "_id": {
        "$oid": "69c16cff3fc01760d2983e34"
    },
    "kundennummer": "K00001",
    "profil": {
        "sprache": "de",
        "newsletter": false,
        "bevorzugte_kategorien": [
            "Spiel.",
            "BÜCHER",
            "möbel"
        ],
        "kontaktkanaele": [
            "Telefon"
        ]
    },
    "letzte_suchen": [
        "yogamatte rutschfest",
        "kabellose kopfhörer",
        "ergonomischer bürostuhl"
    ],
    "zuletzt_angesehen": [
        "P-1839",
        "P-1697",
        "1176",
        "1501",
        "ART-1975",
        "ART-2167"
    ],
    "wunschliste": [
        "ART-2284",
        "ART-2449",
        "2211",
        "P-1837"
    ],
    "geraete": [
        {
            "typ": "Mobilgerät",
            "browser": "Safari",
            "betriebssystem": "iOS"
        },
        {
            "typ": "Tablet",
            "browser": "Safari",
            "betriebssystem": "iPadOS"
        },
        {
            "typ": "Desktop",
            "browser": "Firefox",
            "betriebssystem": "Linux"
        }
    ],
    "kampagnenreaktionen": [
        {
            "kampagne": "Wohnideen",
            "status": "abgemeldet",
            "zeitpunkt": "2026-03-02T21:56:00Z"
        },
        {
            "kampagne": "Treuebonus",
            "status": "geklickt",
            "zeitpunkt": "2026-03-10T20:49:00Z"
        },
        {
            "kampagne": "Newsletter März",
            "status": "ignoriert",
            "zeitpunkt": "2026-02-17T12:16:00Z"
        },
        {
            "kampagne": "Tech-Deals",
            "status": "abgemeldet",
            "zeitpunkt": "2026-03-26T12:01:00Z"
        },
        {
            "kampagne": "Warenkorbabbrecher",
            "status": "abgemeldet",
            "zeitpunkt": "2026-03-28T14:19:00Z"
        }
    ],
    "support_marker": {
        "vip": true,
        "retoure_haeufigkeit": "niedrig",
        "risiko_score": 58
    }
}

K00003

{
    "_id": {
        "$oid": "69c16cff3fc01760d2983e42"
    },
    "kundennummer": "K00003",
    "profil": {
        "sprache": "de",
        "newsletter": false,
        "bevorzugte_kategorien": [
            "Möbel",
            "sport",
            "Haush."
        ],
        "kontaktkanaele": [
            "Push",
            "E-Mail"
        ]
    },
    "letzte_suchen": [
        "yogamatte rutschfest",
        "espresso bohnen"
    ],
    "zuletzt_angesehen": [
        "P-1432",
        "PRD-2010",
        "ART-1128",
        "P-2424",
        "ART-1975",
        "PRD-1774",
        "P-1401"
    ],
    "wunschliste": [
        "1176",
        "PRD-1665",
        "P-1103",
        "ART-1692",
        "PRD-1009"
    ],
    "geraete": [
        {
            "typ": "Mobilgerät",
            "browser": "Safari",
            "betriebssystem": "iOS"
        },
        {
            "typ": "Mobilgerät",
            "browser": "Chrome",
            "betriebssystem": "Android"
        }
    ],
    "kampagnenreaktionen": [
        {
            "kampagne": "Herbstsale",
            "status": "geöffnet",
            "zeitpunkt": "2026-02-19T16:04:00Z"
        },
        {
            "kampagne": "Newsletter März",
            "status": "geöffnet",
            "zeitpunkt": "2026-01-26T20:19:00Z"
        },
        {
            "kampagne": "Newsletter März",
            "status": "abgemeldet",
            "zeitpunkt": "2026-02-23T08:45:00Z"
        }
    ],
    "support_marker": {
        "vip": false,
        "retoure_haeufigkeit": "mittel",
        "risiko_score": 74
    }
}

K00004

{
    "_id": {
        "$oid": "69c16cff3fc01760d2983e36"
    },
    "kundennummer": "K00004",
    "profil": {
        "sprache": "de",
        "newsletter": false,
        "bevorzugte_kategorien": [
            "Bürobedarf",
            "Lebensmittel",
            "kleidung"
        ],
        "kontaktkanaele": [
            "Telefon"
        ]
    },
    "letzte_suchen": [
        "gartenstuhl wetterfest",
        "bio müsli",
        "ergonomischer bürostuhl",
        "kabellose kopfhörer",
        "gesichtscreme empfindliche haut"
    ],
    "zuletzt_angesehen": [
        "P-2487",
        "ART-2337",
        "PRD-1982",
        "PRD-1544",
        "ART-2504",
        "2445"
    ],
    "wunschliste": [
        "ART-1896"
    ],
    "geraete": [
        {
            "typ": "Tablet",
            "browser": "Safari",
            "betriebssystem": "iPadOS"
        },
        {
            "typ": "Desktop",
            "browser": "Edge",
            "betriebssystem": "Windows"
        },
        {
            "typ": "Desktop",
            "browser": "Firefox",
            "betriebssystem": "Linux"
        }
    ],
    "kampagnenreaktionen": [
        {
            "kampagne": "Herbstsale",
            "status": "geklickt",
            "zeitpunkt": "2026-02-13T15:29:00Z"
        },
        {
            "kampagne": "Herbstsale",
            "status": "abgemeldet",
            "zeitpunkt": "2026-02-14T14:04:00Z"
        },
        {
            "kampagne": "Sommeraktion",
            "status": "geklickt",
            "zeitpunkt": "2026-02-24T14:58:00Z"
        }
    ],
    "support_marker": {
        "vip": true,
        "retoure_haeufigkeit": "mittel",
        "risiko_score": 25
    }
}

K00005

{
    "_id": {
        "$oid": "69c16cff3fc01760d2983e46"
    },
    "kundennummer": "K00005",
    "profil": {
        "sprache": "de",
        "newsletter": true,
        "bevorzugte_kategorien": [
            "Auto .",
            "Auto & Motorrad"
        ],
        "kontaktkanaele": [
            "Telefon",
            "Push",
            "E-Mail"
        ]
    },
    "letzte_suchen": [
        "bio müsli",
        "kinderspielzeug ab 6"
    ],
    "zuletzt_angesehen": [
        "ART-1868",
        "1330",
        "2380",
        "1659",
        "PRD-1774",
        "ART-1563"
    ],
    "wunschliste": [
        "ART-2150",
        "1034",
        "P-1142",
        "1750",
        "P-2351"
    ],
    "geraete": [
        {
            "typ": "Tablet",
            "browser": "Safari",
            "betriebssystem": "iPadOS"
        },
        {
            "typ": "Mobilgerät",
            "browser": "Safari",
            "betriebssystem": "iOS"
        }
    ],
    "kampagnenreaktionen": [
        {
            "kampagne": "Treuebonus",
            "status": "ignoriert",
            "zeitpunkt": "2026-02-27T14:07:00Z"
        },
        {
            "kampagne": "Newsletter März",
            "status": "ignoriert",
            "zeitpunkt": "2026-01-20T10:13:00Z"
        },
        {
            "kampagne": "Warenkorbabbrecher",
            "status": "ignoriert",
            "zeitpunkt": "2026-01-15T12:54:00Z"
        },
        {
            "kampagne": "Tech-Deals",
            "status": "ignoriert",
            "zeitpunkt": "2026-02-10T10:55:00Z"
        }
    ],
    "support_marker": {
        "vip": false,
        "retoure_haeufigkeit": "niedrig",
        "risiko_score": 17
    }
}

Warum diese Daten nicht gut in die SQL-Tabellen passen

Variierende Attribute pro Produktkategorie

Elektronik braucht technische Daten, Kleidung Größen und Farben, Lebensmittel Zutaten und Allergene. Ein starres SQL-Schema würde viele Null-Spalten oder zusätzliche Nebentabellen erzeugen.

Profile mit Arrays und Momentaufnahmen

Suchhistorien, Wunschlisten, genutzte Geräte und Kampagnenreaktionen sind pro Kunde unterschiedlich lang und ändern sich häufig.

Event-Streams statt fester Statusspalten

Eine Bestellung hat nicht nur einen Status, sondern eine Folge von Ereignissen mit verschiedenen Zusatzdaten wie Trackingnummern oder Zahlungsdetails.