Una base de datos relacional organiza los datos en un formato tabular (filas y columnas) y facilita las relaciones entre diferentes tablas. Por ejemplo, una base de datos de servicio de atención al cliente podría utilizar tablas separadas para información sobre clientes, compras, códigos de producto y contactos, vinculadas por claves como un ID de cliente único.
SQL permite a los usuarios escribir consultas (y subconsultas) para manipular estos datos. Estos comandos se ejecutan a través de varios componentes de software durante el proceso SQL:
Un analizador verifica la corrección de las sentencias SQL y las convierte a un formato que la base de datos pueda entender, como símbolos tokenizados. Este paso implica el análisis de sintaxis y la comprobación semántica. El analizador también ayudará a garantizar que el usuario esté autorizado para realizar la operación.
Luego, un motor relacional, también conocido como optimizador de consultas, planifica las estrategias de recuperación, modificación o adición de datos más eficientes. Esto se hace mediante la evaluación de diferentes planes de ejecución de consultas. Escribe el plan en bytecode, que es un lenguaje de máquina virtual. Este paso es crucial para optimizar el rendimiento de la base de datos y el uso de recursos.
Por último, un motor de almacenamiento procesa el código de bytes, ejecuta la instrucción SQL y gestiona el almacenamiento físico de datos. Gestiona la representación física de los datos, incluidos los formatos de archivo y el almacenamiento en búfer de datos. También devuelve el resultado al usuario o a la aplicación. Este paso ayuda a garantizar un acceso eficiente a los datos y actualizaciones en el disco. Esta vinculación suele implicar relaciones, como de uno a varios o de varios a varios, establecidas mediante claves primarias y foráneas para ayudar a garantizar la integridad de los datos.