Per gentile concessione di Simone Brunozzi
Pagina 1 di 3
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.
Corsi online di WebMasterPoint.org:
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:
http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems.
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 (http://www.postgresql.org/docs/current/interactive/plpython.html).
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.
- TV e decoder Google: alleanza con Sony, Intel e Logitech. Il set-top box è già in prova.
Google, Intel, Sony e Logitech insieme per realizzare una piattaforma Google TV. Si parla di un set-top box Android-powered.
- Netbook, console, cellulari, videocamere: prezzi più alti in Italia per nuova tassa equo compenso
- ADSL senza telefono: offerte a confronto. Il prezzo è più alto e conviene meno.
- Nuovi lettori Blu-ray Samsung con streaming in Wi-Fi e 3D in vendita. Prezzi e caratteristiche.
- Libri in italiano da scaricare sul Sole24Ore mentre ebook reader Telecom-Olivetti viene annunciato
- Collegare 2 PC tra loro tramite porta USB: come fare
USB GO! Link Cable è un dispositivo che consente la trasmissione diretta di dati tra due personal computer. - Script e-mail, e-commerce e database in ASP.NET download gratis
- Vedere film, telefilm e video scaricati da Internet o in streaming sul televisore con i Mediacenter. Due nuovi modelli provati.
- Proprietà/tag HTML 5
- Outlook: usare al meglio il programma di posta elettronica con 3 software gratis add-on



![[SPONSOR] Aruba (Link Esterno)](/sponsor/aruba_90.gif)

Segnala questo articolo ai tuoi amici su Facebook
Stampa Pagina
Info sull'autore
ICQ
EMAIL
DISCUTI DI QUESTA LEZIONE SUL FORUM![[SPONSOR] eDomain (Link Esterno)](http://www.webmasterpoint.org/sponsor/edomain_120.gif)
![[SPONSOR] Rubalo (Link Esterno)](/sponsor/rubalo.gif)
![[SPONSOR] ConsultingWeb (Link Esterno)](/sponsor/consultingweb_120.gif)