Breve introduzione a PostgreSQL - Parte 1
di Simone BrunozziBreve introduzione che riguarda installazione, configurazione ed utilizzo di PostgreSQL, il più avanzato Data Base Management System (DBMS) a codice aperto. Prima parte.
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: