Está en la página 1de 70

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

1
I II I I II I N NN N N NN N T TT T T TT T R RR R R RR R O OO O O OO O D DD D D DD D U UU U U UU U C CC C C CC C C CC C C CC C I II I I II I N NN N N NN N


Realmente las entajas de manejar dierente inormacin en gran cantidad al mismo tiempo son
muchas, pero tambin surge el problema que al terminar de ejecutarse esta inormacin los datos
se pierden.

Por esto, es que surge la necesidad de obtener dispositios que nos permitan almacenar
inormacin permanentemente, y as es como nace el concepto de archios.

Ln un archio los datos se almacenan en renglones consecutios y cada rengln en el disco, se
conoce como registro del archio.

A continuacin se presentaran algunos conceptos basicos de archios tradicionales. Lsta
inormacin ayudara a comprender que es un archio, el papel que desempena en el sistema de
inormacin, y los problemas mas comunes en su organizacin y manejo.


As tambin se introduciran conceptos de sistemas de archio y sus tareas basicas en el manejo
del directorio, manejo de almacenamiento temporal y controles de entrada y salida ,L-S,.

























E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

2
O OO O O OO O B BB B B BB B J JJ J J JJ J E EE E E EE E T TT T T TT T I II I I II I V VV V V VV V O OO O O OO O S SS S S SS S





Al inalizar el curso el alumno sera capaz de:

Disenar las estructuras y mtodos de acceso mas adecuados, seleccionar los dispositios de
almacenamiento ptimos, y aplicar las tcnicas de alidacin de datos correspondientes para hacer
un buen uso de los recursos computacionales. Conocer el uncionamiento de diersos algoritmos
de ordenacin y bsqueda, y realizar un analisis comparatio en trminos mas adecuados a la
solucin de problemas especicos.

























E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

3
T TT T T TT T E EE E E EE E M MM M M MM M A AA A A AA A R RR R R RR R I II I I II I O OO O O OO O


I.- Archivos

1.1 Deinicin de conceptos basicos
1.2 Llementos de un archio
1.3 Campos llae
1.4 Clasiicacin de archios
1.5 Operaciones con archios
1.6 Dispositios de almacenamiento

II.- Organizacin y proceso de archivos

2.1 Secuencial
2.2 Directa o relatia
2.3 Secuencial indexada
2.4 Indexada
2.5 Multilistas encadenadas

III.- Organizacin y proceso de archivos hibridos

3.1 Multinieles de ndices
3.2 Lstructuras de arbol
3.3 Mtodos basados en el acceso directo
3.4 Almacenamientos irtuales ,VSAM,

IV.- Seguridad y controles

4.1 Dgito de control
4.2 1otales de control
4.3 Validacin de datos

V.- Introduccin al anlisis de algoritmos

5.1 Importancia del uso adecuado de algoritmos
5.2 Consideraciones de eiciencia
5.3 1iempo de ejecucin de un programa
- Notacin asintotica ,O` GRANDL,
5.4 Calculo del tiempo de medicin

VI.- Algoritmo de clasificacin

6.1 Por enumeracin
< Comparacin
< Distribucin
< Analisis de eiciencia
6.2 Por insercin

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

4
< Directa
< Shell
< Analisis comparatio

6.3 Por intercambio
< Burbuja
< Quick sort
< Merge exchange
< Redix exchange
< Analisis de eiciencia

6.4 Por seleccin
< Directa
< Arboles
< leap
< Analisis de eiciencia

6.5 Por combinacin
< 1wo way ,merge,
< Natural two way
< Analisis de eiciencia

VII.- Algoritmos

.1 Secuencial
.2 Binaria y binaria uniorme
.3 libonacci
.4 1ransormacin de claes ,ha shing,
< Mtodos de transormacin
< 1ratamientos de colisiones
.5 Bsqueda de arboles
.6 Analisis comparatio















E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

5



















I.- Archivos

1.1 Defiviciv ae covceto. ba.ico.
1.2 tevevto. ae vv arcbiro
1. Cavo. ttare
1.1 Cta.ificaciv ae arcbiro.
1.: Oeraciove. cov arcbiro.
1. Di.o.itiro. ae atvacevavievto












U UU U U UU U N NN N N NN N I II I I II I D DD D D DD D A AA A A AA A D DD D D DD D I II I I II I

T TT T T TT T E EE E E EE E M MM M M MM M A AA A A AA A R RR R R RR R I II I I II I O OO O O OO O


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

6
A AR RC CH HI IV VO OS S

Un archio ichero es un conjunto de datos estructurados en una coleccin de entidades
elementales o basicas denominadas registros o artculos, que son de igual tipo y constan a su ez de
dierentes entidades de niel mas bajo denominadas campos. ,Cita del libro Lstructura de Datos,
Algoritmos, Abstraccin y Objetos, de Luis Joyanes Aguilar, pag. 582,.

Archio es una coleccin de registros lgicamente relacionados y es considerado como una entidad.
1odos los archios se guardan secuencialmente. ,Cita del Libro Lstructura de Datos y Organizacin
de Archios de Mary S. L. Loomis,.


1 11 1 1 11 1. .. . . .. . 1 11 1 1 11 1 D DD D D DD DE EE E E EE EF FF F F FF FI II I I II IN NN N N NN NI II I I II IC CC C C CC CI II I I II IO OO O O OO ON NN N N NN N Y YY Y Y YY Y C CC C C CC CO OO O O OO ON NN N N NN NC CC C C CC CE EE E E EE EP PP P P PP PT TT T T TT TO OO O O OO OS SS S S SS S B BB B B BB BA AA A A AA AS SS S S SS SI II I I II IC CC C C CC CO OO O O OO OS SS S S SS S

Dato: Unidad lgica de inormatica que se suministra a la computadora, para el uncionamiento de
un sistema de inormacin.

Informacin: Conjunto de datos o noticias de un tema especiico.

Sistema: Conjunto de elementos independientes, conjunto de axiomas y reglas que determinan un
perecto desarrollo de sus unciones.

Programa que ormando parte de un Sistema Operatio permite el manejo de archios de una
manera transparente, es decir sin tener en cuenta el tipo de unidad en las que este se encuentre.

Registro: Lsta compuesto de campos y estos campos contiene los atributos de una entidad.

Lntidad: 1odo aquello de lo cual podemos obtener inormacin, la inormacin obtenida de una
entidad son los atributos.

Atributos: Medida, peso, color, etc. ,caractersticas,.

Campo: Zona de inormacin deinida en una memoria.

La descripcin de los datos y las de las relaciones que entre ellas hay, adopta una de las dos ormas,
lgica y sica.
Dato Iisico: La descripcin sica de los datos se ocupan de cmo se loa registros el lardware
.
Dato Lgico: La descripcin lgica, n cambio se reiere a la orma con que los datos se presenta a l
programador de aplicaciones al usuario inal.

Base De Datos: Una coleccin de archios a los que puede accederse por un conjunto de
programas y que contienen todos los datos relacionados constituye una base de datos. As, una base
de datos de una uniersidad puede contener archios de estudiantes, archios de nominas,
inentarios de equipos, etc.


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

7
Lstructura Jerrquica: Los conceptos caracter, campo, registro, archio y base de datos son
conceptos lgicos que se reieren al medio en que el usuario de computadoras e los datos y como
se organizan estos. Las estructuras de datos se organizan de un modo jerarquico, de modo que el
niel mas alto lo constituye la base de datos y el niel mas bajo el caracter.

1 11 1 1 11 1. .. . . .. . 2 22 2 2 22 2 E EE E E EE EL LL L L LL LE EE E E EE EM MM M M MM ME EE E E EE ET TT T T TT TO OO O O OO OS SS S S SS S D DD D D DD DE EE E E EE E U UU U U UU UN NN N N NN N A AA A A AA AR RR R R RR RC CC C C CC CH HH H H HH HI II I I II IV VV V V VV VO OO O O OO O ( (( ( ( (( (C CC C C CC CA AA A A AA AM MM M M MM MP PP P P PP PO OO O O OO O) )) ) ) )) )

Campo: Un campo es un tem o elemento de datos elementales tales como un nombre, nmero de
empleados, ciudad nmero de identiicacin, etc.

a a) ) 1exto: para introducir cadenas de caracteres hasta un maximo de 255.

b b) ) Memo: para introducir un texto extenso. lasta 65.535 caracteres.

c c) ) Numerico: para introducir nmeros.

d d) ) Iecha/Hora: para introducir datos en orma echa u hora.

e e) ) Moneda: para introducir datos en orma numero y con el signo monetario.

f f) ) Autonumerico: en este tipo de campo, se enumera
automaticamente el contenido.

g g) ) Si/No: campo lgico. Lste tipo de campo es solo si queremos un contenido de tipo si,no,
erdadero,also, etc.

Un campo esta caracterizado por su tamano, longitud y su tipo de datos ,cadena de caracteres,
entero, lgico, etc.,. Los campos pueden incluso ariara de longitud, en la mayora de los lenguajes
de programacin los campos de longitud ariable no estan soportados y se suponen longitud ija.

EJEMPLO: EJEMPLO: EJEMPLO: EJEMPLO: Los datos contenidos en un campo se diiden con recuencia en subcampos como el
campo echa se diide en subcampos da, mes y ano.


CAMPO SUBCAMPO DIA MLS AO
0

0
3
1
9


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

8

Registro: Ls una coleccin de inormacin, normalmente relatia a una entidad particular. Un
registro es una coleccin de campos lgicamente relacionados, que pueden ser tratados como una
unidad por algn programa. Un ejemplo de un registro puede ser la inormacin de un
determinado empleado que contiene los campos de nombre, direccin, echa de nacimiento,
estudios, salarios, trienios, etc.

Un registro enocado a JAVA` es de la siguiente manera

\a se ha isto como ariables simples pueden almacenar una sola pieza de inormacin y como
arreglos pueden almacenar un conjunto de ellas del mismo tipo y al mismo tiempo, estos dos
mecanismos pueden manejar una gran ariedad de situaciones, pero a menudo se necesita trabajar
sobre datos de diersos tipos, en este caso ni ariables escalares ni arreglos son adecuados.

Para resoler estos problemas los lenguajes de programacin proeen de un tipo de dato especial
llamado registros.

Un registro es una ariable especial que tiene la capacidad de almacenar datos de dierentes tipos.

Sin embargo JAVA, usa en su lugar una CLASL.

Lste mtodo tienen la entaja de que ademas de incluir los campos tradicionales de un registro , en
orma de atributos ,, tambin puede incorporar una serie de mtodos que permiten procesar de
manera mas acil los campos o atributos de clase.

EJEMPLO: EJEMPLO: EJEMPLO: EJEMPLO:
class alumno
oid alumno,,},
static String nombre~new String,,,
static in edad,
oid inicializar,,
alumno.nombre~`pepe el toro`,
alumno.edad~18,},
oid desplegar,,
System.out.println,alumno.nombre,,
System.out.println,alumno.edad,,
},
},,termina la clase
Programa ejemplo,
import jaa.io.,
class prog33
public static oid main,String args,
alumno.inicializar,,,
alumno.desplegar,,,
},,cierra main
},,cierra clase
class alumno

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

9
Void alumno,,},
Static String nombre~new String,,,
Static int edad,
Static oid inicializar ,,
Alumno.nombre~`pepe el toro`,
Alumno.edad~18,},
Static oid desplegar,,
System.outprintln,alumno.nombre,,
System.outprintln,alumno.edad,,
},
} ,, termina la clase

Para indicar a JAVA` durante cualquier proceso que la ariable a utilizar es un campo de una
clase, se debera utilizar el siguiente ormato.

nomclase.nombredelcampo

1 11 1 1 11 1. .. . . .. . 3 33 3 3 33 3 C CC C C CC CA AA A A AA AM MM M M MM MP PP P P PP PO OO O O OO O L LL L L LL LL LL L L LL LA AA A A AA AV VV V V VV VE EE E E EE E

La asociacin entre un registro y su llae puede ser muy simple o compleja, en el caso simple la
llae esta contenida dentro del registro en algn sitio especiico a partir del comienzo del registro.

Llae interna o llae embebida, existe una tabla separada de llaes la cual incluye los punteros o
registros, estas llaes se denominan externas, es decir no existen dos registros que lleen la misma
llae.

< < Llae primaria: Por ejemplo si el archio esta almacenado como un arreglo, el ndice de un
elemento dentro del arreglo es una llae externa nica para ese elemento.

< < Llae secundaria: Por ejemplo en un archio de nombres y direcciones, si el estado o
departamento es usado como la llae para alguna bsqueda en particular, probablemente
esta no es la nica, puesto que puede existir mas de dos registros con el mismo estado en el
archio.


Algunos de los algoritmos asumen la presencia de llaes nicas como:

Cuando se adopta un algoritmo para una aplicacin en particular el programador debe saber si las
llaes son nicas y debe estar seguro que el algoritmo seleccionado sea el adecuado.


J J. . Algoritmo de bsqueda: Ls un algoritmo que acepta un argumento A` y trata de
encontrar un registro cuya llae es A` , Ln este caso, el algoritmo debe retornar un registro
nulo` o un puntero nulo` recuentemente si la bsqueda no tiene xito, puede ser mejor
adicionar un nueo registro con el argumento como llae, un algoritmo que hace esto se
llama algoritmo de bsqueda o insercin.


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

10
2 2. . Algoritmo de bsqueda de insercin: Ln algunos casos se desea insertar un registro con
una llae primaria KL\` en el archio sin haber buscado primero otro registro con la llae.
Lsta situacin puede presentarse si se ha determinado que no existe un registro con esa llae
en el archio.


1 11 1 1 11 1. .. . . .. . 4 44 4 4 44 4 C CC C C CC CL LL L L LL LA AA A A AA AS SS S S SS SI II I I II IF FF F F FF FI II I I II IC CC C C CC CA AA A A AA AC CC C C CC CI II I I II I N NN N N NN N D DD D D DD DE EE E E EE E L LL L L LL LO OO O O OO OS SS S S SS S A AA A A AA AR RR R R RR RC CC C C CC CH HH H H HH HI II I I II IV VV V V VV VO OO O O OO OS SS S S SS S

Los archios se clasiican en dos ormas:

A) Por su uncin

J J. . Archivo maestro: Representa una isin estatica de algn aspecto de los negocios de una
organizacin en un momento dado.

2 2. . Un archivo maestro: contiene datos relatiamente permanentes o datos de estados
histricos. Los cambios que han de ser aplicados al archio maestro, son recolectados en un
archio de transacciones.

3 3. . Archivo de transacciones: Puede contener datos para agregar un nueo registro o para
borrar o modiicar un registro existente en un archio maestro. Cada registro en un archio
de transacciones representa un eento o cambio de alguna cosa, cuyo estatus es registrado en
un archio maestro.

4 4. . Archivo de reporte: Contiene datos que pueden ser ormateados para su representacin al
usuario. Ll archio puede eniarse a la cola de impresin para ser impreso, o bien, puede
exhibirse en la pantalla de una terminal. Un paquete escritor de reportes o un programa de
aplicacin pueden producir un archio de reporte.

S S. . Archivo de trabajo: Ls un archio temporal en el sistema, no tiene las caractersticas de
entrada,salida de un archio de transacciones o de reporte, ni las de largo plazo del archio
maestro. Ll archio de trabajo se usa comnmente para pasar datos creados por un
programa a otro programa.

6 6. . Archivo de programa: Contiene instrucciones para procesar datos, los cuales pueden
almacenarse en otros archios o residir en la memoria principal. Las instrucciones pueden
estar escritas en un lenguaje de alto niel, lenguaje ensamblador, lenguaje maquina o lenguaje
de control de tareas. Las instrucciones pueden estar bajo la orma de un cdigo uente o
pueden ser el resultado de una compilacin, de un ligado, de una interpretacin o de otro
proceso.

7 7. . Archivo de texto: Contiene datos alanumricos y graico ingresados a tras de un
programa editor de textos. Se puede procesar un archio de texto solamente por ese editor
de texto, o se podra almacenar de tal orma que pueda procesarse por arios procesadores
de texto.


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

11
B) Por su orma de acceso

J J. . Archivo de entrada: Un programa solamente lee un archio de entrada. Un archio de
programa en cdigo uente es un archio de entrada para un programa compilador. Un
archio de transacciones es un archio de entrada a un programa de actualizacin. Archios
de entrada son tambin los archios de programa de coniguracin de aplicaciones ,win.in,
conig.sys, autoexec.bat,

2 2. . Archivo de salida: Ls el resultado que genero la escritura de un programa. Por ejemplo, un
archio de reporte puede ser la salida de un programa que actualiza un archio maestro. Un
archio de programa escrito en cdigo objeto es un archio de salida de un programa
compilador.

3 3. . Archivo de entrada/salida: Ls ledo y escrito durante la ejecucin de un programa. Un
archio de entrada,salida se podra crear por alguna ase de un programa, despus podra
modiicarse o leerse por otra ase del mismo programa.

Los archios organizados secuencialmente contienen un registro particular el ultimo que contiene
una marca in de archio ,detestable mediante las unciones LOl o bien lDA,lDl,. Lsta marca
in de archio suele ser un caracter especial como `, y se accede a ellos directamente mediante su
posicin, esta organizacin tiene la entaja de que se pueden leer y escribir registros en cualquier
orden y posicin. Son muy rapidos de acceso a la inormacin que contienen.

Las condiciones para que un archio sea de organizacin directa son:

< < Almacenamiento en un soporte direccionable.

< < Los registros deben contener un campo especiico denominado clae que identiica cada
registro de modo nico, es decir , dos registros distintos no pueden tener un mismo alor
de clae.

< < Lxistencia de una correspondencia entre los posibles alores de la clae y las direcciones
disponibles sobre el soporte.

1 11 1 1 11 1. .. . . .. . 5 55 5 5 55 5 O OO O O OO OP PP P P PP PE EE E E EE ER RR R R RR RA AA A A AA AC CC C C CC CI II I I II I N NN N N NN N C CC C C CC CO OO O O OO ON NN N N NN N A AA A A AA AR RR R R RR RC CC C C CC CH HH H H HH HI II I I II IV VV V V VV VO OO O O OO OS SS S S SS S

Las distintas operaciones que se pueden realizar son:

< < Creacin.

< < Consulta.

< < Actualizacin ,altas, bajas, modiicacin,

< < Clasiicacin.

< < Reorganizacin.

< < Destruccin ,borrado,

< < Reunin, usin.

< < Rotura, estallido.

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

12

Creacion De Un Archivo: La creacin exige organizacin, estructura, localizacin o resera de
espacio en el soporte de almacenamiento, transerencia del archio del soporte antiguo al nueo.

Consulta De Un Archivo: Ls la operacin que permite al usuario acceder al archio de datos para
conocer el contenido de uno, arios o todos los registros.

Actualizacion De Un Archivo: Ls la operacin que permite tener actualizado el archio, sea
posible realizar las siguientes operaciones con sus registros:

< < Consulta del contenido de un registro.

< < Insercin de un registro nueo en el archio.

< < Supresin de un registro existente.

< < Modiicacin de un registro.

La clasiicacin u ordenacin, esta clasiicacin se realizara de acuerdo con el alor de un campo
especiico.

Las operaciones sobre archios modiican la estructura inicial o la optima de aun archio. Los
ndices, enlaces modiican con el paso del tiempo, lo que hace a la operacin de acceso al registro
cada ez mas lenta.

La reorganizacin suele consistir en la copia de un nueo archio a partir del archio modiicado, a
in de obtener una nuea estructura la mas optima posible.

Destruccin de un archivo: Ls la operacin inersa a la creacin de un archio ,anula o borra,.

Reunin, fusin de un archivo: Lsta operacin permite obtener un archio a partir de otros
arios. lusin. se realiza una usin cuando se renen arios archios en uno solo, intercalandose
unos en otros, siguiendo unos criterios determinados.

Rotura / estallido de una archivo: Ls la operacin de obtener arios archios a partir de un
mismo archio inicial.

Gestin de archivos: Las operaciones mas usuales en los registros son:

< < Consulta: lectura del contenido de un registro.

< < Modiicacin: alterar la inormacin contenida en un registro.

< < Insercin: anadir un nueo registro al archio.

< < Borrado: suprimir un registro del archio.




E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

13
Los programas ejecutaran las siguientes clases de unciones:

< < Crear archios ,create,

< < Abrir o arrancar ,open, un archio que ue creado con anterioridad a la

< < Ljecucin de este programa.

< < Incrementar o ampliar el tamano del archio ,append, extend,.

< < Cerrar el archio despus de que el programa ha terminado de utilizarlo ,close,.

< < Borrar ,delete, un archio que ya existe.

< < 1ranserir datos desde ,leer, o a ,escribir, el dispositio disenado por el programa.

Para poder gestionar un archio mediante un programa es preciso declarar el archio, su nombre y
la estructura de sus registros.

Mantenimiento de archivos: La operacin de mantenimiento de un archio incluye todas las
operaciones que sure un archio durante su ida y desde su creacin hasta su eliminacin o
barrado.

Ll mantenimiento de un archio consta de dos operaciones dierentes:
< < Actualizacin.

< < Consulta.

La actualizacin, es la operacin de eliminar o modiicar los datos ya existentes.

Las operaciones de actualizacin son:
< < Altas

< < Bajas

< < Modiicaciones.

1odas las operaciones de mantenimiento de archios suelen constituir mdulos independientes del
programa principal y su diseno se realiza con subprogramas ,subrutinas o procedimientos
especicos,.

Altas: De alta en un archio consiste en la adicin de un nueo registro.

Bajas: Una baja es la accin de eliminar un registro de un archio. Una baja lgica supone el no
borrado del registro en el archio. Ln un determinado campo del registro con una bandera,
indicador o lag- caracter ,>,etc.

Modificaciones: Consiste en la operacin de cambiar total o parcialmente el contenido de uno de
sus registros.


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

14
Consultas: 1iene como in isualizar la inormacin contenida en el archio, bien de modo parcial.

1 11 1 1 11 1. .. . . .. . 6 66 6 6 66 6 D DD D D DD DI II I I II IS SS S S SS SP PP P P PP PO OO O O OO OS SS S S SS SI II I I II IT TT T T TT TI II I I II IV VV V V VV VO OO O O OO OS SS S S SS S D DD D D DD DE EE E E EE E A AA A A AA AL LL L L LL LM MM M M MM MA AA A A AA AC CC C C CC CE EE E E EE EN NN N N NN NA AA A A AA AM MM M M MM MI II I I II IE EE E E EE EN NN N N NN NT TT T T TT TO OO O O OO O

Ll almacenamiento de la computadora: Se puede clasiicar como sigue, de acuerdo con su jerarqua:
Memoria principal, memoria de paginas, base de datos y archios. Ll procesador central ejecuta las
instrucciones y procesa los datos almacenados en la memoria principal. La memoria de paginas se
usa para segmentos de programas temporalmente inactios que pasan a la memoria principal con
orme se an necesitando. Ll almacenamiento secundario se utiliza para la base de datos corriente
de la organizacin en tanto que los datos histricos se guardan en el archio.

La memoria principal de las computadoras actuales utiliza dispositios semiconductores
integrados a gran escala. Lstos dispositios reemplazaron a las memorias de ncleo magntico que
se usaron en las primeras computadoras.

Para el almacenamiento secundario se utilizan dos tipos de dispositios. La cinta magntica y los
dispositios de almacenamiento de acceso directo, tales como el minidisco ,disk,, el tambor y el
disco magntico. Los dispositios de almacenamiento de acceso directo tambin se usan en la
memoria de paginas, como las burbujas magnticas y los dispositios de carga acoplada, para lograr
menores tiempos de acceso.

CLASIIICACIN DLL ALMACLNAMILN1O LN LA COMPU1ADORA

1oda computadora tiene una unidad central de almacenamiento llamada generalmente memoria
principal ,o almacenamiento primario,. La memoria principal es el taller de la computadora, el lugar
donde se almacenan los datos y las instrucciones que son procesadas actiamente por la
computadora.

loy en da la memoria principal de la computadora se usa para diersas unciones.

J J) ) Sistema operativo: Controla la operacin de la computadora.

2 2) ) rea de entrada: lugar en el cual se almacenan los datos que se introducen en la
computadora.

3 3) ) Programa de aplicacin: rea en la que reside el programa del usuario.

4 4) ) Almacenamiento de trabajo: rea para calculos y almacenamiento temporal de datos.


M ME EM MO OR RI IA A P PR RI IN NC CI IP PA AL L

Jerarqua de almacenamiento de la computadora

Memoria principal: Se utiliza para almacenar programas o segmentos de ellos que la
computadora ejecuta constantemente as como los datos procesados por esos programas.


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

15
Memoria de pginas: Se utiliza primordialmente para almacenar segmentos de programas que la
computadora no ejecuta constantemente, pero que quiza seran solicitados por la unidad central de
procesamiento en un periodo bree.

Bases de datos: Se utilizan para almacenar las bases de datos corrientes a los archios de datos
usados pos la organizacin.

Archivo: Se utiliza para almacenar datos.

Consideremos algunos aspectos importantes pero sencillos para manejar el buer o
almacenamiento temporal, comenzaremos con el uso del buer y despus consideraremos el caso
de mltiples de ellos

A AL LM MA AC CE EN NA AM MI IE EN NT TO O T TE EM MP PO OR RA AL L U UN NI IC CO O P PO OR R D DE EM MA AN ND DA A ( (B BU UF FF FE ER R) )

La siguiente igura muestra la estructura de datos de un almacenamiento temporal en un sistema
simple, en el cual existe un registro por bloque y un almacenamiento por archio, donde el
almacenamiento temporal es llenado por demanda del programa. La estructura del buer incluye un
apuntador a la direccin del inicio del programa de canal, para la operacin actual del archio.

La estructura basica del programa de canal para llenar este buer es:

< < Lsperar por una solicitud de lectura del programa

< < Lmitir un comando de inicio de L,S a la unidad de control

< < Lsperar mientras el buer se llena

< < Lmitir una interrupcin al programa para que este empiece a leer el buer

A AL LM MA AC CE EN NA AM MI IE EN NT TO O T TE EM MP PO OR RA AL L P PO OR R A AN NT TI IC CI IP PA AC CI I N N ( (B BU UF FF FE ER R) )

Una orma alternatia que elimina algunos de estos problemas de espera, es el uso del buer por
anticipacin, tambin conocida como preconsecucin, aqu el sistema de archio intenta anticiparse
a necesidades de datos del programa. 1rata de conserar al buer siempre lleno de tal manera que
los datos ah cuando el programa emita su instruccin de lectura, el objetio es que la CPU tenga
que esperar.

Aplicar un buer de anticipacin requiere de una ligera modiicacin a la estructura de datos del
buer que incluya una bandera que indique s el buer esta lleno o no. Ll buer se aca por que el
programa ha ledo su contenido, la bandera es restablecida y el programa de canal reinicia el llenado
del buer.

Donde bandera:
< < 0 si el buer esta aco

< < 1 si el buer esta lleno


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

16
Nuestras rutinas de llenado y aciado de buers se presentan en pares: uno de los pares representa
un productor u otro consumidor, para un archio de entrada el productor es el programa de canal y
el consumidor es el programa usuario, para un archio de salida el productor es el programa usuario
y el consumidor es el programa de canal.

A AL LM MA AC CE EN NA AM MI IE EN NT TO O T TE EM MP PO OR RA AL L S SI IN N B BL LO OQ QU UE ES S ( (B BU UF FF FE ER R) )

Las rutinas de produccin,consumo deben ser cambiadas para relejar el hecho de que solamente
cada n-sima lectura hecha por el programa usuario causa un acceso a dispositio, la estructura del
buer necesita ser ligeramente modiicada para incluir un contador o apuntador que registre cual
registro de n registros en el buer debera ser el siguiente a leerse en las areas de trabajo del
programa usuario.

Donde:
< < 0 si el buer esta aco

< < 1 si el buer esta lleno

Contador de registro 1......n

La rutina de consumo del programa esta en estado de espera entre las lecturas pero el programa
mismo puede estar ejecutando otras instrucciones, mientras el buer esta en estado de ser aciado
por un consumidor no puede ser llenado por un productor.

D DO OB BL LE E A AL LM MA AC CE EN NA AM MI IE EN NT TO O T TE EM MP PO OR RA AL L ( (B BU UF FF FE ER R) )

Para reducir la probabilidad de que el programa espere, normalmente se le asignan al archio dos
buers, la idea basica de usar dos buers es que mientras el consumidor este aciando uno de los
buers, el productor pueda llenar el otro buer cuando el primer buer este aci el segundo
buer este lleno.

Donde:
< < 0 si el buer esta aci

< < 1 si el buer esta lleno

Contador de registro 1....... n

La estructura del buer para usar dos buers ahora incluye un apuntador al siguiente buer, ahora
estamos preparados para considerar dos rutinas por anticipacin para consumidores y productores,
para ello necesitamos dos apuntadores:

< < P-llenar, el cual apunta al siguiente buer que esta llenandose o que debe llenarse

< < P-aciar, el cual apunta al siguiente buer que esta aciandose o que debe aciarse

Ll productor llena al buer apuntado por p-llenar el cual inicialmente debera apuntar al buer 1,
inicialmente las banderas deben estar en 0 puesto que ambos estan acos.

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

17

Ll consumidor aca el buer que se encuentra senalado por p-aco el cual inicialmente debe estar
apuntado al buer 1.

T TR RI IP PL LE E A AL LM MA AC CE EN NA AM MI IE EN NT TO O T TE EM MP PO OR RA AL L ( (B BU UF FF FE ER R) )

Lsta orma supone que s algn buer esta aci el productor puede llenarlo, la igura muestra un
sistema de tres buers.

La situacin ilustrada es la siguiente:
< < Ll buer 1 esta lleno

< < Ll buer 2 esta siendo llenado

< < Ll buer 3 esta siendo aciado, el m-esimo registro en el buer sera ledo a continuacin
dentro del area de trabajo del registro

< < Ll siguiente buer que se aciara es el buer 1

< < Ll siguiente buer que se llenara es el buer 3

Si el productor consistentemente llena los buers mas lentamente que el consumidor los esta
aciando, el consumidor tendra que esperar. La utilizacin de mltiples buers puede ser eectia
para atenuar los resultados de los requerimientos disparejos del programa del usuario.

La entaja de tener mas de un buer es el potencial para traslapar las operaciones de llenado y
aciado por lo tanto reduciendo el tiempo de espera del CPU, el costo de muchos buers es el
incremento de complejidad y el tiempo de procesamiento de las rutinas del productor y consumidor
ademas del incremento en los requerimientos de memoria principal.



















E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

18



















. Orgaviaciv , roce.o ae arcbiro.

2.1 Secuencial
2.2 Directa o relatia
2.3 Secuencial indexada
2.4 Indexada
2.5 Multilistas encadenadas












U U N N I I D D A A D D I II I


T TT T T TT T E EE E E EE E M MM M M MM M A AA A A AA A R RR R R RR R I II I I II I O OO O O OO O


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

19
I I N N T T R R O O D D U U C C C C I I N N


La organizacin de un archio deine la orma en la que los registros se disponen sobre el soporte
de almacenamiento o la orma en que se estructuran los datos de un archio.

Organizacin Secuencial
Organizacin Directa o Aleatoria
Organizacin Secuencial Indexada
Organizacin Multilista

Organizacin Secuencial: Ls una sucesin de registros almacenados consecutiamente sobre el
soporte externo de tal modo que para acceder a un registro N dado es obligatorio pasar por todos
los que le preceden.

Organizacin Directa : Un archio esta organizado en modo directo cuando el orden
sico no corresponde con el orden lgico. La orma de acceder a estos archios es de
manera directa mediante una posicin.

Organizacin Secuencial Indexada : Un diccionario es un ejemplo tpico de un archio secuencial
indexado, ya que podemos acceder a cada uno de ellos de orma directa ya que el archio se
encuentra ordenado de acuerdo a un orden en especiico, ya sea por orden alabtico, o si se estan
usando nmeros de manera ascendente.

Organizacin Multilista: Un archio Multilista mantiene un ndice para cada llae secundaria. Lxiste
una entrada en el ndice de llae secundaria para cada alor que, la llae secundaria, tiene en este
momento en el archio de datos. Luego hay una lista ligada de registros de datos para cada alor de
la llae secundaria. Los encadenamientos en Multilistas normalmente son bidireccionables y
ocasionalmente son circulares, para mejorar la eiciencia de actualizacin.







E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

20

|viaaa . Orgaviaciv , roce.o ae arcbiro.

La organizacin de archios se reiere a la orma como se acomodan los registros de un archio en
almacenamiento secundario. La administracin de datos controla el acceso a conjuntos de datos
,archios, en dispositios de L,S. Lsto incluye el empleo de buer, la planiicacin de
operaciones de L,S y la ejecucin de dichas operaciones. Los archios se organizan lgicamente
como secuencias de registros. Lstos registros se corresponden con los bloques del disco.

2 22 2 2 22 2. .. . . .. . 1 11 1 1 11 1 A AA A A AA AR RR R R RR RC CC C C CC CH HH H H HH HI II I I II IV VV V V VV VO OO O O OO OS SS S S SS S S SS S S SS SE EE E E EE EC CC C C CC CU UU U U UU UE EE E E EE EN NN N N NN NC CC C C CC CI II I I II IA AA A A AA AL LL L L LL LE EE E E EE ES SS S S SS S

Ln un archio organizado secuencialment los registros quedan grabados consecutiamente
cuando el archio se crea y cuando se lee se accesa de esa misma orma.

Ln la mayora de los casos los registros de un archio secuencial quedan ordenados de acuerdo con
el alor de algn campo de cada registro, ese ordenamiento se conoce como llae de ordenamiento.

Ordenacin de registros: Ln algunos casos se recomienda tener 2 o mas archios que contengan la
misma inormacin pero en distinta orma de ordenacin, aunque estos solo sean temporales.

;evto: el directorio telenico de clientes de x` empresa se puede tener ordenado ese archio
por zonas o por direcciones, el nmero de pedidos, el nombre de sus negocios, esto se hace de
acuerdo a la necesidad que se presente en la empresa.

Procesamiento: Los archios secunciales se utilizan con mayor recuencia en procesamientos por
lotes que en procesamientos interactios.

;evto: Los datos de un archio de clientes ,Nombre, Direccin, 1elono, etc,, para notiicarle
que los productos que nos estan comprando cambiaron de precio.

Ll archio de nomina de personal puede generarse procesos de pago ya sea semanales, quincenales
o mensuales.

Ventajas: Su capacidad para accesar a un registro rapidamente, son muy sencillos de usar y aplicar.
Permite aproechar eicientemente el espacio, sus registros pueden ser de longitud ija o ariable, su
procesamiento es acil.

Inconenientes: La localizacin de un determinado registro no se puede hacer indiidualmente ni
rapidamente. Ll archio a causa de las inserciones y supresiones tiene que ser reescrito
peridicamente.







E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

21
Almacenamiento: Lxisten 2 clases de dispositios de almacenamiento secundario:

< Dispositio de acceso serial: Ll tiempo de acceso requerido para accesar 2 registros
esta en uncin del espacio entre sus localidades , Direcciones, en el dispositio, y toma
mas tiempo si estan muy separados.


< Dispositio de acceso directo: Aqu el acceso puede ser mas rapido aunque este
lejano el punto de inicio.

Los archios secunciales pueden almacenarse en dispositios de acceso serial y directo.

Las cintas magnticas se han conertido en un medio importante de almacenamiento para grandes
olmenes de inormacin contenida en archios maestros y para respaldo de archios diersos. La
declaracin de un archio secuencial se debe de hacer por medio de estructuras.

Recuperacin de inormacin: Se recupera por orden consecutio, es decir, el orden en el cual
ueron graados en el archio determina el orden en el cual los registros pueden recuperarse.

Actualizacin: Actualizacin por lotes. La recuencia con la cual un archio maestro debe ser
actualizado depende de arios actores:

< Velocidad de cambio de datos.

< 1amano de archio maestro.

< 1ener datos actualizados urgentes.

< Numero de registros del archio.

1ipos de actualizacin:

< Insercin de un nueo registro.

< Supresin de un registro existente.

< Modiicacin de un registro existente.

Cdigo Numero de
empleado
Nombre Domicilio Departamento 1elefono

1

1251

Vctor lugo

1lalnepantla

14589

53548

Ll cdigo de transaccin y el alor de la llae son necesarios.

Supresin: Lspeciicar solo la llae del registro maestro.
Modiicacin: Ll alor de la llae y los campos a modiicar.

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

22

Operaciones con archios secuenciales en `JAVA`

Lxisten ademas muchas operaciones asociadas a archios, las mas elementales son:
J J. . Creacin de Archio: Ln este proceso se pretende solamente crear un archio nueo en
disco, con su nombre, tipo y especialidad de almacenamiento de datos apropiado.
2 2. . Apertura de Archivos: En este caso se pretende abrir un archivo ya existente en disco
para procesarlo, ya sea cargar o grabar datos en sus registros, o leer algun registro en
especial para mandarlo a una variable de cualquier tipo. No conIundir creacion con
apertura, creacion es un proceso que solo se ejecuta una sola vez en la vida de un archivo,
mientras que apertura, siempre se esta realizando por los programas especializados en
algun proceso.
3 3. . Cierre de archios: Ls la operacin mas importante en cualquier programa que maneje
archios, o se cierra el archio como ultima instruccin del programa.

4 4. . Altas en archio: Ln este proceso se carga una clase en memoria con sus datos pertinentes y
se graba la clase en el archio en disco.
S S. . Lectura de archio: Ln este proceso, se abre el archio y se manda el registro de disco, a una
clase en memoria para su procesamiento.
6 6. . Consulta de archios: Ln este proceso se pretende desplegar todos los registros del archio
en disco a la pantalla, ya sea consola o mejor an.
7 7. . Bsqueda en archios: Una de las operaciones mas comunes, consiste en que el usuario pide
toda la inormacin de algn rengln en disco, proporcionando la inormacin de algn
campo, generalmente el campo clae de la clase.
8 8. . liltros: Ln este proceso el usuario esta interesado en algn conjunto de renglones con
caractersticas comunes ,condicin,, por ejemplo todos los alumnos de "sistemas", o todos
los empleados que ganen mas de >500.00 pesos, o todos los clientes que sean de "1ijuana",
etc.
9 9. . Modiicaciones de registros o archios: Problema muy comn, donde los datos originales ya
grabados se tienen que cambiar o actualizar. Ejemplo: Ll nombre no era "juan" es "juana",
o la caliicacin no es 10 es 100, etc.
J J0 0. . Bajas de registros: Tambien es muy comun este proceso. Ejemplo: El alumno ya egreso,
el cliente huyo.



E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

23


2 22 2 2 22 2. .. . . .. . 2 22 2 2 22 2 O OO O O OO OR RR R R RR RG GG G G GG GA AA A A AA AN NN N N NN NI II I I II IZ ZZ Z Z ZZ ZA AA A A AA AC CC C C CC CI II I I II I N NN N N NN N D DD D D DD DI II I I II IE EE E E EE ER RR R R RR RC CC C C CC CT TT T T TT TA AA A A AA A O OO O O OO O R RR R R RR RE EE E E EE EL LL L L LL LA AA A A AA AT TT T T TT TI II I I II IV VV V V VV VA AA A A AA A

Una orma eectia de reorganizar un archio cuando existe la necesidad de accesar indiidualmente
registros directamente es la organizacin directa o tambin llamada relatia.

La organizacin directa es cuando en un archio se puede acceder directamente a la posicin
deseada sin necesidad de acceder a las posiciones que le preceden como en el caso de la
organizacin secuencial.

Ln un archio directo existe una relacin precedible entre la llae usada para identiicar un registro
e particular y la localizacin del registro dentro de un archio.

Ls importante senalar que el ordenamiento lgico de los registros no necesita tener una relacin
con su secuencia sica, es decir los registros no necesariamente aparecen sicamente ordenados de
acuerdo con el alor de sus llaes.

Cuando un archio directo se establece debe deinirse una relacin que sera utilizada para obtener
de un alor de la llae a una direccin sica esta uncin es llamada MAPLO representada con la
letra R.

La uncin de mapeo R se usa para traducir el alor de llae del registro a una direccin donde
debera almacenarse el registro, cuando es necesario recuperar el registro con un alor de llae la
uncin R es aplicada a ese alor de la llae traducindolo a una direccin donde se encuentra el
registro. Los archios directos pueden ser almacenados en memoria principal o en dispositios de
almacenamiento secundario.


Ventajas: La principal entaja de un archio relatio es la habilidad para accesar registros
indiiduales directamente. Un registro puede ser insertado, recuperado, modiicado o hasta
borrado sin aectar a otros registros en el archio.

Uso de archios: Los archios relatios se utilizan con tanta recuencia que muchos lenguajes de
programacin manejan su declaracin, creacin, actualizacin y recuperacin.

Ls responsabilidad del programador ejecutar la transormacin de la llae a una direccin este
mapeo no es automaticamente hecho por el sistema, ademas este tiene que resoler cualquier
colisin que pueda ocurrir.

Declaracin de un archio: Cuando un archio se declara en un programa la inormacin que
necesita debe incluir:
< Nombre del archio
< Lspeciicacin del dispositio sico sobre el cual reside el archio
< La organizacin relatia
< Identiicacin de la ariable que contiene las direcciones relatias para los registros

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

24

Recuperacin: Muchos compiladores manejan el posicionamiento directo del archio relatio en un
punto y el acceso a la lectura secuencial a partir de ese punto.

Los archios relatios se accesan en modo directo la llae que identiica a un registro
para un usuario es traducida por un programa de aplicacin a una direccin relatia,
el programa lee en esa direccin el registro correspondiente, si no hay registro en esa
localidad entonces el registro objetio no existe en caso contrario el programa
eriica si tiene alor de llae, si es as se entrega el registro al usuario.

Actualizacin: Un archio relatio es casi siempre actualizado en modo directo, el
programa usa un algoritmo d recuperacin directa para localizar el registro solicitado,
hace las modiicaciones especiicadas, despus rescribe el registro solicitado en el
punto donde lo encontr.

2.3 ORGANIZACIN SECUENCIAL INDEXADA 2.3 ORGANIZACIN SECUENCIAL INDEXADA 2.3 ORGANIZACIN SECUENCIAL INDEXADA 2.3 ORGANIZACIN SECUENCIAL INDEXADA
Una manera acil y eectia de accesar a un registro de manera Secuencial o de un registro exclusio
es mediante un archio secuencial indexado.
Con el manejo de estos archios podemos accesar a u registro exclusio, para esto es necesario ijar
un campo llae, por el cual se ordena el registros, posteriormente se utiliza una de estas dos tcnicas
,Lstructura de arboles y Lsquema sico de ndices,, para poder hacer cualquier operacin con
dicho archio. Los ndices apoyan las aplicaciones que accesan selectiamente registros indiiduales,
en lugar de buscar a tras de todo el contenido del archio de manera secuencial. Un campo ,o
grupo de campos, es utilizado como campo ndice.

Lsquema sico de ndices: Otra tcnica para la lectura , escritura, modiicacin y supresin de un
registro es a partir de registros sicos o ndices . Si se tiene un archio secuencial Ordenado que
contiene 50 elementos, para hacer la transormacin a un archio secuencial indexado se realiza lo
siguiente:
< Se subdiide el archio en n elementos

< Para hacer cualquier operacin de archios ,excluyendo mantenimiento, de un registro
especico se a a buscar al inicio de cada bloque para encontrar su direccin
correspondiente.

< Cuando se realiza la supresin de un registro, tambin se actualizan los ndices.

Una manera eectia de organizar una coleccin de registros, es cuando existe la necesidad tanto de
acceder los registros secuncialmente, por algn alor de la llae, como de accesar a ellos
indiidualmente, con esa misma llae, es la organizacin de archios secuenciales indexados. Lste
proporciona la combinacin de tipos de acceso que manejan un archio secuencial y un archio
relatio.

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

25
Lxisten algunos mtodos para estructurar las porciones tanto de ndices como de datos
secuenciales, de un archio secuencial indexado. Ll mtodo mas comn es construir un ndice
como un arbol de alores de llae. Ll arbol es normalmente una ariante del arbol-B.
Ejemplo: La agencia de administracin de las tarjetas de crdito tambin quiere utilizar el archio
maestro de inormacin de cuentas para soportar consultas interactias sobre el estado actual del
crdito de cualquier cuenta. Cuando un cliente hace una compra, el archio maestro cera consultado
para determinar el limite del cerdito y depuse actualizar el resto del crdito disponible.

2 22 2 2 22 2. .. . . .. . 4 44 4 4 44 4 I II I I II In nn n n nn nd dd d d dd de ee e e ee ex xx x x xx xa aa a a aa ad dd d d dd do oo o o oo o

La organizacin de un archio de registros clasiicados de acuerdo con los alores de un campo
clae se conoce como archios indexados.

Para acilitar las bsquedas se utiliza una tabla de ndices, que a su ez estara grabada en un segundo
archio, llamado ndice disperso o simplemente archio de ndices

Ll archio de ndices consta de pares ,CI,r, donde CI es un alor del campo clae elegido y r es la
direccin sica del registro que tiene dicha clae.

La tabla de ndices se mantiene ordenada respecto al campo clae.

Ln un libro, en un listn telenico..., las bsquedas se realizan situandose primero en el ndice en el
que estn en orden alabtico las palabras, o bien los nombres, asociados con el nmero de pagina
en que se encuentra. Lse es tambin el undamento de la organizacin de los archios indexados.

Operaciones: Son todas las operaciones generales como:

< Anadir un registro
< Recorrer el archio
< Consulta de un registro
< Lliminar.

Ademas hay que incorporar las operaciones sobre tablas para el manejo de la tabla de ndices.

Ln la unidad de ndices se encapsula la representacin de los datos y las operaciones.


La organizacin indexada de un archio utiliza una organizacin secuencial para almacenar registros
creados indexados que los alistan por su key ield e identiica la direccin de memoria donde se
guardo. Los registros pueden ser accesados secuencial mente o a trabes de un ndice.
Los archios secunciales indexados retienen la limitacin del archio secuencial, eicacia en el
procesamiento se limita al basado en un nico campo del archio. Cuando es necesario buscar un
registro basandose en algn otro atributo distinto del campo clae ambas ormas de archio
secuencial no son adecuadas. Ln algunas aplicaciones esta lexibilidad es deseable. Para alcanzar
esta lexibilidad, se necesita una estructura que utilice mltiples ndices, uno para cada tipo se
campo que pueda ser objetio de la bsqueda.

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

26
Se suelen utilizar dos tipos de ndices.

< ndice exhaustio: Contiene una entrada para cada registro del archio principal

< ndice parcial: Contendra entradas a los registros donde este el campo de inters.

Con registros de longitud ariables, algunos registros no contendran todos los campos.

Ventajas: Proee un acceso mas rapido que la organizacin secuencial.

Desentajas: Ll tiempo que toma encontrar registros a trabes de la bsqueda indexada hace mas
lento la organizacin secuencial indexada

Utilidad: Necesita un medio de acceso. Los archios indexados son muy utilizados en aplicaciones
donde es critica la oportunidad de la inormacin y donde los datos son ara ez procesados de
orma exhaustia.

2 22 2 2 22 2. .. . . .. . 5 55 5 5 55 5 M MM M M MM MU UU U U UU UL LL L L LL LT TT T T TT TI II I I II IL LL L L LL LI II I I II IS SS S S SS ST TT T T TT TA AA A A AA AS SS S S SS S E EE E E EE EN NN N N NN NC CC C C CC CA AA A A AA AD DD D D DD DE EE E E EE EN NN N N NN NA AA A A AA AD DD D D DD DA AA A A AA AS SS S S SS S

Su implantacin es mas sencilla que la de un archio inerso porque sus registros ndice son de
longitud ija en ez de ariable. Sin embargo, un archio multilista es menos eicaz que un archio
inerso para las recuperaciones. Basicamente, una estructura multilista consiste en diersas listas
enlazadas entre si.

Lstructura de listas enlazadas: Una estructura de listas enlazadas consiste en una lista de registros o
datos ligados entre si por medio de senaladores. Los registros estan aleatoriamente dispersos en una
unidad de almacenamiento. ya que el sistema guardara registros en cualquier espacio libre, su
secuencia lgica se mantiene por medio de senaladores.

Lsto contrasta con lo que sucede en archio secuencial, en el cual la secuencia lineal lgica coincide
con la contigidad sica de los registros.

Una lista enlazada es una estructura practica para el mantenimiento de la secuencia lgica de un
archio en el que se eectan recuentes operaciones de actualizacin. La insercin y eliminacin se
llea a cabo sin necesidad de reorganizar el archio.

Acceso: Lxisten numerosas tcnicas, que han sido utilizadas para implantar archios en las
multilistas, la mayora de estos mtodos estan basados en la construccin de ndices para
proporcionar acceso directo mediante el alor de las llaes. Lxisten dos mtodos para proporcionar
trayectorias de acceso adicional hacia los archios de registros de datos:

< La inersin

< La organizacin multilista.

Muchos compiladores de lenguajes de programacin no proporcionan capacidades preconstruidas
para manejar archios de multilistas. Mas bien, una agrupacin de procesamiento de datos

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

27
normalmente adquiere un paquete de manejo de datos. Lntonces, los compiladores del lenguaje
pueden establecer una interase directa con este manejo de archios, o pueden generar llamadas a
estas rutinas de manejo.


Organizacin: Su implantacin es mas sencilla que la de un archio inerso porque sus registros
ndice son de longitud ija en ez de ariable. Sin embargo, un archio multilista es menos eicaz
que un archio inerso para las recuperaciones. Basicamente, una estructura multilista consiste en
diersas listas enlazadas entre si.







































E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

28


U UU U U UU U N NN N N NN N I II I I II I D DD D D DD D A AA A A AA A D DD D D DD D I II II I



O OO O O OO OR RR R R RR RG GG G G GG GA AA A A AA AN NN N N NN NI II I I II IZ ZZ Z Z ZZ ZA AA A A AA AC CC C C CC CI II I I II I N NN N N NN N Y YY Y Y YY Y P PP P P PP PR RR R R RR RO OO O O OO OC CC C C CC CE EE E E EE ES SS S S SS SO OO O O OO O D DD D D DD DE EE E E EE E A AA A A AA AR RR R R RR RC CC C C CC CH HH H H HH HI II I I II IV VV V V VV VO OO O O OO OS SS S S SS S H HH H H HH H B BB B B BB BR RR R R RR RI II I I II ID DD D D DD DO OO O O OO OS SS S S SS S







T T E E M M A A R R I I O O













. Orgaviaciv , roce.o ae arcbiro. bbriao.

3.1 Multinieles de ndices
3.2 Lstructuras de arbol
3.3 Mtodos basados en el acceso directo
3.4 Almacenamientos irtuales ,VSAM,











E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

29

I N 1 R O D U C C I N


Uno de los problemas que surgen en el mantenimiento de indices en archivos de gran
tamao, difiere en el espacio de memoria que requieren para mantenerlos en memoria
principal, y lograr un nivel de eficiencia optima. Una solucin para este problema se
obtiene fragmentando el indice en mltiples niveles como lo es una estructura de rbol.

Las tecnicas ms conocidas son:

< < ISAM (Index Sequential Access Meted).


< < VSAM (Virtual Storage Access Method)

U Un diagrama de estructura de arbol es la representacion de un esquema de la base de datos
jerarquica, de ahi el nombre, ya que un arbol esta desarrollado precisamente en orden
descendente Iormando una estructura jerarquica.
Lste tipo de diagrama esta ormado por dos componentes basicos:
< < Rectangulos: que representan a los de registros.
< < Lneas: que representan a los enlaces o ligas entre los registros.
Un diagrama de arbol tiene el propsito de especiicar la estructura global de la base de datos.

Ll objetio de los mtodos de acceso directo es permitir que los programas acceden registros,
utilizando el menor de transerencia de disco y, por lo tanto, el numero de reerencias de ndice.

< Mtodos de acceso lash

< 1cnicas de ndices

< Mtodo de acceso secuencial indexado

1ambin mencionaremos el almacenamiento irtual y los tipos de dispositios de Lntrada , Salida.









E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

30
3 3. .1 1 M MU UL LT TI IN NI IV VE EL LE ES S D DE E I IN ND DI IC CE ES S

Para archios de gran tamano el inconeniente para mantenimiento de ndices se presenta en el
tamano que estos ocupan y por consiguiente la cantidad de memoria requerida para mantenerlos en
esa zona ,memoria principal, y lograr as un niel de eiciencia optimo. La solucin a este
inconeniente se obtiene ragmentando el ndice en mltiples nieles en una estructura arbolada.

Las tcnicas mas conocidas son:

< < ISAM Index Sequential Access Method: Ls un modelo que se relaciona ntimamente al
hardware de almacenamiento puesto que se disena de acuerdo a la estructura de los nieles del
medio sico como los cilindros, pistas y sectores. Cada niel contiene en el primer subniel un
ndice de los restantes subnieles, ocasionalmente se reseran los ltimos elementos de este
niel como area de desborde. Ll area principal de almacenamiento se encuentra entre el ndice y
el area de desborde. Una cualidad de ISAM es su alta elocidad de uncionamiento, su principal
desentaja es la escasa transportabilidad, es decir solo opera para un hardware determinado.


< < VSAM Virtual Storage Access Method: Consiste en mantener en memoria principal un ndice
maestro, el cual contiene los interalos iniciales de las llaes y las reerencias ,ligas, hacia los
archios que contienen subinteralos mas especicos de las llaes.Cuando se determina el
archio que sera cargado en memoria, este se consulta para obtener un interalo mas especiico
y se carga el siguiente archio en las mismas localidades de memoria, es decir, se sobre escribe
en el ndice preio en la memoria. Lste proceso se repite hasta alcanzar el ultimo niel el cual
contendra la direccin lgica del dato buscado en el archio principal.


3 33 3 3 33 3. .. . . .. . 2 22 2 2 22 2 E EE E E EE ES SS S S SS ST TT T T TT TR RR R R RR RU UU U U UU UC CC C C CC CT TT T T TT TU UU U U UU UR RR R R RR RA AA A A AA A D DD D D DD DE EE E E EE E A AA A A AA AR RR R R RR RB BB B B BB BO OO O O OO OL LL L L LL L

Un diagrama de estructura de arbol es la representacin de un esquema de la base de datos
jerarquica, de ah el nombre, ya que un arbol esta desarrollado precisamente en orden descendente
ormando una estructura jerarquica.
Lste tipo de diagrama esta ormado por dos componentes basicos:
< < Rectangulos: que representan a los de registros.
< < Lneas: que representan a los enlaces o ligas entre los registros.
Un diagrama de arbol tiene el propsito de especiicar la estructura global de la base de datos. Un
diagrama de estructura de arbol es similar a un diagrama de estructura de datos en el modelo de red.
La principal dierencia es que en el modelo de red los registros se organizan en orma de un grao
arbitrario, mientras que en modelo de estructura de arbol los registros se organizan en orma de un
arbol con raz.





E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

31
Caractersticas de las estructuras de arbol:
< < Ll arbol no puede contener ciclos.
< < Las relaciones que existen en la estructura deben ser de tal orma que solo existan
relaciones muchos a uno o uno a uno entre un padre y un hijo.



Diagrama de estructura de rbol

Ln este diagrama podemos obserar que las lechas estan apuntando de padres a hijos. Un padre
,origen de una rama, puede tener una lecha apuntando a un hijo, pero un hijo siempre puede tener
una lecha apuntando a su padre.

Ll esquema de una base de datos se representa como una coleccin de diagramas de estructura de
arbol. Para cada diagrama existe una nica instancia de arbol de base de datos. La raz de este arbol
es un nodo icticio. Los hijos de ese nodo son instancias de los registros de la base de datos. Cada
una de las instancias que son hijos pueden tener a su ez, arias instancias de arios registros.

Las representaciones segn las cardinalidades son:

Consideremos la relacin alumno-materia sin atributo descriptio.



La transormacin segn las cardinalidades serian:
< < Cuando la relacin es uno a uno.







E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

32
< < Cuando la relacin es uno a muchos.


< < Cuando la relacin es muchos a uno.



< < Cuando la relacin es muchos a muchos.




Cuando la relacin tiene atributos descriptios, la transormacin de un diagrama L-R a estructura
de arbol se llea a cabo cubriendo los siguientes pasos:
J J) ) Crear un nueo tipo de registro.
2 2) ) Crear los enlaces correspondientes.

Consideremos que a la relacin Alumno-Materia anadimos el atributo Cal a la relacin que existe
entre ambas, entonces nuestro modelo L-R resulta:
Anadir el diagrama L-R







E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

33

Segn las cardinalidades los diagramas de estructura de arbol pueden quedar de la siguiente manera:

< < Cuando la relacin es uno a uno.



< < Cuando la relacin es uno a muchos



< < Cuando la relacin es Muchos a uno.



< < Cuando la relacin es Muchos a Muchos.

Si la relacin son muchos a muchos entonces la transormacin a diagramas de arbol es un poco
mas compleja debido a que el modelo jerarquico solo se pueden representar las relaciones uno a
uno o uno a muchos.

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

34

Lxisten arias ormas distintas de transormar este tipo de relaciones a estructura de arbol, sin
embargo todas las ormas constituyen la repeticin de algunos registros. La decisin de qu
mtodo de transormacin debe utilizarse depende de muchos actores, entre los que se incluyen:


< < Ll tipo de consultas esperadas en la base de datos.

< < Ll grado al que el esquema global de base de datos que se esta modelando se ajusta al
diagrama L-R dado.

A continuacin se describe la orma de transormar un diagrama L-R a estructura de arbol con
relaciones muchos a muchos. Suponemos el ejemplo de la relacin alumno-materia.

J J) ) Crear dos diagramas de estructura de arbol distintos 11 y 12, cada uno de los cuales incluye
los tipos de registro alumno y materia, en el arbol 11 la raz es alumno y en 12 la raz es
materia.

2 2) ) Crear los siguientes enlaces:

< < Un enlace muchos a uno del registro cuenta al registro Alumno, en 11
< < Un enlace muchos a uno del tipo de registro cliente al tipo de registro materia en
12. Como se muestra en el siguiente diagrama:




Clasificacin de nodos por tamao
A un nodo que le derian un conjunto de nodos Lineales, se le conoce como nodo Unitario esto es,
porque solo tiene una sola salida. A un nodo que le subdiiden 2 nodos y estos a su ez
nueamente 2 nodos, y as sucesiamente se les conoce como nodos binarios.

Cuando un Nodo lijo, tiene mas elementos, es decir en alguna subdiisin existen mas
subdiisiones que en la del otro extremo, se dice que este no esta balanceado.

Cuando el nmero de subdiisiones es igual en ambos extremos se dice que este esta balanceado.


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

35
Para un arbol que tiene 3 subdiisiones y este a su ez tienen el mismo numero de subdiisiones, se
dice que este es un arbol ternario. Para un arbol con n-salidas para todos sus nieles o
subdiisiones se les llamara de acuerdo al numero salidas, mas la palabra ario n-ario.
Se dice que los nodos de un arbol estan en nieles, donde el niel de los nodos se determina por la
longitud de la trayectoria desde la raz hasta dicho nodo.
Ljemplo:
NIVLL O~ A NIVLL 2~ L,l,G,l,I,J.

NIVLL 1~ B,C,D. NIVLL 3~ K,L.

Ll grado externo de cada nodo se mide por el numero de subdiisiones que tiene dicho nodo.
Para el nodo L su grado externo es de 2, y para el nodo B su grado externo es de 1.

Para un nodo con grado externo 0 se dice que son hojas de un arbol.
L, K,L,l,I,J.

Lstructuras de arbol B -: Ls una de las tcnicas mas populares para instrumentar esta organizacin.
Ll arbol B- consta de dos partes: la parte ndice que consta de los nodos interiores y el conjunto
secuencia que consta de las hojas del arbol.

La parte ndice se usa para direccionar la posicin de algn registro en particular, mientras que el
acceder secuencialmente a las hojas ,conjunto secuencia, puede tener acceso a todo el archio en
general.

Ahora bien los alores de la llae dentro del ndice solo existen con el propsito de dirigir el acceso
al conjunto secuencia.

Ahora se muestra el esquema de un arbol B-


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

36
La composicin de una hoja es la siguiente:



Un nodo puede utilizar desde 2 hasta n ligas, mas no podemos manejar una sola, esto quiere decir
que si un nodo maneja tres ligas podemos inhabilitar solo una.

Manipulacin de un arbol - B- : La insercin de nueos alores de llae en un arbol B- se realiza
mas o menos de la misma manera como son insertados en un arbol - B clasico. Cuando un nodo
hoja es particionado en dos nodos, una copia del alor de llae de menor orden, del nodo que se
encuentra a la derecha, es promoida para ser el alor de llae separador en el nodo padre. Ll nueo
nodo tambin debe ser insertado en la lista ligada del conjunto de secuencias.

Bsqueda de arboles B-: Una bsqueda directa en un arbol B- debe terminar en un nodo del
conjunto de secuencias. Si existe una llae en el ndice que corresponda a la llae buscada, el
apuntador precedente es seguido hasta que, eentualmente, la hoja correcta es alcanzada. No todas
las llaes de la parte de ndices necesitan aparecer tambin en el conjunto de secuencias. Una llae
pudo haberse eliminado del conjunto secuencias, cuando su correspondiente registro ue suprimido
del conjunto de registros, pero la llae pudo haber sido retenida en la parte de ndices del arbol B-,
con el propsito de guiar el acceso al conjunto de secuencias.

Laluacin de expresiones: Una expresin aritmtica esta ormada por operandos y operadores
aritmticos. As la expresin:

R~,A-B,D-AB,D

R esta escrita de la orma habitual, el operador en medio de los operandos, se conoce como
notacin inija. Recordemos que ya hemos realizado la aplicacin de ealuar una expresin
utilizando nicamente el 1AD pila. Ahora a a ser utilizada tanto las pilas como el 1AD arbol

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

37
binario para la ealuacin. La pila sera utilizada para pasar la expresin de inija a postija. la
expresin en postija sera almacenada en el arbol para que la ealuacin se realice utilizando el arbol
binario. Ln primer lugar, recordamos la prioridad de operadores, de mayor a menor.

Parntesis , ,
Potencia `
Multi,diisin , ,
Suma,resta -,-
A igualdad de precedencia son ealuados de izquierda a derecha.

Creacin de un arbol a partir de la expresin en postija: Ll arbol se orma de tal manera que la raz
se encuentra en el operador, en el subarbol izquierdo y derecho los operandos. Ln una pila se
guardan las direcciones de los nodos que contienen a los operandos. Cuando se a a ormar el nodo
de un operador se saca de la pila los dos ltimos nodos metidos para ormar el nodo operador
enlazando la rama izquierda y la derecha con las direcciones de los nodos que se han sacado de la
rama izquierda y la derecha.

La unidad que en capsula la pila es necesario para guardar las direcciones de los nodos del arbol,
tambin se deine los tipos necesarios para manejar el arbol . Lsto es as porque el campo Ino de
los elementos de la pila es PtrA,puntero a nodos del arbol,.

Laluacin de la expresin en postija: La primera accin que se a a realizar es dar alores
numricos a los operandos. Una ez que tenemos los alores de los operandos, la expresin es
ealuada, el algoritmo de ealuacin recorre el arbol con la expresin en Postorden.

De esta orma se eala el primer operando,rama izquierda,, segundo operando ,rama derecha, y
segn el operador ,raz, se obtiene el resultado.

Liciencia de la bsqueda en un arbol: La eiciencia para una bsqueda de una clae en un arbol
binario de bsqueda ara entre O,n, y O,log ,n,,, dependiendo de la estructura que presente el
arbol.

Si los elementos se anaden en el arbol mediante el algoritmo de insercin expuesto, la estructura
resultante del arbol dependera del orden en que sean anadidos.

As, si todos los elementos se insertan en orden creciente o decreciente, el arbol a a tener todas las
ramas izquierda o derecha, respectiamente, acas. Lntonces la bsqueda en dicho arbol sera
totalmente secuencial.

Sin embargo, si la mitad de los elementos insertados despus de otro con clae K tienen claes
menores de K y la otra mitad claes mayores de K, se obtiene de un arbol equilibrado ,tambin
llamado balanceado,, en el cual son suicientes un maximo de Log2,n, comparaciones para obtener
un elemento.

Ln los arboles de bsqueda el nmero promedio de comparaciones que debe realizarse para
localizar a una determinada clae es N,2. Lsta cira en el rendimiento de la bsqueda resulta ser
poco eiciente. Para mejorar el rendimiento en la bsqueda surgen los arboles equilibrados.

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

38

3 3. .3 3 M ME ET TO OD DO OS S B BA AS SA AD DO OS S E EN N E EL L A AC CC CE ES SO O D DI IR RE EC CT TO O

Ll objetio de los mtodos de acceso directo es permitir que los programas acceden registros,
utilizando el menor de transerencia de disco y, por lo tanto, el numero de reerencias de ndice.
Lste objetio se satisace mejor con el mtodo de acceso relatio, donde el alor de la clae es igual
a la posicin del registro en el archio relatio. No es necesario acceder el ndice y cada registro se
acceso en una transerencia de disco.

< Mtodos de acceso lash

< 1cnicas de ndices

< Mtodo de acceso secuencial indexado


Ln general, el acceso relatio no es practic por dos razones. Primero, requiere de un registro
identiicado con un alor de clae numrico. Segundo, para reducir el espacio desperdiciado, los
registros deben permanecer en un rango de claes continuas. Lstas condiciones no se encuentran
con recuencia.

La alternatia para el acceso relatio es el acceso has. La direccin del registro se calcula con el
algoritmo de hash y, as, no es necesario el acceso de ndice. Los mtodos de hash son eectios en
el acceso directo solo si se reducen las colisiones.

Si no hay colisiones, quizas se recupere en una transerencia de disco solo cuando ocurren
colisiones se requiere la transerencia de mas de un registro sico para recuperar un registro lgico
requerido.

Otro problema con los mtodos de las es la excesia olatilidad en arios mtodos de acceso, se
anaden nueos registro en areas de subrelujo que necesitan transerencias de registro sico
adicionales para acezarse. La excesia olatilidad signiica que, con el paso del tiempo, la mayora
de los registro estaran en el area de sobrelujo.

Las tcnicas de ndice son alternatia del mtodo de lash, pero tienen la desentaja de que se
necesitan transerencia sicas extras para leer el ndice. Las inserciones tambin pueden ser caras
debido a que nueas entradas para el ndice se producen cuando se anade un nueo dato registro.

Las tcnicas de ndice son, sin embargo la nica alternatia si los dierentes programas o consultas
utilizan dierentes claes para acceder los archios de datos. Los mtodos de las no se pueden
usar que son poco probable que diersos algoritmos de lash aplicados a dierentes tems de datos
que un registro busca en la misma direccin. Debe mantenerse un ndice en cada tem de la clae.



E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

39
Lstos mtodos permiten accesar un registro particular, sin accesar otros al mismo tiempo. Un
mtodo de acceso directo es usar la direccin de registro lgico.

Una implementacin de este acceso se muestra en la sig. ligura:


Leer ,i,j,k,




Num-sector~
Listarchio,i,.primer-sector
-Ik , Listarchio,i,actor-bloqueo,i,











Donde el algoritmo, dada la posicin K, calcula la posicin del sector requerido como la posicin k
en el archio lgico. Lntonces se usa el actor de bloqueo para encontrar el registro sico
requerido, considerando que los registros sicos se almacenan en orma continua en la clae
secuencial de almacenamiento sico.

Lxisten dos problemas en el acceso directo:

J J. . A eces es necesario usar campos dierentes a enteros para seleccionar registros

2 2. . Aunque se use el campo de enteros, es comn tener huecos en los alores de la clae,
y por lo tanto hay espacios no usados en el archio.

Por estas razones, es preerible no restringir la mayora de los mtodos directos a los campos de
clae enteros, sino permitir que cualquier campo de un registro se use como clae, estos campos
clae los deine el usuario y luego se usan para accesar registros.

Calcular el
sector
requerido
1ranserir los
sectores
contenidos a la
memoria


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

40
< Metodos de acceso Hash: Un mtodo de acceso lash se implementa en la igura
pero el alor de la clae ya no es el mismo que el alor del registro lgico en su lugar
primero debe calcularse la direccin de registro lgico desde el alor clae, y una ez que
se conoce, se encuentra su localizacin sica.

Ln el algoritmo para calcular la direccin, esta se distribuye en orma aleatoria respecto a la
clae - de all l termino algoritmo de lash.


Surgen dos posibilidades cuando se calcula una direccin desde el alor de su clae:

KJ aJ

K KK K K KK K2 22 2 2 22 2 a aa a a aa a2 22 2 2 22 2

K3 a3

K4 a4

KS aS

K6 a6

a

J J. . Se genera la direccin de un archio lgico nico para cada alor de clae.

2 2. . Mas de un alor clae se conierte en la misma direccin del archio lgico.

labra problemas si dos registros del archio tienen los alores de clae con las mismas
direcciones: una situacin a menudo reerida como colisin.

As en la igura los registros con los alores de clae K1 y K2 haran colisin en A1. Ls obio que
no se puede almacenar mas de un registro en la misma localizacin y, por lo tanto, debe haber
algn medio para poder manejar las colisiones. Uno es proporcione areas de sobrelujo.

Ll archio ,o cada pagina de este, se diide en dos partes, como lo muestra la igura un area del
archio principal y un area de sobrelujo. Si dos registros dan la misma direccin, solamente uno se
almacenara en el area principal y el otro se colocara en el area de sobrelujo. Se mantiene un enlace
en el registro del area principal al registro en el area de sobrelujo.

Ln general. Ls actible recuperar un registro en el area principal, es una transerencia sica. Los
registros en las areas de sobrelujo requieren mas transerencias sicas, una transerencia al area
principal se eectan para encontrar un enlace con al registro del area de sobrelujo y, despus, se

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

41
necesitan uno o mas mtodos de acceso de lash son reducir l numero de registros en el area
de sobrelujo.

Se deben seleccionar los algoritmos de lash para que la distribucin de los alores de una clae
dada produzca un mnimo de colisiones y se reduzca l numero de registros en el area de
sobrelujo.



Registros en el area area del archio tempo
principal

are a del sobrlujo







Implementaciones de indice: Las implementaciones del archio de ndice toman la orma que
muestra la siguiente igura.






Valor de clave Direccin
del disco
A 1
B
C 6
D 6
.... ......








Registros en el area de
sobreIlujo
Indice

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

42

Reackey ,, r, nombre de clae,
Buscar la posicin de un registro en el
archio de datos
Recuperar el registro
Indice y archio de datos
Valor de clave
Posicion
Posicion



























La posicin del registro requerido se encuentra mediante un ndice. Como se e en la igura, los
mtodos de acceso mantienen dos archios: uno de ndice y otro de datos.

Ll archio de ndice tambin se almacena en disco e indica la posicin de los registros con los
alores de clae requeridos en el archio de datos. Ademas, los mtodos de acceso buscan primero
el archio de ndice y luego usan la posicin del registro encontrado en el ndice para recuperar el
registro de datos.

Ll objetio es seleccionar una tcnica de indizado que minimice la cantidad de registros de ndices
transeridos en la bsqueda del ndice.

< Mtodo de acceso secuencial indexado: Los archios de ndice se organizan de arias
ormas. Una caracterstica general es que constan de entradas de registros ormadas por los dos
campos que aparecen en la siguiente igura:


Valor de clae


Direccin de registro con el alor clae


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

43

Cada una de las entradas muestra la direccin de registros con una clae de alor dada. La
direccin puede ser sica y construir un numero de sector o alguna concatenacin de estos con el
numero de paquete del disco o el numero de supericie.

La direccin tambin puede ser de registro lgico, como un numero de pagina - desplazamiento,
en este caso, el mtodo de acceso determina la direccin sica para la pagina a partir de la direccin
de registro lgico.

Los archios de ndice se utilizan de la siguiente manera: el mtodo de acceso recibe los comandos
en la interaz de registro lgico.

Los comandos incluyen los alores de clae de los registros requeridos. La primera accin del
mtodo de acceso es buscar el archio para la entrada del ndice con le alor de clae de un registro
particular.

































E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

44
X 36




Z 11
6600




6667
< 1ecnicas de indice:

Ljemplo: ndice de mltiples nieles lo podemos obserar en la siguiente igura:












.
.









.
.
.

















C 7

C 88

L 327
.
Q 6




T 55
CLAVE MAS
ALTA
NUMERO DE
PAGINA
1

2

3

i




j
A 1
A 2
.
.
C 7
C8
.
.
.
C 88
E 75
.
.
.
E 327
P 75
.
.
.
Q 6
F 11
.
.
.
T 55
Y 27
.
.
.
Z 11
1
2
3
i
j
ARCHIVO DE INDICE
PAGINAS 6667
DA1O
PAGINAS

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

45

Lsta tiene dos nieles, el primero es un ndice para paginas de ndice en el siguiente niel.
Cada entrada en el bloque de ndice del primer niel contiene dos tems:

J. Un alor de clae a

2. Ll nmero de pagina de un bloque de ndice de segundo niel. La pagina del segundo niel
mantiene las entradas de la clae de ndice entre el alor de la clae a y el alor de la clae de
entrada de ndice del primer niel preio. La bsqueda de un registro con alor de clae dado
toma la siguiente orma:

begiv
leer la pagina de ndice del primer niel
encontrar la primera entrada en el bloque de ndice del primer niel el alor de la clae
buscar la direccin del bloque de ndice del segundo niel en esta entrada
leer la pagina de ndice del segundo nielen esta direccin
encontrar la primera entrada en la pagina de ndice del segundo niel el alor de la clae
buscar la pagina en esta entrada
leer la pagina y buscar la pagina para el registro requerido
eva


Se necesitan tres transerencias sicas para encontrar el registro: Una para leer la pagina de
ndice del primer niel, otra para leer la pagina de ndice de segundo niel, y una tercera para leer la
pagina de datos. Por supuesto, no siempre es posible ijar todos los nmeros de las paginas de
ndice del segundo niel en una pagina de primer niel, en este caso hay dos alternatias:


< Ll primer niel de ndice consta de mas de una pagina y los registros del primer niel
deben tambin buscarse en orma secuencial

< lay mas de dos nieles de ndice con solo una pagina de ndice en el primer niel y nada
mas de lee una pagina en cada niel.


INDICLS DLNSOS \ NO DLNSOS

Los mtodos de ndice aproechan el hecho de que los registros se almacenan en el orden de
los alores de clae de ndice, si no uera as no sera cierto que los alores de clae de todos los
registros de un bloque son menores que los alores de la clae de entrada del ndice para el bloque.
Un ndice que aproeche el orden de las claes se llamara a eces vaice aev.o. Lsto signiica que no
es necesario tener una entrada de ndice para cada registro de archio.

Un ndice denso, por otro lado requiere una entrada de ndice para cada registro de archio,
se necesita un ndice denso si los registros de archio no se almacenan en el orden de la clae de
ndice.


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

46
Un ndice denso de mltiples nieles no diiere mucho de los no densos en el niel mltiple.
Ll ndice denso contiene un niel adicional que posee una entrada para cada registro de archio, por
lo general se requiere una transerencia extra de disco para recuperar un registro.








.


































A 1
A 2
.
.
C 7
C8
.
.
.
C 88
E 75
.
.
.
E 327
P 75
.
.
.
Q 6
F 11
.
.
.
T 55
Y 27
.
.
.
Z 11
DA1O
C 7

C 88

E 327
.

Q 6




T 55
X 36



Z 11

1

2

3

i




j
6600



6667

1
2
3
i
j
F 99
.
.
.

T 55
.
.
.

Z 34


B 1
.
.
.

B 8
.
.
.

B 34


PAGINA DL INDICL
DLL PRIMLR NIVLL
PAGINA DL INDICL
DLL SLGUNDO
NIVLL

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

47
3 3. .4 4 A AL LM MA AC CE EN NA AM MI IE EN NT TO O V VI IR RT TU UA AL L

1ipos de dispositios.

Lxisten 2 tipos de dispositios de Lntrada,Salida. Los dispositios dedicados los cuales son
adecuados para ser accesados por un solo usuario a la ez los dispositios compartidos los cuales
permiten un acceso concurrente por muchos usuarios.

Una terminal es un ejemplo de dispositio dedicado y disco es un ejemplo de dispositio
compartido.

Las actiidades de control para los dispositios compartidos son mas complejas que para los
dispositios dedicados.

Un tercer tipo de dispositio es una unidad de los usuarios desearan compartir pero en realidad no
es adecuada para uso concurrente.

A lo que se reiere el almacenamiento irtual, se reiere a tener mayor memoria con la que se cuenta
o tambin crear mas unidades de almacenamiento, como en el metido ,VSAM, ya mencionado
anteriormente

















SECURIDAD Y COA1ROLES




U U N N I I D D A A D D I IV V


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

48
T T E E M M A A R R I I O O






1. egvriaaa , covtrote.

4.1 Validacin de datos

4.2 1otales de control

4.3 Dgito de control















I I N N T T R R O O D D U U C C C C I I N N



Ln la utilizacin de la inormacin para ser procesada, en esta unidad se explica el proceso de
alidacin de los datos pasando por un proceso de control, dichos datos deben de tener
concordancia y ordenamiento entre otros, algunos de ellos son


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

49
Lrrores de sintaxis: Ls la interpretacin del dato en un programa, como puede ser la escritura
incorrecta de instrucciones, omisin de signo, etc.

Lrrores lgicos: Son aciles de localizar y corregir, considerando dos categora, como son los
que detienen la ejecucin del programa y los que no la detienen, pero producen resultados
errneos.

Ln la recopilacin de inormacin se deben de eitar los siguientes puntos, para no perder la
esencia de los datos
Redundancia
Inconsistencia
Diicultad en el acceso a los datos
Aislamiento de los datos
Anomalas en el acceso concurrente
Problemas de seguridad
Problemas de integridad

Una vez recopilada y almacenada la inIormacion esta debe pasar por la validacion de datos, la
cual se somete en una serie de pruebas para detectar los posibles errores Estas pruebas actuan
como Iiltros de la inIormacion. Suponiendo la veriIicacion de los datos de entrada siendo
correctos a un programa.




4.J Validacin de datos

Los datos que an a ser procesados son sometidos a una serie de pruebas para
detectar los posibles errores que pueden traer. Lstas pruebas actan como iltros de
la inormacin.





Datos

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

50



























Ln el proceso de alidacin de datos interienen:

< Captura
< Listado
< Correcciones









4.2 1otales de control

Un sistema de alidacin consiste en sumar por medio de la computadora el
contenido de un determinado campo de cada uno de los registros de un archio. Ll
resultado se compara con el total de estos mismos obtenido por un mtodo manual o
Dato alido
Validacin
Dato errneo

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

51
por computadora en un tratamiento anterior de los datos, ,ciras de control,, y si los
totales no corresponden , es indicador de que se cometieron errores durante la
captura.


Ljemplo:

Archivo venta



N.R.


CLAVL

CAN1IDAD IMP ILCHA
1 1120 1 .50 03,04,02
2 1564 2 13.20 05,04,02
3 1251 1 29.00 06,04,02
4 1564 1 6.60 0,04,02
5 1120 1 .50 10,04,02

1otal

15'

63.8



1otales de control

Los datos antes de ser capturados, deben ser preparados y codiicados para acilitar su proceso, esto
es , agrupados y ordenados por echa, olio, etc.., ademas se suman en orma manual algunos datos
como cantidades o importes.

Al resultado de estas sumatorias en orma manual se les llama C CI Il lR RA AS S D DL L C CO ON N1 1R RO OL L.

Al hecho de agrupar los documentos de donde se tomaran los datos para su captura ,normalmente
se agrupan por echas, se le llama L LO O1 1L LS S y su P PR RO OC CL LS SO O se hace P PO OR R L LO O1 1L LS S.



Digito de control

La clae de identiicacin de un registro, permite indiidualizar cada uno , dierenciandolo de los
demas, es necesario asegurarse de que el contenido de la clae de identiicacin esta correcto y se
corresponde con el resto de la inormacin del registro.

< Lrrores tpicos
< Digito de control modulo 10
< Digito de control modulo 11
< Mtodo C. I. N

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

52

< Dgito de control, errores tpicos
Por ejemplo, si una persona a a un banco a realizar un deposito a su cuenta, se puede cometer
alguno de los siguientes errores y el deposito no seria cargado a su cuenta, es por eso que
debemos encontrar un mtodo que nos permita detectar esos errores y corregirlos
inmediatamente.

Ll nmero del correcto del cuentabiente es 2908, en la tabla se muestran los errores ocurridos:


1ipo de error Dato errroneo Problema
Omisin 298 Se omiti el 0
Adicin 29083 Se agrego el 3
1ransposicin 2098 Se cambio el 0 y el 9
Repeticin 29088 Se repiti el 8
1rascripcin 2308 Se puso el 3 por el 9


4.3 Dgito de control, modulo 10

Ljemplo:
J. Dado el nmero 9452, se orma un nueo nmero tomando las ciras del lugar impar.

9 4 5 2





942 nmero nueo


2. Se determinan las ciras en posicin par

7 S

3. Se multiplica por 2 el nmero ormado con ciras en posicin par

942 * 2 = J884



4. Se suman entre si las ciras del nmero que acabamos de ormar


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

53
J + 8 + 8 + 4 = 2J

S. A lo anterior debemos anadir las ciras en posicin par del nmero original de la
clae

2J + 7 + S = 33

6. Se resta el nmero del mltiplo mas prximo superior a el y esta dierencia se toma
como digito de control

40 - 33 = 7


7. La clae con su dgito quedara:

9 7 4 S 2 7 4



< Dgito de control, modulo 11

Lste mtodo nos a a permitir obtener el dgito de control de una serie de nmeros, usemos
la misma cale, ejemplo:

J. A cada cira se le asigna un peso

6 5 4 3 2
2 9 0 8 7

2. Se multiplica cada dgito por su peso, ademas se obtiene una suma con los resultados de
la multiplicacin

J2 + 4S + 0 + 24 + J4 = 9S

3. La suma se diide entre 11 y se encuentra el residuo que es

9S / JJ residuo 7

4. A 11 se le resta el residuo y el resultado sera el dgito de control

JJ - 7 = 4

S. As quedara la clae con su dgito de control

2 9 0 8 7 4


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

54


< Metodo C.I.N. (Control de indicativos numericos)

Cada dgito del 0 al 9 puede representarse en cdigo BCD ,Binario Codiicado Decimal,, como
una combinacin de 4 Bits que toman alores de 0 y 1.

Al escribir una clae numrica, cada dgito ocupa una posicin en las U UN NI ID DA AD DL LS S, ,
D DL LC CL LN NA AS S, , o C CL LN N1 1L LN NA AS S. . Al aplicar el mtodo C C. .I I. .N N., se debe encontrar un alor J J y un
alor K K para cada dgito de la clae, dependiendo de la posicin del dgito, encontraremos un
alor J J y un alor K K, buscando en la siguiente tabla de alores:




Mtodo C.I.N. ,Control de indicatios numricos,




J. Ljemplo:


Clae 9 6 8 4
J 0 0 1 0 0
K 3 1 1 4


2. Se encuentra la suma de los alores J, y la suma de los alores K.

Digito

Unidades Decenas Centenas
J K J K J K
9 1 1 0 3 0 6
8 1 0 0 1 0 2
0 1 6 1 5
6 0 6 1 4 1 1
5 0 5 1 2 0 5
4 0 4 1 0 0 1
3 0 3 0 6 1 4
2 0 2 0 4 1 0
1 0 1 0 2 0 4
0 1 4 1 1 0 3

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

55


Clae
SJ ~ 0 - 0 - 1 - 0 - 0
SK ~ 3 - - 1 - 1 - 4

3. Se encuentra el residuo de la diisin de Sj,3 y el residuo de Sk,8
RJ~ 1 RK~0

4. Con los alores Rj y Rk se busca una letra , en una tabla de alores, para asignarla como
control de la clae.

K 0 1 2 3 4 5 6
J
0 A B C D L l G l
1 J K L M N P Q R
2 S 1 U V \ X \ Z



Control para la clae 9684 J






















U U N N I I D D A A D D V V


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

56
I IM MP PO OR RT TA AN NC CI IA A D DE EL L U US SO O A AD DE EC CU UA AD DO O D DE E A AL LG GO OR RI IT TM MO OS S



T TT T T TT T E EE E E EE E M MM M M MM M A AA A A AA A R RR R R RR R I II I I II I O OO O O OO O








1. vtroavcciv at avati.i. ae atgoritvo.

5.1 Importancia del uso adecuado de algoritmos
5.2 Consideraciones de eiciencia
5.3 1iempo de ejecucin de un programa
- Notacin asintotica ,O`,
5.4 Calculo del tiempo de medicin









I II I I II I N NN N N NN N T TT T T TT T R RR R R RR R O OO O O OO O D DD D D DD D U UU U U UU U C CC C C CC C C CC C C CC C I II I I II I N NN N N NN N


Q QU UE E E ES S U UN N A AL LG GO OR RI IT TM MO O? ?
Conjunto inito de reglas que dan una secuencia de operaciones para resoler todos los problemas
de un tipo dado. De orma mas sencilla, podemos decir que un algoritmo es un conjunto de pasos
que nos permite obtener un dato. Ademas debe cumplir estas condiciones:


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

57
linitud: el algoritmo debe acabar tras un nmero inito de pasos. Ls mas, es casi undamental que
sea en un nmero razonable de pasos.

Deinibilidad: el algoritmo debe deinirse de orma precisa para cada paso, es decir, hay que eitar
toda ambigedad al deinir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos
se expresan mediante un lenguaje ormal, ya sea matematico o de programacin para una
computadora.

Lntrada: el algoritmo tendra cero o mas entradas, es decir, cantidades dadas antes de empezar el
algoritmo. Lstas cantidades pertenecen ademas a conjuntos especiicados de objetos. Por ejemplo,
pueden ser cadenas de caracteres, enteros, naturales, raccionarios, etc. Se trata siempre de
cantidades representatias del mundo real expresadas de tal orma que sean aptas para su
interpretacin por el computador.

Salida: el algoritmo tiene una o mas salidas, en relacin con las entradas.

Lectiidad: se entiende por esto que una persona sea capaz de realizar el algoritmo de modo
exacto y sin ayuda de una maquina en un lapso de tiempo inito.

A menudo los algoritmos requieren una organizacin bastante compleja de los datos, y es por tanto
necesario un estudio preio de las estructuras de datos undamentales. Dichas estructuras pueden
implementarse de dierentes maneras, y es mas, existen algoritmos para implementar dichas
estructuras. Ll uso de estructuras de datos adecuadas pueden hacer triial el diseno de un algoritmo,
o un algoritmo muy complejo puede usar estructuras de datos muy simples.











5.1 Importancia del uso adecuado de algoritmos
Inormalmente un algoritmo se deine como cualquier procedimiento computacional bien deinido
que toma algn alor como entrada y produce un alor de salida.

Un algoritmo es una secuencia de pasos que transorma esos datos de entrada en datos de salida.

Las decisiones acerca de la estructuracin de datos no pueden tomarse sin tener conocimientos de
los algoritmos que se aplican a los datos.


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

58
Un problema es resuelto algoritmicamente, si se puede escribir un programa que pueda producir la
respuesta correcta de orma que para cualquier posible entrada, el programa puede ser ejecutado el
tiempo ,inito, suiciente para resolerlo y cuenta ademas con el espacio requerido para resolerlo.
Se hace notar que el hecho de que exista un procedimiento para resoler un problema, puede o no
ser ssuiciente para que este sea resuelto realmente en una computadora. Se podra, por ejemplo
pensar en un procedimiento para que una maquina juegue ajedrz perecto,tomando en cuenta lo
siguiente:
1, Lxiste solo un nmero inito de ormas de arreglar las piezas de ajedrez sobre el tablero.

2, Bajo ciertas reglas, el juego termina despus de un nmero inito de moimientos.

3, Considerar para cada posible moimiento de la computadora, todas las posibles respuestas del
oponente y, para cada una de estas, las posibles respuestas de la computadora y, as sucesiamente,
hasta que cada secuencia alcance el inal. Lntonces, conociendo el ltimo resultado de cada
moimiento, todo lo que se tendra que hacer es escoger el mejor moimiento inicial.
Sin embargo, hay un inconeniente serio en el procedimiento anterior, el nmero de posibles
arreglos de piezas es alrededor de 10
50
, de modo que un buen programa podra tardar arios miles
de anos!!.
Como consecuencia, no obstante que existe un procedimiento para el juego perecto de ajedrez, no
existe an un algoritmo, no obstante que alguien podra escribir un programa siguiendo dicho
procedimiento
Como el anterior, hay muchos problemas, para las cuales se puede escribir un procedimiento y por
tanto podramos decir que pueden ser resueltas, es decir que se pueden escribir programas para
dichas aplicaciones y que por tanto podramos pensar que existen algoritmos para ellos. Sin
embargo, los requerimientos de tiempo y espacio de almacenamiento son tan grandes que sos
programas no son de importancia practica
Otro aspecto tiene que er con la eiciencia de los algoritmos desde el punto de ista de tiempo y
espacio. Ln este ltimo aspecto, se centra el Analisis de Algoritmos. Ll analisis de algoritmos
estudia de esta orma en dos aspectos:

1, Ll analisis de problemas especiicos.

2, Ll analisis de algoritmos especicos.

Dicho estudio permite determinar mtodos adecuados de diseno para problemas practicos. Ll
analisis de algoritmos permite entonces determinar, para un problema en particular, si un algoritmo
determinado cumple o no con los requerimientos mnimos de tiempo y espacio. Lsto llea en
consecuencia a una mejor toma de decisiones en la solucin de problemas.

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

59

5.2 Consideraciones de eiciencia

La eiciencia de los algoritmos se mide por el nmero de comparaciones e intercambios que tienen
que hacer, es decir, se toma n como el nmero de elementos que tiene el arreglo a ordenar y se dice
que un algoritmo realiza O,n2, comparaciones cuando compara n eces los n elementos, n x n ~
n2.

Lxisten algunos parametros para medir la eiciencia de un algoritmo, como son:

1 1i ie em mp po o d de e d du ur ra ac ci i n n
N N m me er ro o d de e i in nt te er rc ca am mb bi io os s
N N m me er ro o d de e p pa as sa ad da as s, , e et tc c. .

aunque estos parametros puedan ariar dependiendo de la sensibilidad del algoritmo.

Un algoritmo se considera:

S SE EN NS SI IB BL LE E

Cuando su eiciencia depende de las condiciones de los datos a ordenar, por lo tanto el tiempo de
ordenamiento es ariable, as como el nmero de pasadas e intercambios.

N NO O S SE EN NS SI IB BL LE E

Cuando siempre realiza el mismo nmero de pasadas e intercambios, sin importar las condiciones
de los datos.







5.3 1iempo de ejecucin de un programa - Notacin asintotica ,O`, -

N NO OT TA AC CI I N N A AS SI IT T T TI IC CA A

La notacin que hemos usado para describir el tiempo de ejecucin asinttico de un algoritmo esta
deinido en trminos de las unciones cuyo dominio esta en el conjunto de los nmeros naturales
N~0,1,2,..}.



E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

60
Dicha notacin es coneniente para describir el peor de los casos en el tiempo de ejecucin de una
uncin 1,n,, la cual es usualmente deinida solo para entradas del tipo entero.


N NO OT TA AC CI IO ON N O

La notacin O tiene lmites para sus extremos. Cuando solamente tenemos el lmite asinttico
superior usamos la notacin O.


Para una uncin dada g,n,: denotamos por O,g,n,, como el conjunto de unciones:

O,g,n,, ~ ,n,: existe una constante positia c y n
0
tal que:
0 ,n, c g,n, para todos n n
0
}


Ls decir usamos la notacin O para dar el lmite superior de una uncin con un actor constante.
Ln general, la mayora de los problemas tienen un parametro de entrada que es el nmero de datos
que hay que tratar, esto es, ^. La cantidad de recursos del algoritmo es tratada como una uncin
de N.

Ocupando el tamano de la entrada como el parametro que deine al tiempo de ejecucin de un
programa, es posible describir este tiempo como una uncin de la entrada 1,v,, donde v simboliza
al tamano de la entrada. Por ejemplo, el tiempo de ejecucin de un algoritmo puede ser v
2
-2v.

Cuando se deine la complejidad en uncin al tamano de la entrada, no se esta considerando a los
datos que orman esa entrada, sino solo al conjunto en su tamano. Ln la practica se obsera que un
algoritmo ocupa dierente tiempo de ejecucin para entradas del mismo tamano, pero con
dierentes datos. Por ejemplo, un mtodo de ordenacin de alores puede tardar menos tiempo si
su entrada esta ordenada, o tardar mucho mayor tiempo incluso con los mismos alores, pero
presentados en desorden ,es decir, con el mismo tamano de entrada tiene dierente
comportamiento,.

Por lo anterior, se adopta el criterio de tomar siempre, como base de analisis de la complejidad de
un algoritmo, el caso en el cual consuma el mayor tiempo de ejecucin, es decir, el peor caso.


LJLMPLO
La uncin que deine el tiempo de ejecucin del siguiente algoritmo es 1,n, ~ 4n-3.

1} suma ~ 0,
2} or,i ~ 1,i ~ N,i--,
3} suma- ~ i,

La instruccin 1 ocupa una unidad de tiempo.


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

61
La instruccin 3 ocupa dos unidades de tiempo, una para la suma y otra para la asignacin, y es
ejecutada N eces, por lo que ocupa 2N unidades de tiempo.

La instruccin 2 tiene inolucrada una asignacin que utiliza una unidad de tiempo, N-1
comparaciones y N incrementos, por lo que ocupa 2N-2 unidades de tiempo.

Ll tiempo total del algoritmo es 1,N, ~ 1-2N-2-2N, esto es:
1,N, ~ 4N-3.

La uncin que deine el tiempo de ejecucin de un programa proporciona inormacin interesante
para clasiicar los dierentes algoritmos que existen para resoler problemas. Con esta uncin es
posible comparar el desempeno de dierentes algoritmos desarrollados para un problema en
particular ,el problema de ordenacin de alores, por ejemplo,.

Para simpliicar el estudio de la complejidad, se han adoptado ciertas conenciones en su notacin,
una de ellas es la del concepto de orden, que indica, de orma simple, el grado de complejidad de
un algoritmo sin considerar por completo la uncin de tiempo.

Para el ejemplo del mtodo de la burbuja, se tiene una uncin de tiempo v,v-1,,2 ,que es igual a ,
v
2
-v, ,2,, y se dice que es de orden v
2
, o simplemente O,v
2
,.

Para determinar el orden un algoritmo, a partir de su uncin de tiempo, se eliminan todos los
trminos excepto el de mayor grado y se eliminan todos los coeicientes del trmino mayor.

Lo anterior es debido a que al aumentar el tamano de la entrada, es mas signiicatio el incremento
en el trmino de mayor orden que el de los demas.

LJLMPLO
Ll orden de un algoritmo cuyo tiempo de ejecucin esta dado por
1,n, ~ 3n
3
-2n-6 esO,1,n,, ~ O,n
3
,.

Lxisten algunas reglas que son tiles para determinar el orden de un algoritmo:

Regla 1 ,Ciclos lOR,: Ll tiempo de ejecucin de un ciclo lOR es al menos el tiempo de ejecucin
de las instrucciones dentro de l multiplicado por el nmero de iteraciones.



LJLMPLO
Ll orden del siguiente algoritmo es O,n,.
or,i ~ 1,i ~ N,i--,
suma- ~ i,


La uncin de tiempo para el algoritmo es 1,N, ~ 4N-2, ya que el ciclo ocupa 2N-2 y la suma 2N
, por lo que tiene un orden O,n,,.


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

62
Regla 2 ,Ciclos lOR anidados,: Se analiza desde dentro hacia auera. Ll tiempo total de una
instruccin dentro de un conjunto de ciclos anidados es igual al tiempo de ejecucin de las
instrucciones internas multiplicado por el producto del tamano de los ciclos.

LJLMPLO
Ll orden del siguiente algoritmo es O,n
2
,.
or,i ~ 1,i ~ N,i--,
or,j ~ 1,j ~ N,j--,
suma- ~ ij,

Regla 3 ,Condicional,: Ll tiempo de ejecucin nunca es mayor que el tiempo de ejecucin de la
condicional mas el mayor de los tiempo de ejecucin de las alternatias.

LJLMPLO
Ll orden del siguiente algoritmo es O,n
2
,:

i,i ~ ~ j,
or,i ~ 1,i ~ N,i--,
suma- ~ i,
else
or,i ~ 1,i ~ N,i--,
or,j ~ 1,j ~ N,j--,
suma- ~ ij,

Debido a que el tiempo de ejecucin de la condicin es de orden O,1, mas el mayor tiempo de
ejecucin de las alternatias: cuando se cumple la condicin es O,n, y cuando no se cumple es
O,n
2
,, por lo cual el orden es O,1,-O,n
2
,, pero, como ya se ha dicho, solo se toma el mayor,
quedando el orden del programa en O,n
2
,.
A los algoritmos de orden v se les llama de orden lineal, los de v
2
de orden cuadrado, etc.

Se puede decir que un algoritmo tiene complejidad polinomial, o se ejecuta en tiempo polinomial, si
tiene un orden O,v

,. Lstos algoritmos se dice que son algoritmos eicientes y los problemas que se
resuelen con estos algoritmos se dice que son problemas tratables.



LJLMPLO
Ll problema de ordenacin es tratable, ya que se puede resoler aplicando un algoritmo de tiempo
polinomial.

Un algoritmo tiene complejidad exponencial si la uncin de tiempo 1,n, tiene un orden O,x
n
,. Los
problemas que se resuelen usando algoritmos de tiempo exponencial se conoce como problemas
intratables y a los algoritmos como algoritmos ineicientes.

Un algoritmo de tiempo polinomial se dice que es eiciente ya que su tiempo crece mas despacio
que un exponencial al aumentar el tamano de la entrada, esto signiica que aproechan mejor los
cambios tecnolgicos.

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

63

P PP P P PP PR RR R R RR RO OO O O OO OG GG G G GG GR RR R R RR RA AA A A AA AM MM M M MM MA AA A A AA A P PP P P PP PA AA A A AA AR RR R R RR RA AA A A AA A D DD D D DD DE EE E E EE ET TT T T TT TE EE E E EE ER RR R R RR RM MM M M MM MI II I I II IN NN N N NN NA AA A A AA AR RR R R RR R E EE E E EE EL LL L L LL L T TT T T TT TI II I I II IE EE E E EE EM MM M M MM MP PP P P PP PO OO O O OO O D DD D D DD DE EE E E EE E E EE E E EE EJ JJ J J JJ JE EE E E EE EC CC C C CC CU UU U U UU UC CC C C CC CI II I I II I N NN N N NN N D DD D D DD DE EE E E EE E U UU U U UU UN NN N N NN N
A AA A A AA AL LL L L LL LG GG G G GG GO OO O O OO OR RR R R RR RI II I I II IT TT T T TT TM MM M M MM MO OO O O OO O


GLNLRA

4include <stdio.h>
4include <stdlib.h>

void main()
{
IILL *f,
int x,

randomize(),
f = fopen("entrada.dat","w+"),
while( x=random(S00) )
fprintf(f,"d ",x),
]
IQSOR1

4include <stdio.h>
4include <time.h>
4include <dos.h>
4include <PROCLSS.H>

4define SIZL sizeof(int)
4define in(fp,pbuf) fread(pbuf,SIZL,J,fp)
4define out(fp,pbuf) fwrite(pbuf,SIZL,J,fp)

IILL *f,
char tmpfilL_tmpnam,

void fqsort(long start, long n)
{

long i, j, midpos,
int x, xi, xj,

do
{

i = 0,
j = n - J,
midpos = j / 2,

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

64
fseek(f, (start + midpos) * SIZL, SLLK_SL1),
in(f, &x),
do
{

while(fseek(f, (start + i)*SIZL, 0), in(f,&xi), xi < x)
i++,
while(fseek(f, (start + j)*SIZL, 0), in(f,&xj), xj > x)
j--,
if(i < j)
{

fseek(f, (start + i)*SIZL, 0),
out(f,&xj),
fseek(f, (start + j)*SIZL, 0),
out(f,&xi),

]

] while(++i <= --j),
if(i == j + 3)

{

i--,
j++,

]
if(j + J < n - J)
{

if(j > 0)
fqsort(start, j + J),
start += i,
n -= i,

]
else
{

if(i < n - J)
fqsort(start + i, n - i),
n = j + J,

]

]while(n > J),

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

65

]

main(void)
{

char infilS0, outfilS0,
IILL *fpin, *fpout,
long t0, tJ,n,
int x, i = 0,
float dt,

printf("Archivo de entrada ? "),
scanf("S0s",infil),
printf("Archivo de salida ? "),
scanf("S0s",outfil),
if((fpin = fopen(infil,"r")) == NULL)
puts("Lrror al abrir el archivo de entrada."), exit(J),
tmpnam(tmpfil),
if((f = fopen(tmpfil,"w+b")) == NULL)
puts("Lrror no se puede crear el temporal."), exit(2),
while(fscanf(fpin,"d",&x) > 0)
out(f,&x),
fclose(fpin),
fseek(f,0,SLLK_LND),
n = ftell(f) / SIZL,
t0 = clock(),
fqsort(0L,n),
tJ = clock(),
dt = tJ - t0,
printf("\nfqsort: 1iempo utilizado para ordenar : 7.2f s.\n",dt/CLK_1CK),
if((fpout = fopen(outfil,"w")) == NULL)
puts("Lrror en archivo de salida"), exit(3),
rewind(f),
while(in(f,&x) > 0)
{

fprintf(fpout,"Sd ",x),
i++,
if(i == J0)
{

fprintf(fpout,"\n"),
i = 0,

]


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

66
]
fclose(f),
remove(tmpfil),
return(0),

]

DOS LN C

1C00JS SWP 262,J44 J0/07/03 9:27a 1C00JS.SWP
ORDLNA BAK 269 09/07/03 JJ:40a ORDLNA.BAK
NUM CPP 3S6 09/07/03 J2:32p NUM.CPP
NUM OBJ J,028 09/07/03 J2:J7p NUM.OBJ
1CDLI LXL JJ,623 09/07/03 J2:46p 1CDLI.LXL
PAN CPP J84 09/07/03 J2:S6p PAN.CPP
NUM BAK 308 09/07/03 J2:0Jp NUM.BAK
IQSOR1 OBJ 3,774 J0/07/03 9:J0a IQSOR1.OBJ
IQSOR1 LXL 3J,907 J0/07/03 9:J0a IQSOR1.LXL
GLNLRA OBJ J,42J J0/07/03 9:26a GLNLRA.OBJ
GLNLRA LXL J4,366 J0/07/03 9:26a GLNLRA.LXL
LN1RADA DA1 223 J0/07/03 9:26a LN1RADA.DA1
SALIDA DA1 J,990 J0/07/03 9:22a SALIDA.DA1
JS3 archivos 9,388,897 bytes
2 directorios J,027,903,488 bytes libres

C:\1C\BIN>genera

C:\1C\BIN>fqsort
Archivo de entrada ? entrada.dat
Archivo de salida ? salida.dat

fqsort: 1iempo utilizado para ordenar : 0.JJ s.

C:\1C\BIN>





5.4 Calculo del tiempo de medicion

Lxisten arios criterios para el analisis de algoritmos, sin embargo, el tiempo de ejecucin es uno de
los mas usados. Sin embargo, surge una pregunta, ,cmo medimos dicho tiempo Una respuesta
natural sera medirlo en segundos, no obstante, nos gustara una respuesta que no cambiara
conorme la tecnologa cambia y surge una nuea generacin de computadoras.


E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

67
Una mejor manera es medir el tiempo en trminos de instrucciones de maquina, de orma que
tomando la elocidad de la maquina en que se piense ejecutar el algoritmo, obtengamos la elocidad
en segundos. Lsto se puede hacer si se considera la rmula:

1iempo en segundos ~ 1iempo irtual , elocidad de la maquina... ,4,

Donde :
1iempo irtual ~ t,n, ~ Nmero de instrucciones
Velocidad de maquina ~ Nmero de instrucciones, segundo


Sin embargo, es bastante engorroso calcular el nmero exacto de instrucciones que generara un
compilador para una pieza de cdigo. Por tal motio, se puede utilizar una medida aproximada en
trminos de lneas de cdigo.


Ln el caso del algoritmo de libonacci recursio, cada llamada a libonacci regresa una o dos lneas,
ya que si n es menor o igual que 2, se ejecuta una lnea ,slo el Il,RL1URN,. S por el contrario,
cuando n es mayor o igual que 3 se ejecutan cuatro. Como se obsera a continuacin:


De esta orma el tiempo t,n, del algoritmo es:

t,n, ~ t,n-1, - t,n-2, - 2 ...,5,

Ls decir, t,n, se comporta de manera similar a la orma como el nmero de conejos crece.

Ln general, para cualquier algoritmo recursio, se obtiene una relacin de recurrencia de manera
que el tiempo para cualquier rutina es el tiempo dentro de la rutina misma mas el tiempo para las
llamadas recursias.

Dicha relacin permite una orma mecanica de determinar una ecuacin como la ,5, que permita
resolerla para encontrar el tiempo de ejecucin.

N l ,n, 4 de lneas Comentarios
0 l,0, 1 Se ejecuta solo la lnea 4
1 l,1, 1 Se ejecuta slo la lnea 4
2 l,2, 1 Se ejecutan solo la lnea 4
3 l,3, 4
La lnea 4 para comparar n con 2
La lnea 5 para sumar ,2,-l,1,
Una lnea para calcular l,2,
Una lnea para calcular l,1,

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

68
Ll arbol para l,n, tiene propiedades que pueden ayudad a contar el nmero de lneas.

Ll nmero de hojas en el arbol es justamente l,n,
Ll nmero de nodos internos es siempre igual al nmero de hojas menos uno.

Como consecuencia l,n, lneas se ejecutan en las hojas y 2|l,n-2,-1| es decir:
t,n, ~ l,n, - 2l,n-2, -2 ....,6,

Ll tiempo empleado para este algoritmo recursio puede ser muy grande, por ejemplo, cuando n es
del orden de cuarenta, se pueden requerir arios miles de millones de pasos!!!.

Ls por esta razn que los ingenieros de sotware prohben al maximo las rutinas recursias.






















B BB B B BB B I II I I II I B BB B B BB B L LL L L LL L I II I I II I O OO O O OO O G GG G G GG G R RR R R RR R A AA A A AA A F FF F F FF F I II I I II I A AA A A AA A




& & Lstructura de datos, Algoritmos, abstraccin y objetos
Luis Joyenes Aguilar, Ignacio Zahonero Martnez
Lditoria Mc Graw lill

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

69

& & Lstructura de datos y organizacin de archios
Mary L. S. Loomis
Lditorial Prentice lall

& & Introduccion y procesamiento de datos
Lstructura de datos, Algoritmos, abstraccin y cosas
Luis Joyenes Aguilar, Ignacio Zahonero Martnez

& & Lstructura de datos y organizacin de archios
J. Daniel Laurger
Lditorial 1rillas

& & Sistemas Operatios Segunda edicion
l.M.Deitel
Addison-\esley
IberoAmericana

& & Diseno y administracin de Bases de datos
Gary \.lansen
James V.llansen
Segunda edicion
Prentice may

& & lundamentos de Bases de datos
1ercera edicion
Abraham Silberschatz






Paginas de Internet

http:,,www.Imor.itesm.mx

http:,,www.monograias.com

http:,,www.Itapizaco.edu.mx

http:,,wwww.Programacionacil.com

E EE E E EE Es ss s s ss st tt t t tt tr rr r r rr ru uu u u uu uc cc c c cc ct tt t t tt tu uu u u uu ur rr r r rr ra aa a a aa a d dd d d dd de ee e e ee e D DD D D DD Da aa a a aa at tt t t tt to oo o o oo os ss s s ss s I II I I II II II I I II I

70

http:,,www.Algoritmia.com

http:,,www.It.culiacan.edu.mx

También podría gustarte