Cómo funciona un controlador de base de datos?

Un controlador de base de datos es un software que le permite hablar con su base de datos desde su aplicación. Hay controladores específicos del lenguaje como JDBC, ODBC, OLE DB donde la interfaz del controlador se implementa de acuerdo con las especificaciones del lenguaje para que su aplicación pueda interactuar con la base de datos de acuerdo con las especificaciones predefinidas.

En la cubierta, el controlador de base de datos convierte las consultas SQL en su aplicación en un lenguaje de protocolo para hablar con el servidor de base de datos y devolver los resultados de la consulta a su aplicación mediante la conversión del lenguaje de protocolo de nuevo a los resultados de las especificaciones del lenguaje. Por lo tanto, el controlador debe ser capaz de hablar con una base de datos utilizando un protocolo de envoltura relacional, es decir, el controlador y la base de datos necesita hablar en un lenguaje comúnmente entendido que les permite intercambiar información relacional.

Entiendo que la base de datos Oracle utiliza el protocolo Net8, las bases de datos de IBM utilizan DRDA.

Una simple sentencia CONNECT puede ilustrarse bajo la cubierta así:

Base de datos: escuchando activamente en el puerto xxx.

Controlador: Abre una conexión TCP/IP al puerto xxx. Envía la petición a la base de datos con la información de la aplicación, la versión del driver, el nivel de envoltura relacional soportado yy, el nombre de usuario y la contraseña. Todo esto podría estar en una información de 256 bytes.

Base de datos: OK, veo que puedes hablar en el nivel de envoltura relacional yy, apoyo este nivel, vamos a comprobar tu nombre de usuario y contraseña (que se pueden encontrar en el xº e yº byte de la solicitud de entrada). Ok, puedes conectarte.

Controlador: Pide conectarse a la base de datos1.

Base de datos: Ok estás conectado a la base de datos1.

---------------------------------------

Una forma rápida de entender cómo funcionan los drivers a escondidas es mirar los registros de rastreo del driver, que deberían estar fácilmente disponibles cuando se habilita el rastreo al conectarse a una base de datos. Puede ser confuso al principio, pero después de un tiempo todo es rubio, moreno y pelirrojo.