¿Cómo extrae SQL los datos de una base de datos / se conecta con una base de datos?

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.

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.

SQL es un lenguaje. Una base de datos SQL es una tecnología de servidor que ejecuta consultas utilizando comandos del lenguaje SQL. Almacena filas de datos en tablas contenidas dentro de una “base de datos”: una base de datos es una colección de tablas.

Los datos finalmente se escriben en archivos en el disco. Usualmente no interactúas con estos archivos.

Esta es una arquitectura de servidor cliente, lo que significa que cualquier programa cliente (Query Analyzer, SAP, Squirrel, etc.) establece una conexión, generalmente a través de un protocolo. El comando se envía desde el cliente a través de un controlador al servidor donde se ejecuta y los resultados se devuelven al cliente. Así es como se obtienen los resultados de “seleccionar * de la tabla” en una bonita cuadrícula bonita en lugar de una secuencia TDS o algo similar.

Cargar sus datos en una base de datos requiere escribir declaraciones de inserción o usar un programa cliente proporcionado por el proveedor de la base de datos, como MySql studio.

Buena pregunta.

Para explicarlo, retrocederé un paso y mostraré por qué tenemos motores SQL y de base de datos.

Imagine que usted y otras 10 personas intentan editar un archivo XL. Sin duda, verá rápidamente el problema, si realiza un cambio y guarda el archivo, podría borrar los cambios de otra persona. Y, sin embargo, esto es lo que sucede con muchas ‘bases de datos’ que se utilizan en las empresas. Dependen literalmente de que una persona controle el archivo y los acuerdos y reglas sobre quién puede leer y quién puede escribir un archivo.

Por supuesto, en entornos más grandes esto simplemente no es lo suficientemente estable. Entonces fue cuando los primeros desarrolladores de bases de datos tuvieron una idea: si tenemos un ejecutable que realiza los cambios y la lectura de los datos, entonces todo lo que tenemos que hacer es decirle a este ejecutable lo que queremos que haga. El ejecutable debe ser lo suficientemente inteligente como para mezclar todos los cambios y obtener todos los datos y manejar todas las medidas de seguridad, copias de seguridad y restauraciones. Y eso es lo que realmente son las plataformas de bases de datos modernas como MSSQL y Oracle. Entonces, si inicia sesión, no se conecta a una base de datos. Se conecta al motor y puede decir qué es lo que realmente desea. Por ejemplo, con qué base de datos desea hablar, qué tabla y qué acción desea realizar. Y este motor en la mayoría de los casos ya tiene un bloqueo de archivos completo y exclusivo en todos los archivos de bases de datos relacionadas para que nadie pueda acceder a estos. Y luego, el motor de consultas determina en su Lenguaje de consulta estructurado qué tabla leer, qué archivo abrir y / o escribir y maneja cosas como cómo desea bloquear o compartir los datos. También verifica si su cuenta tiene suficientes derechos. Y al usar disparadores y procedimientos almacenados, puede hacer cosas extravagantes, como verificar algo que usted ordena, no solo está en stock, está al precio correcto, tiene personas disponibles para empacar y enviar, y no está marcado como corredor potencial o más allá de su límite de compra .

Ahí lo tienes … SQL te conecta a un motor. El motor hace el resto.

Las bases de datos son un programa separado que se ejecuta en su computadora (o servidor). El lenguaje de programación con el que construye su aplicación tendrá controladores de bajo nivel que se encargarán del apretón de manos y la transferencia de datos hacia y desde el servidor de la base de datos.

26 Conectores y API es la documentación de mysql que puede responder mejor a sus preguntas. Si bien esto es específico de MySQL, es similar para la mayoría de los rdbms