Når et projekt designes, er den første ting at tænke på, hvad formålet vil være... hvad er den bedste løsning, og hvad er alternativerne. Inden for softwareudvikling bliver alt gjort for at betjene data, uanset om det er en grafisk grænseflade eller forretningslogik, så det er ikke underligt, at det bedste udgangspunkt kan være databaseplanlægning.
Den officielle dokumentation af en database kan være meget kompliceret, uanset hvilken teknologi det måtte være. At bruge de bedste koncepter til en specifik situation er ikke en let opgave.
pgModeler er programmet du kan bruge til at øge din produktivitet med PostgreSQL. Det er gratis, fungerer på Windows, Mac eller Linux og giver en måde at arbejde med DDL-kommandoer gennem en rig grænseflade bygget oven på SVG.
Installation
Installationen er meget enkel, bare download den fra webstedet og kør filen. Nogle operativsystemer har allerede pgModeler inkluderet i deres arkiver, hvilket er et alternativ til at downloade det.
pgModeler er en open source-løsning, og du kan finde den på GitHub, hvor nye udgivelser udgives.
Den har en betalingsversion, hvor du kan støtte projektet og bruge de nyeste funktioner, f.eks. kompatibilitet med de nyeste versioner af PostgreSQL.
Hvis du har brug for en skrivebordspost, så tjek den ud i det følgende. Denne fil kan hedde pgmodeler.desktop, og du kan placere den på /usr/share/applications/, men glem ikke at kopiere logoet præsenteret i denne blog, og gemme det på /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;
Grafisk grænseflade
Læseplanen for informationsteknologikurser, herunder gymnasier, indeholder datamodelleringsdiscipliner med UML som standard for projektdesign og dokumentation.
Den grafiske grænseflade i pgModeler gør det muligt at arbejde med en slags diagram, der er specifik for databaser, Entity Relationship Diagram (ERD), og gengiver det, du har bygget inde i din PostgreSQL-klynge, problemfrit.
Flere sprog er tilgængelige:
- Engelsk (da_US);
- Spansk (es_ES);
- Fransk (fr_FR);
- Hollandsk (nl_NL);
- Portugisisk (pt_BR); og
- Kinesisk (zh_CN).
Udskrivning af det, du har bygget, er også tilgængeligt, og tilpasninger er mulige i udseendet, ændring af skrifttype og farver på skemaer, tabeller, relationer osv.
Funktioner
Funktionerne i pgModeler er simpelthen værktøjer til at hjælpe dig med at navigere mellem logiske og fysiske modeller.
En logisk model er diagrammet. Du kan bruge det til at omdanne din kundes idé til et veldokumenteret projekt, som andre kan forstå i fremtiden, og lave ændringer på det.
Den fysiske model er scriptet, SQL-koden. PostgreSQL forstår det, og så pgModeler også.
Gennem dens reverse engineering-algoritme kan du oprette forbindelse til din PostgreSQL-klynge og se på din eksisterende domænemodel med et andet perspektiv, eller bygge den først og derefter oprette domænemodellen, der udfører scriptet, genereret ved det, du har bygget i diagrammet.
Diagram for enhedsforhold
Når du forstår dets formål, lad os se, hvordan et diagram ser ud for et meget simpelt projekt, hvor du kan visualisere forholdet mellem bordene kunde og filmen, kaldet leje.
Bemærk linjerne mellem tabellerne, de er nemme at se, og vigtigst af alt, forstå. Primære og fremmede nøgler er udgangspunktet for at visualisere relationerne, og på deres kanter bliver kardinaliteten vist.
Begrænsningerne, der repræsenterer nøglerne, kan ses som pk, fk og selv NOT NULL, som nn, i grønt til højre for hver tabel. Skemaet hedder store, og billedet ovenfor er genereret af programmet selv.
Tidligere så vi, at diagrammer er den logiske model, som kan anvendes i en PostgreSQL-klynge. For at anvende det, skal der oprettes en forbindelse, i dette eksempel oprettede jeg en klynge, der kører inde i en Docker-container.
Nu med databaseforbindelsen konfigureret og testet, er eksport let. Sikkerhedsproblemer skal overvejes på dette tidspunkt, som at etablere SSL med din klynge.
I det følgende opretter pgModeler butiksskemaet, inde i en helt ny database ved navn blog_db, som jeg gerne ville, uden at glemme at nævne den nye rolle, med login-tilladelse.
Eksportprocessen afsluttet med succes! – Ok, der er en fejl, men det er helt sikkert blevet afsluttet.
[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 | | {}
Konklusion
Domænemodeller er også kendt som mini-verdener, og sjældent vil du se det samme blive anvendt på forskellige projekter. pgModeler kan hjælpe dig med at fokusere på det, der virkelig er vigtigt, og undgå spild af tid vedrørende SQL-syntaksen.