Organización y Gestión de Archivos Año académico: 2009-10 Estudios: Curso: 2 o Carácter: TRONCAL Descriptores: Profesor responsable: Area: Departamento: Centro: Escuela Politécnica Superior INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Cuatrimestre: 2 o Créditos: 3 teóricos + 3 prácticos Estructura de Información: Ficheros, Bases de Datos Irene Martínez Masegosa Ciencia de la Computación e Inteligencia Artificial Lenguajes y Computación Objetivos generales de la asignatura El estudio de las estructuras de archivos es, en esencia, la aplicación de las técnicas de estructuras de datos a problemas especiales asociados con el almacenamiento y recuperación de datos en dispositivos de almacenamiento secundario. Los objetivos propuestos son los siguientes: Conocer las características y limitaciones de los dispositivos de almacenamiento secundario y terciario. Estudiar formatos y estructuras lógicas de los datos. Conocer diferentes métodos para guardar los registros en archivos y las correspondientes organizaciones básicas. Estudiar las principales técnicas de acceso y recuperación de datos. Describir el uso y mantenimiento de diferentes tipos de índices y la implementación de organizaciones de archivos indexados. Evaluar la eficiencia y costo de las diferentes organizaciones de archivos y técnicas de acceso. Elección de la organización de archivos adecuada. 1
Programa de TEORÍA Parte I. Almacenando información: discos y archivos Tema 1. Almacenamiento de datos. Archivos 1.1. Jerarquía de memoria 1.2. Discos 1.3. Uso eficiente del almacenamiento secundario Tema 2. Archivos 2.1. Archivos físicos y archivos lógicos 2.2. Operaciones principales sobre archivos 2.3. Organización de archivos Tema 3. Elementos básicos de las estructuras de archivos 3.1. Estructuras de campos 3.2. Estructuras de registros 3.3. Registros de longitud fija Construcción de registros de longitud fija Operaciones: Inserción, eliminación, modificación 3.4. Registros y datos de longitud variable Construcción de registros de longitud variable Operaciones: Inserción, eliminación, modificación 3.5. Buffers y bloques de registros 3.6. Acceso a registros. Claves de búsqueda Búsqueda iterativa de un registro en un archivo Acceso directo 2
Tema 4. Organizaciones básicas de registros en archivos 4.1. Organizaciones básicas de registros en archivos Archivos de registros no ordenados: Organización Apilada. Archivos de registros ordenados: Organización Secuencial Archivos con registros enlazados: Organización Encadenada 4.2. Elección de una organización de archivo Parte II. Indexación Tema 5. Conceptos básicos sobre índices 5.1. Archivos con índices 5.2. Propiedades de los índices Tema 6. Organizaciones indexadas 6.1. Organización indexada simple 6.2. Organización secuencial indexada 6.3. Índices secundarios. Estructura de un índice secundario Operaciones básicas. Mejora de la estructura. Listas invertidas 6.4. Organizaciones basadas en claves secundarias Tema 7. Organización multinivel con árboles B y B + 7.1. Introducción. Planteamiento del problema 7.2. Indexando con árboles binarios de búsqueda Árboles AVL Árboles binarios paginados 7.3. Árboles B Propiedades de los árboles B 3
Organización del índice en árbol B Operaciones. 7.4. Árboles B + Acceso indexado y secuencial Propiedades Operaciones Variantes de árboles B + 7.5. Comparación de árboles B y B + 7.6. Árboles B Tema 8. Hashing 8.1. Características y elementos básicos de una organización hashing 8.2. Hashing estático Elementos principales Algoritmos de hashing Métodos para evitar colisiones Técnicas de resolución de colisiones. Operaciones. 8.3. Hashing dinámico Expansión dinámica de archivos. Características de los métodos de hashing dinámico. Hashing extensible Parte III. Gestión de Datos Tema 9. Ordenación externa 9.1. Algoritmo Merge Sort para ordenación 9.2. Uso de árboles B + para ordenación Tema 10. Introducción a los Sistemas de Bases de Datos 10.1. Funciones de un sistema de gestión de Bases de Datos 10.2. Componentes 4
10.3. Sistemas de archivos versus sistemas de Bases de Datos Programa de PRÁCTICAS Práctica 1. Operaciones básicas de Entrada/Salida. Registros 1.1. Implementación de una librería general para gestionar registros 1.2. Crear fichero binario a partir de un fichero de datos Práctica 2. Gestión de índices 2.1. Índices primario y secundarios 2.2. Crear archivo binario ordenado 2.3. Implementación y gestión de bloques de registros 2.4. Creación de un archivo de bloques de registros con índice no denso 2.5. Indices secundarios con lista invertida Práctica 3. Índices con Árboles B y B + 3.1. Construcción de un Árbol B de orden n para archivo binario 3.2. Construcción de un Árbol B+ para archivo de bloques Práctica 4. Ficheros relativos. Hashing estático 4.1. Implementación de un método de dispersión o Hashing 4.2. Construir archivo Las prácticas se realizan en C++. 5
EVALUACIÓN Para aprobar la asignatura es necesario aprobar la parte teórica y la parte práctica. TEORÍA: 50 por ciento de la calificación final. Nota Teoría = Examen Teoría + trabajos opcionales Examen de Teoría: (40 puntos). Examen tipo test, que contendrá preguntas del tipo verdadero/falso o preguntas con varias respuestas o combinación de ambas. Las preguntas contestadas erróneamente restarán puntos a la nota. Trabajos opcionales:(hasta 10 puntos). Ejercicios propuestos en clase, trabajos teóricos en grupo, etc PRÁCTICAS: 50 por ciento de la calificación final. Nota prácticas = Examen + prácticas obligatorias + prácticas opcionales Examen de prácticas (30 puntos): obligatorio. Resolver ejercicios de programación y cuestiones de diseño e implementación relacionadas tanto con los contenidos teóricos como prácticos, estudiados en la asignatura. Guiones de prácticas: Prácticas Obligatorias: hasta 15 puntos Prácticas Opcionales: hasta 5 puntos Para aprobar la parte de prácticas es necesario aprobar el examen de prácticas, y realizar (y defender) las prácticas obligatorias. La suma de todos los puntos obtenidos deberá ser superior a 25 puntos. No se guarda la nota de prácticas de cursos anteriores. Los alumnos que suspendan o no entreguen las prácticas en la convocatoria de junio deberán realizar una práctica extraordinaria en las convocatorias de septiembre y de diciembre. En ambos casos también será obligatorio realizar el examen de prácticas. 6
BIBLIOGRAFÍA Estructuras de Archivos Fol98 File Structures. An Object-Oriented Approach with C++. 3th. ed M.J. Folk, B. Zoellick and G. Riccardi. 1998. Luq98 Ficheros: Organizaciones Clásicas para el Almacenamiento de la Información. I. Luque, J.A. Romero y M.A. Gómez-Nieto. 1998. Fol92b File Structures. Second edition. M.J. Folk and B. Zoellick. 1992. Fol92 Estructuras de Archivos. M.J. Folk y B. Zoellick. 1992. Tha88 File Organization and Processing. A. L. Tharp. 1988. Liv90 File Structures. Theory and Practice. P. E. Livadas. 1990. Smi87 Files and Databases: An Introduction. P. Smith and M. Barnes. 1987. Bases de Datos Gar00 Database System Implementation. H. Garcia-Molina, J. Ullman and J. Widom. 2000. Ram00 Database Management Systems. Second edition. R. Ramakrishnan. 2000. Sil01 Database System Concepts. Fourth edition. A. Silberschatz, H. Korth and S. Sudarshan. 2001. Elm01 Sistemas de Bases de Datos. Conceptos fundamentales. 3 a edición. R. Elmasri y S. Navathe. 2001. Algoritmos Cor90 Introduction to Algorithms. T. Cormen, C. Leiserson and R. Rivest. 1990. Sed01 Algorithms, third edition. R. Sedgewick. 2001. 7