Operaciones del álgebra relacional y cómo procesa el SGBD una sentencia SQL

Clasificado en Matemáticas

Escrito el en español con un tamaño de 4,43 KB

Operaciones del álgebra relacional

Selección

Selección: Esta operación obtiene un subconjunto de filas de una tabla con todas sus columnas. Se representa con la letra sigma (σ) o mediante una condición. Se pueden seleccionar determinadas filas incluyendo en la operación la condición.

Proyección

Proyección: Consiste en conservar todas las filas pero solo algunas columnas de la tabla. Suele representarse con la letra pi (π).

Unión

Unión: Dos tablas se pueden unir si tienen el mismo número de columnas y dominios compatibles. El resultado es una tabla que contiene las filas que pertenecen a cualquiera de las dos tablas (sin duplicados, si se entiende la unión en sentido relacional).

Diferencia

Diferencia: La diferencia entre dos tablas solo es posible si tienen el mismo número de columnas y dominios compatibles. El resultado es otra tabla con las filas pertenecientes a la primera tabla y que no pertenecen a la otra tabla.

Producto cartesiano

Producto cartesiano: Se puede realizar entre dos tablas que tengan cualquier número de columnas (no es necesario que sean iguales). El resultado es otra tabla que contendrá la suma de columnas de ambas tablas y el conjunto formado por todas las combinaciones posibles de filas de ambas tablas: cada fila de la primera tabla combinada con cada fila de la segunda tabla.

Intersección

Intersección: Resultado formado por lo común entre dos tablas, es decir, las filas que aparecen en ambas tablas.

Cociente (división)

Cociente: Se realiza entre dos tablas con diferentes columnas que cumplen las siguientes condiciones: la tabla 1 debe tener las columnas de la tabla 2 y el número de columnas de la tabla 1 ha de ser mayor que el de la tabla 2; la tabla 2 debe tener al menos una fila. El cociente se puede expresar en función de la proyección y suele utilizarse para consultas del tipo "todos los X que están relacionados con todos los Y".

Combinación o join

Combinación (join): Con esta operación se obtiene el producto cartesiano de dos tablas cuyas filas cumplen una condición determinada. La combinación de dos tablas con respecto a una cierta condición de combinación es otra tabla constituida por pares de filas de ambas tablas concatenadas tales que, en cada par, las filas correspondientes satisfacen la condición.

Cómo procesa el SGBD una sentencia

El procesamiento típico que realiza un sistema gestor de bases de datos (SGBD) sobre una sentencia SQL suele seguir estos pasos:

  1. Analiza la sentencia: Comprueba sintácticamente que esté bien escrita.
  2. Valida la sentencia: Comprueba semánticamente la sentencia (por ejemplo, si las tablas y columnas referenciadas existen, si el usuario tiene privilegios para realizar esa operación sobre la tabla, etc.).
  3. Optimiza la sentencia: El SGBD explora las alternativas para llevar a cabo la ejecución de la sentencia y elige estrategias eficientes (uso de índices, reordenación de operaciones, estimación de costes, etc.).
  4. Genera un plan de aplicación: Se genera un plan de ejecución y, en muchos sistemas, se traduce a código o instrucciones ejecutables por el motor.
  5. Ejecuta el plan de aplicación: El motor ejecuta el plan y devuelve el resultado.

Componentes sintácticos de una sentencia

Componentes sintácticos de una sentencia: Todas las sentencias suelen comenzar con un verbo, que es la palabra clave que describe lo que hace la sentencia (por ejemplo, SELECT, INSERT, UPDATE, DELETE). A continuación le siguen una o más cláusulas que especifican los datos con los que opera la sentencia. Estas cláusulas también comienzan con una palabra clave, como WHERE o FROM. Algunas cláusulas son opcionales y otras obligatorias. Muchas sentencias contienen nombres de tablas o de columnas, palabras reservadas, constantes o expresiones adicionales.

Notas finales

Las operaciones del álgebra relacional son la base teórica para las consultas en bases de datos relacionales y ayudan a comprender cómo se pueden transformar y optimizar las sentencias SQL en un SGBD.

Entradas relacionadas: