Segundo parcial 2016

Segundo parcial 2016

de Nicolas Grosso San Roman -
Número de respuestas: 2

Hola,

en el ejercicio 3, en la heurística número 5, quería consultar si es válido realizar una proyección de M.matricula luego de la selección de M.tipo = "perro". En diferentes parciales veo que a veces se agregan ciertas proyecciones y a veces no, pero como no hay nada escrito sobre cuáles hacer no me queda del todo claro.

Yo siempre realizo todas las proyecciones que creo necesarias, es decir, si usé un atributo que no lo voy a usar más arriba en el árbol, entonces hago una proyección quitando dicho atributo. Esto está mal o es equivalente? El ejemplo más claro sobre esto es la pregunta que hice en el párrafo anterior: no necesito M.tipo luego de la selección, por lo que hago la proyección de solamente M.matricula, la cual sí necesito.




Por último, acerca del plan físico, la frase: "Finalmente, como ya no tengo más índices del lado derecho (se han perdido al aplicar las operaciones anteriores), considero el loop anidado por bloque." no me queda del todo clara. Qué significa que se pierden los índices? Por qué no puedo usar el índice primario de "matrícula" sobre M? Miré la clase y las diapositivas y no encontré mucho al respecto. Si me pueden decir en qué situaciones es que se pierden índices les agradezco.

Saludos!

En respuesta a Nicolas Grosso San Roman

Re: Segundo parcial 2016

de Federico Gutierrez Scampini -
Buenas, yo estoy en la misma, necesitás un índice sobre S (en este caso M) solamente para hacer el index join, por lo que lo podrías aplicar aquí, ya que M tiene índice sobre matrícula. Y la otra duda que me surge, es si se podría decir que en el join de más abajo V sea mi S y Atención mi R, en ese caso se podría usar el índice primario en ciVet de V para hacer index join, aunque entre recorrer todo A y recorrer V es mejor la opción que utilizan en el parcial por supuesto.
Saludos
En respuesta a Federico Gutierrez Scampini

Re: Segundo parcial 2016

de Camila Sanz -
Hola a ambos,

Nicolás, las proyecciones podés agregarlas. Se utilizan para no "arrastrar" datos que no van a ser devueltos.

Con respecto a los índices, se pierden al realizar cualquier operación. Para esto no consideramos las proyecciones que se hacen pegadas a las hojas.
En el ejercicio del parcial:
- la primer operación que se realiza sobre la tabla Atenciones es un join, por esto se puede usar el índice primario sobre civet, matrícula, fecha atención. Este índice solo va a servir para un join por el primer atributo del índice (civet)
- la primer operación que se realiza sobre la tabla Mascotas (sin considerar la proyección) es una selección, por lo que se pierde cualquier tipo de índice que se tuviera sobre la tabla.

Por último, recuerden que para usar index join la restricción de uso es que exista un índice para la tabla que está a la derecha.

Cualquier otra duda vuelvan a consultar!