Sei sulla pagina 1di 21

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
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.

3
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 sotto-
categorie: 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 20 mila dollari + 4 mila per il supporto ed update


Spatial 10 mila dollari + 2 mila per supporto ed update
Advanced Security 10 mila dollari + 2 mila per supporto ed update
Diagnostics Pack 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
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

7
inefficienza quando furono segnalati bug critici da Alexander Kornbrust, CEO della tedesca Red-Database-
Security 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:

GNU/Linux - Sistema Operativo


Apache - Web server

9
MySQL - DBMS
Perl, PHP, Python - 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 Illimitato


Grandezza max di una tabella 32 TB
Grandezza max di righe 1.6 TB
Grandezza max di un campo 1 GB
Max righe in una tabella Illimitato
Max colonne in una tabella 250 - 1600
(dipende dal tipo di dati nelle colonne)
Max indici per tabella 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:
“This product includes software developed by the University of California, Berkeley and its contributors.”

11
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 “Attribution-
ShareAlike 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.

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

12
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
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.

14
Il download di Oracle richiede una registrazione gratuita. L'idea che percepisco durante la navigazione del sito,

15
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.

16
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.

17
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
moviola rende nervosi. I tempi di risposta raggiungono i 4 secondi, lavorare a queste condizioni è scandaloso.

18
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.

19
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

20
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

21

Potrebbero piacerti anche