View
160
Download
3
Category
Preview:
Citation preview
Programación 3
Estructuras de archivos
Angel Vázquez-Patiñoangel.vazquezp@ucuenca.edu.ec
Departamento de Ciencias de la ComputaciónUniversidad de Cuenca
1 de noviembre de 2016
01/11/16 Angel Vázquez-Patiño 2/102
Objetivos
1.Conocer las definiciones básicas de archivos y sus componentes
2.Entender las diferencias entre usar estructuras de datos y estructuras de archivos
3.Conocer los tipos de organización de los archivos
4.Conocer las operaciones básicas en archivos
5.Implementar algoritmos de ordenamiento externo
01/11/16 Angel Vázquez-Patiño 3/102
Contenido
Introducción
Estructuras de archivos
Tipos de organización
Métodos de acceso
Operaciones básicas en archivos
Operaciones básicas en registros
01/11/16 Angel Vázquez-Patiño 4/102
Contenido
Ordenamientos externos
Intercalación directa
Intercalación natural
Intercalación balanceada
Intercalación polifase
Intercalación de cascada
01/11/16 Angel Vázquez-Patiño 5/102
Introducción
01/11/16 Angel Vázquez-Patiño 6/102
IntroducciónArchivo● Colección de información (datos relacionados entre sí)
almacenada como una unidad en alguna parte del computador
● Pueden utilizarse en un mismo tratamiento; como soporte material de estas informaciones
● Secuencia de registros con igual estructura● Para poder acceder a determinada información en cualquier
momento, se necesitará que ella esté depositada en soportes físicos
● Sin energía la información permanece allí. La forma de guardar los datos en estos dispositivos auxiliares es mediante las estructuras llamadas archivos
01/11/16 Angel Vázquez-Patiño 7/102
IntroducciónEstructuras de datos vs Estructuras de archivos● Estructuras de datos: RAM (capacidad limitada)● Se necesita almacenamiento secundario y no se tiene
acceso aleatorio● Costo de recuperación muy diferentes● Un enfoque para las operaciones que se oriente al
diseño de estructuras de archivos reconocería esto. Así minimizaría el número de acceso al disco y además intentaría adecuar el patrón de acceso de modo que, cuando se necesite otra parte de la información, ésta se localice donde el acceso resulte relativamente barato
01/11/16 Angel Vázquez-Patiño 8/102
Introducción
Estructuras de datos vs Estructuras de archivos● Justificación: existencia de volúmenes de datos
amplios, tamaño de memoria limitado● Objetivo: minimizar el número de accesos a los
archivos● Un requerimiento muy común de un sistema de
información es el ordenamiento de archivos
01/11/16 Angel Vázquez-Patiño 9/102
Introducción
Características del almacenamiento en memoria secundaria● Razones
– Proporciona capacidad de almacenamiento mayor a la memoria primaria, y a un costo mucho menor
– Almacenamiento de información no volátil; después de cerrar la aplicación o apagar el sistema
● Estas características son básicas en multitud de aplicaciones, principalmente las relacionadas con la gestión y el procesamiento de información
01/11/16 Angel Vázquez-Patiño 10/102
Relación de velocidad entre memorias primaria y secundaria
01/11/16 Angel Vázquez-Patiño 11/102
Introducción
Características del almacenamiento en memoria secundaria● Características
– Más lento que el acceso a RAM
– En memoria secundaria la lectura/escritura se realiza en bloques. Entre 512 y 4096 bytes
– t acceso = t posicionamiento cabeza + t de lectura/escritura de bloque. I.e., leer varios bloques en posiciones consecutivas es más eficiente que cuando los bloques están en distintas posiciones
01/11/16 Angel Vázquez-Patiño 12/102
Pista
Acceso en memoria secundaria
01/11/16 Angel Vázquez-Patiño 13/102
Introducción
Características del almacenamiento en memoria secundaria● Cuando se trabaja con grandes volúmenes de
información en memoria secundaria, es fundamental minimizar el número de accesos para obtener un tiempo de acceso razonable
● Las estructuras de archivos (análogo a las estructuras de datos) son un conjunto de herramientas que permiten un acceso eficiente a la información almacenada en archivos
01/11/16 Angel Vázquez-Patiño 14/102
Introducción
Características del almacenamiento en memoria secundaria● Estructuras de archivos
– Métodos específicos de representación de la información en un archivo
– Operaciones para acceder a la información: lectura, escritura, modificación, búsqueda, ordenación, etc.
● Las estructuras de archivos son la base de los modernos sistemas de base de datos
01/11/16 Angel Vázquez-Patiño 15/102
Estructuras de archivos
01/11/16 Angel Vázquez-Patiño 16/102
Estructuras de archivos
Objetivos● Minimizar el número de accesos● Mantener agrupada la información relacionada
(para evitar accesos adicionales)● Almacenamiento permanente● Manipulación de un gran número de datos● Independencia de los programas● Residentes en soportes externos
01/11/16 Angel Vázquez-Patiño 17/102
Estructuras de archivos
Registros y campos● Un archivo es como un papel en blanco. Existen
casi tantos formatos como aplicaciones● Los archivos suelen estructurarse en campos y
registros● La unidad básica de información es el campo:
contiene un dato de un tipo sencillo (e.g., una fecha, edad, nombre)
● Una lista de diferentes campos relacionados constituye un registro (e.g., datos de una persona)
01/11/16 Angel Vázquez-Patiño 18/102
Estructuras de archivos
Registros y campos
Número Apellido 1 Apellido 2 Nombre 1 Nombre 2
1 AREVALO ARMIJOS JAIME PAUL
01/11/16 Angel Vázquez-Patiño 19/102
Estructuras de archivos
Registros y campos● Un archivo es un colección de registros,
normalmente del mismo tipo● Normalmente las operaciones de entrada/salida se
realizan con registros completos● En todo momento en memoria sólo se mantiene uno
o a lo sumo unos pocos registros, con los que se realizan las operaciones necesarias
● La codificación de la información en los distintos campos y registros se realiza utilizando dos formatos básicos: formato texto y formato binario
01/11/16 Angel Vázquez-Patiño 20/102
Estructuras de archivos
Registros y camposNúmero Apellido 1 Apellido 2 Nombre 1 Nombre 2
1 AREVALO ARMIJOS JAIME PAUL
2 ARIAS OCHOA JEFFERSON Hernán
3 Arteaga García Emily Judith
4 BARZALLO TORRES ERICK Andrés
5 BUÑAY MONCAYO DAVID EFRAIN
6 Collaguazo MALLA CHRISTIAN XAVIER
7 GOMEZ JARAMILLO DANIEL EDUARDO
8 LANDIVAR ORDOÑEZ TANIA MARICELA
9 MACIAS NARVAEZ MIGUEL ANGEL
10 PEÑARANDA SARMIENTO JONNATHAN ESTEBAN
11 QUIZHPI PERALTA ESTUARDO MATEO
12 Remache FARINANGO Paola MARIBEL
13 SALINAS BUESTAN CHRISTIAN PAUL
14 Sigua Loja EDISSON FERNANDO
01/11/16 Angel Vázquez-Patiño 21/102
Estructuras de archivos
Registros y campos● Formato texto
– La codificación de los caracteres puede realizarse usando distintas codificaciones: ASCII, UTF8, UTF16, etc.
– Un formato de representación estándar el archivo es legible por otras aplicaciones y plataformas
– Puede ser editado fácilmente con un editor de texto
01/11/16 Angel Vázquez-Patiño 22/102
Estructuras de archivos
Registros y campos● Formato binario
– Más compactos que los basados en texto
– Lectura/escritura más rápida
– Generalmente menos transportables y más específicos de la plataformas/entorno de programación
– La forma más sencilla de crear un archivo codificado consiste en pasar directamente la imagen de los tipos empleados en memoria a disco
01/11/16 Angel Vázquez-Patiño 23/102
Estructuras de archivos
Registros y campos● Formato binario
01/11/16 Angel Vázquez-Patiño 24/102
Estructuras de archivos
Tipos de organización
Determina la forma en la que los registros se colocan físicamente en el disco y cómo se puede acceder a ellos● Organización primaria
– Archivo no ordenado (montón), archivo ordenado (secuencial), archivo mixto, archivo disperso (direccionamiento directo o hashing), árboles B
● Organización secundaria (indexada)
01/11/16 Angel Vázquez-Patiño 25/102
Estructuras de archivos
Tipos de organización● Organización primaria● Organización secundaria (indexada)
– Índice ordenado de un nivel
– Índice multinivel
01/11/16 Angel Vázquez-Patiño 26/102
Estructuras de archivos
Organización secuencial● Sucesión de registros almacenados en forma
consecutiva sobre un soporte externo● Los registros están ubicados físicamente en una
secuencia usualmente fijada por uno o más campos de control contenidos dentro de cada registro, en forma ascendente o descendente
● Tiene un último registro en particular, contiene una marca (en general un asterisco) de fin de archivo que se detecta con funciones tipo EOF (end of file)
01/11/16 Angel Vázquez-Patiño 27/102
Estructuras de archivos
Organización secuencial
01/11/16 Angel Vázquez-Patiño 28/102
Estructuras de archivos
Organización secuencial● Archivos de texto
– Casos particulares de archivos con organización secuencial
– Constan de una serie de líneas, cada una se encuentra constituida por una serie de caracteres, separadas por una marca de fin de línea que es posible detectar
01/11/16 Angel Vázquez-Patiño 29/102
Estructuras de archivos
Organización directa● Los datos se colocan y se acceden
aleatoriamente mediante su posición,es decir,indicando el lugar relativo que ocupan dentro del conjunto de posiciones posibles
● En esta organización se pueden leer y escribir registros, en cualquier orden y en cualquier lugar
01/11/16 Angel Vázquez-Patiño 30/102
Estructuras de archivos
Organización directa● Ventaja
– Rapidez de acceso a un registro cualquiera
● Desventajas– Establecer la relación entre la posición que ocupa
un registro y su contenido
– Puede desaprovecharse parte del espacio destinado al archivo
01/11/16 Angel Vázquez-Patiño 31/102
Estructuras de archivos
Organización indexada● Un archivo con esta organización consta de
tres áreas:1) Área de índices
2) Área primaria
3) Área de excedentes (overflow)
01/11/16 Angel Vázquez-Patiño 32/102
Estructuras de archivos
Organización indexada● Ventajas
– Rápido acceso, y, además, el sistema se encarga de relacionar la posición de cada registro con su contenido por medio del área de índices
– Gestiona las áreas de índices y excedentes
● Desventajas– Necesidad de espacio adicional para el área de índices
– El desaprovechamiento de espacio que resulta al quedar huecos intermedios libres después de sucesivas actualizaciones
01/11/16 Angel Vázquez-Patiño 33/102
Estructuras de archivos
Organización primaria
01/11/16 Angel Vázquez-Patiño 34/102
Organización primaria
Archivo no ordenado (montículo o montón)● Registros almacenados al final del archivo, en
orden de inserción● Inserción muy eficiente● Búsqueda lineal● Eliminación física o por marca
– Reorganización para recuperar espacio desocupado
– O aprovechar huecos para nuevos registros
01/11/16 Angel Vázquez-Patiño 35/102
Organización primaria
Archivo no ordenado (montículo o montón)● Modificación de un registro
– Si longitud variable, puede provocar eliminación + inserción
● Lectura ordenada supone creación de una copia ordenada del archivo– Suele utilizarse una técnica de ordenación externa
01/11/16 Angel Vázquez-Patiño 36/102
Organización primaria
Archivo ordenado (secuencial)● Registros almacenados de forma ordenada
según valores de cierto campo– Campo de ordenación
– Si el campo es clave, se le llama clave de ordenación
● Ventajas respecto a los archivos no ordenados– Lectura ordenada muy eficiente si el orden es el
de los valores del campo de ordenación: lectura secuencial
01/11/16 Angel Vázquez-Patiño 37/102
Organización primaria
Archivo ordenado (secuencial)● Ventajas respecto a los archivos no ordenados
– Buscar siguiente (en el orden del campo de ordenación) no suele necesitar otro acceso a bloque
– Buscar un registro dado su valor del campo de ordenación es rápido: búsqueda binaria
● Pero si la Lectura ordenada o Buscar no están basados en el campo de ordenación, estas ventajas “desaparecen”
01/11/16 Angel Vázquez-Patiño 38/102
Organización primaria
Archivo ordenado (secuencial)● Inserción
– Supone encontrar posición correcta para el registro
– Abrirle espacio mediante desplazamiento de registros (¡costoso!)
● Eliminación física o por marca– Con problemas de eficiencia similares a la inserción
01/11/16 Angel Vázquez-Patiño 39/102
Organización primaria
Archivo ordenado (secuencial)● Para aumentar la eficiencia de la inserción
– Dejar espacio libre en cada bloque para nuevos registros
– Archivo de desbordamiento auxiliar, no ordenado, que periódicamente se ordena y fusiona con el archivo principal
– Buscar se complica: binaria en principal + lineal en auxiliar
01/11/16 Angel Vázquez-Patiño 40/102
Organización primaria
Archivo ordenado (secuencial)● Modificación
– Si la condición de búsqueda se basa en el campo de ordenación, usar búsqueda binaria, sino, búsqueda lineal
– Si el campo modificado es el de ordenación, el nuevo valor puede provocar su cambio de ubicación: eliminación + inserción
01/11/16 Angel Vázquez-Patiño 41/102
Organización primaria
Archivo ordenado (secuencial)● Archivo secuencial encadenado
– Registros ordenados de forma lógica (no física)
– Uso de punteros
– Mayor flexibilidad
● Estructuras de datos para implementar este tipo de archivos– Listas lineales
– Listas múltiples
– Listas circulares
– Árboles binarios de búsqueda
01/11/16 Angel Vázquez-Patiño 42/102
¿Qué colección usar?
01/11/16 Angel Vázquez-Patiño 43/102
¿Qué colección usar?
01/11/16 Angel Vázquez-Patiño 44/102
Organización primaria
Archivo mixto● Almacena registros de diferente tipo● Los registros provienen de distintas tablas
– Están relacionadas mediante una o varias columnas● Clave externa y clave candidata
– Las operaciones más frecuentes son las consultas y no es habitual modificar las columnas comunes
– Solicitudes frecuentes de filas relacionadas de ambas tablas
● Operaciones que implican la reunión (JOIN) de tablas
01/11/16 Angel Vázquez-Patiño 45/102
Organización primaria
Archivo mixto● En el archivo …
– Los registros relacionados están físicamente adyacentes
– Clave del fichero mixto: campos “comunes” de los registros
● Ventajas del uso de archivos mixtos– Mayor eficiencia de las operaciones con JOIN entre
tablas
– Valores de la clave del fichero mixto almacenados sólo una vez
01/11/16 Angel Vázquez-Patiño 46/102
Organización primaria
Archivo de direccionamiento calculado (hashing)● Permite acceso rápido a registros según una condición
de búsqueda de igualdad sobre un sólo campo– Campo de dispersión (columna de dispersión)
– Si es clave del fichero, se llama clave de dispersión
● Función de dispersión h– Se aplica el valor k del campo de dispersión de un registro
(fila)
– Y produce la dirección del bloque de disco en el que está el registro
● La localización del registro dentro del bloque se hace en el búfer
01/11/16 Angel Vázquez-Patiño 47/102
Tarea● Entienda la Codificación de Huffman● MOOC: https://goo.gl/dpekyS● Vídeo del MOOC, capítulo 4 (árboles):
https://youtu.be/W6WZT12ruGQ
01/11/16 Angel Vázquez-Patiño 48/102
Estructuras de archivos
Organización secundaria
01/11/16 Angel Vázquez-Patiño 49/102
Organización secundaria● Índices en base de datos, tema a ver en la
materia de base de datos (vea https://goo.gl/NzNNrz)
● Archivos Relativos
01/11/16 Angel Vázquez-Patiño 50/102
Archivos relativos● Una forma efectiva de organizar un archivo
cuando existe la necesidad de acceder individual y directamente a registros
● En un archivo relativo, existe una relación predecible entre la key usada para identificar un registro y la localización del registro dentro del archivo
● Importante: orden lógico de registros no necesita tener ninguna relación con su secuencia física
01/11/16 Angel Vázquez-Patiño 51/102
Archivos relativos
Encontrar el N-ésimo registro● Cuando un archivo relativo se establece debe
definirse una relación que será utilizada para obtener de un valor de llave a una dirección física
● Esta relación, llamada R, es una función de mapeo, de los valores de llaves a direcciones del archivo
01/11/16 Angel Vázquez-Patiño 52/102
Archivos relativos
01/11/16 Angel Vázquez-Patiño 53/102
Archivos relativos● Cuando se debe grabar un registro en un
archivo relativo, la función de mapeo R se usa para traducir el valor de llave de registro a una dirección, la cual indica dónde deberá almacenarse el registro
● Cuando es necesario recuperar el registro con un valor de llave particular la función de R es aplicada a ese valor de la llave, traduciéndolo a una dirección donde se encuentra el registro
01/11/16 Angel Vázquez-Patiño 54/102
Archivos relativos● En contraste con los archivos secuencialmente
organizados, no es necesario acceder los registros del archivo relativo en orden serial. En lugar de esto, una ocurrencia particular de un registro se puede acceder directamente
● El carácter de acceso directo de los archivos de organización relativa no tendría ninguna ventaja si un archivo relativo fuese almacenado en medios de acceso serial, como la cinta magnética. Por lo tanto, los archivos relativos se almacenan en memoria principal o en dispositivos de almacenamiento de acceso directo
01/11/16 Angel Vázquez-Patiño 55/102
Métodos de acceso
01/11/16 Angel Vázquez-Patiño 56/102
Métodos de acceso● Manera de acceder a los registros de un archivo
para leer o grabar información
Fundamentalmente● Acceso secuencial
– Acceso a registros según secuencia física, en el orden es que están escritos. Para acceder al registro N hay que pasar previamente por los N-1 registros anteriores
● Acceso directo– Acceso a un registro sin tener que pasar por los
registros anteriores
01/11/16 Angel Vázquez-Patiño 57/102
Operaciones básicas sobre archivos
01/11/16 Angel Vázquez-Patiño 58/102
Operaciones básicas sobre archivos
Creación● Definición del archivo
Apertura● Comunicación del archivo lógico con el físico
Cierre● Cerrar la conexión
Lectura● Acceder al archivo para ver su contenido
01/11/16 Angel Vázquez-Patiño 59/102
Operaciones básicas sobre archivos
Fin de archivo● Detecta el final del archivo
Destrucción● Borra el archivo
Reorganización● Optimiza la estructura
01/11/16 Angel Vázquez-Patiño 60/102
Operaciones básicas sobre archivos
Fusión● Reune varios archivos en uno solo
Actualización● Alta
– Adición de registros
● Baja– Eliminación lógica de registros
● Modificación– Alterna la información del contenido
01/11/16 Angel Vázquez-Patiño 61/102
Operaciones básicas sobre registros
01/11/16 Angel Vázquez-Patiño 62/102
Operaciones básicas sobre registrosEliminación de registros● Los registros eliminados se incluirán por
ejemplo en una lista de tal forma que siempre tendremos que almacenar la dirección del último registro eliminado. ¿Qué estructura de datos?
● Al eliminar un registro se marca como borrado con una marca especial en el primer campo y luego se escribirá en este campo la posición del que era último registro borrado
01/11/16 Angel Vázquez-Patiño 63/102
Operaciones básicas sobre registrosCreación de registros● Al insertar un nuevo registro habrá que
comprobar si se tiene algún espacio● Se comprueba si hay registros eliminados● Si los hay, se usa el espacio y se inserta el
nuevo registro en esa posición
01/11/16 Angel Vázquez-Patiño 64/102
Operaciones básicas sobre registrosObtención de datos● Localizar ciertos registros para examinar y
procesar su contenido
Actualización de registros● Consiste en cambiar el contenido de un
archivo, para hacer que refleje la situación actual. Estos cambios pueden incluir la adición, modificación y/o eliminación de registros
01/11/16 Angel Vázquez-Patiño 65/102
Ordenamiento e intercalación de archivos
01/11/16 Angel Vázquez-Patiño 66/102
Motivación, intercalación● Considere un archivo de 2000 registros que deben ordenarse y
suponga que la memoria primaria tiene capacidad sólo para 1000
● Una forma de enfocar el problema es aplicar un método de ordenamiento interno para ordenar separadamente dos subconjuntos del archivo: los registros del 1 al 1000 y del 1001 al 2000
● La salida de cada ordenamiento interno es un archivo que contiene la sublista ordenada. Después las dos sublistas ordenadas pueden ser intercaladas
● La intercalación incluye comparaciones por pares de la llave del siguiente registro y en cada una de las sublistas ordenadas. El registro que tenga la llave de menor valor (ordenamiento ascendente) es el registro por escribirse en el archivo intercalado
01/11/16 Angel Vázquez-Patiño 67/102
Motivación, intercalación
01/11/16 Angel Vázquez-Patiño 68/102
Fases de ordenamiento de registros
1) División● División del archivo en varias sublistas
2) Ordenamiento interno● Ordenamiento de registros de las sublistas mediante varias
ejecuciones distribuidas en dos o más dispositivos de almacenamiento. Se guarda como archivo secuencial
3) Intercalación● Combinación de sublistas ordenadas en una sola ejecución
4) Salida● Copia de archivo ordenado en medio de almacenamiento
final
01/11/16 Angel Vázquez-Patiño 69/102
Lógica de intercalación● Las llaves, Llave1, Llave2 y LlaveM son usadas
para referirse a las llaves de los registros en la sublista 1, sublista 2 y la sublista de intercalación resultante, respectivamente
● Esta lógica descansa sobre el hecho de tener las sublistas de entrada ordenadas por la llave que dirige la intercalación
● Las listas de entrada no necesariamente deben ser de la misma longitud; cuando una lista se termina el resto de la otra lista es copiado (en orden) en el archivo intercalado resultante
01/11/16 Angel Vázquez-Patiño 70/102
01/11/16 Angel Vázquez-Patiño 71/102
Fase de intercalación
01/11/16 Angel Vázquez-Patiño 72/102
Fase de intercalación
Tipos● Intercalación directa● Intercalación natural● Intercalación balanceada● Intercalación polifase● Intercalación de cascada
01/11/16 Angel Vázquez-Patiño 73/102
Intercalación directa● Probablemente el más utilizado, fácil
comprensión● Consiste en la realización sucesiva de una
partición y una fusión que produce secuencias ordenadas de longitud cada vez mayor
● En la primera pasada, la partición es de longitud 1 y la fusión o mezcla produce secuencias ordenadas de longitud 2
01/11/16 Angel Vázquez-Patiño 74/102
Intercalación directa● En la segunda pasada, la partición es de
longitud 2 y la fusión o mezcla produce secuencias ordenadas de longitud 4
● Este proceso se repite hasta que la longitud de la secuencia para la partición sea: parte entera ((n + 1)/2). n:número de elementos del archivo original
● Vea https://goo.gl/uN9PWt
01/11/16 Angel Vázquez-Patiño 75/102
Intercalación directa
01/11/16 Angel Vázquez-Patiño 76/102
Intercalación natural● Una intercalación que manipula dos archivos
de entrada a la vez se llama intercalación de doble vía; una intercalación que manipula M archivos de entrada a la vez se llama intercalación de M-vías. M es referido como el grado de la intercalación.
● Una intercalación natural de M vías se define como una intercalación con M archivos de entrada y sólo uno de salida
01/11/16 Angel Vázquez-Patiño 77/102
Intercalación natural● El número de sublistas ordenadas que entran a la
fase de intercalación y los grados de intercalaciones son los factores principales para determinar la eficiencia de cada ordenamiento/intercalación
● Puede requerir una cantidad significativa de copiado de datos una y otra vez, causando una alta actividad de E/S. A mayor cantidad de sublistas iniciales, y menor grado de intercalación natural, mayores serán los requerimientos resultantes de E/S, y el proceso será más lento
01/11/16 Angel Vázquez-Patiño 78/102
Intercalación natural● Es una optimización de la intercalación directa● La diferencia es que las particiones se realizan
en secuencias ordenadas de tamaño variable en lugar de secuencias de tamaño fijo
● La fusión de las secuencias ordenadas se realiza en dos archivos
● El proceso termina cuando el segundo archivo queda vacío en el proceso de partición-fusión
● Vea https://youtu.be/YmehsKonGx4?t=17s
01/11/16 Angel Vázquez-Patiño 79/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 80/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 81/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 82/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 83/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 84/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 85/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 86/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 87/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 88/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 89/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 90/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 91/102
Intercalación natural
01/11/16 Angel Vázquez-Patiño 92/102
Tarea● Implementar todos los algoritmos de
ordenamiento externo● Se debe usar un archivo CSV con el siguiente
formato (se dará uno el momento de probar):
campo1,campo2,campo3,campo4
123,texto1,true,25/12/1985
51847,text2,false,25/11/2016
● El usuario puede pedir ordenar el archivo por cualquier campo
01/11/16 Angel Vázquez-Patiño 93/102
Intercalación balanceada● Cerca de la mitad de la actividad de E/S de una
intercalación natural es dedicada a redistribuir en múltiples archivos las sublistas recién intercaladas que salen de un paso, como preparación para su entrada al siguiente paso
● Los requerimientos de E/S de una intercalación natural pueden reducirse usando una intercalación balanceada
01/11/16 Angel Vázquez-Patiño 94/102
Intercalación balanceada● Una intercalación balanceada evita mucho de este
copiado de registros, una y otra vez, distribuyendo los resultados del paso de intercalación directamente en el número apropiado de archivos para la entrada al siguiente paso de intercalación
● En contraste, una intercalación natural, distribuye todas sus sublistas intercaladas de salida en un solo archivo
● Una intercalación natural de M-vías usa M+1 archivos, mientras que una intercalación balanceada de M-vías usa 2M archivos
● En una intercalación balanceada, los datos son removidos una y otra vez entre un número igual de archivos de E/S
01/11/16 Angel Vázquez-Patiño 95/102
Intercalación balanceada● Una intercalación balanceada de m vías utiliza
m archivos de entrada y m archivos de salida● Las k listas ordenadas se distribuyen en forma
uniforme en los m archivos de entrada● Se intercalan las listas de cada uno de los
archivos, distribuyendo en forma uniforme las listas resultantes en los archivos de salida (de mayor tamaño que las iniciales)
● Se repite el último paso hasta que un archivo de salida contiene una lista ordenada
01/11/16 Angel Vázquez-Patiño 96/102
Intercalación polifase● Un tipo de intercalación desbalanceada es la
intercalación de polifase● Se utiliza un número constante de archivos de
entrada. Una intercalación de polifase de M-vías usa 2M – 1 archivos de entrada y 1 archivo de salida
● Se intercalan las listas (de mayor tamaño) en el archivo de salida. El archivode entrada que primero queda vacío pasa a ser archivo de salida y el archivode salida pasa a ser de entrada. Se repiten los 2 últimos pasos hasta que unarchivo de salida contenga las lista ordenada
01/11/16 Angel Vázquez-Patiño 97/102
Intercalación de cascada
01/11/16 Angel Vázquez-Patiño 98/102
Comparativa
01/11/16 Angel Vázquez-Patiño 99/102
Conceptos y términos importantes
01/11/16 Angel Vázquez-Patiño 100/102
Conceptos y términos importantes● Campo, registro y archivo● Tipos de organización● Operaciones básicas con registros● Operaciones básicas con archivos● Ordenamientos externos
01/11/16 Angel Vázquez-Patiño 101/102
Referencias
01/11/16 Angel Vázquez-Patiño 102/102
Preguntas
Recommended