Breve introduzione a PostgreSQL - Parte 1

di Simone Brunozzi

Breve introduzione che riguarda installazione, configurazione ed utilizzo di PostgreSQL, il più avanzato Data Base Management System (DBMS) a codice aperto. Prima parte.

Breve introduzione a PostgreSQL - Parte 1 Premessa
PostgreSQL (pronuncia "postgres-chiu-ell" o "postgre-sequel") è un ottimo "Database" (anche se il termine più appropriato è "Data Base Management System", o DBMS), rilasciato con licenza BSD (Berkeley Software Distribution license).
Questa breve introduzione riguarderà installazione, configurazione ed utilizzo di PostgreSQL in ambiente Linux Debian o ambiente Linux Ubuntu, pertanto alcune informazioni saranno dedicate a tali ambienti e non trasferibili in altri.
PostgreSQL è spesso associato ad ambienti Unix-like e Linux, pertanto ritengo necessario sottolineare le caratteristiche della licenza BSD rispetto alla più conosciuta GNU GPL.

Un software rilasciato sotto licenza BSD permette l'utilizzo commerciale, e permette che il software venga incorporato in prodotti commerciali. Il lavoro basato sul materiale licenziato con BSD può anche essere rilasciato all'interno di una licenza proprietaria, l'importante è che sia sempre presente ed esplicita la licenza BSD riferita a tale software. Alcuni esempi significativi sono il codice riguardante il networking, presente in prodotti Microsoft, o l'uso di numerosi componenti FreeBSD nel sistema operativo Mac OS X.

Non è certamente questo l'ambito in cui affrontare una discussione approfondita al riguardo; per l'utente è sufficiente sapere che è possibile utilizzare PostgreSQL senza pagare licenze e senza obblighi di sorta riguardo al codice delle proprie applicazioni.

Il più noto "rivale" di PostgreSQL in ambito Linux è senza dubbio MySQL, che tuttavia è rilasciato sotto una licenza sostanzialmente diversa: rimane gratuito soltanto se le applicazioni che utilizzano MySQL vengono rilasciate sotto licenza GPL, ovvero a codice sorgente aperto e senza costi. Questa "limitazione" non è certo da poco, e purtroppo molte aziende, a causa di una certa confusione sulle licenze, adottano MySQL senza pensare a questo problema.
Dal punto di vista tecnico, come accennato, PostgreSQL è molto più avanzato e stabile di MySQL, e spesso viene posto in diretta concorrenza con rivali come Oracle o DB2 di IBM. Vedi Wikipedia

Caratteristiche di PostgreSQL
PostgreSQL è totalmente compatibile con lo standard ANSI-SQL-92, ed implementa la maggior parte dei costrutti SQL. Alcune tra le caratteristiche che supporta sono: transazioni, sub-query, trigger, viste, foreign-key (integrità referenziale), locking, tipi di dati definiti dall'utente, ereditarietà, valori non atomici (array), LOB (Large OBjects), ottimizzatore dell'esecuzione delle query, e molte altre.
PostgreSQL può lavorare in due modalità: fsync e no-fsync. Nel primo caso ogni transazione viene salvata su disco, garantendo ogni dato da eventuali crash di sistema, rinunciando però a qualcosa in termini di performance in fase di accesso ai dati. Nel secondo caso invece le performance sono più elevate, ma le transazioni vengono salvate solo periodicamente, non garantendo la salvaguardia degli ultimi dati immessi.
PostgreSQL ha un proprio linguaggio di programmazione, chiamato PL/pgSQL, sulla falsariga del più noto PL/SQL di Oracle. I programmi creati con PL/pgSQL sono detti "funzioni", e possono essere invocati come parte di un comando SQL, o come una azione attivata da un "trigger" (grilletto).
Come alternativa, è possibile utilizzare linguaggi di scripting "adattati" come procedurali, come plPHP o PL/Python.

In ambiente Linux Debian "stable" (nello specifico: Debian Sarge 3.1, rilasciata il 6 giugno 2006), nel momento in cui scrivo, la versione di PostgreSQL è la 7.4.7-6sarge2.
In ambiente Linux Ubuntu 6.06, invece, la versione è 8.0.7, ma si può scegliere la 7.5.16.1.
D'ora in avanti ci riferiremo a "debian stable" semplicemente come "Debian", e a "ubuntu 6.06" semplicemente come "Ubuntu".
PostgreSQL può essere "acceduto" (o "accesso", se preferite, anche se suona davvero male) sia in modalità testuale con il comando psql, sia in modalità grafica con pgaccess, giunto oggi alla versione 1:0.98.8.20030520-1 sia in Debian che in Ubuntu.
E' fortemente consigliato prendere dimestichezza con l'interfaccia a linea di comando, soprattutto in fase di apprendimento. Successivamente, con cognizione di causa, risulterà molto facile e produttivo utilizzare pgaccess, se lo si desidera.
Una alternativa a pgaccess è costituita da phppgadmin, giunto alla versione 3.5.2-5, disponibile come interfaccia web. Quest'ultima soluzione, tuttavia, è più "delicata" in termini di sicurezza, e ne consiglio l'utilizzo solo dopo un attento esame della configurazione di accesso.
Ecco una schermata di esempio di pgaccess:

A sinistra in alto c'è la finestra principale, mentre il "query builder", la "query result" e il "pgmonitor" sono altre finestre, apribili all'occorrenza.

Ecco invece phppgadmin:

AUTORE DEL TESTO
Simone Brunozzi
http://simpler.wordpress.com/

Pubblicato il: 14/11/2006