Cosa è PostgreSQL

Cosa è PostgreSQL. PostgreSQL è uno dei sistemi di database più utilizzati al mondo, offrendo supporto non solo per il linguaggio di query strutturato (SQL), ma anche per JSON, rendendolo un’ottima scelta per le applicazioni aziendali basate su database. In questo articolo di programmazione e amministrazione di database, discutiamo cosa è PostgreSQL, la sua relazione con SQL e i vantaggi di lavorare con il sistema di database ibrido.

Panoramica
PostgreSQL, come altre tipologie dei sistemi di database SQL, è spesso visto come un linguaggio di programmazione di database. Tuttavia, questo è un termine improprio, poiché PostgreSQL è in realtà un sistema di database relazionale open source. La particolarità di PostgreSQL è che supporta non solo l’esecuzione di query in linguaggio di query strutturato (SQL) (come altri sistemi di gestione di database relazionali), ma anche JSON, che viene utilizzato per query di database non relazionali.

Il termine relazione nell’ambito dei database si riferisce al modo in cui i dati sono strutturati. Utilizzando strutture note come tabelle, che sono composte da righe (orizzontali) e colonne (verticali) che si intersecano per creare una cella che memorizza un singolo punto dati, i database relazionali memorizzano i dati in modo tale che le informazioni abbiano relazioni con altri pezzi di dati.

Ad esempio, si può avere una tabella con colonne denominate FirstName, LastName e Social. Queste colonne, che corrono verticalmente o su e giù, contengono quel rappresentante delle intestazioni di colonna. Gli amministratori del database possono dedurre che la colonna FirstName conterrà i “nomi”.

La stessa logica segue per LastName (per “cognomi”) e Social (presumibilmente per i numeri di previdenza sociale). Nel frattempo, le righe che corrono orizzontalmente manterranno quei punti dati. La prima riga, ad esempio, potrebbe contenere questi tre punti dati:

Nome Cognome Social
Ronnie Payne 111-11-1111

Poiché stiamo utilizzando un database relazionale, i punti dati Ronnie, Payne e 111-11-1111 sono tutti correlati. Se eseguissimo una query nel database per trovare tutti i record associati a Social il cui valore è 111-11-1111, verrebbero restituiti anche i valori Ronnie e Payne, ma nessun altro record, a meno che non contenessero anche il valore Social di 111-11- 1111.

Questo è un esempio generico di come funzionano i database relazionali.

Un ultimo punto sui database relazionali. Consideriamo un database relazionale denominato sistema di gestione di database relazionali (RDBMS); i due, tuttavia, non sono la stessa cosa. Un database relazionale è semplicemente un tipo di database, mentre un RDBMS è un intero sistema di database, inclusi gli strumenti di gestione del database.

Quali sono i vantaggi di PostgreSQL
PostgreSQL è entrato in scena per la prima volta nel 1986 all’Università di Berkeley in California. Originariamente chiamato “POSTGRES” con il database originale “Ingres”. L’intenzione dei suoi sviluppatori era quella di creare un database che supportasse più tipi di dati, cosa che attualmente fa.

Con oltre due decenni di supporto e sviluppo, PostgreSQL ha una serie di vantaggi sia per gli sviluppatori di database che per gli amministratori di database, che evidenzieremo di seguito.

Supporto linguaggi
PostgreSQL supporta molti linguaggi di programmazione, incluso, ovviamente, SQL. Altri linguaggi supportati dal database relazionale includono:

  • Java
  • javascript
  • Perl
  • Python
  • R
  • Shell
  • Tcl
  • Lua
  • Go (Golang)
  • C#
  • C e C++
  • Ruby


Supporto per i tipi di dati
Come affermato, PostgreSQL è stato creato con l’idea di avere la caratteristica principale di supportare molti tipi di dati. A tal fine, PostgreSQL supporta i seguenti tipi di dati:

  • Primitivi (interi, stringhe, booleani, data e ora)
  • Tipi geometrici
  • tipo hstore
  • Intervalli
  • Tipi monetari per i tipi di valuta
  • Array multidimensionali
  • Indirizzi di rete
  • Oggetti JSON
  • Fonte aperta


PostgreSQL è un database relazionale open source, il che significa che il suo codice sorgente è disponibile per il download. Con questa base di codice in mano, gli sviluppatori possono adattare il database alle esigenze delle loro organizzazioni. Ciò significa anche che la base di codice è disponibile al pubblico in generale, che contribuisce all’affidabilità, alla funzionalità e alla sicurezza del database.

Inoltre, poiché PostgreSQL è open source, è gratuito, il che lo rende una scelta ideale per i team di sviluppo software attenti al budget che cercano opzioni di database senza licenza.

Database ibrido
PostgreSQL offre supporto per query relazionali e non relazionali. Ciò significa che gli sviluppatori di database e gli amministratori di database possono eseguire query SQL su righe contenenti dati di transazioni o statistiche (dove i dati sono correlati) utilizzando anche NoSQL per archiviare ed elaborare documenti JSON.

Questa funzionalità ibrida è ottima per i negozi di sviluppo flessibili che richiedono più tipi di sistemi di database.

Conformità dei dati
Un altro vantaggio di PostgreSQL ha a che fare con la conformità dei dati. PostgreSQL supporta la semantica ACID, che viene utilizzata per le transazioni. Inoltre PostgreSQL consente chiavi esterne, join, viste, trigger e procedure memorizzate.

Gli oggetti binari di grandi dimensioni, come immagini, video e suoni, possono anche essere archiviati nei database PostgreSQL, rendendolo una scelta eccellente per applicazioni multimediali pesanti e basate su database.

PostgreSQL è orientato agli oggetti
PostgreSQL è anche un database relazionale a oggetti, il che significa che supporta concetti di programmazione orientata agli oggetti (OOP) come classi, oggetti, sovraccarico di funzioni e creazione di tipi di dati personalizzati. Ciò include anche il supporto per l’ereditarietà, poiché una tabella figlio può ereditare colonne dalle tabelle padre, rendendo PostgreSQL un’opzione di database davvero potente.

PostgreSQL è estensibile
Nella programmazione informatica, la frase estensibile significa che è possibile aggiungere funzionalità a una determinata tecnologia, in genere il linguaggio o il database stesso. PostgreSQL è un database estensibile, il che significa che i programmatori di database e gli amministratori di database possono estendere le funzionalità di PostgreSQL aggiungendo nuovi tipi di dati, metodi di indice, funzioni di aggregazione, funzioni e operatori.

Dati spaziali
PostgreSQL è ben noto per il suo supporto di dati spaziali, come avere un tipo di dati specifico per la gestione di oggetti geometrici e oggetti geografici. Utilizzando l’estensione PostGIS, PostgreSQL può essere utilizzato come archivio di dati geospaziali, rendendolo popolare tra le agenzie governative, i sistemi informativi geografici (GIS) e i fornitori di servizi basati sulla posizione.

Caratteristiche di PostgreSQL
PostgreSQL supporta le seguenti funzionalità di database:

  • Chiavi esterne
  • Ereditarietà della tabella
  • Orientamento agli oggetti tramite classi e oggetti
  • Tipi definiti dall’utente
  • Più tipi di dati
  • Replica asincrona
  • Architettura di controllo della concorrenza multi-versione (MVCC).
  • Transazioni nidificate
  • Tablespace
  • Recupero temporizzato (point-in-time recovery)


Considerazioni finali su PostgreSQL
PostgreSQL è la soluzione giusta per il proprio team di sviluppo software? Ciò dipenderà in gran parte dalle esigenze dell’organizzazione. Se il nostro team desidera un database flessibile in grado di gestire sia query SQL che NoSQL, dovremmo prendere in seria considerazione l’idea di lavorare con PostgreSQL. Allo stesso modo, se la nostra azienda fa affidamento su set di dati geospaziali o basati sulla posizione, non si può sbagliare scegliendo PostgreSQL come database.

D’altra parte, se sviluppiamo applicazioni Web basate su database, potrestemmo scegliere un’alternativa come MySQL. Se lo stack tecnologico del nostro team di sviluppo dipende fortemente da tecnologie e linguaggi relativi a Microsoft come C# e ASP.NET, MSSQL Server è probabilmente un’opzione migliore.

(fonte)

Innovaformazione, scuola informatica specialistica promuove la cultura dei sistemi di database. Nell’offerta formativa per aziende trovate il Corso PostgreSQL admin.

INFO: info@innovaformazione.net – tel. 3471012275 (Dario Carrassi)

Ti potrebbe interessare

Articoli correlati