Generative AI: Mit ChatGPT als Co-Pilot im Bereich 'Datenbanken & SQL'

Donnerstag, 31.8.2023

Generative AI: Mit ChatGPT als Co-Pilot im Bereich 'Datenbanken & SQL'

Generative künstliche Intelligenzen erlangen in einer Welt, die voller Daten ist, immer mehr Aufmerksamkeit. In den letzten Jahren hat hier ein erheblicher Fortschritt, vorallem von Modell GPT-3.5 zu GPT-4, stattgefunden. Viele Entscheidungsträgerinnen und Data Scientistinnen fragen sich, wie sie im Rahmen Ihrer täglichen Arbeit mit Datenbanken und SQL von dieser Weiterentwicklung sinnvoll profitieren können und stellen sich die Fragen:

  • "Wie viel mehr Self-Service ist in klassischen Datenanalysen mittels SQL durch ChatGPT möglich?"
  • "Schaffe ich mit ChatGPT leichter den Sprung vom Dateninteressierten zum Data Scientist oder BI Experten?"
  • "Welche Use Cases sind für ChatGPT im Bereich Data Engineering sinnvoll?"
  • "Welche Risiken bringt die Nutzung von ChatGPT für Data Engineers, Data Analysts und und Data Scientists?"

Wer Grundwissen im Bereich Daten hat, kann durch ChatGPT als Co-Pilot profitieren und besser in das Thema einsteigen - es gibt aber auch klare Grenzen und Risiken. In diesem Artikel finden wir Antworten auf die oben genannten Fragen. Dafür haben wir ChatGPT im Kontext von Datenbanken ausprobiert und berichten von unseren Erfahrungen, sinnvollen und weniger sinnvollen UseCases.

ChatGPT (Generative Pre-trained Transformer) ist ein sprachbasierter KI-Assistent der Firma OpenAI, der mit den Anwender:innen im Chat interagiert und hierbei Texte ausgibt. Dabei generiert ChatGPT Texte, indem die KI das nächst wahrscheinliche Wort berechnet und somit die wahrscheinlichste Antwort auf die Eingabe der Nutzer:innen berechnet. In diesem Artikel testen wir, inwieweit ChatGPT im Bereich Data Science bei unserer Arbeit mit Datenbanken und SQL unterstützen kann, und beleuchten dabei folgende Dinge:

Für diesen Artikel haben wir ChatGPT Plus benutzt. Beim Öffnen eines neuen Worksheets in ChatGPT Plus kann entschieden werden, welches GPT-Modell verwendet werden soll. Möglich ist GPT-3.5 und seit März 2023 ist auch GPT-4 möglich (Antworten auf Basis von GPT-3.5 sind in der Bildunterschrift grün gekennzeichnet und Antworten auf Basis von GPT-4 lila). Nach Angaben von OpenAI kann GPT-4 dabei schwerere Probleme lösen als seine Vorgänger und liefert Ergebnisse mit höherer Genauigkeit und verbesserter Kreativität. GPT-3.5 liefert hingegen schnellere Antworten für alltägliche Aufgaben. Datenstand bei beiden Versionen ist 12. September 2021. Hier haben wir die Ergebnisse beiden Modelle miteinander verglichen.

Bild: Auswahlmöglichkeit des GPT Modells beim Öffnen eines neuen Chats mit ChatGPTBild 1: Auswahlmöglichkeiten des GPT Modells beim Öffnen eines neuen Chats mit ChatGPT

 

Nutzen von ChatGPT im allgemeinen Umgang mit SQL

Als ersten haben wir ChatGPT nach allgemeinem Faktenwissen gefragt und ChatGPT gebeten, uns an den Namen von SQL-Befehlen zu erinnern und Code aufzuräumen kann:

 

Definition von Begriffen (erfolgreich, aber Antworten müssen gegengeprüft werden)

Als erstes haben wir ChatGPT nach der Definition des Begriffs 'SQL' gefragt:

image2023-7-7_14-36-55

Bild 2: ChatGPT mit Modell GPT-3.5 definiert uns den Begriff 'SQL'

Die Antwort ist auf den ersten Blick passend und bietet einen guten ersten Aufschlag. Weitere Verbesserungen, Spezifizierungen oder eine kürzere Formulierung der Definition kann man durch geschicktes Prompting erzielen. Hier sollte man aber unbedingt prüfen, ob die von ChatGPT vorgeschlagene Definition wirklich vollständig und korrekt ist. Ebenfalls kann ChatGPT gut nach Beispielen zu einer Definition oder Funktion gebeten werden.

 

Tipps zu Performance (erfolgreich)

Auf die Frage "Hast du Tipps, wie ich die Performance meiner SQLs verbessern kann und worauf ich achten kann?" hat ChatGPT viele Antworten:

Bild: ChatGPT mit Modell 3.5 fasst mir Tipps für die Performance von SQL-Statements zusammen

Bild 3: ChatGPT mit Modell 3.5 fasst mir Tipps für die Performance von SQL-Statements zusammen

 

SQL-Code formatieren (erfolgreich - aber Code muss überprüft werden, ob alles richtig geändert wurde)

Die Frage, ob ChatGPT beim Aufräumen eines SQL-Statments helfen kann, liefert gute Ergebnisse, wenn man geschicktes Prompting nutzt und ChatGPT alle nötigen Informationen gibt. Gestartet sind wir mit einer schlecht formatierten SQL-query, der Angabe, auf welchem Datenbankmanagementsystem wir uns bewegen, und der Bitte, dieses SQL-query besser zu formatieren . Die Zusatzinfo, welches Datenbankmanagementsystem wir verwenden, ist eine wichtige Zusatzinfo für ChatGPT, da sich Standards je nach System unterschieden. Gibt man kein System an, fragt ChatGPT nicht, welches System man benutzt.

Je nachdem, ob wir ChatGPT-3.5 und ChatGPT-4 verwenden, kommt ein anderes Ergebnis heraus:

Bild Ergebnis mit GPT-3.5

Bild 4: Ergebnis mit GPT-3.5

Bild: Ergebnis mit GPT-4

Bild 5: Ergebnis mit GPT-4

Dieses Ergebnis sieht in beiden Fällen schon viel besser aus und ChatGPT hat auch Erklärungen mitgeliefert, warum die Änderungen durchgeführt wurden. Das Ergebnis von GPT-4 ist dabei unserer Meinung nacdeutlich besser, denn es hat zum Beispiel die ausgewählten Spalten eingerückt und die öffnende Klammer auf dieselbe Einrückungsebene wie die zugehörige schließende Klammer gesetzt. Durch geschicktes Prompting kann man nun weitere Änderungen am Code anfordern. Die Tabellenaliasse "a" und "b" sind zum Beispiel wenig sprechend. Durch den Promt "Kannst du zusätzlich den Tabellenalias "a" durch das Wort "vertrag" und den Tabellenalias b durch das Wort "zusatzdaten" ersetzen." haben wir versucht, das Ergebnis weiter zu verbessern. GPT-3.5 hat zudem die geöffnete Klammer noch nicht auf dieselbe Ebene getan wie die zugehörige schließende Klammer. Daher hat ChatGPT-3.5 diese Anweisung noch zusätzlich erhalten:

Bild 6: Ergebnis mit ChatGPT -3.5

Bild 6: Ergebnis mit ChatGPT-3.5

Bild 7: Ergebnis mit ChatGPT4

Bild 7: Ergebnis mit ChatGPT-4

Die Änderung der Spaltenaliasse klappt sowohl mit GPT-3.5 als auch GPT-4. In der Erklärung oben hat GPT-3.5 angekündigt, die geöffnete Klammer auf dieselbe Einrückungsebene wie die dazugehörige schließende Klammer platziert hat - dies ist aber nicht geschehen.

GPT-4 hat in diesem Fall also deutlich besser abgeschnitten als GPT-3.5, aber insgesamt haben uns beide Modelle weitergeholfen. Trotzdem ist es wichtig, den Code, den man erhält auf ungefragte Veränderungen und Richtigkeit zu überprüfen.

 

Erklären von Fehlermeldungen (nicht erfolgreich)

Eine reizvolle Anwendungsmöglichkeit von ChatGPT ist das Erklären von Fehlermeldungen. Naheliegende Anfragen können sein: „Wieso wird mir bei diesem Statement diese Fehlermeldung geworfen?“ oder „Wieso ist dieses Statement nicht ausführbar?“. Die Ergebnisse von ChatGPT zu Fragen nach Fehlermeldungen von SQL-Statements sind als durchwachsen zu bewerten. Das Programm erkennt zwar durchaus echte Fehler, solange das SQL-Statement nicht allzu komplex ist und die Fehler relativ simpel sind, wie „in diesem SELECT-Statement ist ein überflüssiges Komma“. Bei GPT3.5 werden allerdings auch selbstsicher Fehler detektiert, die gar keine sind, sodass ChatGPT auf der Suche nach Erklärungen Verwirrung stiften kann.

Bei komplexeren Fehlern, deren Erklärung über Syntaxfehler hinausgeht und Kenntnisse über weitere Inhalte der Datenbank nötig sind (z.B weitere Packages, Schemata, Tabellen), stößt auch GPT-4 schnell an Grenzen. Somit ist ChatGPT zum Erklären von Fehlermeldungen nicht besonders hilfreich. Entweder sind die Fehler so simpel, dass die geworfene Fehlermeldung schon ausreicht, um den Fehler zu finden oder die Fehler stehen in Zusammenhang mit Datenbankinhalten außerhalb des mitgegebenen Statements, von denen ChatGPT logischerweise keine Kenntnis hat und dementsprechend keine Hilfe sein kann. Möglicherweise könnte ChatGPT in diesem Fall hilfreich sein, wenn es an die Datenbank angeschlossen werden kann, sodass ChatGPT auf das nötige Hintergrundwissen zugreifen könnte (zum Beispiel mit der Smart Assistance von DBeaver, dem Daten Chat von https://www.getdot.aiSecoda.ai oder Open Source Ansätzen analog zu SnowChat für Snowflake oder andere Cloud-Datenbanken).

Bild: Auch GPT-4 hat bei langen SQL-Statements keine Erklärung für Fehler

Bild 8: Auch GPT-4 hat bei langen SQL-Statements keine Erklärung für Fehler

 

Erinnerung und Erklärung von SQL-Befehlen sowie Generierung von Beispielen (erfolgreich)

Eine gute Anwendungsmöglichkeit ist es, ChatGPT eine vage Erklärung eines Keywords zu geben mit der Bitte, den korrekten Befehl herauszugeben, wenn man den Namen des Befehls gerade nicht im Kopf hat:

Bild: ChatGPT erinnert uns an den Namen eines Befehls, den wir vergessen haben

Bild 9: ChatGPT erinnert uns an den Namen eines Befehls, den wir vergessen haben

Neben Erklärungen zu Fehlermeldungen von SQL Statements (siehe oben), kann ChatGPT auch dazu benutzt werden, SQL-Statemens erklären zu lassen. Ein Anwendungsfall ist hierbei, ähnlich zu der Thematik "Fehlermeldungen", ChatGPT ein SQL-Statement zu geben und sich das Statement erklären zu lassen. Erste Versuche hiermit kamen zu zufriedenstellenden Ergebnissen. Das gilt sowohl für Versuche mit „gewöhnlichen“ SQL-Statements. Je länger die Statements/Skripte jedoch sind, desto oberflächlicher werden die Erklärungen von ChatGPT. In solchen Fällen kann es sich lohnen nachträglich, auch in mehreren Schritten, gezielt bestimmte Abschnitte nachzufragen.

ChatGPT kann dabei nicht nur zur Erklärung von ganzen Statements genutzt werden, sondern kann auch im Entwicklungsprozess zur Hilfe gezogen werden, um sich SQL-Commands erklären zu lassen, z.B TRIM(), UPPER() oder DECODE().

 

Orientierung im Technologie-Dschungel (begrenzt)

Einen vollständigen Überblick über das Thema Datenbanken hat ChatGPT unsere Meinung nach nur begrenzt. GPT-3.5 halluziniert und schlägt einem nicht-existente Methoden oder falsche Quellen vor. Auch GPT-4 gibt nur begenzt hilfreiche Antworten. Wir haben ChatGPT nach Empfehlungen gefragt, welche Datenbankmanagementsysteme zu gegebenen Rahmenbedingungen in Frage kommen und was die Unterschiede sind. Hier liefert ChatGPT oberflächliche Vergleiche - hilft aber einen guten ersten Aufschlag für einen Vergleich zu machen. Kompatibilitätsfragen von verschiedenen Versionen beantwortet ChatGPT auch nur begrenzt richtig. Dies ist vorallem auffällig zu Funktionalitäten, die besonders neu sind oder im Internet nur wenig dokumentiert sind.

Ein gutes Einsatzszenario ist unserer Meinung nach, ChatGPT nach Release Notes im Internet suchen zu lassen. Schlägt ChatGPT hier eine Quelle vor, kann man gut überprüfen, ob diese Quelle existiert und korrekt ist.

 

Unterstützung beim Lernen (erfolgreich)

Als dritter Schwerpunkt dieses Blogposts soll noch auf die Einsatzmöglichkeiten von ChatGPT im Kontext von SQL zu Lernzwecken eingegangen werden. Besteht der Wunsch SQL lernen zu wollen, kann ChatGPT nach einem Lernplan für einen selbst gewählten Zeitraum inklusive Lernmaterialien gefragt werden. Hierzu liefert das Programm in thematisch sinnvoller Reihenfolge Literatur (sowohl Fachbücher als auch Links zu entsprechenden Websites), die nach eigenem Bedarf durchgearbeitet werden können. Die Herausgabe solcher Literatur zum Thema 'SQL' hat in unserem Fall überraschend gut funktioniert - wohingegen ChatGPT bei anderen Themengebieten dazu neigt, falsche Links zu generieren oder Literatur zu "erfinden.

Des Weiteren ist es auch möglich, ChatGPT Statements für Übungstabellen inklusive Werten ausgeben zu lassen. Anschließend ist es möglich, ChatGPT Übungsaufgaben mit gewünschtem Fokus erstellen zu lassen, um diese selbstständig durchzuarbeiten. Auf Nachfrage kann ChatGPT ebenfalls die Lösungen für die eigenen Aufgaben ausgeben. Zur Erläuterung erstellt es sowohl die Tabelle mit entsprechenden Werten aus der Übungsaufgabe als auch das Ergebnis. Kombiniert mit der oben erwähnten Anwendungsmöglichkeit von ChatGPT sich SQL-Code und -Commands erklären zu lassen, kann ChatGPT ein sehr nützliches Werkzeug sein, die eigenen Kenntnisse in SQL in strukturierter Form zu verbessern.

 

Fazit zu ChatGPT im Datenbankkontext

Aktuell sehen wir, dass ChatGPT im Bereich "Datenbanken und SQL" gute Ergebnisse in vielen Use Cases liefert. Wer Grundwissen im Bereich Daten hat, kann durch ChatGPT profitieren und mit ChatGPT als Co-Pilot besser in das Thema einsteigen. Mit dem nötigen Grundwissen wird so auch mehr Self-Service möglich. Aktuell sind aber nicht alle UseCases sinnvoll - hier kann jeder ausprobieren, welcher Use Case weiterhilft und das Ergebnis mit Verstand genießen. 

Von GPT-3.5 auf GPT-4 sind viele Funktionen sichtlich verbessert worden. Dabei macht die KI aber immernoch in manchen Fällen Fehler oder liefert ungenaue oder unvollständige Ergebnisse. Trotz verbesserter Leistung von Version zu Version, sollte man dringend jeden Vorschlag einer KI kritisch beäugen. Vorallem, wenn ein Ergebnis fast richtig ist, neigen viele dazu, der KI zu glauben, ohne das Ergebnis kritisch zu beäugen. Dabei darf man nicht vergessen, dass ChatGPT ein Textgenerierungstool ist, das berechnet, welches Wort in einem Text am wahrscheinlichsten als nächstes genannt wird und keine Antwort abschließend mit 100% Richtigkeit beantworter werden kann.

Insgesamt gilt:

  • Im Kontext "Datenbanken" bietet ChatGPT gute Inspiriation zu verschiedenen Themen an, die mehr Self-Service ermöglicht.
  • Anwender:innen sollten aber zwingend alles auf Korrektheit und Vollständigkeit prüfen. Hier zu ist ein gewisses Maß an Grundwissen nötig.
  • Vorsicht gilt auch beim Thema "Vermenschlichung" von KI. Man sollte immer im Hinterkopf behalten, dass eine KI nicht wirklich eigenständig denkt.
  • Bei neuen Funktionalitäten, die noch nicht gut dokumentiert sind, werden Datenstandsgrenzen sichtbar.
  • Durch geschicktes Prompting (Prompt Engineering) kann die Antwort von ChatGPT beeinflusst werden. Umformulierungen einer Frage bringen unter Umständen andere inhaltliche Antworten - dies kann gut oder schlecht sein.
  • Ergebnisse variieren und sind nicht deterministisch.
  • Es ist wichtig, ChatGPT ausreichend Kontext zu geben. Indirektes Wissen, das Anwender haben, hat ChatGPT nicht und man vergisst schnell, ChatGPT die nötigen Informationen mitzugeben. Dieser Kontext ist wichtig, damit die KI möglichst wenig "halluziniert". Auch hier ist Grundwissen Voraussetzung.

Im Allgemeinen herrscht große Unsicherheit, wohin der Bereich generative künstliche Intelligenz führen wird. Wir sind gespannt, welche Änderungen und Verbesserungen die weiteren ChatGPT-Versionen bringen und wohin der Weg von OpenAI und generativen künstlichen Intelligenzen führen wird und wie das unsere Arbeit beeinflussen wird.

Wir helfen gern bei der Orientierung und beim Heben von Potenzialen.


Die Autor:innen

Henry-Keller_viadee
Henry Keller

Henry Keller ist seit März 2023 bei der viadee als IT-Berater mit dem Schwerpunkt Data Science.

Dr. Ina Humpert
Dr. Ina Humpert

Dr. Ina Humpert ist als Beraterin bei der viadee IT-Unternehmensberatung tätig. Ihr Schwerpunkt ist Data Science.

 


zurück zur Blogübersicht

Diese Beiträge könnten Sie ebenfalls interessieren

Keinen Beitrag verpassen – viadee Blog abonnieren

Jetzt Blog abonnieren!

Kommentare

Dr. Ina Humpert

Dr. Ina Humpert

Dr. Ina Humpert ist als Beraterin bei der viadee IT-Unternehmensberatung tätig. Ihr Schwerpunkt ist Data Science.

Ina Humpert auf LinkedIn Ina Humpert bei Xing