DBI, interfaccia verso i database per il linguaggio Perl (I p.)

Diamo un'occhiata a DBI, interfaccia indipendente dalla piattaforma, per la connessione ad un database dal linguaggio Perl.

DBI, DataBase Interface for perl, nasce dalla necessita’ di definire un’interfaccia indipendente dal tipo di database, in grado di astrarre la complessita’ relativa alla connessione al db, nascondendola al programmatore.

L’architettura puo’ essere divisa in due parti: i driver e il modulo DBI vero e proprio.

Esistono driver specifici per tutti i database piu’ diffusi, come DB2, Informix, Ingres, mSQL, MySQL, Oracle, PostgreSQL e Sybase.

Il DBI invece definisce l’interfaccia vera e propria, occupandosi inoltre di ridirigere le chiamate ai metodi al driver appropriato.

I metodi sono quindi definiti all’interno del modulo DBI, che si occupa di decidere quale driver dovra’ gestire l’esecuzione del metodo, passando al driver la chiamata. Il modulo DBI e’ quindi assolutamente indipendente dal database, in quanto non esegue nessun tipo di operazione sul db. Questa separazione rende facile estendere DBI in modo da supportare qualsiasi database, scrivendo il driver specifico.

Anche la scrittura di un driver per un determinato database e’ resa piu’ semplice in quanto consiste nell’implementare tutti i metodi definiti nelle specifiche di DBI, scrivendoli nel modo piu’ adatto al database specifico.

I dati restituiti dalla chiamata al metodo verranno passati dal driver al modulo DBI che si occupa di restituirli allo script Perl che lo ha interrogato. I dati scambiati fra il driver e il modulo sono compatibili con i tipi standard del linguaggio Perl.

Per utilizzare DBI si deve inserire la seguente istruzione all’inizio del programma:

use DBI;

che consente di localizzare e caricare il cuore del modulo DBI.

I driver relativi al database specifico saranno caricati al momento in cui saranno necessari e solitamente non e’ necessario farlo in modo esplicito con una particolare istruzione.

DBI definisce tre oggetti che possono essere utilizzati nell’interazione con il database, chiamati handles:

Driver Handles
Database Handles
Statement Handles

Driver Handles

E’ il riferimento ad un driver, viene creato in fase di caricamento ed inizializzazione dello stesso da parte del DBI.

Per conoscere i driver disponibili si utilizza il metodo (di DBI) available_drivers():

DBI->available_drivers();

Database Handles

Incapsulano una singola connessione ad un database.

Il metodo connect() effettua la connessione:

$dbh = DBI->connect( … );

Statement Handles

Incapsulano ogni singola istruzione sql da eseguire sul database.

Per ora e’ tutto, nel prossimo intervento inizieremo a connetterci ad un db e ad eseguire alcune istruzioni sql.

Per un approfondimento vi consiglio il seguente libro:

Programming the Perl DBI

PUBBLICITÀ
PUBBLICITÀ
Le vostre opinioni
Pubblicato il domenica 30 settembre 2001 in: Perl - DBI

Ultimi interventi

Vedi tutti

Link correlati

Inserisci per primo un commento a questo articolo.

PUBBLICITÀ
PUBBLICITÀ
L'email è richiesta ma non verrà mostrata ai visitatori.
Commenta questo articolo

Registrati per riservare il tuo nickname preferito e per caricare il tuo avatar. Se sei già registrato, effettua il login per usare il tuo nickname.

Si No

Anteprima del commento