La mayoría de los motores SQL son cliente-servidor (al igual que la mayoría de los otros motores DB, incluidos los motores NoSQL).
Básicamente, cuando interactúa con un servidor de base de datos, su aplicación utiliza una API de cliente de algún tipo, que finalmente utiliza TCP / IP de nivel inferior (en la mayoría de los casos) para dialogar con un servidor de base de datos distinto.
La mayoría de los motores de base de datos relacionales usan conexiones “con estado”, lo que significa que se conecta al servidor, por lo general utilizando algún tipo de mecanismo de autenticación, obtiene una conexión de larga duración, y envía consultas y recibe respuestas utilizando esa conexión. Esa conexión permanece válida hasta que se agota el tiempo de espera o se cierra la sesión.
- ¿Cuáles son los diversos estándares de red?
- ¿Cuál es la ventaja de enviar mensajes de control 'fuera de banda'?
- ¿Cuáles son algunos de los tipos de interferencias inalámbricas?
- ¿Aproximadamente cuánto tomará terminar la preparación para el examen CISA?
- ¿Cuál es la diferencia entre el enrutamiento basado en políticas y la optimización de WAN?
Su cliente emite sentencias SQL, que están “envueltas” en un protocolo del lado de la aplicación, que finalmente se envía al backend de la base de datos. El backend de DB decodifica el paquete, analiza el SQL y responde la consulta localmente. Una vez que tiene la respuesta, el motor de db envía el texto de respuesta a su aplicación, utilizando un protocolo de servidor a cliente.
Los errores, advertencias y otros textos se envían de manera similar.
Algunos tipos de motores db, particularmente los motores NoSQL, usan API REST “sin estado” para dialogar con los clientes. Por lo general, envían información de autenticación con cada consulta. Las bases de datos relacionales generalmente no lo hacen, ya que este modelo de diálogo no puede admitir fácilmente transacciones de varios estados.
Con muy pocas excepciones, los motores de bases de datos no intentan guardar cachés de datos en el cliente; las consultas casi * tienen * que ser respondidas completamente en el servidor, tanto por razones arquitectónicas (ACID es difícil de satisfacer con cachés distribuidos y esas cosas) como por razones de seguridad.