Arbeiten mit Tabellen und KI in Dataverse

Dataverse umfasst eine in Azure gehostete Database-Engine, ein auf Dynamics 365 basierendes standardisiertes Datenmodell Common Data Model (CDM), mächtige Datentypen, Ansichten/Views, Formulare, Workflows, Geschäftsregeln sowie ein Rollen- und Berechtigungsmodell. Zudem bietet Dataverse eine Vielzahl an integrierten Funktionen zur Sicherstellung der Datenintegrität. So führt Dataverse automatisch Validierungen anhand des jeweiligen Datentyps durch. Die Wahrung der referenziellen Integrität von (1:n-)Beziehungen erfolgt in Dataverse über die Definition von Beziehungsverhalten.
Datenmodell für eine Datenbank mit integriertem Copilot erstellen
Die Homepage der Entwicklungsumgebung von Power Apps erschließt über den Fensterbereich Erste Schritte mit Copilot den integrierten KI-Assistenten. Ein Klick darauf öffnet das gleichnamige Dialogfenster, um eine Beschreibung in natürlicher Sprache für die Datenbank oder das Geschäftsszenario einzugeben (Bild 1).

Im Dialogfenster „Erste Schritte mit Copilot“ kann eine Eingabe von maximal 2.000 Zeichen an Copilot als Prompt erfolgen (Bild 1)
Frank SimonDieses Dialogfenster erscheint auch über die Menükaskade Neue Tabelle | Neue Tabelle erstellen der oberen Menüleiste und anschließender Auswahl des Fensterbereichs Mit Copilot beginnen. Der Beschreibungstext erhält als Eingabe den Prompt: „Entwerfe mir eine Hochschuldatenbank mit Professoren, Studenten, Vorlesungen und Hörsälen!“
Im Copilot-Dialogfenster befindet sich unten rechts neben der Schaltfläche Generieren ein Drop-down-Menü (Bild 1) mit drei verschiedenen Einstelloptionen. Es empfiehlt sich, dort für die Tabellenoptionen Mehrere Tabellen, für die Tabellengröße Mittel und für die Beziehungen Einschließen auszuwählen. Nach Vorgabe dieser Einstellungen erzeugt Copilot durch Klick auf Generieren die Hochschuldatenbank mit den angegebenen Tabellen. Gleichzeitig macht Copilot einen Vorschlag für die Spalten der einzelnen Tabellen und zeigt einen ersten Entwurf der Datenbank in einem Entity-Relationship-Diagramm (ERD) an (Bild 2).

Das von Copilot generierte Entity-Relationship-Diagramm stellt einen Vorschlag für ein erstes initiales Datenmodell dar (Bild 2)
Frank SimonJetzt gilt es, diesen ersten Datenbank-Entwurf zu analysieren und zu überarbeiten. Für ein einfacheres Lesen des ERD positioniert der Modellierer die Entitäten so, dass diese mit ihren Beziehungen gut lesbar sind. Bei allen von Copilot erzeugten Tabellen steht unter ihrem Namen Mit KI generiert. In unserem Fallbeispiel hat Copilot auch eine unabhängige Tabelle Hörsaal erzeugt; damit fehlt eine Beziehung zwischen Hörsaal und Vorlesung (Bild 2). Ganz rechts neben dem ERD steht das Copilot-Dialogfenster, dort protokolliert Copilot den Ablauf der Kommunikation zwischen ihm und dem Benutzer/Entwickler. Unten im Copilot-Dialogfenster befindet sich eine Schaltfläche Eingabeaufforderungen anzeigen und darunter ein Feld für die Texteingabe des Prompts.
Die fehlende Beziehung zwischen den beiden Entitäten Hörsaal und Vorlesung beschreibt der Prompting-Text „Eine Beziehung erstellen zwischen Vorlesung und Hörsaal. Eine Vorlesung findet in einem Hörsaal statt, in einem Hörsaal können mehrere Vorlesungen zu unterschiedlichen Zeiten stattfinden“. Das im Eingabefeld ganz rechts stehende kleine Pfeil-Icon übergibt diesen Beschreibungstext an Copilot. Danach generiert der KI-Assistent die fehlende Beziehung zwischen den beiden Tabellen Vorlesung und Hörsaal. Copilot hat den Komplexitätsgrad der Beziehung als (1:n) – als eine Eins-zu-Viele-Beziehung – richtig erkannt und für deren Abbildung im Datenmodell eine sogenannte Lookup-Spalte in der Tabelle Vorlesung zur Tabelle Hörsaal hinzugefügt.
Datenmodell und Tabellen für Dataverse mit Copilot überarbeiten
Im ERD fällt die (1:n)-Beziehung zwischen Professor und Student auf; diese entspricht nicht der Praxis. Ein Student kann nämlich Vorlesungen von verschiedenen Professoren besuchen – er wird nicht nur von einem Professor unterrichtet. Insofern soll Copilot den über die Lookup-Spalte Professor in der Tabelle Student vorhandenen Fremdschlüssel entfernen. Reicht der Modellierer als Prompting „Entferne den Fremdschlüssel Professor aus der Tabelle Student!“ an Copilot weiter, so liefert dieser als Antwort Unangemessene Inhalte erkannt zurück. Die Eingabe von Promptings sollte am besten nicht über eigene Textformulierungen, sondern über die im Copilot-Dialogfenster unten rechts stehende Schaltfläche Eingabeaufforderungen anzeigen erfolgen.
Ein Klick auf diese Schaltfläche öffnet ein Pop-up-Menü mit Einträgen, die über weitere Untermenüs dem Benutzer Vorschläge für ein Prompting formulieren. Die Auswahl eines der Untermenüs übernimmt den Vorschlag in die Eingabeaufforderung von Copilot, die der Modellierer noch passend um seine eigenen Vorstellungen erweitert. So erzeugt das Untermenü Erstellen einen Vorschlag für ein Prompting zur Neuanlage einer oder mehrere Tabellen, Zeilen oder Spalten für die im ERD aktuell selektierte Tabelle oder zur Neuanlage einer Beziehung zwischen zwei Tabellen. Für die Neuanlage einer Beziehung zwischen zwei Tabellen muss der Modellierer im generierten Prompt noch einen Namen für die Beziehung vergeben.
Über das Untermenü Importieren generiert Copilot anhand einer Excel- oder .CSV-Datei oder über eine SharePoint-Liste einen Vorschlag für eine weitere im ERD aufzunehmende Tabelle. Dabei legt Copilot die Spalten für diese Tabelle anhand der extern vorliegenden Daten an und übernimmt dabei deren Werte in Dataverse. Muss der Benutzer nach erfolgtem Import noch manuell nacharbeiten, so kennzeichnet dies Copilot bei der Tabelle durch eine rot hervorgehobene Anmerkung Eingreifen erforderlich. Diese Nachbearbeitungen erledigt der Modellierer über die durch das …-Menü angebotenen Funktionen. In der Regel beschränken sich die Korrekturen auf Änderungen in den übergebenen Daten.
Das Untermenü Ändern ermöglicht die Umbenennung des Namens einer Tabelle, einer Spalte oder das Ändern eines Spaltentyps für die aktuell im ERD ausgewählte Tabelle. Das mit dem Untermenü Beziehungstyp ändern zu… verbundene Prompting arbeitet noch nicht korrekt – so fehlt derzeit noch eine Implementierung für (n:m)-Beziehungen. Derartige Viele-zu-Viele-Beziehungen sind über eine zusätzliche Beziehungstabelle zu realisieren. Einen Vorschlag für das Prompting zum Entfernen einer ausgewählten Tabelle, zum Löschen einer Spalte aus einer ausgewählten Tabelle oder zum Löschen einer Beziehung zwischen Tabellen erzeugt das Untermenü Löschen.

Grundwortschatz beim Prompting berücksichtigen
Bei Copilot handelt es sich um einen KI-Assistenten, der eine Aufgabe in Interaktion zusammen mit dem Benutzer erledigt. Microsoft hat den in Power Apps bereitgestellten KI-Assistenten auf das Arbeiten mit Dataverse ausgerichtet. Deshalb kennt das in Copilot enthaltene Sprachmodell in der Regel alle gängigen Begriffe, die mit Dataverse verbunden sind. Bei den in Copilot bekannten Begriffen handelt es sich quasi um den Grundwortschatz des KI-Assistenten. Um Rückmeldungen von Copilot wie Unangemessene Inhalte erkannt zu vermeiden, sollte der Modellierer beim Prompting die Terminologie von Dataverse verwenden.
Anstatt den Prompt „Beziehung zwischen Vorlesung und Hörsaal löschen“ an Copilot zu übergeben, sollte der Benutzer den Fachbegriff Tabelle in die Eingabeaufforderung aufnehmen und als Prompt „Beziehung zwischen der Tabelle Vorlesung und der Tabelle Hörsaal löschen“ an Copilot übergeben. Dies erleichtert dem KI-Assistenten das Verstehen der vorliegenden Aufgabe.
Spalten, Datentypen und Daten der vorhandenen Tabellen überarbeiten
Im ERD befindet sich rechts neben jedem Namen einer Tabelle ein …-Menü. Der dortige Eintrag Daten anzeigen öffnet ein Dialogfenster zur ausgewählten Tabelle und zeigt deren aktuell vorhandene Daten an. Die Menüleiste dieses Dialogfensters ermöglicht die Neuanlage einer Zeile für die Daten der Tabelle oder die Definition einer neuen Spalte. Bei der Definition einer neuen Spalte für die aktuelle Tabelle vergibt der Modellierer für sie einen Anzeigename; das Eingabefeld Datentyp bietet über eine Auswahlliste alle in Dataverse vordefinierten Datentypen an. Im Bedarfsfall erfolgt die Festlegung des Datentyps einer neuen Spalte ganz detailliert über eine weitere Auswahlliste.
Für eine exakte Festlegung des Datentyps klickt der Modellierer auf das | >-Zeichen und nimmt eine weitere Auswahl vor (Bild 3).

Dataverse besitzt eine große Anzahl verschiedener Datentypen, die der Modellierer detailliert mit einem Verhalten spezifizieren kann (Bild 3)
Frank SimonAbhängig von einer Festlegung des Datentyps legt Power Apps eine Formatierung für die Anzeige des Datenwerts fest. Zusätzlich bietet der Neue Spalte-Dialog dem Modellierer weitere Eingabefelder für Verhalten (Berechnende Spalten) und Erforderlichkeit (Not-null-Felder) an. Von den beiden Checkboxen Durchsuchen und Unterstützung beim Ausfüllen von Formularen zulassen ist Letztere besonders interessant. Wird diese zweite Checkbox ausgewählt, so erstellt der KI-Assistent für den Endbenutzer Vorschläge für deren Feldwert.
Leider unterstützt der KI-Assistent den Modellierer noch nicht bei der Generierung von Daten für die aktuelle Tabelle. Der Prompt „Erstelle mir weitere Zeilen mit Daten für diese Tabelle“ liefert als Antwort Ich kann Ihnen dabei nicht helfen… Wählen Sie dann Daten anzeigen | Bearbeiten… Über den Menüeintrag Auf einer neuen Registerkarte bearbeiten öffnet sich im Webbrowser ein neuer Tab, und in der letzten Zeile der Tabelle erscheinen Felder zur Eingabe der Daten. Zusätzlich erlaubt Power Apps ein Rapid Prototyping zusammen mit den Endbenutzern. Dazu besitzt die obere Menüleiste den Eintrag App erstellen, der ein Eingabeformular als App für die aktuelle Tabelle generiert. Nach Eingabe eines App-Namens erzeugt Power Apps die neue App und zeigt sie in Power Apps Studio an.