LadybugDB — Mission
Sections
Réglages de lecture
Voix naturelle enregistrée pour ce cours, la même dans tous les navigateurs.
Aucune voix pour cette langue dans ce navigateur.
Plus de voix
Code et termes techniques en anglais
Désactivé : la voix de la page lit tout, sans pause entre deux voix.
Aucune voix pour cette langue dans ce navigateur.
Plus de voix
D’autres voix : Microsoft Edge propose des voix naturelles en ligne, et Windows (Paramètres › Heure et langue › Voix), macOS et Android en installent d’autres.
Pourquoi j’apprends ça
Section intitulée « Pourquoi j’apprends ça »Le cours DuckDB répond à des questions sur des lignes : combien d’exécutions, combien de temps, quel step. D’autres questions sur ce site portent sur des connexions. Combien de clics entre la page d’accueil et une leçon ? Quels fichiers changent ensemble ? Sur quels commits un workflow en échec a-t-il tourné ? En SQL, chacune d’elles devient une chaîne d’auto-jointures, ou une CTE récursive dont je dois deviner la profondeur.
Une base de données orientée graphe stocke les connexions elles-mêmes, et son langage de requête décrit directement les chemins. LadybugDB en est une qui s’exécute dans ton processus, comme DuckDB et SQLite : aucun serveur à installer.
À qui s’adresse ce cours
Section intitulée « À qui s’adresse ce cours »Tu connais le SQL : SELECT, JOIN, GROUP BY, peut-être une CTE récursive. Tu écris du C# ou du Java. Tu n’as besoin de rien savoir des bases de données orientées graphe ni de Cypher.
LadybugDB en un tableau
Section intitulée « LadybugDB en un tableau »| Tables de graphe de SQL Server | Neo4j | LadybugDB | |
|---|---|---|---|
| S’exécute | comme un serveur | comme un serveur | dans ton processus |
| Schéma | tables créées AS NODE et AS EDGE |
facultatif : les étiquettes et les propriétés apparaissent quand tu les écris | obligatoire : tables de nœuds et tables de relations, avec des colonnes typées |
| Langage de requête | T-SQL avec MATCH |
Cypher | Cypher |
| Chemins de longueur quelconque | SHORTEST_PATH |
motifs de longueur variable | motifs de longueur variable, plus courts chemins |
| Depuis .NET | Microsoft.Data.SqlClient |
pilote .NET de Neo4j | paquet NuGet LadybugDB |
| Depuis Java | pilote JDBC | pilote Java de Neo4j | paquet Maven com.ladybugdb:lbug |
Sources : architecture de SQL Graph, manuel Cypher de Neo4j, différences entre LadybugDB et Neo4j.
LadybugDB s’appelait auparavant Kuzu. Les auteurs de Kuzu ont archivé son dépôt ; LadybugDB poursuit la base de code sous licence MIT, avec de nouveaux noms : la CLI s’appelle lbug, et la documentation nomme les fichiers de base de données .lbdb.
Les données
Section intitulée « Les données »code/ladybugdb/data/extract.py lit ce dépôt au commit cbcbb42 (2026-09-14) et écrit six fichiers CSV dans code/ladybugdb/data :
pages.csv: les 319 pages du site (117 en anglais, 101 en français, 101 en espagnol), avec leur locale, leur cours, leur titre et leur nombre de lignes ;links.csv: les 712 liens d’une page du site vers une autre, trouvés dans les liens Markdown et les attributshrefhors des blocs de code ;external_links.csv: les 3 712 liens vers 85 autres sites ;commits.csv,parents.csvetchanges.csv: les 74 commits jusqu’àcbcbb42, le parent de chacun, et les 1 019 modifications qu’ils ont apportées à 710 fichiers.
La leçon 4 ajoute les 125 exécutions de CI de code/duckdb/data/runs.json, l’instantané qu’interroge le cours DuckDB.
Les leçons 5 et 6 interrogent un autre dépôt : les projets .NET de GuitarAlchemist/ga au commit a26a7893, extraits par code/ladybugdb/data/ga/extract.py : 111 projets, 266 références de projet et 478 références de paquet.
À la fin de ce cours, je saurai
Section intitulée « À la fin de ce cours, je saurai »- modéliser des données en tables de nœuds et tables de relations, et les interroger avec des motifs Cypher ;
- charger des fichiers CSV et JSON, et trouver les lignes qui ne respectent pas le schéma ;
- écrire des chemins de longueur variable et des plus courts chemins, et connaître la sémantique de chemin qu’ils utilisent ;
- reconnaître les bugs et les limites de LadybugDB, et vérifier un résultat autrement ;
- utiliser LadybugDB depuis C# et depuis Java.
| # | Leçon | Si tu connais SQL |
|---|---|---|
| 1 | Un premier graphe : tables, CREATE, MATCH, MERGE |
CREATE TABLE, INSERT, MERGE, JOIN |
| 2 | Charger des fichiers : LOAD FROM, COPY, avertissements |
OPENROWSET, BULK INSERT |
| 3 | Chemins : longueur variable et plus courts chemins | CTE récursives |
| 4 | L’historique Git et les exécutions de CI en graphe | auto-jointures, tables de jointure |
| 5 | LadybugDB depuis C# | ADO.NET |
| 6 | LadybugDB depuis Java | JDBC |
| 7 | Algorithmes de graphe et recherche plein texte | index plein texte, CONTAINSTABLE |
| 8 | Persistance, transactions et concurrence | isolation, verrous, journal des transactions |
| 9 | Un laboratoire de graphe : traductions, cycles de prérequis, atteignabilité bornée | jeux d’essai, CTE récursive bornée |
| — | Journal |
Ressources
Section intitulée « Ressources »- Documentation de LadybugDB
- Cypher dans LadybugDB
- CLI de LadybugDB
- Code source de LadybugDB, et la version 0.20.4 qu’utilise ce cours
- openCypher : la spécification ouverte de Cypher