View
21
Download
2
Category
Preview:
Citation preview
TRATAMIENTO DE ARCHIVOS
Uso basico de archivos:
• consultas.• Actualizacion.
Otros algoritmos:
• Partición de archivos.• Fusión de archivos.• Clasificación de archivos
Partición de archivos
A partir de un archivo maestro se genera uno o mas archivos auxiliares.La información del archivo maestro se replica.
Criterios de particióna) Partición según el contenido de un campo clave.b) Partición por secuencia
Partición según el contenido de un campo clave
• Identificar el campo clave de partición (c.c.p.)• El c.c.p. Debe ser un campo que toma un valor de un conjunto reducido
de valores.• La cantidad máxima de archivos auxiliares a generar esta en
correspondencia con el universo de valores del campo clave de partición.• Cada posible valor que toma el campo clave de partición tiene un archivo
auxiliar asociado
MAESTRO.datnombre sexo Femenina.dat
Masculino.dat
eof
eof
Ana Ana
Pedro
Pedro
Luis
Luis
Maria Jose
Maria Jose
Lucas
Lucas
Xavier
Xavier
Betty
Betty
Alex
Alex
Daniela
Daniela
F
F
F
F
M
M
M
M
M
eof
C.C.P.= sexo
Partición por secuencia
Solo se genera dos archivos auxiliares.
Fusión/Mezcla de Archivos
Se reúne en un solo archivo la información de dos o más archivos.
1. Mezcla/Fusion Total o Secuencial
Se reúne la información de n archivos en uno solo de manera secuencial.
Sea : f1,f2…….fn archivos a fusionar :f archivos resultanteVaciar la información de los archivos f1,f2…..fn en f uno detrás de otro.
f1
f2
f3
fn
2. Mezcla / fusion de archivos ordenados.
El archivo resultante debe estar ordenado.
Sea f1, f2 : archivos ordenados a fusionarf: archivo resultante
2 algoritmos basicos:
• Por control de fin de archivo.• Por control de centinela.
Mezcla de archivos ordenados por control de fin de archivo.
Tiene 2 etapas :
1raEtapa: Participan los 2 archivos f1,f2 (tienen registros). Se dispone en la memoria simultáneamente 2 registros (uno de f1 y otro
de f2) se graba en f el menor de ambos registros, se debe leer el archivo(f1 o f2) que era propietario del registro grabado. Hasta que uno de los archivos se termine.
2daEtapa: Participa un solo archivo (f1 o f2) vaciar de manera directa los registros del archivo (f1 o f2) que no se
termino.
f1 f f2
6 4 4
14 6 8
23 8 10
56 10 25
78 14
23
25
56
78
Primera etapa
Segunda etapa
Inicio mezclacfa(f1,f2,f) Abrir f1,f2 para lectura Abrir f para escritura Si no eof(f1) entonces Leer f1, reg1 fin si Si no eof(f2) entonces Leer f2, reg2 fin si mientras no eof(f1) y no eof(f2) repetir Si gre1< reg2 entonces Grabar f, reg1 Leer f1, reg1 Si no Grabar f, reg2 Leer f2, reg2 Fin si Fin mientras Mientras no eof(f1) repetir Grabar f, reg1 Leer f1, reg1 Fin mientras Mientras no eof(f2) repetir Grabar f, reg2 Leer f2, reg2 Fin mientras Cerrar f,f1,f2 Final
Mezcla de archivos ordenados por control de Centinela.
considera la primera etapa del anterior algoritmo.
Supuesto.- Al final de f1 y f2 se tiene un registro especial [centinela] de referencia cuyo valor es muy alto y no forma parte de la información del archivo.
1raEtapa.-Participan los 2 archivos f1 y f2.Finaliza cuando en la memoria se tiene los dos centinelas de (f1 y f2)
f1 f2 8
19
38
45
3
11
14
21
3
8
11
14
19
21
29
38 45
f
29
9999 9999
centinela
centinela
Inicio cantinela(f1,f2,f) Abrir f1, f2 para lectura Abrir f para escritura Leer f1, reg1 Leer f2, reg2 Mientras reg1<>9999 o reg2<>9999 repetir Si reg1<reg2 entonces Grabar f, reg1 Leer f1, reg1 Si no Grabar f, reg2 Leer f2, reg2 Fin si Fin mientras Cerrar f,f1,f2 Final
3. Mezcla por Secuencias. De tamaño fijo ´p´
Se tiene dos variantes: sin ordenar (intercalado). Ordenando.
a) Sin ordenar. Secuencias de tamaño fijo ´p´
Se toma en forma intercalada p registros de f1 o f2 y se graba en f.Hasta reunir en f todos los registros de f1 y f2.Los registros del archivo que no se termina, se vacía a f de manera directa
f1 f2f
Para p=2
En la practica no se emplea
b) Ordenando.
Supuesto. En f1 y f2 se tienen grupos de ´p´ registros ordenados.Se toma en forma simultanea p registros de f1 y f2 y se los graba en f ordenando.Hasta reunir en f todos los registros de f1 y f 2.
f1 f2f3
4
11
25
6
7
34
1125
67
19
19
23
23
15
16
16
27
27
36
36
15
5
14f1 aux
f2 aux
P=2
4
25
311
5
14
Implementación: con 5 ARCHIVOS
f,f1,f2 : archivos corrientes f1aux,f2aux :Archivos de apoyo
-Llevar p registros a f1aux de f1 y de f2 a f2aux-Aplicar el algoritmo de fusión de archivos ordenados a f1aux y f2aux con el archivo resultante f
4. MEZCLA POR SECUENCIAS .ORDENADAS.
f1,f2 : Archivos desordenados f : Archivo resultante
Se tiene dos variantes: sin ordenar (intercalado). Ordenando
a) Sin ordenar. INTERCALADO
-En forma alternativa o intercalada se toma grupos ordenados de registros de f1 o f2 y se los graba en f.-Hasta reunir en f todos los registros de f1 y f2.-Los registros del archivo que no se termina se vacía a f de manera directa
f1 f2f4
25
12
7
19
36
124
625
147
6
19
14
25
25
47
11
11
36
21
47
21
33
b) Ordenando.
En forma simultanea se toma grupos ordenados de registros de f1 y f2 y se los graba en f, ordenando
Implementación: con 5 ARCHIVOS
f,f1,f2 : archivos corrientes f1aux,f2aux :Archivos de apoyo
-Llevar grupos ordenados de registros a f1aux de f1 y de f2 a f2aux-Aplicar el algoritmo de fusión de archivos ordenados a f1aux y f2aux con el archivo resultante f
-Función para copiar un grupo ordenado de un archivo a otro archivo.
Inicio copiar(f, reg,faux) //supuesto f esta abierto Abrir faux para escritura sw=1 mientras no eof(f) y sw=1 repetir grabar faux, reg regaux=reg leer f, reg si reg< regaux entonces sw=0 fin si fin mientras cerrar faux final
Función para mezclar dos archivos por secuencias ordenadas ordenando
inicio mezclar (f1,f2,f) abrir f1 y f2:para lectura abrir f : para escritura mientras no eof(f1) y no eof(f2) repetir leer f1, reg1 leer f2, reg2 copiar (f1, f1aux, reg1) copiar(f2,f2aux, reg2) centinela( f1aux, f2aux, f) fin mientras vaciar registros del archivo que no se termino de manera directa cerrar f1,f2,ffinal
Recommended