Informazioni su ODBC

Nel mondo dell'informatica esistono molte idee sbagliate su ODBC. Per l'utente finale, si tratta di un'icona nel pannello di controllo di Microsoft Windows. Per il programmatore di applicazioni, si tratta di una libreria contenente routine di accesso ai dati. Per molti altri è la risposta a tutti i problemi di accesso ai database mai immaginati.

Innanzitutto, ODBC è una specifica per un'API di database. Questa API è indipendente da qualsiasi DBMS o sistema operativo; sebbene questo manuale utilizzi il C, l'API ODBC è indipendente dal linguaggio. L'API ODBC si basa sulle specifiche dell'interfaccia della riga di comando di Open Group e ISO/IEC. ODBC 3.x implementa completamente entrambe queste specifiche (le versioni precedenti di ODBC si basavano su versioni preliminari di queste specifiche ma non le implementavano completamente) e aggiunge funzionalità comunemente richieste dagli sviluppatori di applicazioni di database basate su schermo, come i cursori scrollabili.

Le funzioni dell'API ODBC sono implementate dagli sviluppatori di driver specifici per i DBMS. Le applicazioni chiamano le funzioni di questi driver per accedere ai dati in modo indipendente dal DBMS. Gestione driver gestisce la comunicazione tra applicazioni e driver.

Sebbene Microsoft fornisca un gestore di driver per i computer con Microsoft Windows 95 e successivi, abbia scritto diversi driver ODBC e richiami le funzioni ODBC da alcune delle sue applicazioni, chiunque può scrivere applicazioni e driver ODBC. Infatti, la stragrande maggioranza delle applicazioni e dei driver ODBC disponibili oggi sono scritti da aziende diverse da Microsoft. Inoltre, esistono driver e applicazioni ODBC su macOS e su diverse piattaforme UNIX.

Per aiutare gli sviluppatori di applicazioni e driver, Microsoft offre un ODBC Software Development Kit (SDK) per i computer con Windows 95 e successivi che fornisce il driver manager, la DLL di installazione, strumenti di test e applicazioni di esempio. Microsoft ha collaborato con Visigenic Software per portare questi SDK su Macintosh e su diverse piattaforme UNIX.

È importante capire che ODBC è stato progettato per esporre le funzionalità dei database, non per integrarle. Pertanto, chi scrive applicazioni non deve aspettarsi che l'uso di ODBC trasformi improvvisamente un semplice database in un motore di database relazionale completo. Inoltre, non ci si aspetta che chi scrive i driver implementi funzionalità che non si trovano nel database sottostante. Un'eccezione è rappresentata dagli sviluppatori che scrivono driver che accedono direttamente ai dati di un file (ad esempio i dati di un file Xbase) e che devono scrivere un motore di database che supporti almeno una minima funzionalità SQL. Un'altra eccezione è rappresentata dal componente ODBC del Windows SDK, precedentemente incluso nel Microsoft Data Access Components (MDAC) SDK, che fornisce una libreria di cursori che simula cursori scorrevoli per i driver che implementano un certo livello di funzionalità.

Le applicazioni che utilizzano ODBC sono responsabili di qualsiasi funzionalità cross-database. Ad esempio, ODBC non è un motore di join eterogeneo, né un processore di transazioni distribuito. Tuttavia, essendo indipendente dal DBMS, può essere utilizzato per creare strumenti tra database di questo tipo.