Relación+de+ejercicios+3

=Relación de ejercicios 3=

1. Hágase una lista de los medios físicos de almacenamiento que has utilizado, indicando la velocidad de acceso de información en cada uno. **Caché**: Es la mas rápida y costosa **Memoria principal:** Es la utilizada para los datos sobre los que se va a trabajar, es demasiado pequeña para contener a toda la base de datos, es volátil. **Almacenamiento de acceso directo (disco):** Es el medio principal para almacenar datos de manera permanente. **Almacenamiento de acceso secuencial (cinta):** Es el usado para datos de respaldo y de archivo. El acceso a información a disco es mucho más lento que el de disco 2. Explica por qué es importante para el rendimiento de un sistema de base de datos la asignación de registros a bloques.

Por que si se asignan al azar los registros a los bloques, puede darse el caso de que sea necesario tener acceso a un bloque diferente para cada registro que se requiera, si se puede tener acceso a varios de los registros requeridos entrando únicamente en un bloque, se habrá ahorrado tiempo de acceso. 3. En general, ¿es posible tener dos índices de agrupación en la misma relación para diferentes llaves de búsqueda? Explica la respuesta.

En un archivo indicado estándar, solamente se mantiene un índice. Si se opta por mantener varios índices según distintas llaves de búsqueda, el índice cuya llave de búsqueda especifique el orden secuencial del archivo será el índice primario y los demás se llaman índices secundarios, la llave de búsqueda de un índice primario es normalmente la llave primaria. 4. Haz un esquema de la estructura física de:

· Disco magnético. Se compone de pistas circulares a lo largo del disco y sectores que es la sección de la superficie del mismo que corresponde al área encerrada entre dos líneas radiales de una pista.

· CD-ROM. Se compone básicamente por una única pista en espiral que recorre el lector. En la pista se encuentran pits y lands que representan 1 y 0 cuando le da luz. 5. Un programa de usuario ha solicitado escribir en el fichero "texto" el contenido de la variable "c", cuyo tamaño es de 1 byte: write ("texto", c, 1) Indicar las partes software y hardware que están involucradas en la operación y el proceso seguido.

El programa pide al sistema operativo una escritura al fichero texto (que se supone que ya se habrá abierto en instrucciones anteriores, por lo que se tendrá un manejador formateado por el sistema operativo) de tamaño de un byte dándole el valor (en forma de variable) que se desea escribir.

El sistema operativo mira su caché para ver si el sector perteneciente a esa parte del fichero en cuestión está cargada en memoria. Si no lo está carga el dato desde la memoria, que en caso de que tampoco esté tendrá que cargarla desde el disco en una página de memoria disponible y después transferirla a la caché, teniendo en cuenta de que, si la caché está completa, se liberará alguna página dependiendo de la estrategia o el algoritmo que utilice la caché (e igualmente para la memoria). Una vez que el dato está en la caché se modifica el dato en el sitio oportuno. Cuando el sistema operativo vaya a liberar la memoria de la caché y/o de la memoria que pertenezca a esa parte (o cuando el programa lo solicite), la página será volcada de la caché a la memoria, y de la memoria al disco en su lugar correspondiente. 6. ¿Es necesario realizar algún cálculo para determinar la posición que debe ocupar un registro al insertarlo en un fichero desordenado? Justifica la respuesta.

No ya que en los ficheros desordenados los registros se insertan secuencialmente, es decir se insertan uno detrás de otro. 7. ¿Cómo se pueden gestionar las colisiones en los ficheros dispersos? Hay varias técnicas:

Poniendo como ejemplo que los valores de los números de proveedor son S100, S200, S300, S400, S500... y que el número máximo que al que se puede llegar es de 10, aunque por seguridad le damos 13, por lo que nuestra función de dispersión ofrece una dirección de página (suponiendo que cada registro de proveedor requiere toda una página) a cada registro por el residuo de la división entre 13 del número asignado a cada distribuidor.

En caso de querer introducir el proveedor S1400, al hacer el resto de la división entre 13 este proveedor chocaría con el proveedor S100. Cabría pensar en dos soluciones posibles: 1. Almacenar al proveedor S1400 en una página de desborde, por lo que se requeriría otra E/S. Para ésto se haría una búsqueda lineal a partir del registro de colisión hasta encontrar una página libre (en nuestro ejemplo, la página sería la 11). 2. Tomar el resultado de la función de dispersión, no como la dirección de almacenamiento de un registro de datos, sino más bien como un “punto de anclaje”. Así se hace referencia con ese número al principio de una cadena con todos los números de registros que colisionan en él. Esta solución es la más común en los sistemas reales. 8. ¿Qué es un índice? Son estructuras de acceso que se utilizan para acceder a los registros en respuesta a ciertas condiciones de búsqueda. Las entradas del índice están ordenadas y el fichero del nombre es más pequeño que el de datos. 9. Diferencias entre índice primario e índice secundario. Un índice primario es un índice definido sobre un campo clave sobre el que ya esta ordenado el fichero. Tiene dos campos de longitud fija. El primero es del mismo tipo del que se ordena el fichero de datos y el segundo el la dirección de bloque. La actualización es costosa. En un índice secundario el fichero esta desordenado, tiene dos campos, el primero es del mismo tipo que el de algún campo de fichero de datos y el segundo será el de la dirección de bloque. 10. Construye un árbol B+ para el siguiente conjunto de valores de llave: (2,3,5,7, 11, 17,19,23,29,31), suponiendo que el número de valores de la llave de búsqueda que caben en un nodo es: · 3

· 5

· 7

· ¿Cuándo es preferible utilizar un índice denso en vez de uno claro? Cuando quieres realizar consultas a gran velocidad. Una ventaja de los índices no densos es desde luego el reducido espacio de almacenamiento requerido en comparación con un índice denso correspondiente. · Puesto que los índices agilizan el procesamiento de las consultas, ¿por qué podría no convenir mantener índices de varias llaves de búsqueda? Porque incrementaría el tiempo de inserción de eliminación y ocuparía espacio extra. · Para cada uno de los árboles B+ del ejercicio 10, indica los pasos que requerirían las siguientes consultas: · Encontrar los registros con valor de la llave de búsqueda 11. **Árbol n=4:** se lee el dato de la primera cubeta, como el dato que hay es menor, se baja por la derecha del árbol. Se vuelve a leer ahora de la siguiente cubeta, el primer valor es 17, así que se baja por el puntero de su izquierda hasta la cubeta que contiene los datos y los busca en ella. **Árbol n=6:** se lee el dato de la primera cubeta, como el dato que hay es mayor que 5 y menor que 17 se baja por el puntero que hay entre medias de estas dos claves. En la siguiente cubeta se encuentra el valor buscado. **Árbol n=8:** se lee el dato de la primera cubeta, como el dato es mayor que la clave que se encuentra en la cubeta, se “baja” por el puntero de su derecha encontrando la cubeta que contiene el valor 11. · Encontrar los registros con valor de la llave de búsqueda entre 7 y 17. **Árbol n=4:** se lee el dato de la primera cubeta, como el valor es 7 se desciende por el puntero de su derecha (que indica índices mayores a 7). Se lee de la siguiente cubeta, cuya clave primera es 17, así pues se baja por el puntero de su izquierda (que indica valores menores o iguales a 17). Con esto llegamos a una cubeta en la que sólo hay valores mayores a 7 y menores o iguales a 17. **Árbol n=6:** se lee el dato de la primera cubeta, como el valor de la primera clave es cinco y el segundo 17, se baja por el puntero de entre medias, con lo cual accedemos a la cubeta que tiene valores mayores de 5 y menores o iguales a 17. **Árbol n=8:** se lee el dato de la primera cubeta, la única clave que hay es 7, por lo que se “baja” por el puntero de su derecha para encontrarnos con una cubeta con valores mayores de 7 (que es lo único que nos da a entender la clave por la que descendemos). · ¿Qué es una función de difusión? Pon un ejemplo La función de dispersión es un cálculo matemático realizado para determinar el espacio que ocupara cada registro en el nivel interno (o nivel físico). Se calcula a través de un campo (campo de dispersión) de la base de datos, originando la dirección de dispersión. Un ejemplo son las bibliografías