PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Présentation de pgModeler pour PostgreSQL

Lors de la conception d'un projet, la première chose à laquelle il faut penser est quel sera son objectif... quelle est la meilleure solution et quelles sont les alternatives. En génie logiciel, tout est fait pour servir les données, qu'il s'agisse d'une interface graphique ou d'une logique métier, il n'est donc pas étonnant que le meilleur point de départ soit la planification de la base de données.

La documentation officielle d'une base de données peut être très compliquée, quelle que soit la technologie. Utiliser les meilleurs concepts pour une situation spécifique n'est pas une tâche facile.

pgModeler est le programme que vous pouvez utiliser pour augmenter votre productivité avec PostgreSQL. C'est gratuit, fonctionne sur Windows, Mac ou Linux et offre un moyen de travailler avec les commandes DDL via une interface riche construite sur SVG.

Installation

L'installation est très simple, il suffit de le télécharger depuis le site et d'exécuter le fichier. Certains systèmes d'exploitation ont déjà pgModeler inclus dans leurs référentiels, ce qui est une alternative au téléchargement.

pgModeler est une solution open source, et vous pouvez la trouver sur GitHub, où les nouvelles versions sont publiées.

Il a une option de version payante, où vous pouvez prendre en charge le projet et utiliser les dernières fonctionnalités, par exemple, la compatibilité avec les dernières versions de PostgreSQL.

Si vous avez besoin d'une entrée de bureau, vérifiez-la ci-dessous. Ce fichier peut être nommé pgmodeler.desktop, et vous pouvez le placer sur /usr/share/applications/, mais n'oubliez pas de copier le logo présenté dans ce blog, en le sauvegardant sur /etc/pgmodeler/pgmodeler_logo.png.

[Desktop Entry]
Name=pgModeler
GenericName=PostgreSQL Database Modeler
Comment=Program with nice Qt interface for visual modeling PostgreSQL on Entity Relationship Diagram
Exec=pgmodeler
Icon=/etc/pgmodeler/pgmodeler_logo.png
Terminal=false
Type=Application
Categories=Qt;Database;Development;

Interface graphique

Le programme des cours de technologie de l'information, y compris les collèges, contient des disciplines de modélisation de données, avec UML comme norme pour la conception et la documentation de projets.

L'interface graphique de pgModeler permet de travailler avec une sorte de diagramme spécifique aux bases de données, le Entity Relationship Diagram (ERD), reproduisant ce que vous avez construit à l'intérieur de votre cluster PostgreSQL de manière transparente.

Plusieurs langues sont disponibles :

  • Anglais (en_US) ;
  • espagnol (es_ES) ;
  • français (fr_FR) ;
  • néerlandais (nl_NL) ;
  • portugais (pt_BR) ; et
  • Chinois (zh_CN).

L'impression de ce que vous avez construit est également disponible, et des personnalisations sont possibles dans l'apparence, en changeant la police et les couleurs des schémas, des tables, des relations, etc.

Fonctionnalités

Les fonctionnalités de pgModeler sont simplement des outils pour vous aider à naviguer entre les modèles logiques et physiques.

Un modèle logique, c'est le diagramme. Vous pouvez l'utiliser pour transformer l'idée de votre client en un projet bien documenté que d'autres personnes pourront comprendre à l'avenir, et y apporter des modifications.

Le modèle physique est le script, le code SQL. PostgreSQL le comprend, et donc pgModeler aussi.

Grâce à son algorithme de rétro-ingénierie, vous pouvez vous connecter à votre cluster PostgreSQL, et regarder votre modèle de domaine existant avec une perspective différente, ou le construire d'abord, puis créer le modèle de domaine exécutant le script, généré par ce que vous avez construit dans le diagramme.

Diagramme des relations d'entité

Une fois que vous avez compris son objectif, voyons à quoi ressemble un schéma pour un projet très simple où vous pouvez visualiser la relation entre les tableaux client et film, nommé location.

Notez les lignes entre les tableaux, elles sont faciles à voir et, surtout, à comprendre. Les clés primaires et étrangères sont les points de départ pour visualiser les relations, et à leurs bords, la cardinalité est affichée.

Les contraintes représentant les clés peuvent être vues, comme pk, fk et même le NOT NULL, comme nn, en vert à droite de chaque tableau. Le schéma est nommé store et l'image ci-dessus a été générée par le programme lui-même.

Nous avons vu précédemment que les diagrammes sont le modèle logique, qui peut être appliqué dans un cluster PostgreSQL. Pour l'appliquer, une connexion doit être établie, pour cet exemple, j'ai créé un cluster s'exécutant dans un conteneur Docker.

Maintenant, avec la connexion à la base de données configurée et testée, l'exportation est facile. Les problèmes de sécurité doivent être pris en compte à ce stade, comme l'établissement de SSL avec votre cluster.

Dans ce qui suit, pgModeler crée le schéma du magasin, à l'intérieur d'une toute nouvelle base de données nommée blog_db, comme je le voulais, sans oublier de mentionner le nouveau rôle, avec l'autorisation de connexion.

Le processus d'exportation s'est terminé avec succès ! – Ok, il y a une erreur, mais c'est sûr qu'elle a été terminée avec succès.

[email protected]:~$ psql -U thiago -w -d blog_db;
psql (10.10 (Debian 10.10-1.pgdg90+1))
Type "help" for help.
blog_db=> set search_path to store;
SET
blog_db=> \dt
        List of relations
Schema |   Name | Type  | Owner
--------+----------+-------+--------
store  | customer | table | thiago
store  | film   | table | thiago
store  | rental   | table | thiago
(3 rows)
blog_db=> \du
                                  List of roles
Role name |                         Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
thiago    |                                                   | {}

Conclusion

Les modèles de domaine sont également connus sous le nom de mini-mondes, et vous verrez rarement la même chose appliquée sur différents projets. pgModeler peut vous aider à vous concentrer sur ce qui est vraiment important, en évitant une perte de temps concernant la syntaxe SQL.