Existen distintos métodos para optimizar consultas relacionales, sin embargo Existen distintos métodos para optimizar consultas relacionales, sin embargo el enfoque de
el enfoque de optimización basada en costos combinado con optimización basada en costos combinado con heurísticaheurísticass que permitan reducir el espacio de búsqueda de la solución es
que permitan reducir el espacio de búsqueda de la solución es el métodoel método mayormente utilizado por los motores de base de datos relaciones de l mayormente utilizado por los motores de base de datos relaciones de laa actualidad, en todo caso, independiente del
actualidad, en todo caso, independiente del método elegido paramétodo elegido para optimizar la consulta, la salida de este proceso debe ser un
optimizar la consulta, la salida de este proceso debe ser un plan deplan de ejecución, el cual comúnmente es representado en su forma de
ejecución, el cual comúnmente es representado en su forma de árbolárbol relacional.
relacional.
Un árbol de consulta es una
Un árbol de consulta es una estructurestructura de árbol a de árbol que corresponde a unaque corresponde a una expresión
expresión del álgebra redel álgebra relacional, donde las relacilacional, donde las relaciones iniciales soones iniciales sonn representa
representadas a través de ldas a través de los nodos hojas del árbol y os nodos hojas del árbol y las operaciones sonlas operaciones son representa
representadas en ldas en los nodos internos.os nodos internos. Una e
Una ejecución jecución de un de un árbol árbol de consde consulta culta consiste onsiste en la en la ejecución ejecución de unade una operación de un nodo interno siempre que
operación de un nodo interno siempre que sus operadores esténsus operadores estén
disponibles y luego sustituyendo este nodo por la relación que resulte de disponibles y luego sustituyendo este nodo por la relación que resulte de ejecutar la operación.
ejecutar la operación.
La ejecución termina cuando el nodo raíz
La ejecución termina cuando el nodo raíz es ejecutado y produce laes ejecutado y produce la relación resultante.
relación resultante.
El bloque de consulta tiene la siguiente forma: El bloque de consulta tiene la siguiente forma: SELECT < lista de atributos > FROM
SELECT < lista de atributos > FROM < lista de tablas> WHERE < condición >< lista de tablas> WHERE < condición > La lista de atributos, es la l
La lista de atributos, es la lista de nombres de atributos cuyos valores seránista de nombres de atributos cuyos valores serán recuperados en la consulta.
recuperados en la consulta.
La lista de tablas, es la l
La lista de tablas, es la lista de nombres de las tablas o ista de nombres de las tablas o relacionesrelaciones necesarias para procesar la consulta.
necesarias para procesar la consulta. La condición, es la
La condición, es la expresión condicionaexpresión condicional (booleana) que l (booleana) que identifica lasidentifica las tuplas que serán recuperadas por la
“Listar los nombres de los empleados nacidos antes de 1960 que trabajen en un Proyecto llamado Géminis” SELECT enombre FROM Empleado,
Trabaja-en, Proyecto WHERE pnombre = “Géminis” AND pnumero = pnum AND
SQL Al leer las representaciones de SQL de los árboles de consulta en este documento es necesario para poder identificar las partes se divide el estado en cuando se encuentra en la estructura del árbol de la consulta. Las partes de un árbol de la consulta son:
• El tipo de comando.- Este es un valor simple decir que comando (SELECT, INSERT, UPDATE, DELETE) produjo el árbol de análisis.
• La tabla de rango La tabla es una lista amplia de las relaciones que se utilizan en la consulta. En una instrucción SELECT se trata de las relaciones dadas después de la palabra clave FROM. Cada entrada de la tabla gama identifica una tabla o vista y le dice por qué nombre se le llama en otras partes de la consulta. SQL En el árbol de consulta de las entradas de tabla de la gama se hace referencia por el índice en lugar de por su
nombre, así que aquí no importa si hay nombres duplicados ya que en una sentencia SQL.
• La relación resultado Este es un índice en la tabla de rango que identifica la relación donde van los resultados de la consulta. Las consultas SELECT normalmente no tienen una relación de resultados. En las consultas INSERT, UPDATE y DELETE la relación resultado es la tabla donde los cambios surtan efecto.
• La lista de objetivos La lista de objetivos es una lista de expresiones que definen el resultado de la consulta. En el caso de una SELECT, las
expresiones son las que se basa el resultado final de la consulta.
DELETE no necesitan una lista de objetivos, ya que no producen ningún resultado. CTID
En INSERT la lista objetivo describe las nuevas filas que deben entrar en la relación resultado.
En las consultas UPDATE, la lista de objetivos describe las nuevas filas que deben sustituir a los antiguos.
La calificación La consulta de calificación es una expresión muy similar a uno de los que figuran en la lista de entradas de destino. El valor del
resultado de esta expresión es un valor booleano que indica si la operación (INSERT, UPDATE, DELETE o SELECT) para la fila de resultado final debe ser ejecutado o no. SQL Es la cláusula WHERE de una instrucción SQL.