stringtranslate.com

Conexión a base de datos

Una conexión de base de datos es una función de la informática que permite que el software cliente se comunique con el software del servidor de base de datos , ya sea que se encuentren en la misma máquina o no. Se necesita una conexión para enviar comandos y recibir respuestas, generalmente en forma de un conjunto de resultados.

Las conexiones son un concepto clave en la programación centrada en datos. Dado que algunos motores DBMS requieren un tiempo considerable para conectarse, se inventó la agrupación de conexiones para mejorar el rendimiento. No se puede ejecutar ningún comando en una base de datos sin una conexión "abierta y disponible" a ella.

Las conexiones se crean suministrando a un controlador o proveedor subyacente una cadena de conexión , que es una forma de acceder a una base de datos o servidor específico y a una instancia, así como a las credenciales de autenticación del usuario (por ejemplo, Server= sql_box; Database= Common; User ID= uid; Pwd= password; ). Una vez que se ha creado una conexión, se puede abrir y cerrar a voluntad, y se pueden configurar las propiedades (como la duración del tiempo de espera del comando o la transacción , si existe alguna). La cadena de conexión se compone de un conjunto de pares clave/valor según lo dicte la interfaz de acceso a datos y el proveedor de datos que se utilice.

Muchas bases de datos (como PostgreSQL ) solo permiten que se realice una operación a la vez en cada conexión. Si se envía una solicitud de datos (una instrucción SQL Select ) a la base de datos y se devuelve un conjunto de resultados, la conexión está abierta pero no está disponible para otras operaciones hasta que el cliente termina de consumir el conjunto de resultados. Otras bases de datos, como SQL Server 2005 (y versiones posteriores), no imponen esta limitación. Sin embargo, las bases de datos que proporcionan múltiples operaciones por conexión generalmente incurren en una sobrecarga mucho mayor que aquellas que solo permiten una única tarea de operación a la vez.

Agrupamiento

Las conexiones a bases de datos son finitas y costosas , y su creación puede llevar un tiempo desproporcionadamente largo en relación con las operaciones que se realizan en ellas. Resulta ineficiente para una aplicación crear, usar y cerrar una conexión a una base de datos cada vez que necesita actualizar una base de datos.

La agrupación de conexiones es una técnica diseñada para aliviar este problema. Se puede crear un grupo de conexiones de base de datos y luego compartirlo entre las aplicaciones que necesitan acceder a la base de datos.

El objeto de conexión obtenido del grupo de conexiones es a menudo un contenedor alrededor de la conexión de base de datos real. El contenedor comprende su relación con el grupo y oculta los detalles del grupo a la aplicación. Por ejemplo, el objeto contenedor puede implementar un método "close" que se puede llamar de la misma manera que el método "close" en la conexión de base de datos. A diferencia del método en la conexión de base de datos, el método en el contenedor puede no cerrar realmente la conexión de base de datos, sino que la devuelve al grupo. La aplicación no necesita estar al tanto del grupo de conexiones cuando llama a los métodos en el objeto contenedor.

Este enfoque fomenta la práctica de abrir una conexión en una aplicación solo cuando es necesario y cerrarla tan pronto como se realiza el trabajo, en lugar de mantener una conexión abierta durante toda la vida útil de la aplicación. De esta manera, una cantidad relativamente pequeña de conexiones puede atender una gran cantidad de solicitudes. Esto también se denomina multiplexación .

Por otra parte, en una arquitectura cliente/servidor, normalmente se utiliza una conexión persistente para poder gestionar el estado del servidor. Este "estado" incluye cursores del lado del servidor, productos temporales, configuraciones funcionales específicas de la conexión, etc.

Se produce un error en la aplicación cuando el grupo de conexiones se desborda. Esto puede ocurrir si todas las conexiones del grupo están en uso cuando una aplicación solicita una conexión. Por ejemplo, la aplicación puede utilizar una conexión durante demasiado tiempo cuando demasiados clientes intentan acceder al sitio web o una o más operaciones están bloqueadas o son simplemente ineficientes.

Véase también

Referencias

Enlaces externos