Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : juillet 2017
    Messages : 3
    Points : 3
    Points
    3

    Par défaut Générer un dictionnaire de données avec commentaires à partir d'une BDD Postgres

    Bonjour,

    ça fait un moment que je cherche un moyen de générer un dictionnaire de données d'un de mes schémas.
    Existe t-il une solution simple?

    Je travaille sur pgAdmin4 ou pgModeler essentiellement; et en gros, j'aimerais générer un document word ou pdf de l'ensemble des tables avec les commentaires, les types de données, les clés, les contraintes et les relations.

    Est-il possible de le faire sans passer par des lignes de commandes, y a t-il un outil pour faire ça?

    MErci.

  2. #2
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    18 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 18 294
    Points : 42 772
    Points
    42 772

    Par défaut

    Power AMC en mode retro ingénierie.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  3. #3
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : juillet 2017
    Messages : 3
    Points : 3
    Points
    3

    Par défaut

    Merci, mais à priori, Power AMC n'existe plus, et sa nouvelle version est payante; je vais quand même tester la version d'évaluation s'ils veulent bien me la laisser la télécharger!

  4. #4
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    16 008
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 16 008
    Points : 31 730
    Points
    31 730
    Billets dans le blog
    5

    Par défaut

    Il y a des logiciels de modélisation gratuits par contre je ne sais pas s'ils possèdent une fonction de dictionnaire de données.
    DBMain, JMerise (plus tout à fait gratuit mais pas cher), Open Modelsphere...
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    6 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 6 718
    Points : 19 023
    Points
    19 023
    Billets dans le blog
    1

    Par défaut

    Bonjour

    Moi j'ai fait un truc en Python qui interroge les tables systèmes et qui me génère un fichier ".dot" permettant à un logiciel gratuit nommé graphviz de générer le schéma des tables et liens dans différents formats assez universel (par exemple pdf et jpg)

    La requête qui liste les schémas et tables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select table_schema, table_name from information_schema.tables where table_type='BASE TABLE' and table_schema not in ("information_schema", "pg_catalog") order by table_schema, table_name;
    La requête qui récupère la clef primaire d'une table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select column_name
    from information_schema.key_column_usage
    where (constraint_schema, constraint_name)=(
    	select constraint_schema, constraint_name
    	from information_schema.table_constraints
    	where (table_schema, table_name, constraint_type)=('schema S', 'table T', 'PRIMARY KEY')
    );
    La requête qui récupère tous les champs d'une table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select column_name, data_type, character_maximum_length, numeric_precision, numeric_precision_radix, numeric_scale
    from information_schema.columns
    where (table_schema, table_name)=('schema S', 'table T')
    order by ordinal_position;
    Et pour récupérer les contraintes d'intégrité associées à une table T là c'est le plus compliqué
    1. récupérer les identifiants liants T et ses contraintes foreign key
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      select pg_constraint.conrelid, pg_constraint.confrelid, pg_constraint.conkey, pg_constraint.confkey, t2.schemaname, t2.relname
      from pg_constraint
      inner join pg_stat_user_tables as t1 on (t1.relid=pg_constraint.conrelid)
      inner join pg_stat_user_tables as t2 on (t2.relid=pg_constraint.confrelid)
      where (pg_constraint.contype, t1.schemaname, t1.relname)=('f', 'schema S', 'table T');
      => ça te récupère autant de lignes qu'il y a de contraintes foreign associées à la table T. Chaque ligne contient
      • une colonne "conrelid" qui donne le oid de la table T (ex 77283)
      • une colonne "confrelid" qui donne le oid de la table foreign laquelle elle est liée (ex 77252)
      • 2 colonnes "conkey" (les clefs de la table) et "confkey (les clefs correspondantes de la table foreign). Ces clefs sont sous forme de tableau car elles peuvent être elles-mêmes composées de plusieurs colonnes et ces tableaux contiennent en fait les positions des colonnes dans la table. Donc ces colonnes "conkey" et "confkey" contiennent par exemple "{1, 3}" et "{4, 7}" ce qui signifie que les colonnes "1" et "3" de la table 77283 sont reliées aux colonnes "4" et "7" de la table distante 77252
      • 2 colonnes "schemaname" et "relname" donnant les noms "sql" de la table foreign (donc ici le nom de la table 77252)

    2. A partir donc de ces infos "conrelid" + "conkey" d'une part et "confrelid" et "confkey" d'autre part, on récupère les noms réels des colonnes de la façon suivante:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      select attname from pg_attribute where attrelid=77283 and attnum in (1, 3);
      select attname from pg_attribute where attrelid=77252 and attnum in (4, 7);
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    4 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 4 723
    Points : 10 652
    Points
    10 652

    Par défaut

    Bonjour,

    J'utilise DBeaver , qui une fois connecter à votre DB vous donner directement le Schéma de la db où vous pouvez afficher un certain nombre d'information.

    Sinon, il y a bien longtemps , j'utilisais http://www.analysesi.com/ qui lui générais un dictionnaire complet, mais vous ne pouviez avoir deux fois le même clés (typiquement id).

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/11/2011, 13h05
  2. comment générer un dictionnaire de données sur power amc
    Par mido clubiste dans le forum PowerAMC
    Réponses: 1
    Dernier message: 14/04/2009, 12h33
  3. ajout ligne avec donnée dans msflexgrid à partir d'une autre form
    Par bastos77 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/03/2009, 18h08
  4. Réponses: 3
    Dernier message: 27/03/2008, 14h09
  5. Réponses: 2
    Dernier message: 20/02/2007, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo