Outil gratuit

SQL en diagramme ER

Collez des instructions CREATE TABLE ou le dump complet d’un schéma de base de données et obtenez un diagramme ER : chaque table avec ses colonnes et ses clés, et un lien pour chaque clé étrangère. Le dialecte SQL est détecté pour vous : PostgreSQL, MySQL et MariaDB, SQL Server, SQLite et, en partie, Oracle. Aucun compte n’est nécessaire pour essayer.

Exemple de résultat

Exemple de diagramme tiré d’un exemple SQL
Essayer un exempleBoutique en ligne (PostgreSQL)SaaS multi-locataire (PostgreSQL)Vitrine e-commerce (MySQL)RH et paie (SQL Server)Appli de notes (SQLite)Boutique en ligne (Oracle)

Comment ça marche

  1. Collez ou déposez votre SQL

    Des instructions CREATE TABLE, un fichier de migration ou un dump complet issu de pg_dump, mysqldump, SSMS ou sqlite3. Vous pouvez déposer plusieurs fichiers .sql à la fois : ils sont lus ensemble, jusqu’à 8 Mo au total.

  2. Voyez le diagramme ER

    Chaque table devient une carte qui liste ses colonnes avec leur type et les marqueurs PK, FK et UK. Chaque clé étrangère devient un lien qui va de la colonne qui la porte à la clé qu’elle référence.

  3. Ouvrez-le dans Archboard

    Enregistrez-le comme nouveau diagramme pour le réorganiser, l’annoter, partager un lien ou l’exporter en SVG et PNG. Un compte Google ou GitHub suffit pour s’inscrire.

Ce qui est dessiné à partir de votre SQL

Le diagramme est construit à partir de ces éléments des instructions CREATE TABLE :

  • CREATE TABLE

    Chaque CREATE TABLE sous forme de carte au nom de la table, avec une entrée par colonne : son nom, son type et un point d’interrogation si elle accepte NULL. Les cartes affichent jusqu’à 24 colonnes, puis le nombre des colonnes restantes.

  • PRIMARY KEYUNIQUE

    Les clés primaires, marquées PK sur chacune des colonnes qu’elles couvrent, même quand elles en couvrent plusieurs. Une contrainte UNIQUE, ou un index unique créé avec CREATE UNIQUE INDEX, sur une seule colonne marque cette colonne UK.

  • FOREIGN KEYREFERENCESALTER TABLE

    Les clés étrangères écrites en ligne avec REFERENCES, déclarées comme contraintes de table ou ajoutées ensuite avec ALTER TABLE, chacune dessinée comme un lien entre les deux colonnes. Une clé qui pointe vers sa propre table, comme parent_id, est représentée aussi.

  • CREATE SCHEMA

    Les schémas, créés avec CREATE SCHEMA ou utilisés dans des noms comme sales.orders, dessinés comme des cadres autour de leurs tables quand le SQL en utilise plusieurs. Un schéma sans table n’a pas de cadre.

  • NOT NULLUNIQUE

    Des extrémités en patte de corbeau qui déduisent la relation des colonnes : une clé étrangère NOT NULL rend la relation obligatoire, une clé qui accepte NULL la rend facultative, et une clé étrangère qui est aussi unique ou primaire en fait une relation un-à-un.

Les dialectes SQL lus

PostgreSQL, MySQL et MariaDB, SQL Server et SQLite sont lus chacun avec leurs propres règles de guillemets, de commentaires et de séparateurs d’instructions : un fichier pg_dump, un mysqldump avec des blocs DELIMITER ou un script SSMS rempli de lignes GO fonctionne tel quel. Oracle est lu en partie : les tables, les clés et les clés étrangères sont dessinées, et les blocs PL/SQL terminés par une ligne ne contenant qu’une barre oblique sont ignorés. Quand les indices se contredisent, un lecteur générique prend le relais, et vous pouvez choisir le dialecte vous-même à tout moment.

Ce que le diagramme ER laisse de côté

  • Les lignes de données. Les instructions INSERT, COPY et autres instructions de données sont ignorées sans être lues : un dump avec données donne le même diagramme qu’un dump du schéma seul.
  • Les vues, fonctions, procédures, déclencheurs et séquences. Ils sont ignorés, et l’aperçu indique combien de chaque type ont été laissés de côté. Les vues et les déclencheurs que mysqldump écrit dans des commentaires de version sont ignorés comme des commentaires et ne sont pas comptés.
  • Les valeurs par défaut, les expressions CHECK, les commentaires et les valeurs autorisées des colonnes ENUM et SET. Les colonnes n’affichent que leur nom, leur type et leurs marqueurs de clé.
  • Tout ce qui vient d’un serveur en marche. L’outil lit le texte SQL que vous lui donnez et ne se connecte à aucune base de données : le nombre de lignes, la taille des tables et les plans de requête ne sont pas affichés.

Questions sur le passage du SQL au diagramme ER

Quels dialectes SQL sont pris en charge ?

PostgreSQL, MySQL et MariaDB, SQL Server et SQLite, ainsi qu’Oracle en partie. Le dialecte est détecté grâce à des indices comme les backticks, les lignes GO ou les chaînes entre dollars, et l’aperçu indique le dialecte utilisé. Si la détection se trompe, choisissez-en un autre dans la liste : votre choix est conservé. Pour les autres bases de données, un lecteur générique lit les instructions CREATE TABLE et ALTER TABLE standard.

Puis-je coller un dump complet qui contient des données ?

Oui. Les instructions INSERT et COPY sont ignorées sans être lues, avec les lignes SET, les commentaires et le reste du bruit du dump : le diagramme est le même qu’avec un dump du schéma seul. Un dump du schéma seul est toutefois plus léger et plus rapide à lire : pg_dump --schema-only, mysqldump --no-data ou sqlite3 avec .schema.

Quelle taille de schéma peut-il lire ?

Jusqu’à 8 Mo de SQL et 1 000 tables. Un texte de plus de 2 Mo n’est pas affiché dans la zone de texte, mais il est quand même lu. Le diagramme lui-même contient au plus 2 000 éléments, tables, liens et cadres de schéma compris : un schéma très relié peut donc atteindre cette limite en premier. Exporter un schéma à la fois aide alors.

Est-ce que ça fonctionne avec Oracle ?

En partie. Les scripts Oracle, par exemple ceux de SQL Developer, sont reconnus grâce à VARCHAR2, NUMBER et aux lignes ne contenant qu’une barre oblique, ou vous pouvez choisir Oracle dans la liste des dialectes. CREATE TABLE, les clés primaires, les contraintes uniques et les clés étrangères ajoutées avec ALTER TABLE sont dessinés. Les packages PL/SQL, les déclencheurs et les autres blocs terminés par une barre oblique sont ignorés, tout comme les instructions CONNECT et GRANT.

Qu’est-ce qui est enregistré quand j’ouvre le diagramme dans Archboard ?

L’aperçu n’est pas enregistré. Quand vous choisissez Ouvrir dans Archboard, le diagramme dessiné, c’est-à-dire les cartes des tables avec les noms et types de colonnes et les liens qui les relient, est enregistré comme nouveau diagramme dans votre espace de travail. C’est un instantané : les modifications ultérieures du schéma ne le mettent pas à jour.

L’outil SQL vers diagramme ER est-il gratuit ?

Oui. Coller du SQL et voir le diagramme ne demandent aucun compte. Pour ouvrir le diagramme dans Archboard, un compte gratuit suffit.

Ouvrez un canevas en une minute

Connectez-vous avec Google ou GitHub. Gratuit pour un siège. Passez à un forfait supérieur quand l'équipe vous rejoint.