sql >> Database >  >> RDS >> PostgreSQL

Een overzicht van pgModeler voor PostgreSQL

Als een project wordt ontworpen, is het eerste waar je aan moet denken wat het doel ervan zal zijn... wat is de beste oplossing en wat zijn de alternatieven. Bij software-engineering wordt er alles aan gedaan om gegevens te leveren, of het nu een grafische interface of bedrijfslogica is, dus het is geen wonder dat databaseplanning het beste startpunt is.

De officiële documentatie van een database kan erg ingewikkeld zijn, welke technologie het ook is. Het gebruik van de beste concepten voor een specifieke situatie is geen gemakkelijke taak.

pgModeler is het programma dat u kunt gebruiken om uw productiviteit met PostgreSQL te verhogen. Het is gratis, werkt op Windows, Mac of Linux en biedt een manier om met DDL-opdrachten te werken via een uitgebreide interface die bovenop SVG is gebouwd.

Installatie

Installatie is heel eenvoudig, download het gewoon van de site en voer het bestand uit. Sommige besturingssystemen hebben pgModeler al opgenomen in hun repositories, wat een alternatief is voor het downloaden ervan.

pgModeler is een open source-oplossing en u kunt deze vinden op GitHub, waar nieuwe releases worden gepubliceerd.

Het heeft een betaalde versie-optie, waarmee u het project kunt ondersteunen en de nieuwste functies kunt gebruiken, bijvoorbeeld compatibiliteit met de nieuwste versies van PostgreSQL.

Als je een desktop-item nodig hebt, bekijk het dan hieronder. Dit bestand kan pgmodeler.desktop heten en u kunt het in /usr/share/applications/ plaatsen, maar vergeet niet het logo dat in deze blog wordt gepresenteerd te kopiëren en op te slaan op /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 interface

Het curriculum van informatietechnologiecursussen, inclusief hogescholen, bevat disciplines voor datamodellering, met UML als de standaard voor projectontwerp en documentatie.

De grafische interface van pgModeler maakt het mogelijk om te werken met een soort diagram dat specifiek is voor databases, het Entity Relationship Diagram (ERD), dat naadloos reproduceert wat je in je PostgreSQL-cluster hebt gebouwd.

Er zijn verschillende talen beschikbaar:

  • Engels (en_US);
  • Spaans (es_ES);
  • Frans (fr_FR);
  • Nederlands (nl_NL);
  • Portugees (pt_BR); en
  • Chinees (zh_CN).

Afdrukken wat je hebt gebouwd is ook beschikbaar, en aanpassingen zijn mogelijk in het uiterlijk, het wijzigen van het lettertype en de kleuren van schema's, tabellen, relaties, enz.

Functies

De functies van pgModeler zijn slechts hulpmiddelen om u te helpen navigeren tussen logische en fysieke modellen.

Een logisch model is het diagram. U kunt het gebruiken om het idee van uw klant om te zetten in een goed gedocumenteerd project dat een andere persoon in de toekomst kan begrijpen en om er wijzigingen in aan te brengen.

Het fysieke model is het script, de SQL-code. PostgreSQL begrijpt het, en dus ook pgModeler.

Via het reverse engineering-algoritme kunt u verbinding maken met uw PostgreSQL-cluster en uw bestaande domeinmodel vanuit een ander perspectief bekijken, of het eerst bouwen en vervolgens het domeinmodel maken dat het gegenereerde script uitvoert door wat je in het diagram hebt gebouwd.

Entiteitsrelatiediagram

Zodra je het doel begrijpt, gaan we eens kijken hoe een diagram eruitziet voor een heel eenvoudig project waar je de relatie tussen de tafels klant en film, genaamd verhuur, kunt visualiseren.

Let op de regels tussen de tabellen, ze zijn gemakkelijk te zien en vooral te begrijpen. Primaire en externe sleutels zijn de uitgangspunten om de relaties te visualiseren, en aan hun randen wordt de kardinaliteit getoond.

De beperkingen die de sleutels vertegenwoordigen, kunnen worden gezien als pk, fk en zelfs de NOT NULL, zoals nn, in het groen aan de rechterkant van elke tabel. Het schema heet winkel en de afbeelding hierboven is door het programma zelf gegenereerd.

Eerder zagen we dat diagrammen het logische model zijn dat in een PostgreSQL-cluster kan worden toegepast. Om het toe te passen, moet er een verbinding tot stand worden gebracht, voor dit voorbeeld heb ik een cluster gemaakt dat in een Docker-container wordt uitgevoerd.

Nu de databaseverbinding is geconfigureerd en getest, is exporteren eenvoudig. Op dit punt moet rekening worden gehouden met beveiligingsproblemen, zoals het instellen van SSL met uw cluster.

In het volgende maakt pgModeler het winkelschema, in een volledig nieuwe database met de naam blog_db, zoals ik wilde, en niet te vergeten de nieuwe rol te noemen, met inlogrechten.

Exportproces succesvol beëindigd! – Ok, er is een fout gemaakt, maar het is zeker succesvol beëindigd.

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

Conclusie

Domeinmodellen worden ook wel miniwerelden genoemd en zelden zie je hetzelfde op verschillende projecten worden toegepast. pgModeler kan u helpen u te concentreren op wat echt belangrijk is, zodat u geen tijd verspilt aan de SQL-syntaxis.


  1. Pleidooi voor IN PLAATS VAN Triggers - Deel 1

  2. Gegevensblokken dumpen

  3. Host 'xxx.xx.xxx.xxx' mag geen verbinding maken met deze MySQL-server

  4. Het aantal keren dat een subtekenreeks binnen een tekenreeks voorkomt tellen in PostgreSQL