Curso
Open Course Ware
Universidad Carlos III de Madrid
Laboratorio de Bases de Datos Avanzadas
Guía para la realización de la
Documentación
Este resumen describe los pasos documentales (m deberá realizar durante la consecución de su
Curso de Ficheros
Open Course Ware
Universidad Carlos III de Madrid
Departamento de Informática Laboratorio de Bases de Datos Avanzadas
Guía para la realización de la
Documentación de la Práctica de Ficheros
describe los pasos documentales (memoria) que el alumno deberá realizar durante la consecución de sus prácticas de Ficheros
de Ficheros
1
Análisis Preliminar
Como punto de partida del trabajo, se deberán localizar y comentar: • las deficiencias semánticas del diseño lógico original,
• la ineficiencia del diseño físico del registro (diseño físico-lógico),
• las posibilidades de mejora del diseño del esquema de archivos, que se acometerán durante el resto de la práctica.
Como pasos previos, deberán realizarse:
• el análisis del diseño físico-lógico del fichero antiguo: debe tenerse en cuenta que el diseño lógico proporcionado con el enunciado (como documentación del proyecto anterior) contiene algunas erratas introducidas voluntariamente. El alumno deberá abrir el fichero de datos (muestreo) con un editor de texto simple (ASCII) y comprobar cuál es el diseño físico-lógico real del archivo original. A partir de este (y del enunciado), el alumno deberá extraer el diseño lógico real. • estudios de las densidades ideal y real del fichero original (calculadas en base a
medias, analizando un muestreo de cinco registros, p.e. los cinco primeros).
Finalmente, se comentarán las razones encontradas (espacio, acceso, consistencia,...) para diseñar un nuevo sistema, y se expondrá en qué se espera mejorar.
2
Análisis y Diseño
A continuación, el alumno realizará los diseños pertinentes.
2.1 Diseño Lógico Optimizado (nuevo sistema)
Todos los apartados de diseño están sujetos a ser comentados con la justificación de las decisiones tomadas. Asimismo, los supuestos semánticos (implícitos) adoptados y la semántica explícita no reflejada deberán reseñarse convenientemente (en todos los apartados de diseño). Este apartado debe contemplar los siguientes puntos:
1) Diseño del Esquema de Archivos:
• Se realizará un esquema de archivos, según el modelo jerárquico. 2) Diseño lógico de los registros (correspondientes a cada archivo):
• Se realizará y describirá el diseño del registro lógico de cada uno de los archivos considerados en el esquema. Se entrará en el detalle de la descripción y disposición de los distintos elementos de datos.
2.2 Diseño Físico-Lógico Optimizado (diseño físico opt. del registro)
A partir del diseño lógico de cada registro del apartado anterior, se realizará un diseño físico-lógico optimizado, que se describirá en una tabla con la siguiente cabecera:
Campo Tamaño (bytes) Frecuencia Codificación(1) Marca
(2)
Máximo Medio Tipo Tamaño
(1)
Si el campo tiene codificación distinta a la alfanumérica (ASCII), se especificará cuál.
(2)
Comentarios al diseño:
Deberán incluirse en apartados separados el análisis de alternativas (donde las hubiera) justificando cada decisión, la semántica (explícita) no contemplada, los supuestos semánticos implícitos adoptados, y el pertinente análisis de las limitaciones del diseño.
3
Plan de importación y primera versión del sistema
Previamente a su implementación, deberá describirse el proceso de importación, marcando claramente los pasos tomados para leer y escribir cada registro, así como el orden de las operaciones de que conste.
Para esta primera aproximación, todas las organizaciones base serán seriales no consecutivas, con espacio de cubo igual a un bloque (Ec=1 bq). El manejo de estructuras
en memoria principal quedará vetado (sólo se puede mantener en memoria principal un buffer lógico, es decir, un registro de cada archivo). Aunque no es obligado, se permite el uso de estructuras auxiliares en soporte secundario para mejorar la eficiencia del proceso de importación (en caso de incluirlas, deberán ser descritas).
Finalmente, deberán describirse todos los tipos de inconsistencias que puedan surgir al importar el fichero original (por sus posibles redundancias, ausencias semánticas, etc). Para cada una de ellas, se establecerá una acción correctiva (recuperación automática o manual, log de errores, etc.) que permita completar el proceso de importación.
Sobre el sistema de ficheros obtenido, se repetirá el estudio de densidades (ideal y real) comparándolo con el realizado anteriormente. Además, deberá compararse su rendimiento con el sistema anterior, calculando (según los métodos estudiados la parte teórica) el coste de los siguientes procesos:
(a) Buscar una localidad por su nombre
(b) Recuperar todas las localidades que tengan cierto punto de interés (‘azogue’)
4
Segunda versión del sistema
Esta versión incluirá la posibilidad de ‘navegar’ desde un registro a otro relacionado. Con este fin, el diseño del cubo (hasta ahora trivial) puede sufrir alguna variación. De ser así, el diseño específico del cubo deberá ser descrito, consignando: espacio de cubo asignado, información de control que contiene (significado y usos), y los procedimientos generales para el manejo del cubo.
Asimismo, se implementarán los métodos necesarios para navegar desde un registro a otros relacionados. Todos los vínculos reales deberán implementarse en ambas direcciones (navegar desde un registro padre a sus hijos reales, y desde un registro hijo a su padre real). Para los vínculos virtuales, es obligatorio implementar al menos una dirección de la navegación (desde el hijo virtual a su padre virtual, o desde el padre virtual a sus hijos virtuales). Se utilizará la barra de estado para advertir de las limitaciones del sistema (operaciones no implementadas).
5
Tercera versión: Organizaciones Base
Posteriormente, se implementarán esas organizaciones incluyendo, al menos, una organización direccionada. Si no existía ninguna en el análisis anterior, se modificará el diseño para incluirla, escogiendo el archivo de mayor volumen.
Para cada organización direccionada, se escogerá un espacio de direccionamiento que garantice, al menos, una densidad de ocupación superior al cincuenta por ciento (doc>50%). El siguiente paso consistirá en realizar un estudio para determinar la función de dispersión a aplicar. Este estudio requiere:
• Comparar la capacidad de dispersión de, al menos, tres funciones de transformación sobre el muestreo proporcionado (datos del archivo original). • Las funciones serán diseñadas por el alumno, y se documentarán
convenientemente mediante las gráficas que se estimen oportunas para describir su comportamiento, y una tabla con la siguiente información:
• Finalmente, se deberá establecer cuál de ellas se ha elegido y por qué.
Una vez determinada la función de transformación para cada direccionamiento, se analizará qué gestión de desbordamientos es la más conveniente, tomando en consideración los procesos a los que está sometido el archivo, sus factores (tasas de volatilidad, crecimiento, etc.) si son conocidos, y los parámetros de la organización (N; Ec; Tc; características de la dispersión, % desbordamientos y cubos vacíos; etc).
En el caso de hallar una función de dispersión que no produzca desbordamientos, se buscará una mayor densidad (menor espacio de direccionamiento) para provocar la aparición de los mismos, y su oportuno tratamiento.
Una vez diseñada la política de gestión de desbordamientos, se implementará y documentará con la pertinente caracterización: clasificación de la política, funciones (en su caso), elementos de información (de control) específicos para el desbordamiento, y los métodos implementados para su ejecución. Para ilustrar el comportamiento de la organización, se recomienda documentar un ejemplo de desbordamiento (describir los procesos que sufre).
6
Cuarta versión: Organizaciones Auxiliares (Índices)
Esta versión incorporará el uso de índices al sistema. Para ello, se comenzará con un análisis de la organización indizada más conveniente (qué índices y de qué tipo). Se justificarán las decisiones, y se resumirá el resultado en la siguiente tabla:
Clave Indización
Archivo índizado
Tamaño
esperado (KB) Tipo (*)
(*) Carácter (primario/secundario); Densidad (denso/no denso); Orden (ordenado/desordenado); Organización (serial, listas, arbórea,...); Recubrimiento (exhaustivo/parcial); Invertido (Si/No).
Área Tamaño (KB) Nº de registros
Direccionada Desbordamiento Cubos Vacíos
TOTAL
Llegado este punto, se realizará un estudio sobre el rendimiento de la nueva organización (con sus organizaciones base y auxiliares). Para ello, se cumplimentará la siguiente tabla con una línea por cada proceso que sufre el sistema, calculando su coste en base a los métodos estudiados en la parte teórica.
Proceso
Sistema Nuevo Fichero Antiguo
Tipo de Acceso Mejor caso Caso medio Peor caso Caso medio Peor caso
Añade una fila en la tabla por cada proceso que se vea afectado por
un índice
Finalmente, se decidirá que subconjunto del diseño anterior decide implementarse, documentando este nuevo diseño. Debido a la complejidad de las estructuras que pueden verse involucradas, no se recomienda implementarlo en su totalidad. En cambio, se recomienda implementar como mínimo un índice serial primario y otro secundario.
Una vez realizado el nuevo diseño y su implementación, se volverá a calcular la tabla anterior para comparar el rendimiento del sistema obtenido con el del sistema original.
7
Quinta versión: Accesos Multi-clave
Para la recuperación de registros por una condición que involucre varias claves, se introducirá un direccionamiento multiclave. Para ello, se escogerá el archivo más adecuado, las claves de direccionamiento y las correspondientes funciones de transformación, y la política de gestión de desbordamientos. Para este apartado, no se estima necesario reproducir el estudio de dispersión realizado en el apartado quinto. Finalmente, se realizará un breve estudio del rendimiento de esta organización, soportado por la siguiente tabla:
Proceso
Sistema Nuevo Fichero Antiguo
Tipo de Acceso Mejor caso Caso medio Peor caso Caso medio Peor caso
Consulta de un registro por Nombre y Apellidos
Consulta de todos los registros por Nombre
Consulta de todos los registros por Apellido 1
Consulta de todos los registros por Apellido 2
Añadir una fila por cada proceso afectado
Por otro lado, para los procesos cuyo objetivo es recuperar una clave (objetivo) en base a otras (condición), se implementarán los oportunos accesos invertidos. Se recomienda implementar al menos uno. El primer paso consistirá en actualizar el diseño de las organizaciones auxiliares, completando la siguiente tabla:
Clave Indización
nombre del archivo índice
Tamaño
(KB) Tipo (*)
… … … …
(*) Carácter (primario/secundario); Densidad (denso/no denso); Orden (ordenado/desordenado); Organización (serial, listas, arbórea,...); Recubrimiento (exhaustivo/parcial); Invertido (Si/No); ...
A continuación, se hará el estudio del coste de acceso en este tipo de procesos, detallando el número de accesos totales en los procesos involucrados:
Proceso
Sistema Nuevo Fichero Antiguo
Tipo de Acceso
Mejor caso
Caso medio
Peor caso
Caso medio
Peor caso
Añade una fila en la tabla por cada proceso que implique
accesos invertidos
8
Evaluación de Mejoras
A modo de colofón, se resumirán los cambios (globales) que ha sufrido la gestión de la información en soporte secundario por efecto de la implementación de esta práctica.
Deberán responderse las siguientes cuestiones:
1) ¿Qué factores de bloqueo tienen el fichero inicial y el fichero importado? 2) ¿Qué densidad ideal presenta cada uno de los ficheros (antiguo y nuevo)? 3) ¿Qué densidad real (global) tiene el sistema original y cuál tiene la nueva
organización? Compara estos datos con los obtenidos en la cuestión anterior y razona los resultados.
4) ¿Cuál es el rendimiento del sistema? Actualiza la siguiente tabla (incorpora las filas que estimes oportuno):
Proceso
Sistema Nuevo Fichero Antiguo
Tipo de Acceso
Mejor caso
Caso medio
Peor caso
Caso medio
Peor caso
Consulta de un registro por Albergue
Consulta de todos los registros por Apellido
Consulta de todos los registros por Seudónimo
Consulta de todos los registros por Nombre
Localidad
Consulta de todos los registros por Nombre
Tour
Listado 1 ( )
Listado 2 ( )
9
Valores añadidos al Sistema
Sin tanta importancia como las partes descritas hasta aquí, cuya implementación si se recomienda, este apartado recoge y propone algunas partes que puede ser interesante implementar a modo de valor añadido sobre el sistema general.
Es necesario recalcar que la implementación de estas partes añadidas, si bien puede ser ilustrativa y complementar el estudio teórico, requieren un gran esfuerzo en horas de trabajo (no computadas en la aproximación de coste de la práctica), y en algunos casos puede considerarse que no aportan tanto conocimiento como esfuerzo precisan.
9.1 Operaciones de Actualización
Se propone la implementación (y descripción) de procesos de Actualización, tales como: el borrado lógico (archivos consecutivos, o no consecutivos con Ec grande), el
borrado físico (archivos no consecutivos), o la modificación.
9.2 Operaciones de Mantenimiento
Si se han implementado procesos de actualización, se propone incluir operaciones de mantenimiento que les complementan, como por ejemplo: la compactación (archivos seriales), la reordenación (archivos secuenciales), y la reorganización (resto archivos). Asimismo, es interesante la implementación de los correspondientes controles y operaciones para garantizar el mantenimiento de la integridad referencial, tanto en vínculos reales como en vínculos virtuales, en operaciones de borrado y modificación.
9.3 Otros accesos
9.4 Fichero físico único
Se propone también la implementación de un gestor del espacio, de manera tal que todos los archivos (todas las áreas de datos, áreas de desbordamiento, y archivos auxiliares) se almacenen en un solo fichero físico.
9.5 Operaciones de Administración
Se propone incorporar a la herramienta la capacidad de administrar el sistema, incorporando operaciones tales como crear índices, destruir índices, o cambiar organizaciones base (cambiar N, Ec, función transformación, o incluso cambiar el tipo
de la organización base).
9.6 Organizaciones avanzadas
Se propone la implementación de alguna organización base o auxiliar avanzada, como:
• Direccionamiento virtual
• Direccionamiento virtual extensible • Direccionamiento dinámico
• Direccionamiento virtual extensible multiclave • Direccionamiento dinámico multiclave
• Índices primarios en árbol B • Índices primarios en árbol B+ • Índices primarios en árbol B*
• Índices secundarios por listas ordenadas • Índices secundarios por listas en árbol B+