Arboles de Consultas
December 5, 2020 | Author: Anonymous | Category: N/A
Short Description
Download Arboles de Consultas...
Description
Existen distintos métodos para optimizar consultas relacionales, sin embargo el enfoque de optimización basada en costos combinado con heurísticas heurísticas que permitan reducir el espacio de búsqueda de la solución es el método mayormente utilizado por los motores de base de datos relaciones de la la actualidad, en todo caso, independiente del método elegido para optimizar la consulta, la salida de este proceso debe ser un plan de ejecución, el cual comúnmente es representado en su forma de árbol relacional.
Un árbol de consulta es una estructura estructura de árbol que corresponde a una expresión del álgebra relacional, relacional, donde las relaciones relaciones iniciales son son representadas representadas a través de los l os nodos hojas del árbol y las operaciones son representadas representadas en los l os nodos internos. Una ejecución ejecución de un árbol de consulta consulta consiste consiste en la ejecución de una operación de un nodo interno siempre que sus operadores estén disponibles y luego sustituyendo este nodo por la relación que resulte de ejecutar la operación. La ejecución termina cuando el nodo raíz es ejecutado y produce la relación resultante. El bloque de consulta tiene la siguiente forma: SELECT < lista de atributos > FROM < lista de tablas> WHERE < condición > La lista de atributos, es la lista l ista de nombres de atributos cuyos valores serán recuperados en la consulta.
La lista de tablas, es la lista l ista de nombres de las tablas o relaciones necesarias para procesar la consulta. La condición, es la expresión condicional condicional (booleana) que identifica las tuplas que serán recuperadas por la consulta.
“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 Empleado.c.i.=Trabajaen.c.i. AND fnac < 01/01/1960
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 .
View more...
Comments