Cos'è PostgreSQL

PostgreSQL — o semplicemente "Postgres" — è un sistema di gestione di database relazionale (ORDBMS) open source, con alcune funzionalità orientate agli oggetti che lo rendono estremamente flessibile.

Con ORDBMS (Object-Relational Database Management System) si intende un sistema di gestione di database che estende il modello relazionale classico con concetti tipici della programmazione orientata agli oggetti.

A differenza di un RDBMS classico, l'ORDBMS aggiunge:

  • Tipi di dato personalizzati
  • Ereditarietà tra tabelle
  • Funzioni e operatori custom
  • Metodi associati ai tipi - simile ai metodi di una classe

PostreSQL si definisce un ORDBMS perchè supporta queste caratteristiche ma nella pratica quotidiana la maggior parte degli sviluppatori usa questo strumento come fosse un RDBMS normale, le funzionalità a oggetti vengono utilizzate in scenari avanzati.

Origini e storia

Le radici di PostgreSQL risalgono al progetto POSTGRES, sviluppato negli anni '80 all'Università di Berkeley sotto la guida di Michael Stonebraker.

Da quel progetto accademico è nato PostgreSQL, la sua evoluzione open source: stesso impianto concettuale ma con pieno supporto a SQL e decenni di sviluppo continuo da parte della community globale.

Caratteristiche principali

Base relazionale completa

Tabelle, relazioni, vincoli, transazioni, viste e indici: tutto quello che ti aspetti da un database SQL classico.

Funzionalità avanzate per casi d'uso moderni

Tipi di dato estendibili, funzioni scrivibili in più linguaggi, estensioni per geodatabase, ricerca full-text e molto altro. PostgreSQL cresce con le tue esigenze senza costringerti a cambiare strumento.

Prestazioni elevate

Nei benchmark, PostgreSQL eguaglia o supera molti altri database, sia open source che proprietari.

Stored procedure e funzioni in più linguaggi

Puoi scrivere logica lato database in PL/Perl, PL/Python, PL/V8 (JavaScript), PL/Ruby e PL/R. Ogni linguaggio ha i suoi punti di forza: R per statistiche e grafici, Python per chiamare servizi web, JavaScript per validare dati e manipolare JSON.

Tipi di dato personalizzabili

Oltre ai tipi predefiniti (interi, testo, booleani, date...), puoi definirne di nuovi su misura.

Supporto ai dati non relazionali

PostgreSQL grazie ad alcune estensioni ha il supporto NoSQL dentro un DB relazionale:

  • ltree — per strutture gerarchiche ad albero
  • hstore — per coppie chiave-valore all'interno di una singola colonna
  • JSON / JSONB — per archiviare documenti semi-strutturati, in modo simile a MongoDB

Cosa vedremo in questa serie

Partiremo dalle basi — installazione, amministrazione del database, primi comandi SQL, gestione delle tabelle — per poi esplorare passo passo le funzionalità più avanzate, incluse query optimization, indici, viste, e casi d'uso reali.

L'obiettivo non è solo capire come fare, ma soprattutto perché farlo.

Conclusione

PostgreSQL è oggi uno dei database più potenti e affidabili nel panorama open source. Non è una scelta di ripiego: è la scelta di chi vuole uno strumento maturo, ricco di funzionalità e con una community solida alle spalle.

In questa serie lo esploreremo nel dettaglio, partendo dall'inizio — senza dare nulla per scontato — fino ad arrivare a query avanzate e ottimizzazione delle performance.

Nella prossima lezione vedremo come installare PostgreSQL, con istruzioni per Windows, macOS e Linux, e come verificare che tutto funzioni correttamente prima di iniziare a lavorare.

Fonti e approfondimenti