Un driver di database è un software che ti permette di parlare al tuo database dalla tua applicazione. Ci sono driver specifici per un linguaggio come JDBC, ODBC, OLE DB dove l'interfaccia del driver è implementata secondo le specifiche del linguaggio in modo che la tua applicazione possa interagire con il database secondo le specifiche predefinite.
Sotto la copertura, il driver del database converte le query SQL nella tua applicazione in un linguaggio di protocollo per parlare con il server del database e restituisce i risultati della query alla tua applicazione convertendo il linguaggio di protocollo in risultati delle specifiche del linguaggio. Quindi il driver deve essere in grado di parlare con un database usando un protocollo di wrapper relazionale, cioè il driver e il database devono parlare in un linguaggio comunemente compreso che permetta loro di scambiarsi informazioni relazionali.
Ho capito che il database Oracle usa il protocollo Net8, i database IBM usano DRDA.
Una semplice dichiarazione di CONNECT può essere illustrata sotto la copertura come questa:
Database: attivamente in ascolto sulla porta xxx.
Driver: Apre una connessione TCP/IP alla porta xxx. Invia una richiesta al database con informazioni sull'applicazione, versione del driver, livello di wrapper relazionale supportato yy, nome utente e password. Tutto questo potrebbe essere in un'informazione di 256 byte.
Database: OK, vedo che puoi parlare nel livello di wrapper relazionale yy, io supporto questo livello, controlliamo il tuo nome utente e la tua password (che possono essere trovati al x° e y° byte della richiesta di input). Ok, sei autorizzato a connetterti.
Driver: Chiede di connettersi al database1.
Database: Ok sei connesso al database1.
---------------------------------------
Un modo veloce per capire come funzionano i driver sotto la copertura è guardare i log di tracciamento dei driver, che dovrebbero essere facilmente disponibili quando si abilita la traccia durante la connessione a un database. All'inizio può confondere, ma dopo un po' è tutto biondo, bruno e rosso.