Pontificia Universidad Católica del Ecuador Facultad de Ingeniería Escuela de Sistemas
Banco de preguntas Libro: DATABASE SYSTEM CONCEPTS
Sexta Edición Abraham Silberschatz
Ing. Javier Cóndor
Bases de datos II
BASES DE DATOS II – ING. JAVIER CÓNDOR
CAPÍTULO 10 ALMACENAMIENTO Y ESTRUCTURA DE ARCHIVOS 1. Consideremos los datos y el bloque de paridad arreglo en cuatro discos representados en la Figura. Los Bi s representan bloques de datos; Los Pi s representan cerraduras de paridad. El bloque de paridad Pi es el bloque de paridad para los bloques de datos B4i-3 a B4i. ¿Qué problema podría presentar este arreglo?
a. Este arreglo tiene el problema de que Pi y B3i-6 están en el mismo disco. Así que, si ese disco falla, la reconstrucción de B3i-6no es posible, ya que los datos y la paridad se pierden. b. Este arreglo tiene el problema de que Pi y B4i-3 están en el mismo disco. Así que, si ese disco falla, la reconstrucción de B4i-3 no es posible, ya que los datos y la paridad se pierden. c. Este arreglo no tiene el problema Respuesta: B 2. Almacenamiento flash: 1. ¿Cómo es la tabla de traducción flash, que se utiliza para asignar números de página lógica a números de página física, creados en la memoria?
Respuesta: Se almacena como una matriz que contiene números de página físicos, indexados por números de página lógica. Esta representación da una sobrecarga igual al tamaño de la dirección de página para cada página. 2. Suponga que tiene un sistema de almacenamiento flash de 64 gigabytes, con un tamaño de página de 4096 bytes. ¿Cuán grande sería la tabla de traducción de las pestañas, suponiendo que cada página tiene una dirección de 32 bits, y la tabla se almacena como una matriz.
Respuesta: Toma 32 bits para cada página o cada 4096 bytes de almacenamiento. Por lo tanto, se necesitan 64 megabytes para los 64 gigabytes de almacenamiento flash. 3. Sugiera cómo reducir el tamaño de la tabla de traducción si con mucha frecuencia los intervalos largos de números de página lógica consecutivos se asignan a números de página físicos c onsecutivos.
Respuesta: Si la asignación es tal que, cada p números consecutivos de páginas lógicas se asignan a p páginas físicas consecutivas, podemos almacenar la asignación de la primera página para cada p páginas. Esto reduce la estructura de memoria en un factor de p. Además, si p es un exponente de 2, podemos evitar algunos de los dígitos menos significativos de las direcciones almacenadas.
BASES DE DATOS II – ING. JAVIER CÓNDOR 3. Un fallo de alimentación que se produce mientras se está escribiendo un bloque de disco podría resultar en que la cerradura sólo esté parcialmente escrita. Suponga que se pueden detectar bloques parcialmente escritos. Una escritura de bloque atómico es aquella en la que el bloque de disco está completamente escrito o no se escribe nada (es decir, no hay escrituras parciales). Sugerir esquemas para obtener el efecto de escritura de bloque atómico con los siguientes esquemas RAID. Sus esquemas deben implicar el trabajo en la recuperación del fracaso. Una según corresponda
1
a
Para garantizar la atomicidad, se realiza una operación de escritura de bloques
b
Para cualquier escritura de bloques, el bloque de información se escribe primero seguido del bloque de paridad correspondiente.
c
En el momento de la recuperación, se considera cada conjunto constituido por el bloque n de cada uno de los discos
RAID level 1 (mirroring)
d
2
RAID level 5 (block interleaved, distributed parity)
Si no ha habido escritura parcial, pero difieren en contenido, entonces reemplazamos el contenido del primer bloque por el contenido del segundo, o
e
viceversa. El requisito de comparar cada par de bloques correspondiente durante la recuperación es costoso de cumplir.
f
Si ninguno de los bloques del conjunto se ha escrito parcialmente y el contenido del bloque de paridad es coherente con el contenido de los bloques de información, entonces no es necesario tomar ninguna otra acción.
g
Podemos reducir el costo en gran medida mediante el seguimiento de las escrituras en bloque que están en curso, utilizando una pequeña cantidad de RAM no volátil
h
En la recuperación, sólo los bloques para los que las escrituras estaban en curso necesitan ser comparados.
i
Si cualquier bloque ha sido parcialmente escrito, su contenido se reconstruye usando los otros bloques.
j
Si no se ha escrito parcialmente ningún bloque, pero el contenido del bloque de paridad no coincide con el contenido del bloque de información, se reconstruye el contenido del bloque de paridad
BASES DE DATOS II – ING. JAVIER CÓNDOR
Respuesta: 1 a, d, e, g, h 2 b, c, f, i, j 4. Considere la supresión del registro 5 del archivo de la figura. Comparar los méritos relativos de las siguientes técnicas para implementar la eliminación:
a. Mueva el registro 6 al espacio ocupado por el registro 5 y mueva el registro 7 al espacio ocupado por el registro 6.
Respuesta: Aunque mover el registro 6 al espacio para 5, y mover el registro 7 al espacio para 6, es el enfoque más directo, registros e involucra la mayoría de losrequiere accesos. mover el mayor número de b. Mueva el registro 7 al espacio ocupado por el registro 5.
Respuesta: Aunque mover el registro 6 al espacio para 5, y mover el registro 7 al espacio para 6, es el enfoque más directo, requiere mover el mayor número de registros e involucra la mayoría de los accesos. c.
Marcar el registro 5 como borrado y mover ningún registro.
Respuesta: Marcar el espacio para 5 como eliminado conserva el orden y no mueve ningún registro, pero requiere una sobrecarga adicional para realizar un seguimiento de todo el espacio libre en el archivo. Este método puede dar lugar a demasiados "agujeros" en el archivo, que, si no se compacta de vez en cuando, afectará el rendimiento debido a la disponibilidad reducida de registros libres contiguos. 5. Muestra la estructura del archivo de la Figura después de cada uno de los siguientes pasos:
BASES DE DATOS II – ING. JAVIER CÓNDOR
a. Insertar (24556, Turnamian, Finanzas, 98000).
Respuesta:
b. Eliminar registro 2.
Respuesta:
La cadena de registro libre podría haber sido alternativamente de la cabecera a 4, de 4 a 2, y finalmente de 2 a 6. c.
Insertar (34556, Thompson, Music, 67000).
Respuesta:
BASES DE DATOS II – ING. JAVIER CÓNDOR
6. Considere la sección de relaciones y toma. Dé una instancia de ejemplo de estas dos relaciones, con tres secciones, cada una de las cuales tiene cinco estudiantes. Proporcione una estructura de archivos de estas relaciones que utiliza agrupación múltiple.
Respuesta: La sección de relación con tres tuplas es la siguiente.
La relación toma con cinco estudiantes para cada sección es como sigue.
El agrupamiento multitable para las dos instancias anteriores puede ser tomado como:
BASES DE DATOS II – ING. JAVIER CÓNDOR
7. Considere la siguiente técnica de mapa de bits para el seguimiento de espacio libre en un archivo. Para cada bloque en el archivo, dos bits se conservan en el mapa de bits. Si el bloque está entre 0 y 30 por ciento lleno, los bits re 00, entre 30 y 60 por ciento los bits son 01, entre 60 y 90 por ciento los bits s on 10 y más del 90 por ciento los bits son 11. Dichos mapas de bits pueden mantenerse en Memoria incluso para archivos bastante grandes. a. Describa cómo mantener el mapa de bits actualizado en las inserciones y eliminaciones de registros.
Respuesta: Cada vez que se inserta / elimina un registro, compruebe si el uso del bloque ha cambiado de nivel. En ese caso, actualizar los bits correspondientes. Tenga en cuenta que no necesitamos acceder a los mapas de bits en absoluto a menos que el uso cruce un límite, por lo que en la mayoría de los casos no hay sobrecarga. b. Describir el beneficio de la técnica de mapa de bits en listas libres en la búsqueda de espacio libre y en la actualización de la información de espacio libre.
Respuesta: Cuando se busca espacio libre para un registro grande o un conjunto de registros, es posible que se tengan que escanear varias entradas de lista gratuita antes de encontrar un tamaño adecuado, por lo que los gastos generales son mucho mayores. Con mapas de bits, una página de mapa de bits puede almacenar información gratuita para muchas páginas, por lo que las E / S gastadas para encontrar espacio libre son mínimas. De forma similar, cuando se elimina un bloque completo o una gran parte de él, la técnica de mapa de bits es más conveniente para actualizar la información del espacio libre.
8. Es importante ser capaz de averiguar rápidamente si un bloque está presente en el búfer, y si es así donde en el búfer que reside. Dado que los tamaños de búfer de base de datos son muy grandes, ¿qué estructura de datos (en memoria) utilizaría para la tarea anterior?
BASES DE DATOS II – ING. JAVIER CÓNDOR
Respuesta: La tabla de hash es la opción común para buffers de base de datos de gran tamaño. La función hash ayuda a localizar el cubo apropiado, en el que se realiza la búsqueda lineal. 9. Dé un ejemplo de una expresión de álgebra relacional y una estrategia de procesamiento de consultas en cada una de las siguientes situaciones: a. MRU es preferible a LRU.
Respuesta: MRU es preferible a LRU donde R1 >< R2 se calcula mediante el uso de una estrategia de procesamiento en bucle anidado donde cada tupla en R2 debe compararse con cada bloque en R1. Después de procesar la primera tupla de R2, el siguiente bloque necesario es el primero en R1. Sin embargo, puesto que es la menos utilizada recientemente, la estrategia de gestión de memoria intermedia LRU reemplazaría ese bloque si el sistema necesitaba un nuevo bloque. b. LRU es preferible a MRU.
Respuesta: LRU es preferible a MRU donde R1>
CAPÍTULO 11 INDEXACIÓN Y HASHING 10. Los índices aceleran el procesamiento de consultas, pero generalmente es una mala idea crear índices en cada atributo, y todas las combinaciones de atributos, es decir, las posibles claves de búsqueda. Explicar por qué.
Respuesta: Las razones para no mantener índices en cada atributo incluyen: • Cada índice requiere tiempo de CPU adicional y sobrecarga de E / S de disco durante las inserciones y eliminaciones. • Es posible que los índices de las claves no primarias tengan que cambiarse en
las actualizaciones, aunque puede que no exista un índice en la clave principal (esto es porque las actualizaciones normalmente no modifican los atributos de la clave principal). • Cada índice adicional requiere espacio de almacenamiento adicional. • Para las consultas que implican condiciones en varias teclas de búsqueda, l a
eficiencia puede no ser mala incluso si sólo algunas de las claves tienen índices en ellas. Por lo tanto, el rendimiento de la base de datos se mejora menos añadiendo índices cuando ya existen muchos índices. 11. ¿Es posible en general tener dos índices de lustering sobre la misma relación para diferentes claves de búsqueda? Explica tu respuesta.
BASES DE DATOS II – ING. JAVIER CÓNDOR
Respuesta: En general, no es posible tener dos índices primarios en la misma relación para diferentes claves porque las tuplas en una relación tendrían que ser almacenadas en orden diferente para tener los mismos valores almacenados juntos. Podríamos lograr esto almacenando la relación dos veces y duplicando todos los valores, pero para un sistema centralizado, esto no es eficiente. 12. Construir un árbol B + para el siguiente conjunto de valores clave: (2, 3, 5, 7, 11, 17, 19, 23, 29, 31) Suponga que el árbol está inicialmente vacío y los valores se agregan en orden ascendente. Construir un árbol B + para los cas os en que el número de punteros que caben en un nodo es el siguiente: a. Las cuatro
Respuesta:
b. Seis
Respuesta:
c.
Ocho
Respuesta:
13. Para cada árbol B+ de práctica Ejercicio 12.a, muestre la forma del árbol después de cada una de las siguientes series de operaciones: a. Insertar 9.
Respuesta:
b. Inserte 10.
Respuesta:
BASES DE DATOS II – ING. JAVIER CÓNDOR
c.
Insertar 8.
Respuesta:
d. Eliminar 23.
Respuesta:
e. Borrar 19.
Respuesta:
14. Supongamos que estamos utilizando el hash extensible en un archivo que contiene registros con los siguientes valores de clave de búsqueda: 2, 3, 5, 7, 11, 17, 19, 23, 29, 31 Muestre la estructura de hash extensible para este archivo si la función hash es h (x) = xmod 8 y los cubos pueden contener tres registros. Respuesta:
BASES DE DATOS II – ING. JAVIER CÓNDOR
15. Muestre cómo la estructura de hash extensible del ejercicio 14 cambia como resultado de cada uno de los pasos siguientes: Borrar 11.
Respuesta: De la respuesta al ejercicio 14, cambie el tercer cubo a:
En esta etapa, es posible unir el segundo y tercer baldes. Entonces es suficiente si la tabla de direcciones de cubo tiene sólo cuatro entradas en lugar de ocho. Para el propósito de esta respuesta, no hacemos la coalescencia. Borrar 31.
Respuesta: De la respuesta al ejercicio 14, cambie el último cubo a:
Insertar 1.
Respuesta: De la respuesta al ejercicio 14, cambie primer cubo a:
Insertar 15.
Respuesta:
BASES DE DATOS II – ING. JAVIER CÓNDOR
De la respuesta al ejercicio 14, cambie el último cubo a:
16. Dar pseudocódigo para una función de árbol B + findIterator (), que es como la función find (), excepto que devuelve un objeto iterador. También da pseudocódigo para la clase iterator, incluyendo las variables en el objeto iterator y el método next().
Respuesta:
17. Dar pseudocódigo para la supresión de entradas de una estructura hash extensible, incluyendo detalles de cuándo y cómo unir cubos. No se moleste en reducir el tamaño de la tabla de direcciones de cubo
BASES DE DATOS II – ING. JAVIER CÓNDOR
Respuesta:
18. Considere la relación del instructor mostrada en la Figura.
a. Construya un índice de mapa de bits en el salario de atributo, dividiendo los valores salariales en 4 rangos: por debajo de 50000, 50000 por debajo de 60000, 60000 por debajo de 70000 y 70000 o superior.
Respuesta:
BASES DE DATOS II – ING. JAVIER CÓNDOR
Mapa de bits para el salario, con S1, S2, S3 y S4 representando los intervalos dados en el mismo orden
b. Considere una consulta que solicite a todos los instructores en el departamento de Finanzas con un salario de 80000 o más. Describe los pasos para responder a la consulta y muestra los mapas de bits finales y no intermedios construidos para responder a la consulta.
Respuesta: La pregunta es un poco trivial si no hay mapa de bits en el atributo de nombre de dept. El mapa de bits para el atributo de nombre de dept es:
19. ¿Cuál sería la ocupación de cada nodo hoja de un árbol B +, si las entradas del índice se insertan en orden ordenado? Explicar por qué.
Respuesta: Si las entradas del índice se insertan en orden ascendente, las nuevas entradas se dirigen al último nodo hoja. Cuando este nodo de la hoja se llena, se divide en dos. De los dos nodos generados por la división, el nodo izquierdo queda intacto y las inserciones tienen lugar en el nodo derecho. Esto hace que la ocupación de los nodos de la hoja sea aproximadamente el 50 por ciento, excepto la última hoja. Si las claves que se insertan se ordenan en orden descendente, la situación anterior aún se produciría, pero simétricamente, con el nodo derecho de una división nunca volviéndose a tocar, y la ocupación sería de nuevo 50 por ciento para todos los nodos distintos de la primera hoja 20. Supongamos que usted tiene una relación r con nr tuplas sobre las cuales se construirá un árbol B + secundario. a. Dé una fórmula para el costo de crear el índice de árbol B + insertando un registro a la vez. Suponga que cada bloque tiene una media de entradas f, y que todos los niveles del árbol sobre la hoja están en la memoria.
El costo de localizar el número de página de la página de hoja requerida para una inserción es despreciable, puesto que los nodos no-hoja están en memoria. En el nivel de hoja se necesita un disco de acceso aleatorio para leer y un disco de acceso aleatorio para actualizar junto con el costo de escribir una página. Las inserciones que conducen a la división de nodos de hojas requieren una escritura de página adicional. Por lo tanto, para
BASES DE DATOS II – ING. JAVIER CÓNDOR
construir un árbol B + con nr entradas se tarda un máximo de 2 * nr accesos al disco aleatorios y nr + 2 * (nr / f) página escribe. La segunda parte del costo proviene del hecho de que en el peor de los casos cada hoja está medio llena, por lo que el número de divisiones que ocurren es dos veces nr / f. La fórmula anterior ignora el costo de escribir nodos no-hoja, ya que asumimos que están en la memoria, pero en realidad también se escribirían eventualmente. Este costo es estrechamente aproximado por 2 * (nr / f) / f, que es el número de nodos internos justo por encima de la hoja; Podemos agregar términos adicionales para tener en cuenta niveles más altos de nodos, pero estos son mucho más pequeños que el número de hojas y pueden ser ignorados. CAPÍTULO 12 PROCESAMIENTO DE CONSULTAS 21. Suponga (por simplicidad en este ejercicio) que sólo una tupla encaja en un bloque y la memoria tiene como máximo 3 bloques. Muestre las ejecuciones creadas en cada paso del algoritmo de ordenación-combinación cuando se aplica para ordenar las siguientes tuplas en el primer atributo: (kangaroo, 17), (wallaby, 21), (emu, 1), (wombat, 13),(Platypus, 3), (lion, 8), (warthog, 4), (zebra, 11), (meerkat, 6), (hyena, 9),(Hornbill, 2), (babuino, 12).
Suponga (por simplicidad en este ejercicio) que sólo una tupla encaja en un bloque la memoria máximo 3 bloques. Muestre las ejecuciones creadasyen cada pasotiene del como algoritmo de ordenación-combinación cuando se aplica para ordenar las siguientes tuplas en el primer atributo: (kangaroo, 17), (wallaby, 21), (emu, 1), (wombat, 13), (Platypus, 3), (león, 8), (warthog, 4), (cebra, 11), (meerkat, 6), (hyena, 9), (calabrio, 2), (babuino, 12).
Nos referiremos a las tuplas (kangaroo, 17) a través de (babuino, 12) usando los números de tupla t1 a través de 12. Hacemos referencia a la j-ésima ejecución usada por el i-ésimo pase, como ij. Los ensayos ordenados iniciales tienen tres bloques cada uno. Son: r11= {t3,t1,t2} r12= {t6,t5,t4} r13= {t9,t7,t8} r14= {t12,t11,t10} Cada pase combina tres ejecuciones. Por lo tanto, las tiradas después del final del primer pase son: r21= {t3,t1,t6,t9,t5,t2,t7,t4,t8} r22= {t12,t11,t10} Al final de la segunda pasada, las tuplas se ordenan por completo en una secuencia: r31= {t12,t3,t11,t10,t1,t6,t9,t5,t2,t7,t4,t8} 22. Considere la base de datos de bancos de la Figura, donde las claves primarias están subrayadas y la s iguiente consulta SQL:
BASES DE DATOS II – ING. JAVIER CÓNDOR
select T.branch name from branch T, branch S where T.assets > S.assets and S.branch city = “Brooklyn” Escribe una expresión de álgebra relacional eficiente que sea equivalente a esta consulta. Justifique su elección.
Esta expresión realiza la unión theta en la menor cantidad posible de datos. Esto lo hace restringiendo el operando del lado derecho de la unión a sólo aquellas ramas en Brooklyn, y también eliminando los atributos innecesarios de ambos operandos. 23. Las relaciones r1 (A, B, C) y r2 (C, D, E) tienen las siguientes propiedades: r1 tiene 20.000 tuplas, r2 tiene 45.000 tuplas, 25 tuplas de r1 encajan en un bloque y 30 tuplas de r2 encajan una cuadra. Estimar el número de transferencias de bloques y buscar requeridas, usando cada una de las siguientes estrategias de unión para r1 r2:
r1 necesita 800 bloques, y r2 necesita 1500 bloques. Asumamos M páginas de memoria. Si M> 800, la unión se puede hacer fácilmente en 1500 + 800 accesos de disco, incluso utilizando la combinación de ested-loop. Consideramos tan sólo el caso en el que M ≤ 800 páginas
a. Unión de bucle anidado.
Usando r1 como la relación externa necesitamos 20000 * 1500 + 800 = 30.000, 800 accesos de disco, si r2 es la relación externa necesitamos 5000 * 800 + 1500 = 36.001.500 accesos de disco. b. Bloquea la combinación de bucle anidado.
Si r1 es la relación externa, necesitamos [800/(M-1)] * 1500 + 800 accesos disco, si r2 esdeladisco. relación externa que necesitamos [1500M1] * 800 de + 1500 accesos c.
Combinar unirse.
Suponiendo que r1 y r2 no están ordenados inicialmente en la clave de unión, el costo total de clasificación de la salida es Bs = 1500 (2 ⌈log M-1 (1500 / M) ⌉ + 2) +800 (2⌈log M-1 800 / M) ⌉ + 2) accesos de disco. Suponiendo que todas las tuplas Con el mismo valor para los atributos de unión aptos en memoria, el coste total es Bs + 1500 + 800 accesos de disco. d. Hash.
Asumimos que no se produce desbordamiento. Dado que r1 es menor, lo usamos como la relación de construcción y r2 como la relación de la
BASES DE DATOS II – ING. JAVIER CÓNDOR
sonda. Si M> 800 / M, es decir, no hay necesidad de partición recursiva, entonces el costo es 3 (1500 + 800) = 6900 accesos de disco, de lo contrario el costo es 2 (1500 + 800) ⌈log M-1 (800) -1⌉ + 1500 + 800 accesos de disco 24. Sea r y s relaciones sin índices, y asuma que las relaciones no están ordenadas. Suponiendo una memoria infinita, ¿cuál es la forma de costo más bajo (en términos de operaciones de E / S) para calcular r >< s? ¿Cuál es la cantidad de memoria necesaria para este algoritmo?
Podemos almacenar toda la relación más pequeña en la memoria, leer la relación más grande bloque por bloque y realizar la unión de bucle anidado usando la más grande como la relación externa. El número de operaciones de E/S es igual a br + bs, y el requisito de memoria es min (br, bs) +2 páginas. 25. Considere la base de datos de bancos, donde las claves primarias son descarriladas. Supongamos que un índice de árbol B + en la ciudad de rama está disponible en la rama de relación, y que no hay otro índice disponible. Liste diferentes maneras de manejar las siguientes selecciones que implican negación:
a. σ
(branch city<“Brooklyn”)(branch)
¬
Utilice el índice para localizar la primera tupla cuyo campo de ciudad de rama tenga el valor "Brooklyn". A partir de esta tupla, siga las cadenas de puntero hasta el final, recuperando todas las tuplas. b. σ
(branch city=“Brooklyn”)(branch)
¬
Para esta consulta, el índice no sirve para nada. Podemos escanear el archivo secuencialmente y seleccionar todas las tuplas cuyo campo de la ciudad de la rama es cualquier cosa que no sea "Brooklyn". c.
σ
(branch city<“Brooklyn”
¬
assets<5000)(branch)
Esta consulta es equivalente a la consulta (branch city≥′Brooklyn′∧ assets <5000)(branch) Usando el índice de la ciudad de la rama, podemos recuperar todas las tuplas con el valor de la ciudad de la rama mayor o igual que "Brooklyn" siguiendo las cadenas del puntero de la primera tupla de "Brooklyn". También aplicamos elcriterio de activos <5000 en cada tupla. 26. Escribir pseudocódigo para un iterador que implemente anclaje anidadoanidado indexado, donde la relación externa es pipeline. Su pseudocódigo debe definir Las funciones de iterador estándar open(), next(), and close(). Show what state information the iterator must maintain between calls.
BASES DE DATOS II – ING. JAVIER CÓNDOR Mostrar qué información de estado debe mantener el iterador entre las llamadas.
27. Diseñe algoritmos basados en clasificación y basados en hash para calcular la operación de división relacional
Supongamos r (T∪S) ybasado s (S) sean dos relaciones y r ÷ las relación tiene que calculado. Paraque el algoritmo en clasificación, clasifique s enser S. Ordenar la relación r (T, S). Ahora, comience a escanear r y mire los valores de atributo T de la primera tupla. Escanear r hasta que las tuplas tengan el mismo valor de T. También escanear simultáneamente y comprobar si cada tupla de s también ocurre como el atributo S de r, de una manera similar a la combinación de combinación. Si este es el caso, emita ese valor de T y continúe con el siguiente valor de T. 28. ¿Cuál es el efecto en el coste de la fusión de ejecuciones si se aumenta el número de bloques de memoria intermedia por ejecución, mientras se mantiene fija la memoria global disponible para las operaciones de almacenamiento en memoria intermedia?
BASES DE DATOS II – ING. JAVIER CÓNDOR
La búsqueda de sobrecarga se reduce, pero el número de ejecuciones que se pueden fusionar en un pase disminuye potencialmente dando lugar a más pases. Debe elegirse un valor de b b que minimice el costo total. CAPÍTULO 13 OPTIMIZACIÓN DE CONSULTAS 29. Demuestre que se mantienen las equivalencias siguientes. Explica cómo puedes aplicar mejorar la eficiencia de ciertas consultas: a)
Cambiemos el nombre como R1, como R2 y como R3. Está claro que si una tupla t pertenece a R1, también pertenecerá a R2. Si una tupla t pertenece a R3, t[E3 es atributo] pertenecerá a E3, por lo tanto t no puede pertenecer a R1. De estos dos podemos decir que 1. Está claro que si una tupla t pertenece a R2 - R3, entonces t [atributos de R2] ∈ E2 y t [atributos de R2] Ɇ E3. Por lo tanto: 2. Las dos ecuaciones anteriores implican la equivalencia dada. Esta equivalencia es útil porque la evaluación de la mano derecha unión lateral producirá muchas tuplas que finalmente serán eliminadas del resultado. La expresión del lado izquierdo puede ser evaluada más eficientemente
b)
, donde
utiliza sólo a tributos de A.
, donde u utiliza sólo atributos de A.
utiliza sólo atributos de A. Por lo tanto, si cualquier tupla t en la salida de AGF (E) es filtrada por la selección del lado izquierdo, todos los tuplas en E cuyo valor en A es igual a t [A] son filtrados por la selección del lado derecho. Por lo tanto: 1. Utilizando un razonamiento similar, también podemos concluir que 2. Las dos ecuaciones anteriores implican la equivalencia dada. Esta equivalencia es útil porque la evaluación de la mano derecha de lado evita la realización de la agregación en los grupos que son de todos modos va a ser eliminado del resultado. Así, el lado derecho expresión se puede evaluar más eficientemente que el lado izquierdo expresión. c)
, donde
sólo se utilizan atributos de
E1
, donde
usa sólo atributos de E1.
utiliza sólo
atributos de E1. Por lo tanto, si cualquier tupla t en la salida de es filtrada por la selección del lado izquierdo, todos las tuplas en E1 cuyo valor es igual a t [E1] son filtradas por la selección del lado derecho. Por lo tanto: 1.
BASES DE DATOS II – ING. JAVIER CÓNDOR
Utilizando un razonamiento similar, también podemos concluir que 2. Las dos ecuaciones anteriores implican la equivalencia dada. Esta equivalencia es útil porque la evaluación del lado derecho evita producir muchas tuplas de salida que de todos modos van a Ser eliminado del resultado. Así, la expresión del lado derecho puede ser evaluados más eficientemente que la expresión del lado izquierdo.