Quando si progetta un progetto, la prima cosa a cui pensare è quale sarà il suo scopo... qual è la soluzione migliore e quali sono le alternative. Nell'ingegneria del software, tutto viene fatto per servire i dati, che si tratti di un'interfaccia grafica o di una logica aziendale, quindi non c'è da meravigliarsi se il miglior punto di partenza potrebbe essere la pianificazione del database.
La documentazione ufficiale di un database può essere molto complicata, qualunque sia la tecnologia. Usare i concetti migliori per una situazione specifica non è un compito facile.
pgModeler è il programma che puoi utilizzare per aumentare la tua produttività con PostgreSQL. È gratuito, funziona su Windows, Mac o Linux e fornisce un modo per lavorare con i comandi DDL attraverso una ricca interfaccia basata su SVG.
Installazione
L'installazione è molto semplice, basta scaricarla dal sito ed eseguire il file. Alcuni sistemi operativi hanno già pgModeler incluso nei loro repository, che è un'alternativa al download.
pgModeler è una soluzione open source e puoi trovarla su GitHub, dove vengono pubblicate le nuove uscite.
Ha un'opzione di versione a pagamento, in cui puoi supportare il progetto e utilizzare le funzionalità più recenti, ad esempio la compatibilità con le ultime versioni di PostgreSQL.
Se hai bisogno di una voce sul desktop, controllala di seguito. Questo file può essere chiamato pgmodeler.desktop, e puoi inserirlo su /usr/share/applications/, ma non dimenticare di copiare il logo presentato in questo blog, salvandolo su /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;
Interfaccia grafica
Il curriculum dei corsi di tecnologia dell'informazione, compresi i college, contiene discipline di modellazione dei dati, con UML come standard per la progettazione e la documentazione dei progetti.
L'interfaccia grafica di pgModeler consente di lavorare con un tipo di diagramma specifico per i database, l'Entity Relationship Diagram (ERD), riproducendo senza problemi ciò che hai costruito all'interno del tuo cluster PostgreSQL.
Sono disponibili diverse lingue:
- Inglese (en_US);
- Spagnolo (es_ES);
- Francese (fr_FR);
- Olandese (nl_NL);
- Portoghese (pt_BR); e
- Cinese (zh_CN).
È anche disponibile la stampa di ciò che hai creato e sono possibili personalizzazioni nell'aspetto, modificando il carattere e i colori di schemi, tabelle, relazioni, ecc.
Caratteristiche
Le funzionalità di pgModeler sono semplicemente strumenti per aiutarti a navigare tra modelli logici e fisici.
Un modello logico, è il diagramma. Puoi usarlo per trasformare l'idea del tuo cliente, in un progetto ben documentato che un'altra persona potrà capire in futuro, e apportare modifiche su di esso.
Il modello fisico è lo script, il codice SQL. PostgreSQL lo capisce, e quindi anche pgModeler.
Attraverso il suo algoritmo di reverse engineering, puoi connetterti al tuo cluster PostgreSQL e guardare il tuo modello di dominio esistente con una prospettiva diversa, oppure crearlo prima, quindi creare il modello di dominio eseguendo lo script, generato in base a ciò che hai costruito nel diagramma.
Diagramma della relazione tra entità
Una volta compreso il suo scopo, vediamo come appare un diagramma per un progetto molto semplice in cui puoi visualizzare la relazione tra il cliente dei tavoli e il film, chiamato noleggio.
Nota le linee tra le tabelle, sono facili da vedere e, soprattutto, da capire. Le chiavi primarie ed esterne sono i punti di partenza per visualizzare le relazioni e ai loro bordi viene mostrata la cardinalità.
I vincoli che rappresentano le chiavi possono essere visualizzati, come pk, fk e anche il NOT NULL, come nn, in verde a destra di ogni tabella. Lo schema si chiama store e l'immagine sopra è stata generata dal programma stesso.
In precedenza abbiamo visto che i diagrammi sono il modello logico, che può essere applicato in un cluster PostgreSQL. Per applicarlo, è necessario stabilire una connessione, per questo esempio ho creato un cluster in esecuzione all'interno di un container Docker.
Ora, con la connessione al database configurata e testata, l'esportazione è facile. A questo punto è necessario considerare problemi di sicurezza, come stabilire SSL con il tuo cluster.
Di seguito, pgModeler crea lo schema del negozio, all'interno di un database completamente nuovo chiamato blog_db, come volevo, senza dimenticare di menzionare il nuovo ruolo, con i permessi di accesso.
Processo di esportazione terminato con successo! – Ok, c'è un errore, ma è stato sicuramente risolto con successo.
[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 | | {}
Conclusione
I modelli di dominio sono anche conosciuti come mini mondi e raramente vedrai lo stesso applicato su progetti diversi. pgModeler può aiutarti a concentrarti su ciò che è veramente importante, evitando perdite di tempo relative alla sintassi SQL.