Text zu SQL – also aus natürlichsprachlichen Fragen präzise SQL-Queries zu generieren – ist eine spannende Schnittstellen zwischen natürlicher Sprache und strukturierter Datenverarbeitung.
Damit diese Art von KI funktioniert, braucht sie einen realistischen Kontext: Tabellen, Spalten, Beziehungen und Inhalte.
Genau hier kommen Beispiel-Datenbanken ins Spiel.
In diesem Beitrag stelle ich einige beispielhafte Open-Source-SQL-Datenbanken vor, die man sofort verwenden kann, um eigene Versuche durch zu führen oder oder ein Text-zu-SQL-Modell zu testen.
Aviano DB – Car Rental System
Use Case:
Diese Datenbank bildet ein vollständiges Mietwagensystem ab – inklusive Kunden, Fahrzeuge, Standorte, Versicherung, Rechnungen und Zusatzoptionen. Sie eignet sich hervorragend, um komplexe SQL-Joins, Summen, Gruppierungen und Datumsfunktionen zu trainieren.
Datenbank:
Die Aviano-DB enthält realistische Tabellen wie customer, vehicle_type, rental, fuel_option, insurance, equipment_type und viele mehr. Ein ERD ist im Repo enthalten.
Text Prompt Beispiel:
„Zeige mir alle Kunden mit ihrem Namen, der Fahrzeugkategorie, dem Abholort und dem Abholdatum.“
SELECT
CONCAT_WS(',', c.first_name, c.last_name) AS 'Customer Name',
vt.name AS 'Car Type',
CONCAT_WS(',', l1.city, l1.state) AS 'Pickup Location',
r.start_date as 'Pickup Date'
FROM
rental AS r
JOIN customer AS c ON r.customer_id = c.id
JOIN vehicle_type AS vt ON r.vehicle_type_id = vt.id
JOIN location AS l1 ON r.pickup_location_id = l1.id;
Chinook DB – Klassisches Mediengeschäft
Use Case:
Chinook ist perfekt für Musik- und Medien-bezogene Analysen. Es enthält Künstler, Alben, Tracks, Genres, Kunden und Verkäufe. Ideal für Einsteiger und Business-Intelligence-Use-Cases.
Datenbank:
Typische Tabellen: Customer, Invoice, InvoiceLine, Track, Album, Artist.
Text Prompt Beispiel:
„Welche fünf Künstler haben die meisten Verkäufe generiert?“
SELECT
a.Name AS Artist,
SUM(il.Quantity) AS TotalSales
FROM
InvoiceLine il
JOIN Track t ON il.TrackId = t.TrackId
JOIN Album al ON t.AlbumId = al.AlbumId
JOIN Artist a ON al.ArtistId = a.ArtistId
GROUP BY a.Name
ORDER BY TotalSales DESC
LIMIT 5;
Northwind Traders – Klassiker für B2B-Handel
Use Case:
Northwind simuliert den Vertrieb eines Großhandelsunternehmens mit Produkten, Bestellungen, Lieferanten und Mitarbeitern. Die Datenbank ist reich an Relationen und eignet sich besonders gut für JOIN-Übungen und Geschäftslogik-Analysen.
Datenbank:
Kern-Tabellen: Orders, OrderDetails, Products, Customers, Suppliers, Employees, Shippers.
Text Prompt Beispiel:
„Welche Mitarbeiter haben im Mai 1997 Bestellungen abgewickelt und wie hoch war der Gesamtumsatz?“
SELECT
e.FirstName || ' ' || e.LastName AS Employee,
SUM(od.UnitPrice * od.Quantity) AS TotalSales
FROM
Employees e
JOIN Orders o ON e.EmployeeID = o.EmployeeID
JOIN OrderDetails od ON o.OrderID = od.OrderID
WHERE
o.OrderDate BETWEEN '1997-05-01' AND '1997-05-31'
GROUP BY Employee;
Pizza-Datenbank
Use Case:
Minimalistische Datenbank rund um Pizza-Bestellungen. Ideal für Demonstrationen, Performance-Tests oder den Aufbau eines ersten Chatbots für Restaurants.
Datenbank:
Tabellen wie pizzas, orders, customers, toppings, order_details.
Text Prompt Beispiel:
„Welche Pizzas wurden im letzten Monat am häufigsten bestellt?“
SELECT
p.name,
COUNT(od.pizza_id) AS TimesOrdered
FROM
order_details od
JOIN pizzas p ON od.pizza_id = p.id
JOIN orders o ON od.order_id = o.id
WHERE
o.order_date >= DATE('now', '-1 month')
GROUP BY p.name
ORDER BY TimesOrdered DESC;
Mitarbeiter Datenbank
Zweck:
Bereitstellung einer modifizierten Version der PostgreSQL-Demodatenbank „employees“.
Inhalt:
- SQL- und Java-Dateien für den Import und Zugriff.
- Struktur und Daten entsprechen in Teilen der bekannten MySQL-Datenbank „employees“.
- Fokus auf korrekter Lizenzierung und Attribution der Ursprungsquellen.
Besonderheiten:
- Lizenz: Creative Commons Attribution-Share Alike 3.0 Unported License
- Ursprünglich auf Vorlagen anderer Repositories basierend, mit Änderungen versehen.
- Kein Fokus auf eine Web-Oberfläche oder API, rein Daten- und Strukturbereitstellung.
Datenanalyse auf Basis eines Flughafens
Lernprojekt für SQL, MySQL und Datenanalyse auf Basis eines Flughafen-Datensatzes.
Inhalt:
- SQL-Dumps (Schema und Daten) eines modifizierten Flughafen-Datensatzes („ffdb“).
- Anleitung zur Installation mit
mysqlundmysqlsh. - Vorbereitung für Analytics & HeatWave-ML von Oracle.
Besonderheiten:
- Daten ursprünglich aus der deutschen flughafendb.cc, auf Englisch übersetzt.
- Enthält große SQL-Dateien (über 90 MB).
- Integration mit HeatWave/ML dokumentiert.
- Lizenz nicht explizit angegeben, aber Verweise auf Originalquellen vorhanden.
Analyse von Babynamen in den USA auf nationaler und bundesstaatlicher
Visualisierung und Analyse von Babynamen in den USA auf nationaler und bundesstaatlicher Ebene.
Besonderheiten:
- Quelle: data.gov
- Enthält grundlegende Hinweise zum Datenimport.
- Lizenz: MIT License
Simulation eines Webshops mit 1000 Kunden, 2000 Bestellungen und 1000 Produkten
Bereitstellung eines PostgreSQL-Datensatzes zur Simulation eines Webshops.
JannikArndt/PostgreSQLSampleDatabase
Inhalt:
- Schema mit:
- 1000 Kunden
- 2000 Bestellungen
- 1000 Produkten mit insgesamt 17.730 Artikeln
src/enthält Skripte zur DB-Erzeugung.data/enthält Dump zur Wiederherstellung viarestore.sh.
Fazit
Es gibt einige Open-Source-SQL-Datenbanken, die für Versuche und Tests von Text-zu-SQL Modellen verwendet werden kann.
Wenn es weitere frei verfügbare SQL Datenbanken gibt, die wir hier auflisten sollen, lasse uns diese gerne im Feedback zukommen.
