Cos'è Firebird
Firebird è un RDBMS stabile, sicuro, completo e semplicissimo da installare che a differenza di prodotti più conosciuti, come MySQL e PostgreSQL, non necessita praticamente di configurazione e manutenzione.
Firebird è un software manager per la gestione di database relazionali, basato sul codice sorgente di Borland InterBase 6.0. Si tratta di un prodotto utilizzabile gratuitamente e liberamente per scopi privati e commerciali che, sotto diversi nomi, circola ormai tra i computer degli sviluppatori da più di 25 anni superando i più disparati e severi test di utilizzo.
Sebbene sia di dimensioni ridotte rispetto ai concorrenti può vantare prestazioni spesso paragonabili a quelle dei più diffusi RDBMS Open Source e commerciali, gestisce infatti agevolmente basi di dati che vanno da pochi KB a svariati GB.
I database creati attraverso Firebird vengono salvati in semplici file con estensione .fdb
e possono essere manipolati tramite i comandi che rispettano lo standard SQL ANSI (Structured Query Language della American National Standard Institute) utilizzato comunemente per i database relazionali più diffusi.
Semplice da utilizzare ed estremamente parco in termini d'impiego delle risorse, Firebird supporta nativamente i più diffusi sistemi operativi: da Windows a Linux, dalle piattaforme Unix a Solaris, fino a MacOS.
Perché scegliere Firebird
Firebird presenta numerosi strumenti di lavoro e supporta tantissime opzioni che lo rendono un'ottima alternativa agli RDBMS più conosciuti. Prevede nativamente le Stored Procedures, cioè programmi scritti in SQL o in altri linguaggi archiviati nei metadati dello database stesso. Con essi non sarà necessario riscrivere ogni volta query complesse, ma si avrà la possibilità di richiamare le procedure memorizzate all'interno della base di dati con conseguente risparmio di risorse a vantaggio delle prestazioni..
Consente la definizione di Triggers, routine SQL che specificano le operazioni automatizzate da eseguire al verificarsi di un evento di aggiornamento, inserimento o cancellazione dei record. Dato che ogni Trigger è associato ad uno specifico evento di manipolazione su una determinata tabella, questo verrà attivato in tutte le occorrenze di tale evento senza la necessità di un intervento dell'utente o dell'applicazione deputata a compiere l'operazione.
Per Stored Procedures e Triggers Firebird possiede inoltre un linguaggio interno completo, flessibile e potente denominato PSQL (Procedural SQL) che permette anche una completa gestione delle eccezioni tramite il throw/catch exception handling.
Supporta il modello ACID per le transazioni atomiche (Atomic), consistenti (Consistent), isolate (Isolated), e durature (Durable); permettendo l'accesso concorrente ai dati e limitando le incoerenze sui dati stessi e sui risultati della loro manipolazione. Quindi, quando si inizierà una transazione non sarà necessario preoccuparsi che un'altro utente possa operare sullo stesso record, quest'ultimo potrà esse letto più volte conservando i valori attesi e i cambiamenti operati non verranno intaccati dal lavoro di terzi.
Inoltre Firebird permette l'esecuzione di Subselect, cioè di istruzione SELECT utilizzate all'interno di altre query di selezione, oppure all'interno di una istruzione di inserimento, di aggiornamento o di cancellazione. Consente le funzioni UDF, cioè quelle definite dall'utilizzatore. Lo sviluppatore potrà creare librerie di funzioni in diversi linguaggi, come C, C++ o Delphi, che potranno essere integrate facilmente nel motore di Firebird sulla base delle diverse esigenze. E non è finita.
Firebird controlla le concorrenze tramite MGA, architettura multi-generazionale. Quest'architettura permette al motore di Firebird di operare contemporaneamente su diverse versioni dello stesso record fisico e di attribuire ognuna di esse ad una diversa transazione limitando i problemi derivanti dalle concorrenze.
Supporta la tecnologia careful writes per il recupero dei dati in seguito a crash di sistema senza l'ausilio di file per il log. Si aggiunga che in sede di back-up non sarà necessario arrestare e riavviare il software, il processo di salvataggio dei dati creerà infatti al suo avvio uno snapshot dello stato del database permettendo agli utenti di lavorare senza interruzioni.
Firebird, ed è funzionalità molto comoda, permette di sviluppare versioni embedded (Read-Only databases) conservando l'RDBMS in un'unica DLL portabile tra diverse macchine e supporti (cd-rom, pen-drive etc.) Supporta numerose tipologie d'accesso, dalle interfacce create tramite linguaggi di programmazione e scripting come Perl, Phyton e PHP, fino alle API native e a quelle standard di connessione come ODBC, OLEDB, ADO.NET e JDBC.
Possiede una vasta raccolta di programmi utilizzabili da riga di comando che permettono di eseguire facilmente tutte le principali operazioni di gestione del software e dei database: creazione degli utenti e assegnazione delle password; esecuzione di istruzioni SQL; riparazione dei dati, back-up e restore; creazione di chiavi di registro in Windows per il supporto di programmi di terze parti; installazione e disinstallazione di Firebird come servizio per sistemi Windows; updates tramite file batch e tanto altro.
Ai vantaggi elencati si aggiunga anche che, come vedremo tra poco, Firebird è un programma estremamente facile da installare e configurare.
Installazione di Firebird. SuperServer, classic ed embedded.
Esistono tre versioni possibili per l'architettura di Firebird. Abbiamo già fatto riferimento a quella embedded che rappresenta il programma sotto forma di un'unica DLL della dimensione di circa 1,5 MB; questa architettura permette l'impiego del software senza necessità d'installazione e viene utilizzata in particolare per l'integrazione di applicativi mono-utente o in versioni live su cd-rom.
L'architettura classic, ispirata all'approccio originale di Interbase, crea processi separati per ogni connessione alle basi di dati; essa risulta più adatta per i sistemi dotati di multiprocessore (SMP, symmetrical multi-processor support).
L'architettura SuperServer è invece un'implementazione multi-client scalabile e ideale per le normali postazioni domestiche e da lavoro, gestisce le connessioni in multithread condividendo la cache. Quest'ultima sarà la nostra architettura di riferimento nel corso della trattazione.
Installazione di Firebird su Windows
Installare Firebird su sistemi Windows è semplicissimo, l'utente alle prime armi sarà piacevolmente sorpreso dalla limitata quantità di passaggi e dalla procedura assolutamente lineare.
Innanzitutto, sarà bene reperire il software presso la sezione download del sito ufficiale di Firebird dove è presente anche una ricca documentazione di supporto; l'ultima release disponibile al momento in cui scriviamo è la versione 2.0, già efficacemente testata e utilizzabile senza particolari controindicazioni derivanti da bugs.
L'installer messo a disposizione per Windows pesa poco più di 4 MB, una volta scaricato e lanciato l'eseguibile sarà sufficiente seguire passo passo il wizard d'installazione; l'unico consiglio e di scegliere l'architettura SuperServer tra quelle proposte.
Una volta installato, il software creerà un'icona nel pannello di controllo attraverso la quale potremo scegliere se avviare Firebird come servizio o come semplice applicazione; avremo inoltre la possibilità di bloccare il servizio o di riavviarlo in qualsiasi momento e potremo decidere se avviare il programma contestualmente al sistema operativo oppure manualmente ogni volta che avremo necessità di utilizzarlo.
Lavorando come servizio autonomo, Firebird non pone alcun problema di conflitto con altri RDBMS avviati sulla stessa macchina.
Installazione di Firebird su Linux
Anche l'installazione su Linux non creerà particolari problemi all'utente che ha già utilizzato il comodo sistema Rpm. Come per Windows, il file per installazione è presente nella apposita sezione download del sito ufficiale, in questo caso però non avremo un unico package per le architetture classic e SuperServer, ma dovremo scegliere quale utilizzare.
Una volta scaricato il software desiderato, ad esempio il file in formato Rpm per il SuperServer chiamato FirebirdSS-2.0.0.12748-0.i686.rpm
, potremo lanciare da Shell il comando d'installazione con un'istruzione simile alla seguente:
[root@localhost firebird]# rpm -ivh FirebirdSS-2.0.0.12748-0.i686.rpm
Fatto questo, il gestore dei pacchetti installerà Firebird all'interno della directory /opt/firebird
e andrà a creare un utente omonimo del programma e un gruppo di appartenenza con lo stesso nome. L'RDBMS lavorerà quindi sotto questo utente e all'interno del relativo gruppo. Verrà inoltre creato un processo di avvio scritto nel file /etc/init.d
che permetterà l'avvio di default del programma al boot. Sempre in seguito all'installazione, la directory opt
conterrà un esempio funzionante di database pre-installato.
A questo punto non resterà che riavviare il sistema per vedere il nuovo processo di Firebird popolare la sequenza di boot.