● ¿En qué situaciones un archivo desordenado es una solución?
○ ¿Qué tipos de servicios resuelve eficientemente? ■ Inserción. Las bajas y modificaciones son ineficientes (costo lineal). ○ En caso de ser necesarios, ¿Cómo hay que organizar las estructuras de índices para estos archivos? ■ Dependiendo del servicio. Si son consultas asociativas conviene algún tipo de hashing, si es por rango alguna estructura arborescente. ● ¿Es posible resolver consultas “Index-Only” en índices ralos? Justifique y ejemplifique ○ No, ya que en en los índices ralos las entradas del índice apuntan al primer registro de cada bloque, lo que imposibilita consultar la existencia de algún registro que esté en ese rango. ○ Si tengo dos bloques con (1,2) y (3,4), el índice de agrupamiento tendrá punteros al registro 1 y 3, por lo que no se podrá consultar por la existencia del registro 2 sin acceder al archivo principal. ● Describa en qué consiste la partición vertical de relaciones o archivos. Indique en qué parte del proceso de normalización se utiliza. ○ La fragmentación vertical consiste en dividir las columnas de la relación en distintos archivos, en general, cuando diferentes usuarios acceden a distintos conjuntos de columnas. ○ Se utiliza en el proceso de normalización al momento de realizar la proyección de la relación. ● Indique para qué es eficiente mantener un archivo ordenado. ○ Es eficiente mantener un archivo ordenado cuando las consultas que se realizan son listados ordenados por el campo de ordenamiento del mismo. ● Explique si es posible utilizar un Árbol B+ para resolver un servicio multiclave eficientemente ○ Si, es posible utilizar estructuras monoclave para resolver consultas multiclave siempre y cuando se genere una única clave concatenando los valores de las claves de búsqueda. ● Indique cómo puede resolverse un servicio asociativo con un Árbol B+ cuando el dominio estructurante no es clave ○ Para realizar consultas asociativas, como el DE no es clave, habría que implementar listas de factoreo para las instancias repetidas. ● Muestre cómo influye el tamaño de bloque en la determinación del orden de un Árbol B+ ○ Según la fórmula: ■ tBloque >= p + (n-1)*r ○ Si despejamos n vemos que: ■ (tBloque - p + r)/r >= n ○ De ahí deducimos que a mayor tamaño de bloque, mayor orden del árbol B +. ○ También se puede deducir pensando que, a mayor tamaño de bloque, cada nodo del árbol puede tener más hijos, lo que aumentaría el orden. ● ¿El hashing particionado como índice multiclave puede utilizarse para la búsqueda parcial o incompleta? Justifique. ○ Si, se puede utilizar para búsquedas incompletas. Habría que completar la clave final con todas las posibles combinaciones de valores para la clave parcial faltante. ● ¿Cómo puede modelarse un atributo multivaluado si se sabe que puede tomar como máximo tres valores para cada tupla? ○ Puede modelarse agregando 3 atributos nuevos. Uno de estos debería ser obligatorio, y los demás opcionales. ● Compare las estructuras multiclave de bitmap, hashing particionado y grid file de acuerdo a las soluciones que brindan en la implementación de índices. Analice la utilización de punteros físicos o lógicos en estos tipos de estructuras. ○ Bitmap: ■ Los bitmap brindan soluciones eficientes para contar cuántos registros cumplen con una condición dada. ■ Ocupan muy poco espacio. ■ Muy eficientes para operaciones lógicas (and, or, xor, etc.) ■ Deben usarse cuando el dominio es acotado. ○ Hashing Particionado: ■ Brindan soluciones eficientes para consultas asociativas. ■ No necesitan espacio de directorio. ■ Pueden hacerse consultas parciales. ■ No sirve para consultas por rango o vecindad. ○ Grid-file: ■ Es eficiente para todo tipo de consulta (parcial, completa, por rango, etc.) ■ Pueden quedar muy ralos o contener baldes muy llenos. ■ Ocupan mucho espacio y requieren un mantenimiento costoso. ● ¿Cómo almacenaría los registros de un índice secundario no identificatorio denso en un Árbol B +? ○ Utilizando listas de factoreo, para las instancias repetidas. ● Explique la diferencia entre factoreo y baldes de rebalse en las estructuras de Hashing abiertas. ○ Los baldes de rebalse se utilizan cuando la estructura se queda sin espacio. En cambio las listas de factoreo se utilizan para almacenar los valores repetidos. ● Suponga una colección de registros de gran volumen, sobre las que se efectúan muchas altas, bajas y consultas asociativas. Se puede elegir entre árboles B+, hashing extensible o un archivo ordenado. Haga las comparaciones necesarias, tenga en cuenta las aplicaciones mencionadas. ¿Cuál sería su elección y por qué? ○ Hashing extensible, ya que garantiza la mejor performance para búsquedas asociativas, y es menos costoso el borrado e inserción de datos, ya que a diferencia del árbol B +, este no requiere un balance. ○ El archivo ordenado es descartado ya que no es eficiente para búsquedas asociativas. ● Considérese un grid file SIN baldes de desborde. En los casos en los que se agota la capacidad de un balde, se reorganiza el archivo. Sugiera un método para esta reorganización. ¿Es posible establecer criterios que conduzcan hacia la reorganización más eficiente, en cuanto a la uniformidad de la distribución de los datos? ○ Habría que redimensionar la grilla, agregando un valor más a alguna de las escalas lineales (en general, en forma alternante entre las escalas). ● ¿Qué ventajas brinda crear un sistema de archivos e índices siguiendo las etapas que habitualmente se siguen para generar una base de datos? ○ Crear un sistema de archivos e índices nos permite realizar distintos tipos de consultas utilizando distintas organizaciones y estrategias, para garantizar servicios eficientes y reducir al mínimo los accesos. ● ¿Cuáles son las diferentes maneras de expresar las relaciones entre tres entidades en un DERExt, si sólo se pueden utilizar relaciones binarias? Ejemplifique al menos 2 casos reales detallando su semántica ○ Se puede utilizar una cuarta entidad que este relacionada con las otras 3 (con relaciones binarias). ■ Ejemplo: ○ También podría hacerse una agregación para relacionar 2 entidades relacionadas con una tercera. ● ¿Qué es una anomalía de actualización (A,B,C) en una tabla desnormalizada? ¿Qué forma normal la resuelve? ○ Una anomalía de actualización se produce cuando hay redundancia en una tabla, es decir que al actualizar un dato no se actualizan todas las ocurrencias, por lo que algunas instancias quedan desactualizadas. ○ La forma normal de dominio/clave (FNDK) elimina por completo las anomalías de actualización, pero en la práctica es muy difícil de alcanzar. ● ¿Un archivo disperso sólo permite índices por hashing? ○ No, ya que la estructura en la que está organizado un archivo no condiciona los índices que se pueden generar sobre él.