PostgreSQL è un potente sistema di database relazionale ad oggetti open source.
Nello specifico, PostgreSQL è uno tra i migliori ORDBMS, acronimo di Object Relational Database Management System, nonché l’unico database relazionale a oggetti rilasciato con licenza open source a poter competere con importanti progetti a licenza commerciale come Oracle, Microsoft SQL Server e molti altri.
Ad oggi PostgreSQL vanta, infatti, una solida reputazione
dettata dai suoi oltre 30 anni di sviluppo attivo.
Sviluppato con codice sorgente C, PostgreSQL è liberamente
consultabile e modificabile al fine di adattarlo a qualsiasi
specifica esigenza.
In quanto database relazionale a oggetti, PostgreSQL usa, anch’esso, il linguaggio SQL per eseguire varie operazioni sui dati memorizzati nel database.
Il modello di base di dati relazionale a oggetti o database relazionale a oggetti è, infatti, un modello di base di dati in cui coincidono sia aspetti del modello relazionale che aspetti del modello a oggetti. L’incontro fra i due modelli porta PostgreSQL a memorizzare le informazioni sotto forma di oggetti.
In particolare, i sistemi relazionali a oggetti gestiscono i dati memorizzandoli in tabelle, seguendo l’approccio dei database relazionali, ma nello stesso tempo dispongono anche di un sistema di frontiera che trasforma gli oggetti nelle righe di determinate tabelle e viceversa.
Pertanto, PostgreSQL è molto più che un server di database, in quanto può essere utilizzato per ogni tipo di attività di elaborazione dei dati, così come per molte attività di tipo server.
Dunque, una piattaforma che consente di integrare funzioni e librerie di più linguaggi.
Le origini di PostgreSQL risalgono al 1977, anno in cui iniziarono i lavori relativi al suo sviluppo presso l’Università di Berkeley, in California.
Tale progetto, inizialmente denominato Ingres, fu successivamente acquisito e migliorato dalla Relational Technologies, la quale si occupò della produzione dei primi server database.
Circa dieci anni dopo, nel 1986, il progetto passò nella mani
di un altro gruppo di programmatori, i quali proseguirono lo
sviluppo di quello che divenne il progetto Postgres, il cui
codice fu reso un prodotto commerciale.
Solo nel 1994, due studenti dell’Università di Berkeley
implementarono il progetto, modificandone nuovamente il nome
che divenne Postgres95.
Eppure, solo pochi anni dopo, l’esigenza di rendere l’originale progetto commerciale, un database open source, divenne sempre più diffusa e per evidenziarne l’importante cambiamento così come il supporto al linguaggio SQL, il nuovo server di database open source venne chiamato PostgreSQL.
Da quel momento in poi, nonché dal 1996, l’evoluzione di PostgreSQL è stata caratterizzata da una solida reputazione in termini di affidabilità e robustezza delle sue prestazione e delle sue funzionalità, affermandosi come il più completo e sofisticato sistema di database relazionale a oggetti open source.
Infatti, dalla data del suo primo rilascio, PostgreSQL è stato coordinato e gestito da una comunità di sviluppatori volontari, ovvero una community che ha portato sempre nuovi miglioramenti concretizzati in nuove versioni fino ad ottenere, nel 2005, la prima versione nativa anche per Windows.
Gli Object Relational Database Management System possono essere considerati per vari motivi una tecnologia innovativa rispetto ai Relational Database Management System.
Nel corso degli ultimi decenni sono stati realizzati numerosi sistemi di gestione di database a oggetti (ORDBMS) sia di tipo open source che commerciale sulla base di sempre nuove esigenze applicative derivanti anche dalla non sempre adeguata precedente tecnologia relazionale.
Infatti, nonostante i sistemi di gestione di database relazionali (RDBMS) hanno permesso la realizzazione efficace di applicazioni caratterizzate da una certa affidabilità e condivisione, da dati a struttura semplice e da interrogazioni complesse al database, i database relazionali ad oggetti prevedono l’archiviazione dei dati come oggetti e di conseguenza la relazione fra essi.
Pertanto, inizialmente molti sistemi di gestione di database a oggetti sono stati sviluppati indipendentemente e senza nessuna standardizzazione in termini di modelli dei dati e dei linguaggi da utilizzare.
Solo successivamente modelli e linguaggi iniziarono ad essere più concordi nei sistemi di gestione, seppure realizzati da programmatori diversi.
L’ideazione e lo sviluppo dei database orientati agli oggetti deriva, infatti, da precise esigenze, tra cui quella di proporre una soluzione al problema dello sviluppo di applicazioni che vedeva l’interazione tra relazioni e oggetti come incompatibile e, pertanto, ne risultava impossibile anche l’eventuale relazione tra un sistema di gestione di database relazionale e una o più applicazioni scritte in un linguaggio di programmazione orientato agli oggetti.
Le differenze fra i due modelli sono certamente evidenti sin da subito.
I sistemi di gestione di database relazionali sono stati realizzati, infatti, come modello per andare incontro ad alcune importanti mancanze dei sistemi di gestione di tipo relazionale.
Le potenzialità e i vantaggi offerti da PostgreSQL non sono poche.
PostgreSQL è, infatti, ampiamente utilizzato quale sistema di gestione di database relazionale a oggetti estremamente flessibile. La sua flessibilità lo rende un server perfettamente espandibile e personalizzabile in tutte le sue funzionalità e procedure.
Inoltre, PostgreSQL è più che un software multipiattaforma, in quanto è incluso nella maggior parte delle distribuzioni UNIX/Linux e viene fornito da Apple come database predefinito a partire dalla sua versione 10.7. Tuttavia, già a partire dalla sua versione 8, grazie ad appositi pacchetti di installazione è possibile selezionare anche i sistemi operativi Windows.
Da non sottovalutare è anche una certa potenza di calcolo e capacità di archiviazione che PostgreSQL offre in termini di programmabilità.
Utilizzare PostgreSQL non solo può ridurre il tempo totale di programmazione di molti progetti quanto offre una certa sicurezza anche nella gestione di una vasta gamma di applicazioni.
PostgreSQL è richiesto quale soluzione per sviluppare e gestire progetti web, in quanto il suo sistema relazionale a oggetti funziona con vari framework così come supporta i linguaggi web, come ad esempio PHP.
Quanto alla questione della sicurezza, PostgreSQL distribuisce i dati archiviati tra più server per garantirne un’elevata affidabilità, nonché una riduzione dei tempi di accesso a dati critici.
Un’altra questione molto importante è relativa alla documentazione e al supporto disponibile online. PostgreSQL è ben supportato dalla sua comunità attiva, la quale contribuisce alla pubblicazione di contenuti e informazioni tramite strumenti come Planet PostgreSQL e PostgreSQL Wiki.
Tutti questi vantaggi portano molte aziende a scegliere PostgreSQL. Infatti, molte sono le aziende che, ad oggi, hanno creato importanti progetti e soluzioni con questo software.
Rispetto a molti altri Relational Database Management System, PostgreSQL ha l’obiettivo di essere ampiamente flessibile e conforme agli standard del linguaggio SQL.
PostgreSQL si distingue dagli altri sistemi di gestione di database relazionali a oggetti relativamente al suo supporto completo per le transazioni sicure dei dati, così come per le sue notevoli funzionalità in termini di database orientati agli oggetti e/o relazionali.
Estremamente programmabile ed estendibile, PostgreSQL è anche in grado di mettere in atto funzioni con lo scopo di semplificare l’esecuzione di operazioni complesse e richieste di frequente sul database. Queste procedure personalizzate vengono più comunemente definite “stored procedure” in quanto sono caratterizzate dalla possibilità di richiamare una procedura precedentemente archiviata all’interno del database.
Inoltre, nonostante PostgreSQL non è contraddistinto dalla stessa popolarità di MySQL, nel corso degli anni si sono diffusi non pochi strumenti e librerie da parte di terzi al fine di rendere PostgreSQL un software non solo libero, ma anche e soprattutto semplice da utilizzare.
Sebbene PostgreSQL vanta un sistema di gestione di database altamente potente, nel tempo molteplici software sono stati sviluppati con finalità simili a quelle di PostgreSQL.
Tra i più conosciuti, possiamo annoverare Versant Object Database, Zope Object Database o, ancora, Fast Object.
Versant Object Database (VOD), ad esempio, è un sistema di gestione di database relazionale a oggetti, proprietà della Versant Corporation.
Tale sistema di gestione permette agli sviluppatori di usare linguaggi orientati agli oggetti per archiviare dati e informazioni attraverso il principio end-to-end, il quale prevede alcuni limiti in termini di chiarezza e completezza delle funzioni richieste.
Quanto a Zope Object Database o ZODB, esso è un sistema di database relazionale a oggetti ideato dalla Zope Corporation, anch’esso open source e, pertanto, sviluppato e implementato anche da una vasta comunità di sviluppatori.
Fast Object è, invece, un altro sistema per la gestione di database relazionali a oggetti, il quale è costituito da un sistema server che fornisce le funzionalità essenziali di qualsiasi database client-server unitamente a un insieme di librerie e strumenti direttamente collegate ed eseguibili sul software stesso.
Sebbene l’ampia concorrenza, PostgreSQL indipendentemente dalle sue funzionalità estremamente avanzate, si avvale anche di importanti strumenti open source progettati da terza parti al fine di rendere sempre più ottimale la progettazione, la gestione così come l’utilizzo stesso del sistema di gestione.
PostgreSQL risulta essere la scelta migliore quando l’affidabilità e l’integrità dei dati sono una priorità assoluta, così come si configura la scelta migliore anche in termini di estensione e personalizzazione delle procedure.
Inoltre, PostgreSQL offre anche l’eventuale possibilità di migrare l’intero database ad una soluzione proprietaria, come ad esempio Oracle.
Tra i sistemi di gestione database open source, PostgreSQL si configura come il software che offre il supporto più ampio ed efficace. Questo vantaggio, unitamente a molti altri, rende PostgreSQL il sistema di gestione attualmente più utilizzato al mondo.
Inoltre, caratterizzato da un’estrema scalabilità e adattabilità sia a piccoli progetti che a grosse applicazioni web, PostgreSQL vanta non poche caratteristiche che ne decretano la sua scelta.
Essendo multipiattaforma, PostgreSQL è disponibile per sistemi operativi quali Linux, Windows, Unix, Mac OS e molti altri.
PostgreSQL è rilasciato con licenza open source e utilizza un linguaggio procedurale molto simile al PL/SQL di Oracle.
I due software risaltano, infatti, molto simili relativamente al codice sorgente utilizzato in fase di sviluppo, ovvero il linguaggio C, così come alla compatibilità con più sistemi operativi.
Tuttavia, Oracle si differenzia da PostgreSQL innanzitutto per il tipo di licenza con la quale è stato rilasciato. Infatti, PostgreSQL, aderente agli standard SQL così come Oracle, si posiziona sul mercato da una parte con una performance meno potente di quella che si aggiudica Oracle, ma d’altra parte con il vantaggio di essere open source, vantaggio non solo economico.
In conclusione, possiamo affermare che le uniche due importanti differenze fra i due software sono legate al tipo di licenza e al modello di gestione di database.
Entrambi caratterizzati da un’alta affidabilità, da un’efficiente sicurezza dei dati e da una potente architettura, PostgreSQL si configura come un sistema di gestione di database relazionale a oggetti open source, mentre Oracle si qualifica come un sistema di gestione di database relazionale rilasciato con licenza commerciale.