Firebird : un database management system open source. Primi passi nell’utilizzo

Quando si sviluppano applicazioni destinate ad aziende, si incorre quasi sempre nella necessità di salvare i dati su un database, il più delle volte, per i programmatori windows, la scelta ricade su MS SQL o  MS Access per le applicazioni più semplici. Ovviamente per tali prodotti è necessario avere una licenza. Da quando la Microsoft ha rilasciato la versione express di Visual Basic .NET (dichiarata utilizzabile e addirittura consigliata anche a fini commerciali) mi chiedo: perchè  se devo sviluppare un’applicazione che si appoggia a database, utilizzando uno strumento free e potente come Visual Basic .NET (express) devo pagare per avere una licenza per MS SQL o per sviluppare in Access?

firebirdphoenixDifatti non si è costretti ad utilizzare tali sistemi di gestione dati dal momento che esistono soluzioni free, open source e addirittura anche più performanti delle soluzioni a pagamento, sto parlando di Firebird: un RDBMS di tutto rispetto, che nasce dalle radici di un vecchio progetto (Interbase) che era a pagamento ed utilizzato addirittura dalla NASA. Non mi soffermerò in questa sede ad illustrare i vantaggi derivanti dall’utilizzo di Firebird, la rete è piena di documentazione in merito, un buon punto di partenza è wikipedia.

Dunque, cominciamo a muovere i primi passi in FireBird, anche perchè chi è abituato ad utilizzare Access o MSSql può rimanere spiazzato di fronte all’interfaccia (inesistente!) di Firebird, che funziona prevalentemente a riga di comando, ma niente paura! Esistono numerose GUI per facilitarci il compito, io personalmente mi trovo molto bene con FlameRobin, ed è questo che utilizzerò per incominciare a spiegarvi un po’ l’utilizzo iniziale di Firebird (per lo sviluppo di una semplice applicazione con VB.NET me ne occuperò in un altro articolo). Ovviamente è necessario avere comunque delle basi di linguaggio SQL altrimenti non si riuscirà a creare niente.

Cominciamo quindi a procurarci ciò che ci serve per cominciare a giocherellare un po’ con Firebird.

Ovviamente: il motore di Firebird, scaricabile dal sito ufficiale. L’ultima versione disponibile nel momento in cui scrivo è la 2.1.1, clicchiamo quindi sull’immagine reclamizzante questa versione e scarichiamo l’eseguibile che ci interessa, come potete notare, per win32 (che è la scelta da effettuare per chi utilizza XP o Vista a 32bit) sono disponibili 3 installazioni differenti, dal momento che vogliamo le cose semplici, scarichiamo il .exe (NON embed), contrassegnato con “Windows executable installer for full Classic or Superserver, recommended for first-time users“.

Scarichiamo quindi FlameRobin, che sarà l’interfaccia grafica che ci semplificherà di molto il lavoro sui database, è possibile scaricarlo gratuitamente dal sito ufficiale, per i meno avvezzi a navigare in siti in inglese, questa è la pagina con il download, a noi utenti windows serve il file .exe contrassegnato con l’architettura i386.

Installiamo quindi Firebird.

ATTENZIONE – SOLO PER UTENTI DI WINDOWS VISTA
Nella pagina di download di FireBird è specificato che gli utenti di windows vista devono disabilitare l’opzione per l’installazione dell’applet nel pannello di controllo, pena guasto nel pannello di controllo di Vista. Personalmente non utilizzo vista, ma mi sono sentito in dovere di avvisare, dal momento che a qualcuno potrebbe sfuggire questo avviso.

Dopo aver accettato i termini di licenza, ci troviamo a dover effettuare una scelta: Classic Server o Super Server ? Dal momento che dobbiamo fare semplici esperimenti di utilizzo, anche sul sito di Firebird stesso è consigliata l’installazione del Classic Server, per cui scegliamo questo:

firebird_00

A questo punto, dopo altri passaggi, dobbiamo scegliere se avviare Firebird come servizio o come applicazione, io scelgo come applicazione e inoltre deseleziono l’opzione di avvio automatico all’avvio di windows:

firebird_01

Andando avanti, alla fine dell’installazione, il server di Firebird viene avviato, per cui ci appare la classica schermata di avviso di protezione di windows:

firebird_02

Clicchiamo tranquillamente su sblocca, e nella barra dell’orologio appare l’icona di Firebird, ad indicare che il server è attivo, per spegnerlo basta cliccarci su col tasto destro e selezionare “Shutdown”, mentre per riavviarlo basta selezionare “Firebird server” dall’apposito sottomenù creato nel menù Start.

Ora installiamo Flamerobin, l’installazione di questa GUI non prevede nulla di particolare, per cui lanciamolo alla fine dell’installazione, avendo cura che il server di Firebird sia attivo (altrimenti la creazione di database non avrà successo). Appare una schermata bianca con l’indicazione di Localhost, clicchiamo su Localhost col tasto destro e selezioniamo “Create new database“:

firebird_03

Appare la schermata con i parametri da settare, c’è un “display name” che è in pratica il nome con il quale il database sarà visualizzato nell’elenco (un alias insomma), un “database path” nel quale andremo a settare il percorso e il nome da dare al file di database (io ho dato il nome “rubrica”, l’estensione viene aggiunta automaticamente) e quindi un username e una password. In Firebird, username e password predefinite per il server sono rispettivamente sysdba e masterkey, senza questi nome utente e password, il server non garantisce l’accesso per le operazioni, riempiamo quindi questi campi, lasciando gli altri con i valori di default:

firebird_04

Clicchiamo quindi sul tasto Create, appare il database “rubrica” nell’elenco, e vedremo quindi crearsi un file “rubrica.fdb” nel percorso che abbiamo scelto, quindi, creato il database, bisogna connettersi ad esso, basta fare doppio click sul nome “rubrica” nell’elenco, appare quindi l’elenco delle proprietà del database:

firebird_05

Cominciamo ora con il creare una tabella: clicchiamo col tasto destro sulla voce “Tables”  e selezioniamo “Create New”; appare l’editor SQL con il quale possiamo impostare le query. Cancelliamo tutto quello che c’è scritto di default e impostiamo una query per creare una ipotetica tabella destinata a contenere un elenco di nomi con email:

CREATE TABLE indirizzi
(
id INTEGER NOT NULL,
nome VARCHAR(50),
cognome VARCHAR(50),
email VARCHAR(100)
);

Con questa query non faccio altro che creare una tabella dal nome “indirizzi” con 4 campi: un id numerico e 3 campi di testo rispettivamente di 50, 50 e 100 caratteri destinati a contenere nome, cognome e indirizzo email dei contatti.

NOTA:
L’elenco dei tipi di dato supportato da Firebird si trova nella documentazione ufficiale, all’indirizzo:
http://firebirdsql.org/manual/migration-mssql-data-types.html

Eseguiamo la query premendo F4 o cliccando sul tastino “play” viola (Execute statement):

firebird_06

Quando tutto va bene possiamo notare delle scritte in azzurro che confermano la corretta riuscita delle operazioni, diversamente si notano degli errori (segnalati in rosso) che dobbiamo imparare a correggere. Attenzione però: la tabella non è ancora stata creata, bisogna difatti confermare la transazione premendo F5 o cliccando sul tastino a forma di segno di spunta (Commit Transaction) , soltanto a questo punto la tabella viene creata realmente e possiamo chiudere l’editor. Difatti ora è possibile notare un (1) affianco a “Tables” ad indicare appunto che questo database contiene una tabella. Cliccando sul segno + espandiamo l’elenco delle tabelle, e appare quindi l’unica tabella che abbiamo creato, cliccando ancora sul segno + del nome della tabella espandiamo i nomi dei campi con le relative caratteristiche:

firebird_07

Arrivati a questo punto, vogliamo fare in modo che il campo ID si autoincrementi da solo (già… di fatti non esiste una clausola di tipo autoincrement da specificare nella query durante la creazione della tabella come con mysql o altri db… qui si parla di un database di alto livello!), per cui per fare queste operazioni è necessario creare un generatore (una procedura che incrementa un contatore) e un trigger (che è una procedura attivata automaticamente allo scatenarsi di un evento, quale l’inserimento di una nuova riga). Per fortuna Flamerobin ci viene in aiuto e ci permette di creare il campo autoincrementale con poche operazioni. Clicchiamo con il tasto destro sul nome della tabella (Indirizzi) e selezioniamo dal menù: Show Properties, appare questa finestra:

firebird_08

NOTA:
Da questa schermata è addirittura possibile aggiungere descrizioni ai campi cliccando su [edit] a fianco ai nomi delle colonne, una funzione molto utile quando ci ritroviamo a dover lavorare su vecchi database

Clicchiamo quindi sul fogliettino con la lente di ingrandimento a fianco al campo id:

firebird_09

Appare quindi la schermata che ci permette di impostare le proprietà di questo campo, (da qui vedete che è possibile anche modifcare il tipo di dato contenuto in questo campo) . In un solo colpo questa schermata ci permette di creare un generatore e un trigger associato a questo campo, basta selezionare le voci “Create new generator” e “Create trigger” come da figura:

firebird_10

Premiamo il tasto Execute, appare l’editor SQL nel quale possiamo vedere la query che è stata creata in automatico da Flamerobin, non dimentichiamoci di confermare la transazione cliccando sul segno di spunta (Commit transaction) o premendo F5, altrimenti è come se l’operazione non avesse avuto luogo. Ora nell’elenco, tra le varie proprietà vediamo che ci sono anche 1 Trigger e 1 Generator.

E questo è quanto per l’utilizzo di base di firebird e flamerobin. Nelle prossime puntate, tempo permettendo, illustrerò come utilizzare un database creato con Firebird da VB.NET ed utilizzare tranquillamente il software così creato su altri pc senza installare ne Flamerobin ne Firebird.

Downloads

Se questo articolo ti è piaciuto, condividilo su un social:
Se l'articolo ti è piaciuto o ti è stato utile, potresti dedicare un minuto a leggere questa pagina, dove ho elencato alcune cose che potrebbero farmi contento? Grazie :)