Panoramica di PostgreSQL
Esegui il deploy delle applicazioni più popolari sui nostri server cloud ad alte prestazioni con un solo clic.
PostgreSQL è un sistema di gestione di database oggetto-relazionale a distribuzione libera, sviluppato da una comunità internazionale di sviluppatori e non controllato da alcuna azienda o individuo. PostgreSQL è distribuito sotto una licenza libera che ne consente l'inclusione in prodotti software commerciali.

I punti di forza di PostgreSQL sono:
- meccanismi di transazione e replica ad alte prestazioni e affidabilità;
- sistema estensibile di linguaggi di programmazione incorporati: PL/pgSQL, PL/Perl, PL/Python e PL/Tcl sono supportati di serie; è possibile utilizzare inoltre PL/Java, PL/PHP, PL/Py, PL/R, PL/Ruby, PL/Scheme, PL/sh e PL/V8, ed è disponibile il caricamento di moduli compatibili con C;
- ereditarietà;
- facilità di estensione.
Funzionalità principali:
- Le funzioni sono blocchi di codice eseguiti sul server, non sul client del database. Sebbene possano essere scritte in SQL puro, l'implementazione di logica aggiuntiva — come salti condizionali e cicli — va oltre le capacità di SQL e richiede alcune estensioni del linguaggio.
- I trigger sono definiti come funzioni avviate da operazioni DML. Ad esempio, un'operazione INSERT può attivare un trigger che verifica il record aggiunto rispetto a determinate condizioni. Per scrivere le funzioni dei trigger possono essere utilizzati diversi linguaggi di programmazione.
- Regole e viste — il meccanismo delle regole consente di creare gestori personalizzati non solo per le operazioni DML, ma anche per le operazioni di selezione. La differenza principale rispetto al meccanismo dei trigger è che le regole vengono attivate nella fase di analisi della query, prima della scelta del piano di esecuzione ottimale e del processo di esecuzione stesso. Le regole consentono di ridefinire il comportamento del sistema durante l'esecuzione di operazioni SQL su una tabella.
- PostgreSQL supporta indici dei seguenti tipi: B-tree, hash, GiST, GIN, BRIN, Bloom. Se necessario, è possibile creare nuovi tipi di indice.
- PostgreSQL supporta la modifica simultanea del database da parte di più utenti tramite il meccanismo Multiversion Concurrency Control (MVCC). Questo garantisce il rispetto dei requisiti ACID e rende quasi superflui i lock in lettura.
- PostgreSQL supporta un ampio insieme di tipi di dati integrati.
Le tabelle possono ereditare caratteristiche e insiemi di campi da altre tabelle (padre). I dati aggiunti a una tabella derivata parteciperanno automaticamente (salvo diversa indicazione) alle query sulla tabella padre.
In PostgreSQL 10 è stato aggiunto il meccanismo di partizionamento delle tabelle. Il partizionamento è progettato per suddividere una tabella in più tabelle, chiamate partizioni. Il partizionamento è simile all'ereditarietà, ma dispone di una sintassi più intuitiva e di vincoli più rigidi, il che consente ulteriori ottimizzazioni nella pianificazione delle query.
Ulteriori informazioni sono disponibili su Wiki.