DBMS A CONFRONTO

Panoramiche sui diversi scenari di sviluppo dei server database.

Pubblicato il 10 gennaio 2007 - v0.1 Licenza: GNU - Free Documentation License ©2007 Nello Coppeto a.k.a. NeCoSi

Introduzione
Questo documento, ha lo scopo di evidenziare le differenze sostanziali tra alcuni DBMS appartenenti a categorie distinte. Costruiremo tre macro-categorie all'interno delle quali porremo solamente un DBMS, rappresentante l'intera categoria. Emergeranno le conseguenze di utilizzo di sistemi “aperti” e sistemi “chiusi” nell'ambito della sicurezza, delle licenze, dei costi e della gestione. Percorreremo la cronologia dei DBMS iniziando così a produrre un primo confronto basato sul processo temporale di nascita e sviluppo delle soluzioni selezionate. Analizzeremo i requisiti di sistema, le funzionalità, le piattaforme supportate. Delineeremo i DBMS orientati ad utenza finale e/o a sistemi di produzione e concluderemo con una demo per comprendere meglio le performance in ambito pratico di tali sistemi.

Categorie e DBMS selezionati
Tutti i DBMS di cui parleremo in questo documento sono di tipo relazionale. La prima categoria, popolata da sistemi denominati chiusi sarà rappresentata da Oracle. La seconda categoria, popolata da sistemi denominati semi-aperti sarà rappresentata da MySQL. La terza categoria, popolata da sistemi denominati aperti sarà rappresentata da PostGreSQL. Il motivo per cui sono stati selezionati questi DBMS deriva dal fatto che ognuno di essi è considerato il pioniere nella propria categoria ed ha caratteristiche con le quali sarà semplice evidenziare e capire le differenze sostanziali tra queste tre categorie.

2

Storia di Oracle, MySQL e PostGreSQL
Il primo DBMS al mondo viene concepito nel 1977 da Lawrence J. Ellison. Egli fonda in quell'anno la Software Development Laboratories (SDL) e rilascia Oracle v1. Dopo due anni Michael Widenius a.k.a. Monty, inizia a lavorare sui database presso la TcX ataconsult, e sviluppa una serie di tools “fatti in casa” chiamati UNIREG. La finalità di questi tool era quella di amministrare un database che oggi conosciamo come MySQL. Nello stesso anno la Software Development Laboratories cambia nome e diventa Relational Software, Inc. (RSI). In quell'anno segue il rilascio di Oracle v2. Nel 1983 RSI cambia nuovamente nome e diventa la Oracle Corp e rilascia Oracle v3. Il cambiamento principale è che il codice è stato riscritto usando il linguaggio C. Dopo un anno esce Oracle v4 che implementa il supporto read-consistency e l'anno seguente viene alla luce Oracle v5 che supporta le query distribuite. Nel 1989 l' Università della California, con sede a Berkeley (conosciuta anche come UC Berkeley), che rappresenta una delle università più prestigiose al mondo rilascia PostGres v1. Dopo un anno il codice di PostGres viene riscritto e viene rilasciato PostGres v2. Dopo un altro anno PostGres viene nuovamente riscritto, con supporto al “multiple storage managers” e migliorie sostanziali sul “query engine”. L'anno seguente esce Oracle v7h. L'h è decisamente importante in questa versione e sta a significare “datawareHouse”. Questa nuova versione di Oracle supporta il referential integry, lo stored procedures e i triggers. Nel 1994 la TcX sviluppa API simili al DBMS open source mSQL appartenente alla Hughes Technologies fornendo però una gamma più ricca di features. mSQL o miniSQL è un piccolo DBMS il cui sviluppo iniziò proprio nel 1994 e per circa tre anni è cresciuto in popolarità ed è divenuto la prima scelta dei programmatori Open Source. Nello stesso anno esce anche PostGres v4. Sempre nel 1994, Andrew Yu e Jolly Che, due studenti dell' UC Berkeley, aggiungono un interprete per il linguaggio SQL in PostGres, rimpiazzando così il precedente Ingres-based QUEL system, dando vita a PostGres95. E' il 1995 quando la TcX rilascia MySQL v1 ad opera di David Axmark, Allan Larsson e di Michael Monty Widenius. Il socio di affari di Monty, David Axmark chiede alla TcX di rilasciare il DBMS su internet. Con l'aiuto di Aladdin Peter Deutsch MySQL diventa "più libero” del concorrente mSQL e rappresenta il primo database “open” al mondo. Già dalla prima versione viene effettuato il porting per i sistemi Unix, Win32, e OS/2. Si contano circa 500,000 sever MySQL. mSQL negli anni ha riempito il vuoto che esisteva tra i database embedded da desktop come Microsoft Access e i database commerciali di alto livello, come Oracle ma dal 1996, lo sviluppo ha iniziato a ristagnare e MySQL ha preso il suo posto. Dal 1999, MySQL è andato ben oltre mSQL in termini di popolarità, cosicché oggi la maggior parte dei programmatori nemmeno conoscono mSQL. Durante il 1996, Postgres95 viene rinominato PostGreSQL e nel 1997 viene rilasciato PostGreSQL v6. Nello stesso anno esce Oracle v8 con supporto object-oriented. Dopo due anni esce Oracle8i che integra una Java virtual machine. Nel 2000 la MySQL AB rileva MySQL dalla TcX ed adotta la licenza GPL (GNU, General Public License) per il prodotto MySQL. Nel 2001 viene rilasciato Oracle9i con ben 400 nuove funzionalità, tra cui lettura/scrittura di documenti XML, e l' opzione Oracle Real Application Clusters (RAC) rimpiazza l' Oracle Parallel Server (OPS). Durante lo stesso anno, nel 2001 Command Prompt, Inc. rilascia Mammoth PostGreSQL, la più vecchia distribuzione commerciale di PostGreSQL. Nel 2003 esce Oracle Database 10g. La g risulta essere fondamentale in questa versione tanto da rappresentare la caratteristica principale di questo rilascio. G infatti sta per "Grid” (in italiano: griglia) ed indica la possibilità di creare un'infrastruttura distribuita per consentire l'utilizzo di risorse di calcolo e di storage provenienti da un numero indistinto di calcolatori (anche e soprattutto di potenza non particolarmente elevata) interconnessi da una rete (non necessariamente Internet). Il 2005 rappresenta per PostGreSQL un anno particolarmente ricco. Molte società iniziano ad interessarsi a questo DBMS ed offrono le loro risorse per migliorarlo. Lo sviluppo subisce un forte incremento. Questo strano comportamento è comprensibile solo se si analizza la licenza fortemente libera sotto cui è stato rilasciato il DBMS. Si tratta della licenza Berkeley Software Distribution (BSD) e nel seguito avremo modo di approfondire questo discorso. Durante quest' anno dunque PostGreSQL riceve l'appoggio di molti fornitori di database. Pervasive Software annuncia di offrire supporto commerciale. EnterpriseDB annuncia di sviluppare alcune funzionalità per consentire di far funzionare le applicazioni di Oracle anche su PostGreSQL. Greenplum si concentra direttamente su Data Warehouse e Business Intelligence. John Loiacono, vice-presidente esecutivo della Sun Microsystems afferma: "We're not going to OEM Microsoft but we are looking at PostGreSQL right now". In seguito anche Sun Microsystems ha annunciato il suo supporto per PostGreSQL. Alla domanda: “Nel 2006 avete pianificato il passaggio da database proprietario a Software Libero/Open Source?” il 40% dell’Europa ha risposto si, ben il 60% in America latina e il 50% per il continente Asiatico. Questi dati, pubblicati 3

dalla società Gartner, indicano un forte cambiamento preannunciato già negli scorsi anni dai sostenitori del software libero ed open. L'idea è che le soluzioni “aperte” crescono inesorabilmente e rubano fette di mercato alle grandi software house. Quest' idea, priva di credibilità per anni, sembra iniziare a spaventare molti.

4

Oracle
Sulla cresta dell'onda
Oracle ha coperto e copre tuttora un ruolo fondamentale nel campo dei DBMS, è il pioniere per eccellenza nello studio delle basi di dati, infatti è il primo, in termini di tempi di sviluppo, ad implementare nuove tecnologie. E' davvero innovativo e lo dimostra la sua storia. In generale Oracle è stato il primo DBMS commerciale basato su SQL, era infatti già disponibile nel lontano 1979. Già nel 1983 supportava sistemi dotati di MultiProcessore Simmetrico (SMP), cioè un' architettura hardware dotata di più processori e dove questi possono accedere equamente a tutta la memoria principale (RAM). E' stato il primo ad offrire la possibilità di avere una base di dati distribuita (1986). Il primo ad essere testato con il linguaggio standard ANSI SQL (1993). Nel 1995 è stato il primo ad implementare la tecnologia a 64-bit. Ha implementato per primo ed in modo nativo la JRE (1998) ed è stato il primo DBMS commerciale ad essere disponibile anche per sistemi basati su Gnu/Linux (1999). Recentemente, nell'aprile del 2006, durante il LinuxWorld, Oracle Database 10g Express Edition è stato premiato come miglior database, ricevendo l' award: "LinuxWorld Product Excellence Award for Best Database Solution". Nel 1999 è stato il primo a supportare XML e nel 2001 è stato il primo DBMS a poter girare su sistemi cluster, implementando una tecnologia, chiamata RAC (Real Application Clusters) la quale permette al DBMS di girare anche in ambienti di Grid-Computing. Ciò permette di ridurre i costi dell' hardware.

Edizioni
Oracle recentemente ha rilasciato diverse edizioni per venire parzialmente incontro ai suoi clienti. Spesso l'utente finale resta confuso, difficile scegliere quando ci sono molteplici soluzioni. Per fare luce su questo problema, riassumeremo in poche e chiare parole alcune tra le principali differenze. Oracle Database 10g Standard Edition One (SE1) Questa edizione è disponibile solo su un massimo di due processori. Mette a disposizione tutte le funzionalità necessarie per costruire applicazioni business-critical. Oracle Database 10g Standard Edition (SE) Questa edizione è disponibile solo su un massimo di quattro processori su una singola macchina o su più macchine in cluster. Ha le stesse funzionalità della versione SE1. Oracle Database 10g Enterprise Edition (EE) Non presenta limitazioni. Oltre a fornire le funzionalità delle due versioni precedentemente menzionate garantisce una gestione dei dati affidabile e sicura per applicazioni mission-critical in ambienti OLTP. Oracle Database 10g Personal Edition (PE) Questa edizione è limitata all'uso da parte di un singolo utente. E' stata pensata per gli sviluppatori, supporta tutte le funzionalità delle versioni SE1, SE e EE. Oracle Database 10g Express Edition (XE) Questa edizione è limitata per un uso massimo di 1GB di RAM, lo sfruttamento di un solo processore e lo spazio per i dati memorizzati ristretto a 4GB. E' un prodotto pensato per avvicinare gli utenti al mondo Oracle. E' disponibile il download dal web. Chiunque può prelevarla ed usarla gratuitamente. Contiene quasi tutte le caratteristiche dell'edizione SE1. Nessuna di queste soluzioni proposte da Oracle è open source. Questo significa che i sorgenti non sono di pubblico accesso, il che comporta l'impossibilità di installare i DBMS di Oracle sui sistemi i cui binari non siano stati pre-compilati e distribuiti dalla società stessa. Questo significa anche che non avremo modo di verificare le procedure che il software svolgerà sulle nostre macchine. L' unica edizione di facile accesso è la Express Edition, reperibile dal web, ma i cui binari sono disponibili solo per i sistemi Windows e Gnu/Linux basati su architettura x86. Per le edizioni a pagamento invece la gamma di sistemi compatibili è molto più vasta.

5

Licenze
A rendere il discorso più complesso si pongono le licenze. In questo caso Oracle propone al cliente una gamma di soluzioni più ricca, il cliente dovrà quindi scegliere tra le molte licenze a disposizione ed il lavoro non è semplice. Possiamo provare a semplificare costituendo tre categorie che avranno però al loro interno alcune sotto-categorie. Modalità d'uso In questa categoria sono raccolte le licenze che limitano l'uso che l'utente può fare del software Oracle. Ci sono tre sotto-categorie: Full Use (che rappresenta la licenza standard), ASFU e Embedded. Le licenze Full Use permettono all'utente finale di utilizzare il software per qualsiasi tipo di applicazione. La licenza ASFU (Application Specific Full Use) consente un utilizzo limitato destinata ad un Partner Oracle per una singola e specifica Applicazione allo scopo di rivendita ad un utente finale determinato. Permette all'utente di utilizzare il software solo congiuntamente all'applicazione con cui e' stato venduto. Le licenze Embedded (ESL) consentono un utilizzo limitato destinate ad un Partner Oracle Solution Provider per la vendita di una soluzione in cui il software Oracle e' appunto "Embedded", ovvero inserito all'interno nel pacchetto applicativo fornito dal Partner. Tipologia In questa categoria sono raccolte le licenze che si basano sul sistema dell'utente finale. Solo dopo aver studiato il sistema che ospiterà il software Oracle, sarà possibile scegliere una tra le tre sotto-categorie che seguono. La licenza Named User Plus viene utilizzata negli ambienti dove il numero di utenti può essere identificato e contato. Da notare però che questa licenza considera utente del sistema sia gli utenti fisici sia i dispositivi automatici non-umani (ad es. terminali) che accedono al software Oracle. La licenza Processor è una licenza che si applica su ogni singolo processore attuo a processare il software Oracle. E' una licenza fortemente utilizzata negli ambienti dove gli utenti del software non possono essere facilmente identificati o contati, come le applicazioni accessibili via Internet. Con questa licenza, dunque tutti i processori dove viene installato software Oracle e/o che sono attivi devono essere coperti da opportuna licenza d'uso. Attraverso la “licenza” dedicata ai processori multi-core, Oracle definisce ogni core come un processore separato, ma per venire incontro alle esigenze dei clienti è stato introdotto un moltiplicatore univoco diviso su quattro diverse categorie che ha lo scopo di determinare il numero totale di licenze Processor che è necessarie acquistare. Il moltiplicatore è fatto in modo da ridurre le spese agli utenti che fanno uso di sistemi basati su hardware multi-core. Ad esempio processare software Oracle con gli 8 core dell' UltraSPARC T1 costa come processare tale software con 2 CPU single-core. Scadenza della licenza In questa categoria sono raccolte le licenze che pongono limiti sul tempo di utilizzo del software. Ci sono tre sottocategorie: A tempo determinato, indeterminato e a tempo esteso. Le licenze a tempo determinato sono cinque, e autorizzano l'utente ad utilizzare il software da un minimo di 1 anno ad un massimo di 5 anni. Al termine della validità di questa prima categoria di licenze, sarà necessario disinstallare il software. In caso in cui si abbia ancora bisogno di utilizzare il software, potrebbe essere possible prolungare la durata di vita della licenza acquistando una licenza che vali come estensione della precedente. E' anche possibile acquistare una licenza perpetua, cioè a tempo indeterminato. In quest' ultimo caso l'utente è autorizzato ad usare “per sempre” il software Oracle, a meno che non violi almeno una delle condizioni del contratto.

Per un pugno di dollari
Per avere un' idea dei costi dei DBMS offerti da Oracle, nel seguito riporteremo alcuni esempi (in dollari americani). Per maggiori dettagli si prega dunque di informarsi presso le sedi ufficiali della Oracle. Oracle Database Standard Edition 15 mila dollari con relativo Software Update License & Support 3 mila dollari Oracle Database Enterprise Edition 40 mila dollari con relativo Software Update License & Support 9 mila dollari Suite Enterprise Edition 225 mila dollari con relativo Software Update License & Support

50 mila dollari 6

Molte delle opzioni offerte da Oracle però richiedono un ulteriore spesa, ad esempio: RAC Spatial Advanced Security Diagnostics Pack 20 mila dollari + 4 mila per il supporto ed update 10 mila dollari + 2 mila per supporto ed update 10 mila dollari + 2 mila per supporto ed update 3 mila dollari

Tutti questi prezzi sono relativi alla licenza Processor & Perpetual, questo significa che andranno applicati ad ogni singolo processore per una durata di tempo illimitata. In caso si voglia installare questi software su più macchine dunque sarà necessario pagare ripetutamente queste somme per ogni singolo processore. Come abbiamo visto ci sono forti risparmi nell'usare architetture hardware basate su processori multi-core. I tempi di utilizzo sono indeterminati e questo significa che una volta acquistata tale licenza, non saremo costretti a rimuovere il software dal nostro sistema.

Tra paura e confusione, Oracle acquista gli open DBMS
Nel 2005, Oracle ha dato vita ad una politica che ha come fine quello di acquistare tutti i possibili concorrenti, gli open DBMS, cioè DBMS open source e free software. Ad ottobre 2005 ,Oracle ha acquistato Innobase Oy, società finlandese che sviluppa il motore di database open source InnoDB progettato per integrarsi con MySQL. Questo acquisto oltre a rendere Oracle erede del codice e della tecnologia, vede Oracle acquisire intrinsecamente anche i rapporti contrattuali che legano Innobase a MySQL AB: Oracle diventa così partner di MySQL AB. InnoDB non è un'applicazione autonoma, ma un' estensione che aggiunge un certo numero di caratteristiche di classe enterprise (tabelle transazionali, avanzate funzionalità di recovering e integrità dei dati, multiversioned concurrency control) al noto DBMS MySQL. "Oracle è da lungo tempo un grande sostenitore del software open source come Linux e Apache", ha affermato Charles Rozwat, executive vice president in charge della Database and Middleware Technology di Oracle. MySQL AB, attraverso il suo CEO, Marten Mickos, ha dichiarato che "gli sviluppatori di database potranno beneficiare di una maggiore flessibilità nell'uso di MySQL ed Oracle nello stesso ambiente". Mickos ha tuttavia ricordato che il proprio database consente di utilizzare diversi altri motori oltre a InnoDB, tra cui MyISAM, Memory, Merge e Cluster. Dietro questo scenario apparentemente di collaborazione e stima reciproca, i rapporti fra Oracle e la comunità di sviluppatori di MySQL non sono rosei, capita spesso infatti che i manager del gigante americano Oracle proclamano inadeguato MySQL nel settore enterprise provocando così reazioni di rottura. Nel febbraio 2006 Oracle ha acquistato la Sleepycat, sviluppatrice del celebre database open source Berkeley DB, che con 200 milioni di installazioni è considerato il più diffuso software al mondo nella categoria embedded e mobile grazie alle sue caratteristiche particolarmente favorevoli all'uso nel real-time e nei dispositivi con poche risorse di calcolo e memoria. Oracle ha subito iniziato a sviluppare una versione commerciale affiancata a quella storica open source. Oracle ha espresso anche il suo interesse verso MySQL e JBoss. La prima ha risposto subito dichiarando l' intenzione di voler conservare la propria indipendenza mentre JBoss sembrerebbe star valutando seriamente l'offerta di Oracle ma ancora non è stata presa nessuna decisione. A vista di molti, questa politica attuata da Oracle finirà con l' inaridire il mercato dei database inglobando e soffocando i suoi concorrenti. Acquistare i concorrenti open source significa intrinsecamente rallentare lo sviluppo “libero” e favorire quello proprietario. Questo si contrappone alle dichiarazioni “pubblicitarie” dei manager di Oracle che affermano il loro grande interesse per le comunità libere ed aperte. Poter dirigere lo sviluppo delle soluzioni concorrenti e senz'altro un privilegio che contrasta il libero mercato, la concorrenza e potrebbe richiamare l'attenzione delle commissioni AntiTrust. Un vantaggio delle licenze libere è che permettono la nascita dei fork, cioè le comunità sono libere di continuare il lavoro fatto fino a quel momento e continuare ad usare la stessa licenza per i rilasci futuri continuando a contrastare le soluzioni proprietarie, ma gli interessi economici continueranno ad ostacolare questi processi di sviluppo.

Sicurezza a partire dalle fondamenta
La sicurezza è un concetto spesso difficile da capire ed analizzare. Il suo valore è intrinseco nei sistemi in cui 7

viene applicata. La sicurezza è complessa a causa delle sue mille forme. Ci sono sfumature che spesso vengono sottovalutate ed è proprio lì che potrebbero nascere problemi strutturali capaci di far crollare un intero sistema. Una delle problematiche maggiori dei software rilasciati senza sorgente è proprio la sicurezza. Solo chi ha il sorgente puo' modificare il software al fine di risolvere eventuali bug. Nel caso di Oracle, si è definito un record di inefficienza quando furono segnalati bug critici da Alexander Kornbrust, CEO della tedesca Red-DatabaseSecurity Gmbh e solo dopo 650 giorni furono risolti e rilasciate le patch. Dalla Next Generation Security Software Ltd (Ngs), David Litchfield, uno dei bug hunter più prolifici nel campo dei database, ha dimostrato inoltre la non piena efficienza delle patch rilasciate da Oracle. Molti analisti hanno evidenziato come Oracle tenti di migliorare la sicurezza dei propri prodotti insistendo sulla via del security through obscurity ad oltranza, anche nei confronti dei propri clienti, senza disporre però di un piano di fondo per rendere i propri prodotti intrinsecamente sicuri.

8

MySQL
Tra certezze e dubbi storici
Da molti anni si discute della posizione della società MySQL AB riguardo il DBMS omonimo di sua proprietà, MySQL. Il DBMS è rilasciato con due licenze, una prima considerata libera (da free software), la GNU General Public License (Gnu/GPL) ed una seconda commerciale. Per capire come funziona la doppia licenza di MySQL è necessario approfondire lo studio della licenza Gnu GPL.

Licenza GPL, libertà radicale senza mezzi termini
La Gnu/GPL è una delle licenze più usate in internet, nel mondo informatico, tra gli sviluppatori indipendenti e non, basata sul movimento creato dal popolare Richard Matthew Stallman a.k.a. RMS. Da lui nasce il concetto di Copyleft, di Free software e nascono le relative licenze “libere”, dalla famosa GPL alla GNU Free Documentation License (FDL). In realtà la libertà è un concetto molto personale ed esistono diverse idee di libertà, la GPL ne ricopre semplicemente uno. Il neo più grande che “affligge”questa licenza è la sua essenza virale. I sostenitori di questa licenza preferiscono però parlare di “persistenza”. In realtà questo però non è un neo vero e proprio perché l'intera licenza si basa proprio su questo concetto per affermare la sua forza. Il software secondo Stallman deve permettere all'utente finale di accedere alle quattro libertà fondamentali: esecuzione, studio, modifica, distribuzione. La licenza quindi garantisce queste quattro libertà e fa in modo che mai nessuna di queste libertà possa essere negata ad un utente. Questo pone dei limiti per lo sfruttamento economico. Per questi motivi l'economia sta mutando e sono stati studiati nuovi modelli di guadagno, meno redditizi ma sicuramente da un punto di vista etico più rispettosi e sociali. Questa licenza si basa sulle comunità libere, indipendenti spesso viste come gruppi di volontari. Per garantire che nessuna delle libertà fondamentali venga negata, la licenza impone che ogni modifica venga rilasciata sotto la stessa licenza o sotto una licenza compatibile. Questo è il punto cruciale della GPL, punto debole e allo stesso tempo punto di forza. Garantisce le libertà per l'utente limitando di fatto le libertà degli sviluppatori o delle società che producono software. Entra qui in gioco la doppia licenza di MySQL.

Doppia Licenza
MySQL AB, per rimediare a questa limitazione imposta dalla licenza GPL, ha deciso di permettere agli sviluppatori di scrivere codice e di non costringere questi sviluppatori a rispettare la licenza GPL offrendo dunque la doppia licenza. Affiancata alla GPL troviamo infatti la MySQL Commercial License. Questa permette di rilasciare le proprie modifiche con la licenza che si preferisce, senza alcun vincolo. Concludendo, il problema della doppia licenza coinvolge solamente chi scrive un software che si basa su MySQL. Nel momento in cui si vuole distribuire tale software “derivato”, si dovrebbe scegliere se: 1. Rilasciare il proprio software con licenza GPL oppure 2. Acquistare la licenza commerciale di MySQL, e rilasciare il proprio prodotto con una licenza a propria scelta Questa opzione introdotta da MySQL AB modifica notevolmente i concetti espressi dalla GPL, e rende così MySQL un prodotto semi-libero da un punto di vista dell'utente finale. Chiaramente dal punto di vista di una società che ha come obbiettivo quello del profitto, MySQL AB offre una flessibilità maggiore. Dichiarare se ciò sia un miglioramento o un difetto, esula da questo documento e resta di stampo puramente personale.

La Piattaforma più usata al mondo
La popolarità di MySQL è amplificata anche grazie alla presenza del DBMS all' interno della piattaforma LAMP, orientata allo sviluppo per applicazioni web. LAMP è l'acronimo di Linux Apache MySQL e PHP, Perl, Python. Si basa cioè su:

9

GNU/Linux Apache MySQL Perl, PHP, Python -

Sistema Operativo Web server DBMS Linguaggi di Scripting

Tutti i software usati in questa piattaforma vantano grandi successi, riconoscimenti internazionali e grande stabilità. La piattaforma LAMP è per questo motivo una delle più utilizzate a livello mondiale. Ognuna delle applicazioni dalle quali è composta è predisposta per l' eccellente funzionamento in concomitanza con le altre. Wikipedia, uno dei siti più visitati al mondo (11° secondo blog.compete.com), è interamente basata su piattaforma LAMP e questo dimostra come tale piattaforma sia in grado di offrire altissime prestazioni. Durante l'anno 2006, uno studio voluto dal Governo USA assegna ad alcuni dei più diffusi software open source, ed in particolare alla piattaforma LAMP (Linux, Apache, MySQL e Perl/PHP/Python), buoni voti sia in sicurezza che in affidabilità. Una promozione che potrebbe agevolare ulteriormente la penetrazione dei sistemi aperti nelle infrastrutture pubbliche, anche in quelle critiche. La società che ha effettuato l'analisi afferma che la qualità dei programmi esaminati è piuttosto elevata, talvolta superiore a quella dei prodotti closed-source, e questo sarebbe soprattutto vero per Apache, il kernel di Linux e MySQL. Inoltre, il lavoro di analisi del codice ha visto anche la collaborazione del Dipartimento di Informatica dell' Università di Stanford. La società che detiene i diritti di MySQL, la MySQL AB ha dichiarato nel 2006 di essere costituita da 300 dipendenti dislocati in 25 Paesi e di contare circa 30.000 download del DBMS al giorno e suppone che ci siano state circa 5 milioni di installazioni del server in tutto il mondo.

Installazione a cuore aperto ed alta Compatibilità
MySQL è rilasciato con licenza GPL e questo significa che i sorgenti sono di pubblico accesso. Conseguenza di ciò è che a partire dai sorgenti è possibile compilare il software su qualsiasi sistema operativo ricavando così i binari, pronti ad essere utilizzati sul sistema che si preferisce. MySQL è scritto in C e C++, la documentazione ufficiale offre anche un aiuto per chi avesse bisogno di provare a compilare il software su qualsiasi sistema operativo discretamente diffuso ed utilizzando i tools automake, autoconf e libtools viene garantita anche un elevata compatibilità. Il linguaggio SQL di MySQL comprende anche numerose estensioni che sono tipiche di altri DBMS, quali PostgreSQL ed Oracle. In questo modo le query non standard scritte per altri DBMS saranno interpretate e salvo alcuni casi particolari, funzioneranno senza problemi. Ci sono alcuni sistemi operativi volti a semplificare notevolmente il lavoro ai propri utenti, e questo è il caso del sistema Mac OS X. Per aiutare dunque i propri utenti ed evitare loro di dover compilare un DBMS, Apple ha scelto di pre-installare MySQL sui suoi prodotti. Nonostante sia evidenziato spesso nell'ambito della cultura open source, l'importanza di compilare sulla propria macchina il software prima di utilizzarlo, MySQL fornisce anche i binari (software pre-compilato) per moltissimi sistemi, ad esempio: Windows, Gnu/Linux, BSD, Solaris, Mac OS X, Hp-UX, IBM AIX,... per architetture sia a 32 che a 64bit.

Doppia Sicurezza
Essendo un sistema aperto, e parzialmente libero, MySQL AB sfrutta la possibilità di analisi e rilascio di patch sia dalla community che segue lo sviluppo del codice sorgente del database sia dagli sviluppatori ufficiali. E' garantita in questo modo un' elevata disponibilità al rilascio di patch e questo contribuisce sicuramente ad un incremento totale della sicurezza del DBMS. A testimonianza di ciò si pone lo studio condotto dal Governo USA di cui abbiamo precedentemente parlato. Da notare però che questo livello di sicurezza non riguarda anche le soluzioni commerciali di MySQL e ciò è una conseguenza di quanto visto nel caso di Oracle.

10

PostGreSQL
Una ricerca pubblica ed accademica
L' università della California, con sede a Berkeley, ha dato vita ad una licenza davvero speciale, conosciuta come licenza BSD. Questa licenza non impone vincoli e non garantisce dunque, come fa la GPL nessuna garanzia all'utente finale. Oppure, da un secondo punto di vista, cede troppi diritti e ciò rappresenta una lama a doppio taglio. La licenza BSD potenzialmente permette a chiunque di prelevare il codice e di modificarlo e rilasciarlo con licenza proprietaria. Questo non garantisce dunque una continuità di libertà per i futuri utilizzatori di quel software. A garanzia di ciò invece si pone la GPL e questa è l'unica grande differenza fra licenza BSD e GPL. PostGreSQL è un database indipendente al 100%. Non è gestito da nessuna azienda. Non appartiene a nessuno. Non soffre di “politiche aziendali” o problemi di mercato. PostGreSQL è nato come un esperimento e continua ad esserlo dopo circa 20 anni. Viene sviluppato da una grande comunità di programmatori ed è finanziato da molte aziende interessate al progetto. PostGreSQL è un DBMS open source. Ha più di 15 anni di sviluppo attivo ed ha un' architettura testata che gli ha permesso di acquisire una reputazione positiva per affidabilità, integrità dei dati e precisione. Funziona su tutti i sistemi operativi maggiormente noti. Rispetta completamente il modello ACID (Atomicity, Consistency, Isolation, Durability). Include i tipi di dati di SQL92 e SQL99. Inoltre supporta anche la memorizzazione di grandi oggetti binari, immagini, suoni, video, ... Ha un interfaccia nativa per programmare in C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, ... PostgreSQL vanta funzionalità come: “Multi-Version Concurrency Control (MVCC), point in time recovery, table spaces, asynchronous replication, nested transactions (save points), online/hot backups, a sophisticated query planner/optimizer, and write ahead logging for fault tolerance”. PostGreSQL è molto apprezzato soprattutto da coloro che lo usano e/o sviluppano, sia utenti che aziende. Secondo alcuni è il miglior DBMS, infatti ha ricevuto sia il “Linux New Media Award” e per tre volte il “The Linux Journal Editors' Choice Award”. Per quanto si possa considerare “inferiore” questo prodotto rispetto ai suoi concorrenti commerciali, è da evidenziare come ci siano casi in cui PostGreSQL viene usato in sistemi di produzione che gestiscono più di 4 TB di dati. La sua architettura gli permette di avere limiti molto alti, garantendo prestazioni tali da potersi inserire nella stragrande maggioranza dei casi in cui è richiesto l'ausilio di un DBMS.

... in Numeri
Spesso si tende ad evidenziare l'inefficienza delle soluzioni non commerciali. Seguono i dati che riportano i limiti di cui “soffre” PostGreSQL. Grandezza max del DB Grandezza max di una tabella Grandezza max di righe Grandezza max di un campo Max righe in una tabella Max colonne in una tabella (dipende dal tipo di dati nelle colonne) Max indici per tabella Illimitato 32 TB 1.6 TB 1 GB Illimitato 250 - 1600 Illimitato

Già in molti apprezzano questo DBMS e lo consigliano ai propri colleghi, e a conferma di ciò ci sono alcuni dati, ad esempio, la versione 7.4 di PostGreSQL ha contato 300.000 download in 7 mesi, circa 1.430 download al giorno, mentre PostGreSQL ver.8.0 ha contato 1.000.000 di download sempre in 7 mesi, e cioè circa 4.760 download al giorno!

BSD - Una licenza fortemente libera
PostGreSQL è rilasciato con la BSD License e BSD è l'acronimo di Berkeley Software Distribution. Tale licenza è usata anche per altri software nati e sviluppati nella stessa università, ad esempio il sistemi operativo *BSD UNIX fdl (NetBSD). E' considerata una delle licenze più “permissive”, infatti una delle poche clause limitative è la seguente: All advertising materials mentioning features or use of this software must display the following acknowledgement: 11

“This product includes software developed by the University of California, Berkeley and its contributors.” In questo documento non sono stati usati ne il logo di Oracle ne quello di MySQL. L'unico presente è PostGreSQL e c'è un motivo legale che spiega questo. Il logo di PostGreSQL è libero, mentre gli altri non lo sono. Il logo di PostGreSQL lo si può riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, modificare ed usare anche per fini commerciali. Ciò è permesso grazie all'uso di una licenza Creative Commons. Creative Commons in realtà però non è una licenza, ma un contenitore di licenze personalizzabili. E' possibile, seguendo le istruzioni che si trovano su creativecommons.org creare licenze con diversi gradi di libertà seguendo passi semplificati ed user-friendly pensati proprio per coloro che non si intendono di legge. In modo specifico la licenza scelta per il logo di PostGreSQL si chiama “AttributionShareAlike 2.5” ed è reperibile all'indirizzo creativecommons.org/licenses/by-sa/2.5/ e permette di fare tutto quello che si vuole, imponendo solo le due seguenti condizioni: 1. Condividere con la stessa licenza 2. Riconoscere l'autore

Tecnicismi - GIS, Compilazione ed Architettura
PostGreSQL supporta i seguenti metodi di storage: B-tree, R-tree, Hash e GiST (Generalized Search Tree). Quest'ultimo offre la possibilità di specificare cosa immagazzinare, come memorizzarlo e in che modo ricercare al suo interno includendo i metodi dei B-tree, R-tree ed altri. GiST è dunque fondamentale per alcuni progetti come ad esempio PostGIS. PostGIS è un'estensione che aggiunge il supporto di oggetti geografici in PostGreSQL, creando così una base di dati “spaziale” per i sistemi geografici d' informazione (GIS), paragonabile all' estensione Oracle Spatial. E' interessante evidenziare che “Oracle Spatial is an option for Oracle Enterprise Edition”. Ciò è quanto afferma Oracle sul suo sito ufficiale. Tradotto, significa che utilizzando Oracle per soddisfare la necessità di usare un sistema GIS, si dovrà affrontare una spesa minima di circa 60 mila dollari americani, pari a 120 milioni del vecchio conio italiano. In MySQL il sistema GIS invece è implementato direttamente nel DBMS mentre con PostGreSQL è possibile scegliere in fase di installazione se disporre o meno di tale estensione. Negli ultimi due casi, la spesa totale per disporre di tale sistema è 0 (zero). Per incrementare le performance, PostGreSQL ha implementato due comandi speciali, LISTEN e NOTIFY. Entrambi permettono una semplice comunicazione peer to peer tra client e server in modo da semplificare operazioni di monitoraggio sui dati. Quanto descritto sopra potrebbe portare a credere che PostGreSQL sia una soluzione semplice e completa. Purtroppo non è così. PostGreSQL è ridotto ai minimi termini, è un sistema dalle grandi potenzialità ma necessita di uno studio molto accurato per poterlo sfruttare al massimo. Negli ultimi anni, in Italia sono nate le prime aziende che propongono soluzioni anche in ambiti di produzione centrate sull'uso di sistemi aperti, sposando dunque le politiche che contraddistinguono il free software e l'open source. A dimostrazione delle difficoltà che si potrebbero incontrare usando PostGreSQL, possiamo considerare l'esempio in cui un utente abba intenzione di installare questo DBMS sul proprio computer. PostGreSQL è disponibile in versione binaria (compilata) solo per utenti che usano Windows o Gnu/Linux, non sarà possibile installarlo, ufficialmente, utilizzando un eseguibile come ad esempio è possibile per MySQL. Nel sito infatti oltre ai binari per Gnu/Linux e Windows, sono disponibili solo i sorgenti. Se volete provare PostGreSQL su un prodotto della Apple, o della Sun Microsystems, dovete scaricare i sorgenti e compilarli sulla vostra macchina. PostGreSQL però si preoccupa di segnalare all'utente ulteriori soluzioni per procurarsi una versione compilata di PostGreSQL a seconda del sistema che egli sta usando. Nella sezione “Other ways to get PostgreSQL” infatti sono raccolti link ad alcuni progetti di repositoring:
• • • • • • • • •

Debian Apt - (stable|backports) BitRock LAPP Stack - Bundles Apache, PostgreSQL, PHP, Python, and supporting libraries. Cygwin - a unix like environment for Win32 users. Fink - Open source package system for OSX users. Mammoth - a business and developer complete PostgreSQL distribution. Portage - The Gentoo packaging system. Ports - The FreeBSD packaging system. Ubuntu Apt Yum - Packaging system for Fedora and other Red Hat flavored distributions. 12

Spesso la necessità di compilare un software scoraggia alcuni utenti, compresi alcuni professionisti, nonostante però questa pratica sia particolarmente consigliata dai cultori della filosofia open source. Segue una breve lista di comandi necessari per compilare: tar -xzf file.tar.gz cd file ./configure make make install A far fronte a questa semplice lista di comandi però si pongono i problemi in cui è possibile trovarsi. Spesso durante la fase di compilazione di un software si incorre in problemi dovuti a librerie, incompatibilità di versioni e/o dipendenze da altri software, tempi di calcolo lunghi e largo uso della memoria richiesta, ... e ciò comporta l'impossibilità di usare la macchina per ulteriori lavori.

Visuale ad alto livello dell'architettura di PostGreSQL Il Client di PostGreSQL si basa su Libpq. Questa è una libreria che gestisce la comunicazione tra i processi client e il postmaster, ottenendo così un thread dal server postgre. La richiesta del client viene semplicemente inoltrata così come è al server. Il Server di PostGreSQL è diviso in due sub-system. 1. Postmaster: Gestisce le richieste di connessione, autenticazione e controllo degli accessi e stabilisce la connessione tra client e server postgre. 2. Postgre: Server che gestisce le query ed i comandi dei client. Da notare che la comunicazione fra il server postgre e il postmaster non avviene tramite connessione di rete, e questo significa che entrambi dovranno trovarsi sulla stessa macchina. Ciò rappresenta un limite di scalabilità. Lo Storage Manager gestisce la memorizzazione , il ripristino, il buffer manager condiviso, il controllo per la consistenza dei file ed il lock manager. Essendo un software open source, ed essendo i sorgenti a disposizione del pubblico, non ci sono particolari note nell'ambito della sicurezza. Chi individua un bug ha anche la possibilità di rilasciare la patch relativa. Per tenere sicuro il proprio database basta aggiornare il proprio sistema alla nuova versione, in cui sono automaticamente inserite tutte le patch. A causa della disponibilità dei sorgenti, i software vengono analizzati da un gran numero di esperti. Nel primo arco di vita, il progetto viene completamente “smontato” dagli analisti, segue poi una riscrittura del sistema, e dopo un periodo relativamente breve di vita l'intero software raggiunge stabilità, sicurezza e maturità.

13

14

Demo: Uno sguardo superficiale
In questo capitolo vedremo come procurarci una copia dei tre DBMS visti fin qui, li installeremo e proveremo a popolare il database con alcune informazioni. Poi interrogheremo il DBMS e calcoleremo i tempi di risposta.

Hardware, Software e Rete su cui avviene il test
Portatile Toshiba Satellite S2450-S203 Processore: Pentium 4 da 2.80GhZ Disco: IDE 30Gb 5400rpm Ram: 512 MB Sistema operativo: Windows Xp Professional SP2 Rete: ADSL Alice 2Mbit

Download
Recandoci sui relativi siti, scaricheremo i DBMS di Oracle, MySQL e PostGreSQL. Ecco come si presentano le loro Home Page.

15

16

Il download di Oracle richiede una registrazione gratuita. L'idea che percepisco durante la navigazione del sito, sicuramente di carattere professionale, è che Oracle non ha interesse che io usi il suo DBMS. Non sono un target interessante. Forse se fossi stata una società e quindi un potenziale cliente pronto a pagare, avrei ricevuto maggiori attenzioni. Dopo alcuni secondi, il download di MySQL e Oracle procedono bene, ma Oracle dispone di una banda disponibile superiore.

Il download di PostGreSQL è fermo. I mirror che avevo selezionato erano quelli italiani. PostGreSQL è un progetto “sociale” e quindi ha bisogno sempre di qualcuno che lo supporti. E' evidente che gli italiani non apprezzano molto questo genere di progetti. Decido dunque di usare un mirror svizzero. I mirror svizzeri sono famosi per la loro grande banda condivisa, e questo l'ho potuto constatare durante una net install di debian e durante i continui upgrade dei sistemi Gnu/Linux. La velocità offerta dagli svizzeri è notevole, quasi 100k/s.

Un ulteriore osservazione è che mentre MySQL ed Oracle permettono connessioni multiple a discapito degli ignari di tale sistema di download, PostGreSQL non lo permette, garantisce dunque a tutti la stessa velocità senza fare distinzione tra gli utenti.

Il primo a terminare la corsa, (completare il download) è stato Oracle, nonostante la sua dimensione sia 4 volte più grande di MySQL e ben 11 volte più grande di PostGreSQL. Dopo che ha completato Oracle, si è liberata ulteriore banda, e questo ha permesso lo sprint finale che vede PostGreSQL e MySQL tagliare il traguardo insieme.

La banda totale messa a disposizione per PostGreSQL, selezionando un buon mirror (svizzero ad esempio) è comunque decisamente alta.

Installazione e primo utilizzo
Le versioni che abbiamo scaricato e su cui avverrà il testo sono: ● PostGreSQL 8.2.0 ● MySQL 5.0 ● Oracle 10G XE PostGreSQL Durante l'installazione di PostGreSQL, mi ha segnalato che è necessario installare una versione 0.9.7 o superiore di openssl.

17

Ho trovato la versione 0.9.8 ma non è stato facile. Con una prima ricerca si trova solo il sorgente e ciò richiede dunque una piattaforma per compilare. Dato che il nostro intento non è compilare openssl ma installare PostGreSQL, ho cercato i binari e li ho trovati cercando la stringa "openssl win32" su google. Durante l'installazione l'utente può scegliere se installare o meno l'estensione Spatial.

In seguito vengono richiesti i dati di login per il server. Inserendo una password banale (ad esempio: password), il programma di installazione suggerisce di cambiare password a causa della sua semplicità. Suggerisce a questo punto una password alternativa Random, oppure possiamo modificarla manualmente oppure possiamo forzare il sistema a rispettare la nostra scelta ed accettare la password che preferiamo. Un messaggio poi mi avverte che è consigliato un file-system NTFS sui sitemi Windows, ma io preferisco la FAT32 per motivi personali, e cosi' mi avverte che potrei riscontrare dei problemi.

18

La configurazione è terminata, inizia a copiare i file necessari. Dopo quasi 1 minuto l'installazione è completata! Al termine dell'installazione mi accorgo di star lavorando su un sistema molto complesso, c'è l'interfaccia grafica, ma non riesco a primo impatto a capire come poterla utilizzare. Provo ad amministrare il database, ma trovo opzioni avanzate (ad esempio: clustering) tra cui ho difficoltà a muovermi. Riesco comunque a creare un database. Non avendo studiato la documentazione non so dove “poter mettere le mani”. L'ambiente grafico è user-friendly solo per coloro che hanno studiato bene il sistema. In conclusione posso decidere cosa installare, posso configurarlo ed ha un buon livello di flessibilità, ma l'interfaccia grafica richiede un minimo di studio.

Oracle L'installazione di Oracle non ha rilevato la semplicità della password, quindi sembrerebbe in teoria avere un codice più snello e veloce. Non si sofferma su alcune sottigliezze. Però la sua dimensione smentisce tale teoria. La configurazione è semplice e si arriva subito alla copia dei file. Lo spazio richiesto è davvero moltissimo: 1,5GB, mi sembra eccessivo. Durante l'installazione il computer sembra bloccarsi. Finalmente finisce dopo circa 10 minuti di calcolo! Il computer era inutilizzabile durante l'installazione. Conclusa l'installazione, si apre una pagina web di autenticazione. Effettuata la login, si è subito dentro il centro operativo del DBMS. La grafica è stupenda. E' un ambiente davvero facile da usare, l'interfaccia è ricercata sin nei dettagli. Unico problema è la lentezza, ma resta di facile intuizione. Fortemente user-friendly, non è richiesto lo studio dell'interfaccia ed è possibile subito iniziare a lavorare. Creo database, tabelle, inserisco dati... ma dopo 15 minuti però inizio ad avvertire dei problemi, la lentezza di risposta del server web è insopportabile. Non credo si possa lavorare a lungo in queste condizioni. Bella interfaccia, ma per lavorare credo sia necessario tornare alla linea di comando. Usare un interfaccia grafica farcita con effetti da 19

moviola rende nervosi. I tempi di risposta raggiungono i 4 secondi, lavorare a queste condizioni è scandaloso. Forse per l'utente medio può anche andare bene, per piccoli lavori, in questo caso il tempo non rappresenta fonte di guadagno, ma a livello aziendale il tempo è denaro e non può essere consumato in questo modo dal mio punto di vista. Fortunatamente dispone di una comoda linea di comando in cui posso lavorare usando il linguaggio SQL. A questo punto di tratta di gusti ed è importante poter scegliere. Anche se non ho letto neanche una riga della documentazione, sembra già di conoscere tutto e di poter far tutto su questo sistema. Troppo intuitivo. Basta una minima conoscenza di DBMS, anche solo la teoria vista a scuola, e ci si riesce a districare benissimo sin dal primo momento. Concluso il test, decido di chiudere il server Oracle, tempo richiesto un minuto. Solo per chiudere il server Oracle? In conclusione questo DBMS è davvero troppo grande e complesso dal mio punto di vista. Preferisco velocità, alte performance e flessibilità da un sistema, soprattutto se è un server. Oracle è un grosso mattone, robusto, pesante e non flessibile. E' strano che non mi offra nessun livello di personalizzazione. Mi offre solo il famoso tasto avanti e non posso decidere cosa installare. Inoltre sono costretto a donargli ben 1,5Gb del mio disco e non posso neanche sapere cosa fa precisamente sulla mia macchina a causa della decisione di tenere segreto il codice. Concluso il test lo disinstallerò dal mio computer.

MySQL Durante l'installazione di MySQL, è possibile selezionare cosa si vuol installare. La copia dei file ha richiesto circa 2 minuti, il doppio di PostGreSQL ed 1/5 di Oracle. La parte di configurazione è complessa. Richiede dettagli importanti per il corretto funzionamento del server. Questa parte è consigliata ad utenti esperti. Quando poi l'installazione è completata e la configurazione è stata conclusa, ci si ritrova su un sistema davvero essenziale. E' presente solo la linea di comando ed un tool grafico per ri-configurare il server. Manca un ambiente grafico per interagire. La configurazione è user-friendly per gli esperti, grazie ad una comoda interfaccia grafica, ma per la parte di interazione con il database c'è solo una linea di comando. Senza perdersi d'animo è possibile procurarsi dal sito ufficiale di MySQL un software sviluppato dalla community che offre un'interfaccia grafica per interagire con il server. Dal sito si ha accesso anche a molte informazioni sui software sviluppati dalla community, nella sezione principale del download infatti subito si legge: "MySQL also develops Graphical User Interface applications for administering MySQL Server and working with data. * MySQL GUI Tools -- single bundle including all GUI tools (MySQL Administrator, MySQL QueryBrowser, MySQL MigrationToolkit and MySQL Workbench)" Altri 20 MB da scaricare, 2 minuti circa per il download ed inizio ad installare, dopo 25 secondi ha già finito. Nella pagina principale dei download di MySQL offrono molte altri prodotti, ad esempio la versione cluster, una lunga lista di driver, librerie, ... Con questo accorgimento ora anche MySQL è user-friendly. I tempi di risposta sono eccellenti. MySQL non usa un server web che comunica con un server database, ma si basa su un programma compilato, quindi molto più veloce, non c'è paragone con Oracle. Snello, leggero, flessibile, altamente configurabile, rispetta la mia idea di performance, dall'interfaccia grafica si possono accedere a moltissime funzionalità avanzate. E' un prodotto maturo, semplice da usare, flessibile e dotato di funzionalità avanzate.

20

Conclusione
Ci sono aspetti che caratterizzano in modo univoco ogni cosa. Esistono soluzioni a diversi problemi, ed è importante non accontentarsi di un unica risposta per i nostri mille interrogativi. Ad ogni domanda spesso corrisponde una sola risposta, e questa può avere mille sfumature. Non esiste dunque un DBMS migliore di un altro, per alcuni aspetti conviene usarne uno e per altri aspetti conviene usarne un altro. La soluzione dipende dalle vostre necessità. Avere a disposizione determinate libertà può render più complessa la nostra operazione, ma forse, eticamente è la soluzione migliore. Vi saluto dunque con una frase che riassume un po' il mio punto di vista: "Ogni uomo deve cercare senza sterili imitazioni il suo modo di vivere la verità" Siddharta

Bibliografia
[oracle.com] – Sito ufficiale di Oracle [mysql.com] – Sito ufficiale di MySQL [postgresql.org] – sito ufficiale di PostGreSQL.org [Wikipedia] [Hackproofing Oracle Application Server] - David Litchfield [Concept Architecture of PostgreSQL] - Hao Chen, Heechul Lim and Jin Xiao [P-I.it] – Primo quotidiano italiano online che si occupa di internet, informatica e comunicazione [L'Oracolo e l'Open Source] - Massimiliano Bigatti [MySQL & mSQL] - Randy Jay Yarger, George Reese, and Tim King [Conceptual Architecture of PostgreSQL ] - Xinyi Dong, Yuan Lin, Lijie Zou - University of Waterloo [Gran problemi di sicurezza per la grandissima Oracle] - Guido Sintoni [securityfocus.com] - Comunità di professionisti della sicurezza

21

Indice generale
Introduzione............................................................................................................................................................... 2 Categorie e DBMS selezionati................................................................................................................................... 2 Storia di Oracle, MySQL e PostGreSQL.................................................................................................................... 3 Oracle........................................................................................................................................................................ 5 Sulla cresta dell'onda........................................................................................................................................... 5 Edizioni................................................................................................................................................................. 5 Licenze................................................................................................................................................................. 6 Per un pugno di dollari.......................................................................................................................................... 7 Tra paura e confusione, Oracle acquista gli open DBMS..................................................................................... 7 Sicurezza a partire dalle fondamenta................................................................................................................... 8 MySQL.................................................................................................................................................................... 10 Tra certezze e dubbi storici................................................................................................................................ 10 Licenza GPL, libertà radicale senza mezzi termini............................................................................................. 10 Doppia Licenza................................................................................................................................................... 10 La Piattaforma più usata al mondo..................................................................................................................... 11 Installazione a cuore aperto ed alta Compatibilità.............................................................................................. 11 Doppia Sicurezza............................................................................................................................................... 12 PostGreSQL .................................................................................................... 13 Una ricerca pubblica ed accademica.................................................................................................................. 13 ... in Numeri........................................................................................................................................................ 13 BSD - Una licenza fortemente libera.................................................................................................................. 14 Tecnicismi - GIS, Compilazione ed Architettura................................................................................................. 14 Demo: Uno sguardo superficiale............................................................................................................................. 17 Hardware, Software e Rete su cui avviene il test............................................................................................... 17 Download........................................................................................................................................................... 17 Installazione e primo utilizzo............................................................................................................................... 19 Conclusione............................................................................................................................................................. 24 Bibliografia............................................................................................................................................................... 24

Questo documento può essere fotocopiato e distribuito liberamente. Per una copia completa della licenza, consultare il documento http://www.gnu.org/licenses/fdl.txt

22