Při navrhování projektu je první věcí, na kterou je třeba myslet, jaký bude jeho účel... jaké je nejlepší řešení a jaké jsou alternativy. V softwarovém inženýrství se vše dělá pro to, aby obsluhovala data, ať už jde o grafické rozhraní nebo obchodní logiku, takže není divu, že nejlepším výchozím bodem může být plánování databáze.
Oficiální dokumentace databáze může být velmi komplikovaná, ať už se jedná o jakoukoli technologii. Použití nejlepších konceptů pro konkrétní situaci není snadný úkol.
pgModeler je program, který můžete použít ke zvýšení produktivity s PostgreSQL. Je zdarma, funguje na Windows, Mac nebo Linux a poskytuje způsob, jak pracovat s příkazy DDL prostřednictvím bohatého rozhraní postaveného na SVG.
Instalace
Instalace je velmi jednoduchá, stačí ji stáhnout z webu a spustit soubor. Některé operační systémy již obsahují pgModeler ve svých repozitářích, což je alternativa k jeho stažení.
pgModeler je řešení s otevřeným zdrojovým kódem a najdete ho na GitHubu, kde jsou publikována nová vydání.
Má možnost placené verze, kde můžete projekt podpořit a využívat nejnovější funkce, například kompatibilitu s nejnovějšími verzemi PostgreSQL.
Pokud potřebujete záznam na ploše, podívejte se na něj níže. Tento soubor se může jmenovat pgmodeler.desktop a můžete jej umístit na /usr/share/applications/, ale nezapomeňte zkopírovat logo prezentované v tomto blogu a uložit jej na /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;
Grafické rozhraní
Učební plán kurzů informačních technologií, včetně vysokých škol, obsahuje disciplíny datového modelování, přičemž UML je standardem pro návrh a dokumentaci projektů.
Grafické rozhraní pgModeler umožňuje pracovat s určitým typem diagramu specifickým pro databáze, Entity Relationship Diagram (ERD), který bezproblémově reprodukuje to, co jste vytvořili uvnitř vašeho PostgreSQL clusteru.
K dispozici je několik jazyků:
- angličtina (en_US);
- španělština (es_ES);
- francouzština (fr_FR);
- holandština (nl_NL);
- portugalština (pt_BR); a
- čínština (zh_CN).
K dispozici je také tisk toho, co jste vytvořili, a je možné upravit vzhled, změnit písmo a barvy schémat, tabulek, vztahů atd.
Funkce
Funkce pgModeler jsou jednoduše nástroje, které vám pomohou navigovat mezi logickými a fyzickými modely.
Logický model je diagram. Můžete jej použít k přeměně myšlenky vašeho zákazníka na dobře zdokumentovaný projekt, kterému v budoucnu porozumí i jiná osoba, a provést na něm úpravy.
Fyzickým modelem je skript, kód SQL. PostgreSQL tomu rozumí, a tak i pgModeler.
Prostřednictvím jeho algoritmu reverzního inženýrství se můžete připojit ke svému clusteru PostgreSQL a podívat se na svůj stávající model domény z jiné perspektivy, nebo jej nejprve sestavit a poté vytvořit model domény spuštěním vygenerovaného skriptu podle toho, co jste zabudovali do diagramu.
Diagram vztahů entit
Jakmile pochopíte jeho účel, podívejme se, jak vypadá diagram pro velmi jednoduchý projekt, kde si můžete vizualizovat vztah mezi stoly zákazník a film, pojmenovaný pronájem.
Všimněte si čar mezi tabulkami, jsou snadno viditelné a hlavně pochopitelné. Primární a cizí klíče jsou výchozími body pro vizualizaci vztahů a na jejich okrajích se ukazuje mohutnost.
Omezení představující klíče lze vidět jako pk, fk a dokonce i NOT NULL, jako nn, zeleně napravo od každé tabulky. Schéma se jmenuje store a obrázek výše vygeneroval samotný program.
Dříve jsme viděli, že diagramy jsou logickým modelem, který lze aplikovat na cluster PostgreSQL. Aby bylo možné jej použít, musí být navázáno připojení, pro tento příklad jsem vytvořil cluster běžící uvnitř kontejneru Docker.
Nyní s nakonfigurovaným a otestovaným připojením k databázi je export snadný. V tomto bodě je třeba vzít v úvahu bezpečnostní problémy, jako je vytvoření SSL s vaším clusterem.
V následujícím vytvoří pgModeler schéma obchodu uvnitř zcela nové databáze s názvem blog_db, jak jsem chtěl, a nezapomněl jsem zmínit novou roli s oprávněním k přihlášení.
Proces exportu byl úspěšně ukončen! – Dobře, je tam chyba, ale byla úspěšně ukončena, určitě.
[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 | | {}
Závěr
Modely domén jsou také známé jako mini světy a jen zřídka uvidíte, že se totéž použije na různé projekty. pgModeler vám může pomoci soustředit se na to, co je skutečně důležité, a vyhnout se tak ztrátě času týkající se syntaxe SQL.