Delen via


GitHub Copilot-integratie in Schema Designer (preview)

Schema Designer in de MSSQL-extensie voor Visual Studio Code bevat GitHub Copilot-integratie, zodat u databaseschema's kunt ontwerpen, wijzigen en valideren met behulp van natuurlijke taal. Beschrijf wat u nodig hebt in het chatpaneel, en GitHub Copilot vertaalt uw aanvragen in schemaacties die worden weergegeven op het visuele diagramdoek, gegenereerde T-SQL en gemarkeerde wijzigingen.

Schermopname van schemaontwerper met het GitHub Copilot-chatvenster geopend in Visual Studio Code.

Aanbeveling

GitHub Copilot-integratie in Schema Designer is momenteel in preview en kan worden gewijzigd op basis van feedback. Neem deel aan de community op GitHub-discussies om ideeën te delen of problemen te melden.

Features

GitHub Copilot-integratie in Schema Designer biedt deze mogelijkheden:

  • Databaseschema's maken op basis van beschrijvingen in natuurlijke taal, met tabellen, kolommen en relaties die automatisch worden gegenereerd.
  • Bestaande schema's ontwikkelen door tabellen en kolommen toe te voegen, te wijzigen of te verwijderen via gespreksprompts.
  • Bekijk door AI voorgestelde wijzigingen afzonderlijk via een begeleide wijzigingsbeoordelingsstroom, met de mogelijkheid om elke bewerking te accepteren of ongedaan te maken.
  • Bekijk een schema-verschil dat alle in behandeling zijnde wijzigingen toont voordat deze worden toegepast op de database.
  • Bootstrap-toepassingsschema's in een lege database met één prompt voor natuurlijke taal.
  • Importeer externe artefacten, zoals JSON-gegevens, documenten of afbeeldingen, en genereer schema-elementen.
  • Valideer schemawijzigingen met kaders voor ontbrekende primaire sleutels, ongeldige gegevenstypen en normalisatieproblemen.

Vereiste voorwaarden

Voordat u GitHub Copilot in Schema Designer gebruikt, moet u ervoor zorgen dat aan de volgende vereisten wordt voldaan:

Schemaontwerper openen met GitHub Copilot

U kunt de schemaontwerper openen met GitHub Copilot vanaf twee toegangspunten:

  1. Klik in de Objectverkenner van de MSSQL-extensie met de rechtermuisknop op een databaseknooppunt.

  2. Selecteer SchemaOntwerper in het contextmenu.

    Schermopname van het contextmenu met de rechtermuisknop op een databaseknooppunt met de optie Schemaontwerper.

  3. Wanneer het canvas Schema Designer wordt geopend met het databaseschema dat is geladen, selecteert u de knop Chat (met het GitHub Copilot-pictogram) in de werkbalk Schema Designer om een GitHub Copilot-chatsessie te openen die is afgestemd op de huidige schemacontext.

Aanbeveling

U kunt ook met de rechtermuisknop op een databaseknooppunt klikken en openen in de Copilot-agentmodus selecteren om een chatsessie voor de GitHub Copilot-agent te starten. In de agentmodus kunt u GitHub Copilot vragen om de schemaontwerper voor u te openen, bijvoorbeeld: "Open schema designer for AdventureWorksLT2022". Voor meer informatie, zie Quickstart: Gebruik GitHub Copilot Agent-modus.

Een schema maken met natuurlijke taal

Wanneer u het GitHub Copilot-chatvenster opent in schemaontwerper, kunt u een schema in het gewone Engels beschrijven en zien dat het wordt weergegeven in het visuele diagram.

  1. Typ een beschrijving in natuurlijke taal van het schema dat u wilt maken in het chatvenster.

  2. GitHub Copilot genereert de tabellen, kolommen, primaire sleutels en refererende sleutelrelaties op basis van uw beschrijving.

  3. Bekijk het visuele diagramcanvas terwijl het in realtime wordt bijgewerkt om het gegenereerde schema weer te geven.

Hier volgen enkele promptvoorbeelden die u kunt proberen:

  • "Build a library management system with tables for Books, Authors, Members, and BookLoans"
  • "Design an e-commerce schema with Products, Categories, Orders, OrderItems, and Customers"
  • "Create a blog platform with Users, Posts, Comments, and Tags with many-to-many relationships"

Schermopname van GitHub Copilot die schemawijzigingen genereert in schemaontwerper met het bijwerken van het visuele diagram.

Een bestaand schema ontwikkelen

Gebruik GitHub Copilot om het te ontwikkelen vanaf een bestaand schema door tabellen en kolommen toe te voegen, te wijzigen of te verwijderen. In de diagram-, code- en diff-weergaven worden deze wijzigingen live weergegeven.

Hier volgen enkele promptvoorbeelden voor de ontwikkeling van schema's:

  • "Add a description column of type NVARCHAR(500) to the Books table"
  • "Remove the ratings table from the schema"
  • "Rename the 'NumberOfPages' column in the Books table to 'PageCount'"
  • "Add booking/reservation support to this app schema"
  • "Change the data type of the Price column in Products from INT to DECIMAL(10,2)"

Het visuele diagram wordt bijgewerkt wanneer u een wijziging toepast. Kolomtoevoegingen verschijnen op het juiste tabelkaartje. Verwijderde elementen verdwijnen uit het diagram. Het proces behoudt alle relaties.

Schemawijzigingen controleren

Nadat u schemabewerkingen hebt aangebracht via GitHub Copilot of de gebruikersinterface, controleert u alle wijzigingen die in behandeling zijn voordat u ze toepast op de database.

Schemaverschilweergave

Selecteer de knop Wijzigingen weergeven op de werkbalk Schemaontwerper om de diff-weergave te openen. In de diff-weergave wordt het volgende weergegeven:

  • Objecten, zoals tabellen, kolommen en refererende sleutels, zijn duidelijk gemarkeerd als Toegevoegd.
  • Verwijderde objecten die zijn gemarkeerd als Verwijderd.
  • Gewijzigde objecten die de waarden voor en na laten zien voor gegevenstype, nullwaarde-toelaatbaarheid, identiteit, standaardwaarden en sleutelvlaggen.
  • Schema-gekwalificeerde namen voor alle objecten, zoals schema.table en schema.column.
  • Een optie Ongedaan maken die wordt weergegeven wanneer u de muisaanwijzer op afzonderlijke wijzigingen plaatst.

Schermopname van de schemaverschilweergave met toegevoegde, verwijderde en gewijzigde schemaobjecten.

GitHub Copilot-wijzigingsbeoordeling

Wanneer GitHub Copilot meerdere schemabewerkingen toepast, wordt de evaluatie Copilot Wijzigingen automatisch gestart. In deze begeleide stroom ziet u elke door AI voorgestelde bewerking, zodat u ze één voor één kunt bekijken:

  1. Navigeer vooruit en achteruit tussen wijzigingen.
  2. Selecteer Accepteren om een wijziging te behouden of Ongedaan maken om het ongedaan te maken.
  3. Selecteer de eigenschapsbadge op een wijzigingskaart om gedetailleerde voor- en nawaarden weer te geven.

Schermopname van de gitHub Copilot-wijzigingsbeoordelingsstroom met de knoppen Accepteren en Ongedaan maken voor elke schemawijziging.

Selecteer de eigenschapsbadge op een wijzigingskaart om gedetailleerde waarden voor en na de gewijzigde eigenschap weer te geven:

Schermopname van de detailweergave van een wijzigingskaart met voor- en nawaarden voor een gewijzigde schema-eigenschap.

Een volledig nieuw schema opstarten

GitHub Copilot kan volledige toepassingsschema's genereren. Open in een lege database de SchemaOntwerper met het GitHub Copilot-chatvenster en beschrijf een toepassingsconcept. GitHub Copilot bouwt het gegevensmodel, waaronder tabellen, kolommen, primaire sleutels, refererende sleutels en relaties.

Voorbeelden van prompts voor schema-opstarten zijn:

  • "Build a Twitter clone schema from scratch"
  • "Create a blog platform schema with users, posts, comments, and tags"
  • "Design an inventory management system with warehouses, products, stock levels, and suppliers"
  • "Generate a restaurant reservation system with tables for restaurants, menus, customers, and reservations"

Nadat GitHub Copilot het oorspronkelijke schema heeft gegenereerd, kunt u het blijven ontwikkelen met vervolgprompts zoals "Add a comments feature to this blog platform" of "Add direct messaging to this Twitter clone".

Externe artefacten importeren

GitHub Copilot kan externe context accepteren om schemaontwerp te genereren of te informeren. Ondersteunde invoer omvat JSON-gegevens, documenten, afbeeldingen of een indeling die door GitHub Copilot wordt ondersteund.

Hier volgen enkele promptvoorbeelden voor het importeren van externe artefacten:

  • "Import this JSON and model it as tables" gevolgd door een JSON-nettolading
  • "I have this API response format, create tables to store this data" gevolgd door een voorbeeld-JSON-antwoord
  • Voeg een document of afbeelding toe en vraag het volgende: "Create a schema based on this document"

Geneste objecten in JSON worden gemodelleerd als afzonderlijke gerelateerde tabellen. Schema Designer leidt gegevenstypen af van de invoer en maakt externe sleutelrelaties voor geneste structuren.

Schermopname van GitHub Copilot waarmee een JSON-nettolading wordt geïmporteerd en tabellen worden gegenereerd in het diagram Schema Designer.

Validatie en beschermingsmaatregelen

Naarmate schema's zich ontwikkelen, valideert GitHub Copilot wijzigingen en leidt dit tot potentiële problemen inline. Validatiecontroles zijn onder andere:

  • Er ontbreken primaire sleutels in tabellen.
  • Ongeldige of niet-ondersteunde gegevenstypen voor het SQL Server-doelplatform.
  • Normalisatieproblemen, zoals herhalende groepen die zijn opgeslagen in één kolom.
  • Dubbele kolomnamen in dezelfde tabel.
  • Foreign key-verwijzingen naar niet-bestaande tabellen of kolommen.

In GitHub Copilot worden gedetecteerde problemen inline uitgelegd en worden corrigerende acties voorgesteld voordat u doorgaat met de aangevraagde wijzigingen.

Beperkingen

  • Status van chatsessie: chatsessies houden de geschiedenis niet bij wanneer u de databasecontext overschakelt. Met een nieuwe context wordt het chatgeheugen opnieuw ingesteld.
  • Vereiste actieve databaseverbinding: u hebt een actieve databaseverbinding nodig via de MSSQL-extensie om schema's te laden en te wijzigen. Wanneer u GitHub Copilot gebruikt in de agentmodus, kan de agent de verbinding voor u instellen.
  • Door AI gegenereerde uitvoer moet worden gecontroleerd: GitHub Copilot kan onjuiste of suboptimale schemaaanbeveling voorstellen. Controleer altijd gegenereerde SQL- en schemawijzigingen voordat u naar uw database publiceert.

Feedback en ondersteuning

Als u ideeën, feedback of contact wilt opnemen met de community, kunt u deelnemen aan de discussie op https://aka.ms/vscode-mssql-discussions. Als u een fout wilt melden, gaat u naar https://aka.ms/vscode-mssql-bug. Als u een nieuwe functie wilt aanvragen, gaat u naar https://aka.ms/vscode-mssql-feature-request.