PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Eine Übersicht über pgModeler für PostgreSQL

Wenn ein Projekt entworfen wird, ist das erste, woran man denken muss, was sein Zweck sein soll... was die beste Lösung ist und welche Alternativen es gibt. In der Softwareentwicklung wird alles getan, um Daten bereitzustellen, sei es eine grafische Benutzeroberfläche oder Geschäftslogik, daher ist es kein Wunder, dass die Datenbankplanung der beste Ausgangspunkt sein könnte.

Die offizielle Dokumentation einer Datenbank kann sehr kompliziert sein, egal um welche Technologie es sich handelt. Die besten Konzepte für eine bestimmte Situation zu verwenden, ist keine leichte Aufgabe.

pgModeler ist das Programm, mit dem Sie Ihre Produktivität mit PostgreSQL steigern können. Es ist kostenlos, funktioniert unter Windows, Mac oder Linux und bietet eine Möglichkeit, mit DDL-Befehlen über eine umfangreiche Schnittstelle zu arbeiten, die auf SVG aufbaut.

Installation

Die Installation ist sehr einfach, laden Sie sie einfach von der Website herunter und führen Sie die Datei aus. Bei einigen Betriebssystemen ist pgModeler bereits in ihren Repositories enthalten, was eine Alternative zum Herunterladen darstellt.

pgModeler ist eine Open-Source-Lösung und Sie finden sie auf GitHub, wo Neuerscheinungen veröffentlicht werden.

Es gibt eine kostenpflichtige Versionsoption, bei der Sie das Projekt unterstützen und die neuesten Funktionen nutzen können, z. B. Kompatibilität mit den neuesten Versionen von PostgreSQL.

Wenn Sie einen Desktop-Eintrag benötigen, sehen Sie ihn sich im Folgenden an. Diese Datei kann pgmodeler.desktop heißen und Sie können sie unter /usr/share/applications/ platzieren, aber vergessen Sie nicht, das in diesem Blog präsentierte Logo zu kopieren und es unter /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;

Grafische Oberfläche

Der Lehrplan von Informationstechnologiekursen, einschließlich Hochschulen, enthält Datenmodellierungsdisziplinen mit UML als Standard für Projektdesign und -dokumentation.

Die grafische Benutzeroberfläche von pgModeler ermöglicht die Arbeit mit einer Art Diagramm, das spezifisch für Datenbanken ist, dem Entity Relationship Diagram (ERD), das nahtlos reproduziert, was Sie in Ihrem PostgreSQL-Cluster erstellt haben.

Mehrere Sprachen sind verfügbar:

  • Englisch (en_US);
  • Spanisch (es_ES);
  • Französisch (fr_FR);
  • Niederländisch (nl_NL);
  • Portugiesisch (pt_BR); und
  • Chinesisch (zh_CN).

Drucken, was Sie erstellt haben, ist ebenfalls verfügbar, und Anpassungen sind im Erscheinungsbild möglich, indem Sie die Schriftart und Farben von Schemas, Tabellen, Beziehungen usw. ändern.

Eigenschaften

Die Funktionen von pgModeler sind einfach Werkzeuge, die Ihnen helfen, zwischen logischen und physischen Modellen zu navigieren.

Ein logisches Modell ist das Diagramm. Sie können es verwenden, um die Idee Ihres Kunden in ein gut dokumentiertes Projekt umzuwandeln, das andere Personen in Zukunft verstehen und Änderungen daran vornehmen können.

Das physische Modell ist das Skript, der SQL-Code. PostgreSQL versteht es und pgModeler auch.

Durch seinen Reverse-Engineering-Algorithmus können Sie sich mit Ihrem PostgreSQL-Cluster verbinden und Ihr vorhandenes Domänenmodell aus einer anderen Perspektive betrachten oder es zuerst erstellen und dann das Domänenmodell erstellen, das das generierte Skript ausführt nach dem, was Sie in das Diagramm eingebaut haben.

Entity-Relationship-Diagramm

Wenn Sie seinen Zweck verstanden haben, sehen wir uns an, wie ein Diagramm für ein sehr einfaches Projekt aussieht, in dem Sie die Beziehung zwischen den Tabellen Kunde und Film mit dem Namen Vermietung visualisieren können.

Beachten Sie die Zeilen zwischen den Tabellen, sie sind leicht zu erkennen und vor allem verständlich. Primär- und Fremdschlüssel sind die Ausgangspunkte, um die Beziehungen zu visualisieren, und an ihren Rändern wird die Kardinalität angezeigt.

Die Einschränkungen, die die Schlüssel darstellen, können als pk, fk und angezeigt werden sogar NOT NULL, als nn, in Grün rechts von jeder Tabelle. Das Schema heißt store, und das obige Bild wurde vom Programm selbst generiert.

Vorhin haben wir gesehen, dass Diagramme das logische Modell sind, das in einem PostgreSQL-Cluster angewendet werden kann. Um es anzuwenden, muss eine Verbindung hergestellt werden, für dieses Beispiel habe ich einen Cluster erstellt, der in einem Docker-Container läuft.

Jetzt, da die Datenbankverbindung konfiguriert und getestet wurde, ist das Exportieren einfach. An dieser Stelle müssen Sicherheitsbedenken berücksichtigt werden, wie z. B. das Einrichten von SSL mit Ihrem Cluster.

Im Folgenden erstellt pgModeler das Speicherschema innerhalb einer völlig neuen Datenbank namens blog_db, wie ich es wollte, ohne die neue Rolle zu vergessen, mit Anmeldeberechtigung.

Exportvorgang erfolgreich beendet! – Ok, da ist ein Fehler, aber es wurde sicher erfolgreich beendet.

[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    |                                                   | {}

Fazit

Domänenmodelle werden auch als Mini-Welten bezeichnet, und selten werden Sie dasselbe in verschiedenen Projekten anwenden sehen. pgModeler kann Ihnen dabei helfen, sich auf das Wesentliche zu konzentrieren und Zeitverschwendung bezüglich der SQL-Syntax zu vermeiden.