Texte vers SQL - c'est-à-dire générer des requêtes SQL précises à partir de questions en langage naturel - est une interface passionnante entre le langage naturel et le traitement structuré des données.
Pour que ce type d'IA fonctionne, elle a besoin d'un contexte réaliste : tableaux, colonnes, relations et contenus.
C'est précisément là que les exemples de bases de données entrent en jeu.
Dans cet article, je présente quelques exemples de bases de données SQL open source que l'on peut utiliser immédiatement pour faire ses propres essais ou tester un modèle texte vers SQL.
Aviano DB - Système de location de voitures
Cas d'utilisation :
Cette base de données représente un système complet de location de voitures - y compris les clients, les véhicules, les sites, l'assurance, les factures et les options supplémentaires. Elle est idéale pour s'entraîner aux jointures SQL complexes, aux totaux, aux regroupements et aux fonctions de date.
Base de données :
La BD Aviano contient des tableaux réalistes tels que customer, vehicle_type, rental, fuel_option, insurance, equipment_type et bien d'autres encore. Un ERD est inclus dans le repo.
Texte Prompt Exemple :
"Montre-moi tous les clients avec leur nom, la catégorie de véhicule, le lieu de prise en charge et la date de prise en charge".
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 - Médias classiques
Cas d'utilisation :
Chinook est parfait pour les analyses liées à la musique et aux médias. Il contient des artistes, des albums, des pistes, des genres, des clients et des ventes. Idéal pour les débutants et les cas d'utilisation de business intelligence.
Base de données :
Tableaux typiques : Customer, Invoice, InvoiceLine, Track, Album, Artist.
Texte Prompt Exemple :
"Quels sont les cinq artistes qui ont généré le plus de ventes ?"
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 - Un classique du commerce B2B
Cas d'utilisation :
Northwind simule la distribution d'une entreprise de vente en gros avec des produits, des commandes, des fournisseurs et des employés. La base de données est riche en relations et se prête particulièrement bien aux exercices JOIN et à l'analyse de la logique commerciale.
Base de données :
Tableaux de base : Orders, OrderDetails, Products, Customers, Suppliers, Employees, Shippers.
Texte Prompt Exemple :
"Quels employés ont traité des commandes en mai 1997 et quel était le chiffre d'affaires total ?"
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;
Base de données de pizzas
Cas d'utilisation :
Base de données minimaliste autour des commandes de pizzas. Idéal pour les démonstrations, les tests de performance ou la création d'un premier chatbot pour les restaurants.
Base de données :
Des tableaux comme pizzas, orders, customers, toppings, order_details.
Texte Prompt Exemple :
"Quelles sont les pizzas les plus commandées le mois dernier ?"
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;
Employés Base de données
But :
Mise à disposition d'une version modifiée de la base de données de démonstration PostgreSQL "employees".
Contenu :
- Fichiers SQL et Java pour l'importation et l'accès.
- La structure et les données correspondent en partie à la base de données MySQL bien connue "employees".
- Focalisation sur l'octroi correct de licences et l'attribution des sources d'origine.
Particularités :
- Licence : Licence Creative Commons Attribution-Share Alike 3.0 Unported
- Basé à l'origine sur des modèles d'autres référentiels, avec des modifications.
- Pas de focalisation sur une interface web ou une API, uniquement la mise à disposition de données et de structures.
Analyse de données basée sur un aéroport
Projet d'apprentissage de SQL, MySQL et de l'analyse de données sur la base d'un ensemble de données d'aéroport.
Contenu :
- Dumps SQL (schéma et données) d'un enregistrement d'aéroport modifié ("ffdb").
- Instructions d'installation avec
mysqletmysqlsh. - Préparation pour Analytics & HeatWave-ML d'Oracle.
Particularités :
- Données provenant à l'origine de l'étude allemande aéroportendb.cc, traduit en anglais.
- Contient des fichiers SQL volumineux (plus de 90 Mo).
- Intégration avec HeatWave/ML documentée.
- Licence non explicitement indiquée, mais références aux sources originales disponibles.
Analyse des noms de bébés aux États-Unis au niveau national et de l'État
Visualisation et analyse des noms de bébés aux États-Unis au niveau national et au niveau des États.
Particularités :
- Source : data.gov
- Contient des informations de base sur l'importation de données.
- Licence : Licence MIT
Simulation d'une boutique en ligne avec 1000 clients, 2000 commandes et 1000 produits
Mise à disposition d'un ensemble de données PostgreSQL pour la simulation d'une boutique en ligne.
JannikArndt/PostgreSQLSampleDatabase
Contenu :
- Schéma avec :
- 1000 clients
- 2000 commandes
- 1000 produits avec un total de 17.730 articles
src/contient des scripts pour la création de BD.data/contient un dump pour la restauration viarestore.sh.
Conclusion
Il existe quelques bases de données SQL open source qui peuvent être utilisées pour des essais et des tests de modèles texte vers SQL.
S'il y a d'autres bases de données SQL disponibles gratuitement que vous souhaitez que nous répertorions ici, n'hésitez pas à nous les faire parvenir en retour.
