Skip to Content

Che cos'è PostgreSQL?

PostgreSQL è un sistema di gestione di database relazionali a oggetti open source (ORDBMS) con una solida reputazione di affidabilità e performance. Le sue funzioni principali sono quelle di memorizzare e recuperare i dati in modo sicuro, supportando al contempo le best practices informatiche. 

Con oltre 30 anni di sviluppo attivo e il supporto di una community open source dedicata, PostgreSQL compete con i principali database commerciali come SQL Server e Oracle. PostgreSQL è diventato il database relazionale open source preferito da molte organizzazioni.

Come funziona PostgreSQL?

PostgreSQL utilizza un'architettura client-server che consente al client e al server di risiedere su host diversi della rete. Il programma del server gestisce i file del database e accetta ed esegue più connessioni simultanee al database da parte delle applicazioni client. I client remoti possono connettersi al server attraverso la rete o Internet. 

Che cos'è il percorso di ricerca in Postgres?

La variabile search_path di PostgreSQL consente di determinare l'ordine di ricerca degli schemi e di stabilire quali di essi non hanno la necessità di utilizzare la qualificazione dello schema. 

Il primo schema restituito nel percorso di ricerca è definito schema corrente. Quando si creano nuovi oggetti, come le tabelle, se non si specifica il nome dello schema, la tabella verrà creata nello schema corrente.

La variabile search_path può essere impostata a diversi livelli che indicano a PostgreSQL quale impostazione del percorso di ricerca utilizzare. Questi includono:

  • Livello funzione: dura per l'intera durata di esecuzione di una funzione all'interno di una funzione.
  • Livello sessione: dura per l'intera durata della sessione.
  • Livello utente del database: si applica a una nuova sessione.
  • Livello utente del server: si applica alle nuove sessioni.
  • Livello database: si applica alle nuove sessioni.

Postgres e PostgreSQL sono la stessa cosa?

PostgreSQL deriva dal progetto POSTGRES avviato nel 1986 presso l'Università della California a Berkeley. Dopo la conclusione del progetto POSTGRES nel 1993, nel 1995 venne creato Postgres95 sulla base del codice POSTGRES e fu aggiunto un interprete del linguaggio SQL in sostituzione del linguaggio di query PostQUEL.

Nel 1996, quando il nome Postgres95 divenne obsoleto, fu scelto PostgreSQL come nuovo nome per indicare il progetto POSTGRES originale e il supporto aggiunto per SQL. Sebbene PostgreSQL sia il nome ufficiale, Postgres è comunque accettato e PostgreSQL è ora comunemente indicato come Postgres.

Che cos'è la ricerca nel testo completo di PostgreSQL?

La ricerca nel testo completo di PostgreSQL consente di cercare un singolo documento o un insieme di documenti in un database completo. Può anche identificare i documenti in linguaggio naturale che soddisfano i requisiti di una query e ordinarli in base alla pertinenza alla query. 

Sebbene le clausole LIKE e ILIKE possano eseguire query di ricerca basate su stringhe, le parole del testo non vengono indicizzate, con conseguente peggioramento delle performance. La ricerca nel testo completo indicizza i documenti per ottenere risultati di ricerca più rapidi e supporta i dizionari per un controllo più preciso sulla normalizzazione dei token.

Per implementare la ricerca nel testo completo di PostgreSQL si utilizzano due funzioni:

  • to_tsvector: ts indica la ricerca di testo ed è una funzione utilizzata per creare un elenco di token di tipo tsvector.
  • to_tsquery: questa funzione viene utilizzata per eseguire query sul vettore alla ricerca di parole o frasi specifiche.

Perché le performance di PostgreSQL sono così importanti?

PostgreSQL è stato ampiamente adottato in diversi settori ed è comunemente utilizzato per il data warehousing e per applicazioni complesse e altamente transazionali che richiedono elevati volumi di dati. Per questi tipi di applicazioni, le performance rappresentano un fattore essenziale. 

PostgreSQL è dotato di diverse funzionalità per incrementare e ottimizzare le performance. La versione attuale di PostgreSQL, v14, aggiunge un ulteriore supporto per i tipi di dati complessi e per i dati non strutturati JavaScript Object Notation (JSON). I miglioramenti delle funzionalità di PostgreSQL v14 in termini di simultaneità delle connessioni, parallelismo delle query, workload caratterizzati da un elevato numero di scritture e dalla replica logica testimoniano la costante attenzione di PostgreSQL verso il miglioramento delle performance.

Quante versioni di PostgreSQL esistono?

La versione attuale di PostgreSQL è la 14, che è stata rilasciata il 30 settembre 2021. Fornisce un supporto aggiuntivo per i tipi di dati complessi e funzionalità che facilitano il lavoro con JSON e con intervalli di dati non contigui. La versione 14 offre anche funzionalità migliorate per i workload intensivi, i workload distribuiti, l'amministrazione, l'osservabilità e la sicurezza. 

Le altre versioni di PostgreSQL ancora supportate sono 13/12/11/10/9.6. Le versioni 9 e 10 sono disponibili per Linux x86-64, Linux x86-32, Mac OS X, Windows x86-64 e Windows x86-32. Le versioni da 11 a 14 sono disponibili solo per Mac OS X e Windows. 

Tre vantaggi di PostgreSQL rispetto a SQL

Di seguito sono elencati tre vantaggi di PostgreSQL rispetto a SQL Server:

Open source e gratuità

PostgreSQL è un sistema di gestione di database relazionali a oggetti, gratuito e open source, gestito dal PostgreSQL Global Development Group e sostenuto da una community attiva che fornisce continui suggerimenti per le funzionalità nuove ed esistenti. SQL Server è un sistema commerciale proprietario per la gestione dei database creato e gestito da Microsoft. È disponibile in diverse edizioni, da quelle entry-level a quelle aziendali dotate di tutte le funzionalità. 

Maggiore supporto per i sistemi operativi

PostgreSQL è ampiamente disponibile su diversi sistemi operativi, tra cui Windows, Linux, OS X, Unix, FreeBSD, HP-UX, NetBSD, OpenBSD e Solaris. SQL Server è disponibile solo su piattaforme Windows e Linux. 

Gestione della simultaneità

PostgreSQL dispone di un solido sistema di gestione della simultaneità con il controllo della concorrenza multiversione, che consente a più processi di accedere e modificare contemporaneamente i dati condivisi. SQL Server consente di identificare i problemi di simultaneità e le query con un tempo di esecuzione lungo, ma i processi sono spesso soggetti a blocchi e stalli.

Quando è consigliabile utilizzare PostgreSQL?

Di seguito sono elencati diversi casi d'uso di PostgreSQL:

Workload NoSQL scalabili

Le moderne applicazioni dei siti web gestiscono fino a centinaia di migliaia di richieste al secondo inviate dai clienti. Per questo motivo, la scalabilità è un fattore importantissimo per la maggior parte delle organizzazioni.

Come database relazionale a oggetti, PostgreSQL offre funzionalità sia relazionali che orientate ai documenti nello stesso prodotto, per supportare un'ampia gamma di applicazioni. PostgreSQL funziona bene con i più diffusi framework web moderni come Django e Node.js, e con linguaggi come Java, Python, Ruby on Rails e PHP. PostgreSQL offre inoltre una funzionalità di replica che consente di effettuare lo scale-out di qualsiasi numero di server di database.

OLTP, analytics e business intelligence

Le organizzazioni finanziarie di tutte le dimensioni utilizzano PostgreSQL come database principale per applicazioni e prodotti. PostgreSQL è completamente conforme alle proprietà ACID (Atomicità, Coerenza, Isolamento e Durata) ed è ideale per i workload OLTP (Online Transaction Processing). Si integra anche con software matematici come Matlab e R per eseguire l'elaborazione di analytics e di business intelligence. 

Dati spaziali

Utilizzato con PostGIS, un estensore di database spaziale, PostgreSQL offre un supporto aggiuntivo per l'esecuzione di query di localizzazione su oggetti geografici in SQL e per l'analisi dei dati spaziali. PostGIS è altamente conforme agli standard, fornisce centinaia di funzioni per l'elaborazione di dati geometrici in vari formati e può essere utilizzato sia con QGIS che con GeoServer per facilitare la gestione dei geodati.

Quattro domande su PostgreSQL

Ecco le risposte alle domande più comuni su PostgreSQL:

Qual è la principale differenza tra MySQL e PostgreSQL?

PostgreSQL è un sistema di gestione di database relazionale a oggetti. MySQL è un sistema di gestione di database relazionali (RDBMS). Postgres è incentrato sull'estensibilità e sulla conformità agli standard.

Dal punto di vista RDBMS, Postgres è transazionale e conforme alle proprietà ACID, con funzionalità per viste aggiornabili e materializzate, trigger e chiavi esterne. PSQL supporta anche i tipi di dati JSON per la memorizzazione di dati JSON e funzioni e operatori specifici per JSON per l'esecuzione di query non relazionali.

Perché utilizzare PostgreSQL invece di MySQL?

MySQL è un RDBMS che memorizza i dati in tabelle con righe e colonne. È la scelta ideale se si desidera un RDBMS caratterizzato da una sicurezza elevata e focalizzato sull'integrazione e sull'estensibilità per le applicazioni web e le soluzioni personalizzate.

PostgreSQL è un database relazionale a oggetti che include sia le funzionalità dei database relazionali che le funzionalità NoSQL per l'esecuzione di query su dati non strutturati. Scegli PostgreSQL se hai la necessità di procedure complesse, integrazione, progetti molto elaborati e integrità dei dati.

Quali sono le differenze tra PostgreSQL e MySQL?

Ecco alcune differenze tra i due sistemi:

  • Licenze: PostgreSQL è un software libero e open source disponibile con la PostgreSQL License. Il codice sorgente di MySQL è anch'esso open source con licenza GNU, ma è di proprietà di Oracle, è oggetto di diversi accordi proprietari ed è disponibile in varie versioni a pagamento per uso commerciale.
  • Performance: PostgreSQL funziona meglio per applicazioni di data warehousing e analisi dei dati che richiedono velocità di lettura/scrittura elevate. MySQL è più adatto per sistemi Online Analytical Processing (OLAP) e Online Transaction Processing (OLTP) in cui sono importanti solo le velocità di lettura elevate. 
  • Conformità ACID: mentre PostgreSQL è completamente conforme alle proprietà ACID, MySQL è conforme alle proprietà ACID solo se utilizzato con i motori di storage NDB e InnoDB Cluster.

Perché PostgreSQL è così diffuso?

PostgreSQL supporta sia i dati relazionali che quelli orientati ai documenti e consente di memorizzare e sottoporre a query diversi tipi di dati nelle stesse tabelle. La velocità, la sicurezza e la solidità di PostgreSQL lo rendono adatto alla maggior parte delle applicazioni. Grazie ai continui miglioramenti in termini di performance ed efficienza, gli utenti stanno abbandonando database commerciali consolidati come Oracle per passare a PostgreSQL.

Accelera i workload PostgreSQL con Pure

Offri una Modern Data Experience™ con la velocità, le performance e l'affidabilità dello storage NVMe e degli array all-flash di Pure Storage®.

Premiato come DBMS dell'anno nel 2020 (oltre che nel 2017 e nel 2018), PostgreSQL è sempre più utilizzato grazie alle velocità delle performance e all'affidabilità che offre. I nostri test dimostrano che PostgreSQL fornisce performance migliori sullo storage FlashArray™ rispetto a un sistema SAS-DAS comparabile. FlashArray//X offre performance costanti per i workload dei database e funzionalità aziendali avanzate che non sono disponibili con i sistemi DAS. 

Scegli lo storage NVMe e NVMe-oF end-to-end ottimizzato per le performance di FlashArray//X per i tuoi workload tier 0 e tier 1.

CONTATTACI
Domande?

Hai domande o commenti sui prodotti o sulle certificazioni di Pure?  Siamo qui per aiutarti.

Prenota una demo

Prenota una demo per vedere come puoi trasformare i tuoi dati in risultati concreti con Pure. 

Telefono: +39 02 9475 9422

Media: pr@purestorage.com

 

Pure Storage Italia

Spaces c/o Bastioni di Porta Nuova, 21

Milano, 20121

+39 02 9475 9422

italia@purestorage.com

CHIUDI
Il browser che stai usando non è più supportato.

I browser non aggiornati spesso comportano rischi per la sicurezza. Per offrirti la migliore esperienza possibile sul nostro sito, ti invitiamo ad aggiornare il browser alla versione più recente.