Microsoft Dataverse: Warum das Datenmodell über den Projekterfolg entscheidet
Dataverse ist das am meisten unterschätzte Stück der Microsoft-Welt: keine sichtbare Oberfläche, kein „Wow" in der Demo — und trotzdem die Komponente, an der Power-Platform-Projekte am häufigsten scheitern oder gewinnen. Ist dein Datenmodell sauber, fühlt sich der Rest der Plattform leicht an. Steht es schief, kämpfst du jahrelang mit Workarounds, langsamen Views und Berechtigungen, die niemand mehr versteht.
Dieser Leitfaden ist die ehrliche Langfassung: was Dataverse wirklich ist, wann es passt (und wann nicht), wie du ein Datenmodell baust, das in fünf Jahren noch trägt, und wie das Security-Modell funktioniert, bevor es dich überrascht. Kein Marketing — sondern das, was wir aus echten Mittelstandsprojekten gelernt haben.
1. Was Dataverse eigentlich ist
Dataverse ist die zentrale Datenplattform unter Power Platform und Dynamics 365. Technisch eine verwaltete, relationale Datenbank mit Logikschicht — aber das verfehlt den Punkt. Eine reine Datenbank bekommst du günstiger. Interessant macht Dataverse die Kombination aus drei Dingen, die sonst getrennt zu bauen wären:
Datenhaltung mit Typsystem. Tabellen (früher „Entities"), Spalten mit echten Datentypen, Beziehungen, Choices (Option Sets) — modelliert, nicht zusammengeschustert.
Logik direkt am Datensatz. Geschäftsregeln, berechnete und Rollup-Spalten, Plug-ins laufen unabhängig davon, welche App schreibt. Eine Validierungsregel gilt für die Model-Driven App genauso wie für den nächtlichen Integrations-Job.
Sicherheit als Teil des Modells. Wer welchen Datensatz sehen, ändern oder teilen darf, ist Sache der Plattform, nicht der App. Segen und Fluch zugleich — Kapitel 6 vertieft das.
Der Satz zum Merken: Dataverse ist datenzentrisch, nicht app-zentrisch. Du baust nicht eine App, die zufällig Daten speichert, sondern ein Datenmodell, um das herum mehrere Apps, Flows, Berichte und Integrationen entstehen. Wer diesen Perspektivwechsel nicht macht, baut Dataverse wie eine SharePoint-Liste — teurer, ohne den Mehrwert.
Das nächste Schaubild zeigt diese Schichtung. Lies es von unten nach oben: Daten zuerst, Apps zuletzt.
Ein häufiges Missverständnis: Dataverse sei „nur die Datenbank von Dynamics". Das war historisch der Ausgangspunkt (es hieß früher Common Data Service), heute ist es eine eigenständige Plattform. Du kannst Dataverse ohne ein einziges Dynamics-Modul betreiben — als Backend eigener Business-Apps, als Stammdaten-Drehscheibe oder als sicheren Datenlayer für Power-BI-Berichte.
2. Wann Dataverse die richtige Wahl ist — und wann nicht
Die ehrlichste Aussage zuerst: Dataverse ist nicht immer richtig. Es kostet Lizenzgeld pro Nutzer oder App, hat eine Lernkurve und ist für triviale Fälle überdimensioniert. Senior-Beratung heißt, das auszusprechen, bevor Budget verbrannt ist.
Dataverse passt gut, wenn:
mehrere Apps oder Prozesse auf dieselben Stammdaten zugreifen (Kunde, Projekt, Asset) und du eine einzige Quelle der Wahrheit brauchst,
du zeilengenaue Berechtigungen brauchst — Vertrieb A darf seine Deals sehen, Vertrieb B nicht,
Logik unabhängig von der App gelten muss (Validierung, Audit, Pflichtfelder), weil mehr als ein Kanal schreibt,
du ohnehin im Dynamics-365- oder Power-Platform-Ökosystem unterwegs bist und Brüche vermeiden willst,
Compliance, Nachvollziehbarkeit (Audit-Log) und Datenresidenz im EU-Raum eine Rolle spielen.
Dataverse passt schlecht, wenn:
es um eine simple Liste für ein kleines Team geht, die nie wächst — dafür reichen SharePoint Lists,
du hochfrequent und schreiblastig mit Millionen Transaktionen pro Stunde planst — dann ist eine dedizierte SQL-/NoSQL-Datenbank sinnvoller,
die Lizenzkosten den Nutzen nicht rechtfertigen, etwa bei vielen Gelegenheitsnutzern ohne M365-Kontext,
du volle Kontrolle über die Datenbank-Engine brauchst (eigene Indizes, exotische Erweiterungen).
Die Detailabwägung gegen die beiden häufigsten Alternativen — Azure SQL und SharePoint Lists — haben wir mit Kosten, Limits und Migrationspfaden gegenübergestellt: Dataverse vs. SQL vs. SharePoint Lists. Wenn du vor genau dieser Entscheidung stehst, lies den Beitrag, bevor du weiterplanst.
Eine Einordnung, die in der Praxis hilft: Dataverse ist selten die billigste Option, aber häufig die mit den niedrigsten Folgekosten. Eine SharePoint-Liste ist heute günstig und in zwei Jahren ein Sanierungsfall, wenn das Team gewachsen ist. Rechne Total Cost of Ownership, nicht den Lizenzpreis isoliert.
3. Die Kernbausteine des Datenmodells
Bevor wir über Best Practices reden, müssen die Bausteine sitzen. Wer hier unscharf ist, baut unscharfe Modelle:
Tabellen (Tables). Früher „Entity". Standardtabellen (Account, Contact, Activity …) erweiterst du, entkernst sie aber nicht; eigene Konzepte bekommen benutzerdefinierte Tabellen. Der Tabellentyp — Standard, Aktivität (Zeitbezogenes) oder Virtuell (externe Daten gespiegelt) — wird bei der Erstellung festgelegt; eine spätere Änderung ist faktisch eine Neumodellierung.
Spalten (Columns). Hier entscheidet sich Qualität im Detail. Wähle den engsten Datentyp: Auswahl ist Choice, kein Freitext; Betrag ist Currency mit Währung, kein Decimal; Ja/Nein ist Yes/No, kein String mit „ja"/„Ja "/„JA". Jede zu lasche Typwahl rächt sich bei Auswertung und Integration. Relevant auch: lokaler vs. globaler Choice — dazu Kapitel 5.
Beziehungen (Relationships).1:N, N:1, N:N. Die wichtigste Designentscheidung ist das Beziehungsverhalten (Cascade Behavior): Was passiert mit Kind-Datensätzen, wenn der Eltern-Datensatz gelöscht, neu zugewiesen oder geteilt wird? Die Standardwerte sind selten die richtigen. Ein falsch konfiguriertes Cascade-Delete reißt beim Löschen eines Kunden hunderte verknüpfte Datensätze mit — einer der häufigsten Datenverluste in jungen Dataverse-Umgebungen.
Choices (Option Sets). Vordefinierte Werteliste. Klingt banal, entscheidet aber über Reporting: Ein Choice ist auswertbar und mehrsprachig, ein Freitextfeld mit denselben Werten nie.
Schlüssel (Alternate Keys). Oft übersehen: Mit einem Alternate Key identifizierst du einen Datensatz über ein fachliches Feld (Kundennummer, SKU) statt über die technische GUID. Für jede Integration, die Daten von außen einspielt, ist das fast immer Pflicht — sonst entstehen Dubletten.
Ein Punkt, der in fast jedem ersten Dataverse-Projekt zu kurz kommt und sich bitter rächt: Application Lifecycle Management. Wer Tabellen direkt in Produktion anlegt und „später aufräumt", räumt nie auf.
Die Grundregeln, die wir durchsetzen:
Mindestens drei Umgebungen: Entwicklung, Test, Produktion. Entwickelt wird ausschließlich in DEV. PROD ist read-only für Menschen, schreibend nur über kontrollierte Deployments.
Alles lebt in einer Solution. Eine eigene, benannte Solution mit definiertem Publisher und Präfix. Niemals in der Default-Solution arbeiten — was dort landet, ist praktisch nicht sauber transportierbar.
Managed in PROD, Unmanaged nur in DEV. Die Solution wird in DEV unmanaged entwickelt und als managed nach TEST und PROD transportiert. Eine unmanaged Solution in Produktion ist eine Einbahnstraße ohne saubere Rückwärtsmigration.
Der Publisher-Präfix wird einmal festgelegt — und nie wieder geändert. Er steht vor jedem Tabellen- und Spaltennamen. Ein nachträglicher Wechsel ist eine Neumodellierung.
Das nächste Schaubild zeigt den Solution-Fluss, wie wir ihn standardmäßig aufsetzen. Beachte die Richtung: Schema fließt nur in eine Richtung — von DEV nach PROD, nie zurück.
Dieses ALM-Fundament ist unsexy und kostet anfangs Disziplin. Aber es ist der Unterschied zwischen einer Plattform, die du in fünf Jahren noch ruhig erweiterst, und einer, die nach achtzehn Monaten niemand mehr anfasst. Das große Bild dazu: Power-Platform-Leitfaden für den Mittelstand.
5. Datenmodellierung: die Entscheidungen, die wirklich zählen
Du kannst hundert kleine Entscheidungen falsch treffen, ohne dass es weh tut. Eine Handvoll prägt das ganze Projekt. Hier die, die am häufigsten den Unterschied gemacht haben.
5.1 Standardtabelle erweitern oder eigene bauen?
Die Verlockung, alles in Account und Contact zu stopfen, ist groß. Faustregel: Ein eigenständiges fachliches Ding (Projekt, Asset, Vertrag) bekommt eine eigene Tabelle. Eine Eigenschaft eines bestehenden Dings (die Branche eines Kunden) wird eine Spalte an der Standardtabelle. Klingt offensichtlich, wird permanent verletzt — und jede Verletzung erschwert spätere Auswertung und Berechtigung.
5.2 Globale vs. lokale Choices
Ein lokaler Choice lebt nur an einer Spalte, ein globaler ist projektweit wiederverwendbar. Regel: Wird ein Wertekatalog an mehr als einer Stelle gebraucht (Status, Priorität, Region), gehört er global — sonst pflegst du dieselbe Liste fünfmal und sie driften auseinander. Umgekehrt bleibt ein wirklich tabellenspezifischer Choice lokal, sonst vermüllt der globale Namensraum.
5.3 Lookup vs. Choice für Referenzdaten
Soll „Abteilung" ein Choice oder eine eigene Tabelle mit Lookup sein? Faustregel: Ändern sich Werte selten und tragen keine eigenen Attribute (Priorität niedrig/mittel/hoch), ist ein Choice richtig. Tragen die Werte eigene Daten (Abteilung hat Kostenstelle, Leiter, Budget) oder werden von Fachanwendern gepflegt, ist es eine eigene Tabelle. Choices nachträglich in Tabellen umzubauen ist teuer.
5.4 Datentypen nicht zu großzügig wählen
Jedes „nehmen wir vorsichtshalber Text" ist eine Hypothek. Datum als Text zerstört jede Zeitauswertung, Betrag als Decimal verliert die Währung. In Sanierungsprojekten geht überraschend viel Zeit dafür drauf, zu lasche Typen zu reparieren — meist mit Datenmigration, weil Bestandswerte den engeren Typ nicht erfüllen.
Diese und weitere Regeln — Normalisierung versus Denormalisierung, Namenskonventionen, N
6. Das Security-Modell — der Teil, der dich überrascht
Wenn ein Dataverse-Projekt nach dem Go-Live in Aufruhr gerät, geht es meist um Berechtigungen. Entweder sieht jemand etwas, das er nicht sehen darf — oder, häufiger, jemand sieht etwas nicht, das er braucht, und niemand versteht warum.
Das Modell ist mächtig, hat aber eine steile Lernkurve, weil mehrere Konzepte ineinandergreifen:
Business Units bilden eine Hierarchie (oft entlang von Organisation oder Mandant). Sie definieren den Geltungsbereich „eigene BU" und „BU plus untergeordnete".
Security Roles sind Bündel von Berechtigungen pro Tabelle und pro Operation (Erstellen, Lesen, Schreiben, Löschen, Zuweisen, Teilen, Anhängen).
Access Levels definieren die Reichweite jeder Berechtigung: nur eigene Datensätze, die der eigenen Business Unit, die der BU plus untergeordneten, oder organisationsweit.
Teams und Sharing ergänzen das Ganze um datensatzgenaue Ausnahmen.
Der entscheidende Modellwechsel: Berechtigungen sind additiv. Bei zwei Rollen gilt die jeweils großzügigere Einstellung — es gibt kein „Verbieten gewinnt". Wer das übersieht, baut Rollenchaos und wundert sich, warum eine vermeintlich restriktive Rolle nichts bewirkt, weil eine zweite Rolle still alles wieder aufmacht.
Das folgende Schaubild zeigt, wie eine Leseanfrage durch die Schichten läuft, bis feststeht, ob ein Datensatz sichtbar ist.
Unsere Empfehlung: Rollenzahl klein halten, nach Aufgaben statt Personen bauen, und jede Rolle mit einem echten Testnutzer in der Zielumgebung prüfen — nicht als Admin, der ohnehin alles sieht. Die häufigsten Fehler, inklusive Owner-versus-Team und Field-Level-Security, im Detail: Security Roles in Dataverse richtig aufsetzen. Wer Berechtigungen unterschätzt, zahlt nach dem Go-Live doppelt — im Vertrauen der Nutzer und im Sanierungsaufwand.
7. Integration: Dataverse als Drehscheibe, nicht als Insel
Dataverse entfaltet seinen Wert selten allein. Spätestens im zweiten Projektjahr soll es Daten mit dem ERP austauschen, Berichte in Power BI speisen oder ein Kundenportal versorgen. Drei Pfade, die in der Praxis tragen:
Web-API (OData v4) — der Standardweg für synchrone Integrationen, OAuth2-abgesichert. Externe Schreibzugriffe immer über Alternate Keys, nie über GUIDs, sonst entstehen Dubletten.
Power Automate / Dataflows — für regelmäßige, weniger latenzkritische Synchronisation. Schnell aufgesetzt, aber bei hohen Volumina an API-Limits gebunden, die früh eingeplant gehören.
Synapse Link / Fabric — analytische Last gehört in eine Analyseschicht, nicht auf die operative Datenbank. Einordnung dazu: Microsoft Fabric vs. Power BI.
Ein wiederkehrender Architekturfehler: schwere Reporting-Abfragen direkt gegen die produktive Umgebung. Das verlangsamt die operativen Apps spürbar. Trenne operative und analytische Last früh — diese Entscheidung ist günstig auf dem Whiteboard und teuer in Produktion. Welcher App-Typ auf dieses Fundament passt, ordnen wir hier ein: Power Apps Canvas, Model-Driven und Power Pages im Vergleich.
8. Die fünf Fehler, die wir am häufigsten reparieren
Nach Häufigkeit:
In Default-Solution und PROD modelliert — nicht transportierbar, Sanierung heißt Neuaufbau.
Zu lasche Datentypen — Datum als Text, Auswahl als Freitext, Betrag ohne Währung. Reporting bricht.
Cascade-Verhalten auf Standard belassen — gelöschte Eltern reißen Kinder mit, oder Waisen sammeln sich an.
Zu viele, zu personenbezogene Security Roles — niemand versteht mehr, warum wer was sieht.
Reporting auf der operativen Umgebung — Apps werden langsam, niemand weiß warum.
Keiner dieser Fehler ist ein Plattformfehler. Es sind Modellierungs- und Disziplinfehler — am Anfang fast kostenlos vermeidbar, am Ende teuer. Das ist die Kernaussage dieses Leitfadens.
Fazit
Dataverse belohnt Disziplin und bestraft Bequemlichkeit — beides mit Zinseszins. Die Plattform ist robust; was Projekte scheitern lässt, ist fast immer ein Datenmodell, das unter Zeitdruck zusammengeschoben und nie korrigiert wurde.
Drei Dinge zum Mitnehmen: Erstens, behandle Dataverse datenzentrisch — erst das Modell, dann die Apps. Zweitens, etabliere ALM mit getrennten Umgebungen und eigener Solution ab Tag eins, nicht „später". Drittens, nimm das Security-Modell ernst, bevor es dich nach dem Go-Live einholt.
Die teuerste Stunde im Dataverse-Projekt ist nicht die, in der du sauber modellierst — es ist die, in der du es zwei Jahre später noch einmal tust, mit Produktivdaten und unter Druck. Wer ehrlich plant, spart genau diese Stunde.
Dataverse-Projekt sauber aufsetzen?
Ob Greenfield-Modellierung, Architektur-Review oder Sanierung eines gewachsenen Datenmodells — wir schauen ehrlich drauf und sagen dir, was trägt und was du dir sparen kannst. Kein Pitch, sondern eine fundierte Einschätzung.