TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos:...

21
TRATAMIENTO DE ARCHIVOS

Transcript of TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos:...

Page 1: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

TRATAMIENTO DE ARCHIVOS

Page 2: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

Uso basico de archivos:

• consultas.• Actualizacion.

Otros algoritmos:

• Partición de archivos.• Fusión de archivos.• Clasificación de archivos

Page 3: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 4: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 5: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

Partición por secuencia

Solo se genera dos archivos auxiliares.

Page 6: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 7: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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.

Page 8: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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.

Page 9: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 10: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 11: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 12: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 13: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 14: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 15: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 16: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 17: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

f1 f2f4

25

12

7

19

36

124

625

147

6

19

14

25

25

47

11

11

36

21

47

21

33

Page 18: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

b) Ordenando.

En forma simultanea se toma grupos ordenados de registros de f1 y f2 y se los graba en f, ordenando

Page 19: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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

Page 20: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

-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

Page 21: TRATAMIENTO DE ARCHIVOS. Uso basico de archivos: consultas. Actualizacion. Otros algoritmos: Partición de archivos. Fusión de archivos. Clasificación.

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