You are on page 1of 171

See

discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/273380260

ADMINISTRACIN DE ARCHIVOS. Ejemplos


prcticos de utilizacin de archivos:
Secuenciales, Indexados y directos, utilizando
el lenguaje C++.

Book January 2010

CITATIONS READS

0 1,889

3 authors:

Rene Edmundo Cuevas Valencia Jose Luis Hernndez Hernndez


Universidad Autnoma de Guerrero Universidad Autnoma de Guerrero
60 PUBLICATIONS 1 CITATION 18 PUBLICATIONS 5 CITATIONS

SEE PROFILE SEE PROFILE

Angelino Feliciano
Universidad Autnoma de Guerrero
17 PUBLICATIONS 0 CITATIONS

SEE PROFILE

Available from: Rene Edmundo Cuevas Valencia


Retrieved on: 19 October 2016
ADMINISTRACIN DE
ARCHIVOS.

Ejemplos prcticos de utilizacin de archivos: Secuenciales, Indexados


y directos, utilizando el lenguaje C++.

Autores : Jos Luis Hernndez Hernndez


Ren Edmundo Cuevas Valencia
Angelino Feliciano Morales.
Responsable de la publicacin digital: M. en C. Flix Molina ngel.

Gestin del ISBN: M. en C. Jos Luis Hernndez Hernndez.

Revis : M. en C. Mario Hernndez Hernndez.

Diseo de portada : Luis ngel Hernndez Villanueva.

Responsable de la reproduccin en discos compactos: M. en C.


Ren Edmundo Cuevas Valencia y M. en C. Juan Carlos Medina
Martnez, director de la UA de Ingeniera.

Sitio WEB: http://ingenieria.uagro.mx/catics

ISBN: 978-607-00-3901-0

El contenido de este E-Book, es con fines educativos, que


impacte en el programa de Ingeniero en Computacin de la UAI
de la UAGro.

Se permite la reproduccin total o parcial del mismo por cualquier


medio, siempre y cuando se cite a los autores.

Chilpancingo de los Bravo Guerrero, Mxico. Diciembre de 2010.


INDICE

CONTENIDO. Pgina

Indice ii

Introduccin iv

Indice de Figuras vi

Captulo I.- Dispositivos de almacenamiento externo. 1


I.1 Cintas magneticas, tambor magnetico, discos magneticos.
I.2 Diskettes, Disco duro.
I.3 Dispositivos de memoria intermedia.

Captulo II.- Definiciones y conceptos. 22


II.1 Campo, campo secuencial, registro, llave, archivo, base de datos,
transaccin.
II.2 Organizacin de registros y archivos.

Captulo III.- Archivos Secuenciales. 38


III.1 Estructura de un archivo secuencial.
III.2 Operaciones a efectuar.
III.3 Mantenimiento.
III.4 Ejemplo de aplicacin.

Captulo IV- Archivos Secuencial-Indexado. 57


IV.1 Estructura de un archivo secuencial-Indexado.
IV.2 Operaciones a efectuar.
IV.3 Mantenimiento.
IV.4 Ejemplo de aplicacin.

Captulo V.- Archivos Directos. 72


V.1 Estructura de un archivo directo.
V.2 Operaciones de insercin, supresin y manejo de colisiones.
V.3 Estructura de arbol para multiniveles de indices.
V.4 Mantenimiento.
V.5 Ejemplo de aplicacin.

ii
Captulo VI.- Correspondencia entre la llave y la direccin fsica. 89

VI.1 Direccionamiento directo e indirecto.


VI.2 Clasificacin de los tipos de correspondencia.
VI.2.1 Directa.
VI.2.2 Asociacin.
VI.2.3 Por circulo (Tcnicas aleatorias tipicas, truncamiento,
seleccin, analisis de frecuencias, divisin por nmero
primo, cambio de base, multiplicacin y cuadrado).
VI.2.4 Soluciones con claves no numricas

Captulo VII.- Otros mtodos de organizacin de archivos y 109


busquedas de economas.
VII.1 Memoria Virtual.
VII.2 Sistema de paginacin.
VII.3 Concepto de segmentacin y sistema.
VII.4 Archivos Vsam (virtual storage access method).
VII.5 Compactacin de datos.

Captulo VIII- Acceso Multi-llaves. 128


VIII.1 Organizacin multilista.
VIII.2 Lista Invertida.
VIII.3 Multilista restringida y estructurada.
VIII.4 Particionada celular.
VIII.5 Mantenimiento (De cada una de las anteriores).

Captulo IX.- Evaluacin general del sistema de Archivos. 143


IX.1 Estimacin del uso del sistema.
IX.2 Anlisis de los beneficos del sistema.
IX.3 Necesidades de almacenamiento.
IX.4 Comparacin entre costo y beneficio.

Bibliografa. 155

Glosario de trminos 157

iii
INTRODUCCION

La utilizacin de memoria para almacenar informacin tiene ciertos


inconvenientes. En primer lugar, la informacin que se almacena en la memoria no
persiste en el tiempo, pues cuando la computadora es apagada la informacin se
pierde. Por otro lado, si se desea almacenar una gran cantidad de informacin no
es posible hacerlo en memoria, pues por lo general las computadores no contienen
grandes cantidades de memoria, aparte de que es un recurso de alto costo.

El sistema de archivos es una de las partes ms visibles del sistema operativo.


Los usuarios utilizan los archivos para almacenar sus datos o programas en forma
persistente, esto quiere decir que la informacin no se pierde una vez que la
computadora es apagada. Para almacenar dicha informacin se utilizan dispositivos
de memoria secundaria, como discos, cintas, cd-rom, etc.

El sistema de archivos como parte del sistema operativo proporciona hacia el


usuario una interfaz sencilla, amigable y organizada, que le permite al usuario
almacenar y organizar su informacin. Dicha interfaz es proporcionada
principalmente mediante archivos, directorios y operaciones sobre ellos. Una parte
de las operaciones que el sistema otorga a los usuarios tiene relacin con los
mecanismos de proteccin que les permite a los usuarios proteger su informacin.
Los mecanismos de proteccin son especialmente importantes para sistemas
multiusuarios.

Por otro lado, el sistema de archivos debe representar la informacin a


almacenar de alguna manera en el sistema de tal forma que pueda interactuar
fcilmente con otra parte del sistema, que corresponde a la Unidad de
Entrada/Salida, pues debe almacenar realmente la informacin de archivos y
directorios en los dispositivos de almacenamiento secundario.

En el captulo I trata sobre el uso de los medios magnticos para grabar y


almacenar informacin numrica, textual, sonido y video ha brindado a las
organizaciones una forma de conservar la informacin para ser utilizada
posteriormente.

En el captulo II se habla sobre procesamiento de la informacin y se abordan


todas las definiciones y conceptos que estn ligados con la Administracin de los
archivos.

En el captulo III se tratan a fondo los archivos de datos con organizacin


secuencial, en la cual los registros de datos se graban en el archivo uno detrs de

iv
otro, sin dejar huecos. La grabacin de dichos registros se lleva a cabo
exactamente en el mismo orden en que fueron introducidos por el capturista.

En el captulo IV nos adentramos a la organizacin de archivos secuencial-


indexados y se tratan en forma general las ventajas que tiene sta organizacin de
archivos con respecto a la organizacin de archivos secuencial del captulo II.

En el captulo V, se llega a una organizacin de archivos donde el acceso casi


a cualquier registro es inmediato, me estoy refiriendo a la organizacin de archivos
directa y todas sus bondades.

En el captulo VI se hace un anlisis minucioso sobre todas las operaciones


que pueden hacerse con el fin de registrar adecuadamente la correspondencia
entre la llave de bsqueda de un registro y su ubicacin fsica dentro de algn
medio de almacenamiento.

En el captulo VII se buscan nuevas alternativas de organizacin de los


archivos de datos, con el fin de buscar economa en el tiempo mquina de acceso y
buscar optimizacin en los procesos.

En el captulo VIII se maneja una variante de los archivos secuencial-


indexados, la cual consiste en tener varas reas de ndice de un solo archivo de
datos, de tal forma que el acceso a un registro en particular pueda darse por varias
vas. Dicha organizacin de archivo de datos se le llama de acceso multi-llaves y
se manejan cuatro variantes, cada una de ellas con sus limitantes y sus ventajas.

En el captulo IX que es el ltimo captulo del presente documento, se tratan


en forma general todo lo que debe considerarse para evaluar en forma general un
sistema de archivos y sobre todo obtener en forma general el costo/beneficio.

En forma general, se investig en forma general todo el contenido de la


materia de administracin de archivos, que es una materia que se imparte en la
carrera de Ingeniera en Sistemas Computacionales del Instituto Tecnolgico de
Chilpancingo.

v
Indice de Figuras, Programas y Tablas.

FIGURAS.

Figura No. 1.1 Caractersticas tcnicas de las cintas magnticas. 2


Figura No. 1.2 Proceso de grabacin / reproduccin de una cinta magntica. 3
Figura No. 1.3 Cabeza de lectura / escritura. 3
Figura No. 1.4 polvo ambiental que afecta a la cinta. 4
Figura No. 1.5 Tambor Magntico. 6
Figura No. 1.6 Disco Magntico. 6
Figura No. 1.7 Lector de Discos Compactos 7
Figura No. 1.8 Partes de un Diskette. 8
Figura No. 1.9 Disco Duro de varios platos. 10
Figura No. 1.10 Estructura fsica de un Disco Duro. 11
Figura No. 1.11 Unidad Zip de almacenamiento 17
Figura No. 1.12 Unidad SuperdDisk y Disco para grabar. 18
Figura No. 1.13 Unidad lectora/grabadora de Magneto-pticos. 19
Figura No. 1.14 Unidad lectora/grabadora de JAZZ. 20
Figura No. 2.1 Ejemplo de campo secuencial. 23
Figura No. 2.2 Ejemplo de campo llave, campo, registro y archivo. 24
Figura No. 2.3 Ejemplo de una base de datos trivial. 25
Figura No. 2.4 Separadores entre registros y fin de archivo de una
corriente de texto. 26
Figura No. 2.5 Conversiones Caracteres a Binario y viceversa. 26
Figura No. 2.6 No existen separadores entre registros en la Corriente
Binaria. 27
Figura No. 2.7 Conversiones Caracteres a Binario. 27
Figura No. 2.8 Jerarqua de clases de Entrada / salida de C++. 28
Figura No. 2.9 Funciones miembro de la clase ifstream. 29
Figura No. 2.10 Funciones miembro de la clase ofstream. 29

vi
Figura No. 2.11 Funciones miembro de la clase fstream. 30
Figura No. 2.12 Elementos a considerar para ubicar un archivo. 31
Figura No. 2.13 Ejemplo de archivo de trabajo o temporal. 33
Figura No. 3.1 Registros grabados en forma secuencial (Uno detrs de otro). 38
Figura No. 3.2 Estructura del registro de datos. 40
Figura No. 3.3 Representacin grfica de una clase. 40
Figura No. 3.4 Encadenar varios archivos de clases para crear una aplicacin. 43
Figura No. 3.5 Alta un registro a un archivo secuencial. 45
Figura No. 3.6 Eliminacin de un registro en un archivo secuencial. 46
Figura No. 3.7 Modificacin de algunos datos de un registro. 48
Figura No. 3.8 Estructura genrica del programa prctico. 50
Figura No. 4.1 rea de datos de un archivo secuencial-indexado. 57
Figura No. 4.2 Estructura del registro del rea de datos. 58
Figura No. 4.3 El rea de datos y el rea de ndice permiten la
Organizacin Secuencial-indexado. 58
Figura No. 4.3 El rea de datos y el rea de ndice permiten la organizacin. 58
Figura No. 4.5 Una rea de datos y dos reas de ndice. 60
Figura No. 4.6 Se incluye el archivo .hpp con sus clases para crear
el ejecutable. 62
Figura No. 5.1 Estructura de un archivo directo. 72
Figura No. 5.2 Archivo directo donde debe transformarse la llave. 73
Figura No. 6.1 Direccionamiento Directo. 90
Figura No. 6.2 Estructura de los ndices. 91
Figura No. 6.3 Estructura de un cilindro. 94
Figura No. 6.4 Ejemplo de direccionamiento por sector. 94
Figura No. 6.5 Formacin de nmero de control de un alumno del Tecnolgico 96
Figura No. 6.6 rea de datos y rea de ndice de un archivo secuencial-
Indexado. 97
Figura No. 6.7 Asociacin cuando existen 2 reas de ndices y un rea
de datos. 98

vii
Figura No. 6.8 Esqueleto de un archivo relativo que considera un rea para
colisiones. 99
Figura No. 6.9 Direccin relativa seleccionando la fecha de nacimiento. 101
Figura No. 6.10 Ubicacin fsica de un registro con la divisin por nmero
primo. 103
Figura No. 6.11 Direcciones fsicas utilizando el cambio de base 10 a base 8. 103
Figura No. 6.12 Clculo de la direccin relativa por medio de multiplicacin. 104
Figura No. 6.13 Uso del cuadrado para obtener la direccin fsica. 105
Figura No. 6.14 Llaves tipo cadenas convertidas a direcciones relativas. 107
Figura No. 7.1 Memoria virtual de una computadora. 110
Figura No. 7.2 Correspondencia entre la direccin fsica y lgica de la memoria. 110
Figura No. 7.3 Pginas de memoria compartidas por uno o ms procesos. 112
Figura No. 7.4. Traduccin de pgina virtual a pgina real. 113
Figura No. 7.5 Eliminacin de la memoria principal de una pgina que no
est en uso y se reemplaza por otra pgina que se requiere. 115
Figura No. 7.6 Segmentos que puede tener la memoria. 117
Figura No. 7.7 Archivo VSAM luego de la carga inicial. 121
Figura No. 7.8 Archivo VSAM luego de una insercin en un intervalo no lleno. 121
Figura No. 7.9 Insercin en intervalo lleno con intervalo vaco en el rea. 122
Figura No. 7.10 Insercin con fisin de intervalo y de rea. 122
Figura No. 8.1 Ejemplo de un registro de una sucursal bancaria. 129
Figura No. 8.2 Organizacin multilista por profesin y categora. 131
Figura No. 8.3 Organizacin de datos de lista invertida (dos ndices). 133
Figura No. 8.4 Organizacin multilista restringida por grupo y categora. 135
Figura No. 8.5 Estructura de un archivo organizado en forma particionada
celular. 136
Figura No. 8.6 Adicin de un registro en las listas ligadas de profesin y
categora. 140

viii
PROGRAMAS.

Programa No. 3.1 Codificacin de la clase registro_empleado. 42


Programa No. 3.2 Ejemplo de manipulacin de un archivo secuencial. 55
Programa No. 4.1 Codificacin de la clase empleado y la clase ndice. 61
Programa No. 4.2 Programa para la creacin del rea de ndices.
65
Programa No. 4.3 Programa dar de alta un registro en el rea de
datos y en el rea de ndice. 68
Programa No. 4.4 Modificaciones a un registro en el rea de datos
sin modificar el rea de ndice. 70
Programa no. 5.1 Codificacin de la clase empleado para usarla
en Archivos Directos. 78
Programa No. 5.2 que ejemplifica la creacin de un archivo directo. 83
Programa No. 5.3 Ejemplo de alta de un registro a un archivo Directo. 84
Programa No. 5.4 Ejemplo de eliminacin de un registro
a un archivo Directo. 86
Programa No. 5.5 Ejemplo de modificacin de un registro en un
archivo Directo. 87

ix
TABLAS.

Tabla No. 1.1 Tabla de capacidades de los dos tipos de diskettes.


9
Tabla No. 8.1 Datos para crear un archivo multilista. 130
Tabla No. 8.2 Registros que se almacenan en una multilista restringida. 134
Tabla No. 8.3 Insertar un registro a un archivo multilista. 139
Tabla No. 9.1 Concentrado para conocer la cantidad de espacio de
almacenamiento secundario requerido. 150
Tabla No. 9.2 Cantidad en bytes para los ndices. 150
Tabla No. 9.3 Estimacin general para el sistema de archivos. 151
Tabla No. 9.4 Incremento global mensual. 151

x
CAPITULO 1

Dispositivos de
almacenamiento
externo.
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

Capitulo 1.- Dispositivos de almacenamiento externo.

El uso de los medios magnticos para grabar y almacenar informacin


numrica, textual, sonido y video ha brindado a las organizaciones una forma de
conservar la informacin para ser utilizada posteriormente. Por un lado, los medios
magnticos incrementan los tipos de objetos y eventos que se pueden captar y
almacenar. Por el otro, sus necesidades especiales de almacenamiento a largo
plazo son diferentes a las de los materiales tradicionales.

Las organizaciones donde se maneja informacin en cualquiera de sus


mltiples formas necesitan de un cuidado y manejo especifico para asegurar que la
informacin grabada sea preservada. Es posible que se necesite de ambientes de
almacenamiento especiales si la informacin registrada ha de preservarse por
muchos aos. Para la informacin que debe preservarse indefinidamente, la
transcripcin peridica de los viejos medios a otros nuevos medios se hace
necesaria, no slo debido a que el medio es inestable, sino tambin porque la
tecnologa de grabacin se hace obsoleta y los avances tecnolgicos crean mejores
medios de almacenamiento.

A continuacin se explica en forma detallada los principales dispositivos de


almacenamiento externos que se han utilizando para preservar los datos que sern
utilizados por una computadora para generar la informacin requerida.

Tema I.1 Cintas magnticas, Tambor magntico y Discos


Magnticos.

1.- CINTAS MAGNETICAS.

Las cintas magnticas son de un material plstico recubierto de xido frrico,


de un ancho de menos de dos centmetros, sobre la cual la informacin es registrada
en forma de puntos magnetizados o no magnetizados a lo largo de varias pistas
paralelas para representar los smbolos binarios 1 y 0. As como en una grabadora
comn de sonido los datos son grabados o ledos por medio de una cabeza
magntica, en el caso de los procesadores hay tantas cabezas como pistas
paralelas.

Varias unidades de cinta pueden ser interconectadas al mismo procesador,


permitiendo de esta manera almacenar millones de datos, registrndolos o
leyndolos a la velocidad de aproximadamente 15,000 nmeros y letras por segundo.

Pgina : 1
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

En las cintas magnticas para la grabacin de datos se pueden distinguir


varias capas :
A) Revestimiento posterior. Su misin es reducir la carga esttica de la cinta para
eliminar la suciedad, la cual si se acumula en un punto de la cinta provoca
fallos en la seal, que son conocidos como dropouts . Su espesor vara de 1
a 2 micras.

B) Material base de la cinta. Esta capa le proporciona a la cinta sus propiedades


mecnicas y suele ser de polister. Su espesor vara entre 0.005 y 0.0038
milmetros.

C) Revestimiento magntico. Esta capa le da a la cinta sus caractersticas


magnticas y en la actualidad se fabrica en cuatro tipos diferentes:

1. xido frrico. Es la ms utilizada hasta el momento. Posee una


coercitividad entre 300 y 360 Oersteds.
2. xido de hierro dopado. Dopado de cobalto presenta una
coercitividad entre 500 y 1200 Oersteds , pero tiene una
gran dependencia con la temperatura.
3. Dixido de cromo. Es el material usado para la duplicacin por
contacto trmico. Este material y el anterior presentan
una relacin seal / ruido 6 dB superior al xido frrico.
4. Partculas metlicas. Con una coercitividad de 1000 a 1500 Oersteds
poseen una relacin seal / ruido de 12 dB superior a la
del xido frrico. Su ciclo de histresis es casi
rectangular lo que permite grabaciones de frecuencias
ms altas, y la cinta puede desplazarse a ms baja
velocidad sin sacrificar el rango dinmico. Este tipo es
el que est siendo utilizado en los nuevos formatos que
aparecen en el mercado.

En la Figura No. 1.1, se pueden apreciar las caractersticas tcnicas de las


cintas magnticas.

Figura No. 1.1 Caractersticas tcnicas de las cintas magnticas

Pgina : 2
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

Para la grabacin sobre la cinta es necesario una cabeza de grabacin. En la


figura 1.2 se puede apreciar el proceso. Durante la grabacin una corriente aplicada
produce la magnetizacin de la cinta (los pequeos imanes que la forman son
orientados por el campo magntico producido). En la reproduccin estos pequeos
imanes producen en la cabeza una pequea corriente inducida.

Figura No. 1.2 Proceso de grabacin / reproduccin de una cinta magntica.

La cabeza es un electroimn con su ncleo interrumpido en un punto. Esta


interrupcin es en el entrehierro, donde el campo magntico que existe en el ncleo
por la corriente que se ha aplicado se dispersa un poco hacia el exterior. De sta
manera si la cinta se pega al entrehierro es posible su magnetizacin.

En la figura No. 1.3 se aprecia un esquema de una cabeza. Los parmetros


ms importantes son dos :
Por un lado la longitud del entrehierro, la cual nos limita la mxima
frecuencia a grabar.
Y por otro lado el ancho de la pista que como su nombre indica nos da
la anchura de la pista que el cabezal graba sobre la cinta.

Figura No. 1.3 Cabeza de lectura / escritura.

Pgina : 3
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

Esta anchura nos da la cantidad de seal que podemos obtener, a mayor


anchura ms seal (mejor relacin seal / ruido), y adems la cantidad de
informacin o pistas que podemos grabar en un ancho de cinta determinado
(cantidad de informacin

Ventajas de las cintas :

1.- Alta densidad de datos: Un carrete comn de cinta de 10 plg. de dimetro.


Tiene una longitud de 2400 pies. Y puede grabar 800,1600, 2400, 3200,
4000, 4800, 5600 y hasta 6400 bytes en cada pulgada dependiendo de la
unidad de cinta que utilice, por lo tanto, si se graban 6400 caracteres en
una pulgada de cinta y si la cinta tiene una longitud de 28800 pulgadas
entonces la capacidad mxima de la cinta ser de 184,320,00 bytes.
2.- Bajo costo y facilidad de manejo.- Un carrete de 10 pulgada cuesta menos
de 20 dlares. Y dado que el carrete es compacto y pesa menos de 1 kg. y
medio, ocupa muy poco espacio de almacenamiento y es fcil de manejar.

Limitaciones de las cintas:

1.- Falta de acceso directo a los registros.- La cinta es un medio de acceso


secuencial que se utiliza para el procesamiento por lotes. Es necesario leer y
procesar toda la cinta para actualizar todos los registros de un archivo
organizados en forma secuencial. Si se requiere acceso frecuente a los
registros del archivo en forma rpida y aleatoria, el archivo no deber
almacenarse en cinta magntica; se requiere demasiado tiempo de operador
para montar y desmontar cintas, se desperdiciara mucho tiempo mquina en
la lectura de registros que no necesitan.
2.- Problemas ambientales.- Las partculas de polvo como puede apreciarse en la
Figura No. 1.4 y la falta de control de los niveles de la temperatura o
humedad pueden causar errores en la lectura de cintas. Las cintas y sus
envases deben etiquetarse y controlarse cuidadosamente para no borrar por
error un archivo importante. [i-2]

Figura No. 1.4 polvo ambiental que afecta a la cinta.

Pgina : 4
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

Recomendaciones Generales.

1. Se debe mantener las cintas lejos de campos magnticos; campos magnticos


muy dbiles pueden causar errores. Motores de induccin como aquellos usados
en aires acondicionados, refrigeradoras y compresores pueden generar fuertes
campos magnticos. Un televisor puede generar campos magnticos cuando es
conectado o debido al desmagetizador automtico que es el responsable de
eliminar el magnetismo que el tubo genera.
2. Nunca se deben archivar las cintas magnticas sobre equipos electrnicos aunque
sea temporalmente. Casi todos los equipos electrnicos generan campos
magnticos y calor.
3. Descartar las cintas fsicamente daadas, ellas pueden transportar impurezas y
desperdicios a las cabezas lectoras y en esta forma contaminar otras cintas.
4. Para mejor proteccin, mantenga las cintas magnticas en su estuche original
cuando no estn en uso.
5. Siempre mantenga las cintas en posicin vertical, nunca horizontal, esto reduce la
posibilidad que las cintas se daen por el peso excesivo.

Ambiente de uso
1. Nunca tocar la superficie o los bordes de las cintas magnticas.

2. El ambiente de operacin y almacenamiento de las cintas debe estar libre de:


polvo, humo y comida.

3. Mantenga un ambiente de humedad y temperatura adecuado todo el tiempo.

4. En la medida de lo posible cuando se transporta cintas magnticas en ambientes


extremos se debe permitir la climatizacin de las mismas por lo menos 24 horas.

2.- TAMBOR MAGNETICO

Un tambor magntico era como una pila de CD (pero claro de material


ferromagntico) con una fila de lectores a su lado, estas pequeas agujas se
encontraban a la pequesima distancia de 0.001 pulgadas por lo cual si se movan
de una forma no debida o por el simple hecho de la expansin de los materiales por
el calor esta separacin ya no era la misma por lo que este dispositivo era inservible.

La figura 1.5 muestra esquemticamente la forma del tambor magntico.

Pgina : 5
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

Figura No.- 1.5 Tambor Magntico.

La forma como se hacia una lectura o escritura era con los componentes del
tambor, por ejemplo, en el sector 8, pista 3; su tiempo de acceso era tomado en
revoluciones por minuto (se alcanzo hasta 8000 rpm) y el nmero de bits que era
capaz de almacenar se meda segn sus caractersticas fsicas como lo son el
dimetro del tambor, su altura, etc. tcnicamente se us mximo a 1200 bps. [i-1].

3.- DISCOS MAGNETICOS

Para grabar datos en un soporte fsico ms o menos perdurable se usan dos


tecnologas en los discos. La magntica se basa en la propiedad magntica de
algunos materiales y otros fenmenos magnticos, mientras que la ptica utiliza las
propiedades del lser y su alta precisin para leer o escribir los datos.

La tecnologa magntica para almacenamiento de datos se lleva usando


desde hace decenas de aos, tanto en el campo digital como en el analgico.
Consiste en la aplicacin de campos magnticos a ciertos materiales cuyas
partculas reaccionan a esa influencia, generalmente orientndose en unas
determinadas posiciones que conservan tras dejar de aplicarse el campo magntico.
Esas posiciones representan los datos, bien sean una cancin de los Beatles o bien
los bits que forman una imagen o el ltimo balance de la empresa. Un ejemplo de
los discos magnticos se puede apreciar en la Figura No. 1.6.

Figura No. 1.6 Disco Magntico.

Pgina : 6
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

Una de las caractersticas relevantes de la ultima dcada en el mbito de las


tecnologas de la informacin, lo constituye sin duda alguna, el cambio de los
medios magnticos a los medios pticos. Esta transicin, provocada por el auge
de los formatos digitales, se inicia en el comienzo de los aos 80, con el uso
intensivo del disco compacto o CD, el cual revoluciona la msica y da origen a la era
digital.

Los discos pticos, adems de ser medios removibles con capacidad para
almacenar masivamente datos en pequeos espacios -por lo menos diez veces ms
que un disco rgido de igual tamao- son portables y seguros en la conservacin de
los datos (que tambin permanecen si se corta la energa elctrica). El hecho de ser
portables deviene del hecho de que son removibles de la unidad. [i-3]

Los discos pticos presentan una capa interna protegida, donde se guardan
los bits mediante distintas tecnologas, siendo que en todas ellas dichos bits se leen
por un rayo lser incidente. Este, al ser reflejado, permite detectar variaciones
microscpicas de propiedades ptico-reflectivas ocurridas como consecuencia de la
grabacin realizada en la escritura. Un sistema ptico con lentes encamina el haz
luminoso, y lo enfoca como un punto en la capa del disco que almacena los datos.
La Figura No. 1.7 muestra el mecanismo de lectura / escritura de un disco compacto.

Figura No. 1.7 Lector de Discos Compactos

El CD ROM logr un xito semejante al de las grabaciones sonoras digitales,


con ms de 130 millones de lectores vendidos y decenas de miles de ttulos
disponibles. De hecho se configur en el estndar para cualquiera de las PC que se
venden actualmente en el mercado actual y ahora constituye la segunda revolucin
industrial; es decir, las de los datos de un CD. Bsicamente este formato es la
derivacin natural del CD de audio con la diferencia que en vez de grabar la
informacin de forma que puedan interpretarlo las lectoras de audio, la misma esta
organizada de forma similar a un disco rgido, pero de 640 Mb.

Su evolucin paralela produjo el CD-R y CD R-W, tecnologa que nos


permite grabar y borrar nuestros discos compactos para usarlos como respaldo de
datos, msica o multimedia.

Pgina : 7
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

Tema 1.2 Diskettes, Disco duro.

DISKETTES

Hoy en da , el medio de almacenamiento secundario ms usado en las


microcomputadoras es el llamado disquete, o tambin disco flexible, diskette, o
floppy disk. En contraste con las unidades de cinta magntica, las unidades de
diskette permiten a la computadora localizar los archivos rpidamente ubicando de
modo directo a cualquier pista en el disco, de igual forma en que se localizan
grabaciones en un disco compacto.

Un diskette es simplemente una hoja circular de plstico Mylan recubierta con


una capa de xido de hierro que puede almacenar impulsos magnticos. Los
diskettes vienen en distintos tamaos (identificados por su dimetro). Los ms
comunes son los de 3.5 y 5.25 pulgadas.

El Disco de 5.25 pulgadas tuvo originalmente una capacidad de 160 kb y se


escribian los datos a doble densidad y en una cara, en seguida se origin un avance
y el mismo diskette tuvo una capacidad de 360 Kb a doble densidad y en las dos
caras. Finalmente y algunos avances tecnolgicos, se logr almacenar 1.2 Mb a
alta densidad y en las dos caras.

El disco de 3.5 pulgadas se manej en su primera versin a 720 Kb a doble


densidad, doble cara; y la ltima modificacin, se graba a 1.44 Mb a alta densidad y
en las dos caras tal como se muestra en la Figura No. 1.8.

Figura No. 1.8 Partes de un Diskette.

Pgina : 8
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

Estos discos fueron popularizados por la Macintosh de Apple, y hoy en da son


estndares en la industria de la computacin.

Las unidades de diskettes son compatibles "hacia atrs"; es decir, que en una
unidad de 3,5" de alta densidad que almacena 1.44 MB, puede usar discos de 720
Kb o de 1,44 MB, pero en una de doble densidad, ms antigua, slo se pueden usar
diskettes de 720 Kb.

Para ver ms claramente las diferencias entre los dos tipos de diskettes y sus
capacidades, se muestra la Tabla No. 1.1.

Tamao Tipo de Capacidad Explicacin


disco

5,25" SS/DD 180 Kb Una cara, doble densidad. Desfasado

5,25" DS/DD 360 Kb Dos caras, doble densidad. Desfasado

5,25" DS/HD 1,2 MB Dos caras, alta densidad. Desfasado pero til

3,5" DS/DD 720 Kb Dos caras, doble densidad. Desfasado pero muy comn

3,5" DS/HD 1,44 MB Dos caras, alta densidad. El estndar actual

Tabla No. 1.1 Tabla de capacidades de los dos tipos de dikettes.

Los diskettes tienen fama de ser unos dispositivos muy poco fiables en
cuanto al almacenaje a largo plazo de la informacin; y en efecto, lo son. Les afecta
todo lo imaginable: campos magnticos, calor, fro, humedad, golpes o polvo.

Hace unos das verifiqu unos 20 diskettes de diferentes marcas que fueron
grabados por una computadora 486 los cuales estaban almacenados en una caja.
Casi la mitad no funcionaba, porque no se cuidaron como es debido.

Si se tienen programas o informacin en diskettes, se recomienda hacer


copias inmediatamente y guardar los originales en lugar seguro. Si se tienen datos
importantes almacenados en diskette, se sugiere hacer copias nuevas y pensar en
otro mtodo mejor de almacenamiento ms actual. Y ante todo, se sugiere
comprar siempre diskettes de marca.

DISCO DURO

Los sistemas de discos duros son muy importantes como medio de


almacenamiento en los sistemas computacionales, porque pueden almacenar ms
datos y se puede recuperar stos ms rpidamente que en los diskettes. Los discos
duros contienen una o ms superficies rgidas para grabar datos, cada una cubierta

Pgina : 9
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

con un xido metlico que registra cargas magnticas. La cabeza de escritura /


lectura se encuentra tpicamente a unos catorce millonsimos de pulgada por encima
de la superficie del disco. Los platos giran sobre un eje aproximadamente a 3600
rpm, 12 veces ms rpido que los disquetes (cuanto ms rpido gire un disco, ms
pronto la cabeza de lectura / escritura puede encontrar datos).

En la actualidad existen discos duros de tecnologas que le permiten un


tiempo de acceso muy corto; entre los lderes de este tipo de tecnologas se cuenta
con empresas como Quantum, Seagate y Maxtor, quienes fabrican discos duros con
superficies aprovechables (libres de errores) en casi un 100%. Y con capacidades
de almacenar hasta unos 120 Gb en formatos de 3 y hasta de tamaos ms
pequeos para computadoras porttiles (notebook). La Figura No. 1.9 muestra la
composicin de un disco duro de varios platos.

Figura No. 1.9 Disco Duro de varios platos.

La estructura fsica de un disco es la siguiente: un disco duro se organiza en


platos, y en la superficie de cada una de sus dos caras existen pistas concntricas,
como surcos de un disco de vinilo, y las pistas se dividen en sectores. El disco duro
tiene una cabeza en cada lado de cada plato, y esta cabeza es movida por un motor
cuando busca los datos almacenados en una pista y un sector concreto.

Para poder utilizar el disco duro, tiene que pasar por una etapa de
configuracin, la cual es dada por el formateo del disco duro, en el cual se hacen las
siguientes tares: se le marcan las pistas y sectores al disco, se le define la zona de
directorio, se crean la FAT (File Allocation Table) y el registro de arranque y,
eventualmente, se le graban los archivos del sistema operativo para el arranque del
sistema. Existen dos tipos de formateo: el de bajo nivel y el lgico.

El formateo de bajo nivel es un proceso fsico que divide las pistas circulares
en un nmero especfico de sectores con capacidad para 528 bytes cada uno, de los
cuales 512 son para datos y 16 para control del sistema. El inicio de cada sector se
indica mediante un cdigo magntico de direccin, a continuacin, sigue un cdigo
para encabezamiento del sector (Id), que contiene los nmeros del cilindro, la cabeza
y el sector respectivo. Los datos de informacin se graban en la porcin central de

Pgina : 10
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

cada sector. En la actualidad, tericamente slo es necesario el formateo de bajo


nivel una sola vez, y se debe dejar como ltimo recurso para arreglar un disco.

El formateo lgico se hace para dotar al disco de un sistema de direcciones


que permita leer y escribir datos en sectores definidos. El formateo lgico permite la
recuperacin de la informacin en caso de un formateo accidental, en cambio, el
formateo de bajo nivel no.

Se manejan varios conceptos para identificar sus partes fsicas, los cuales se
describen a continuacin :

CILINDRO: Es una pila tridimensional de pistas verticales de los mltiples platos.


El nmero de cilindros de un disco corresponde al nmero de
posiciones diferentes en las cuales las cabezas de lectura / escritura
pueden moverse.

CLUSTER: Es un grupo de sectores que es la unidad ms pequea de


almacenamiento reconocida por el sistema operativo Ms-Dos.
Normalmente 4 sectores de 512 bytes constituyen un Cluster (racimo),
y uno o ms Cluster forman una pista.

PISTA: Es la trayectoria circular trazada a travs de la superficie circular del


plato de un disco por la cabeza de lectura / escritura. Cada pista est
formada por uno o ms Cluster.

SECTOR: Es la unidad bsica de almacenamiento de datos sobre discos duros.


En la mayora de los discos duros los sectores son de 512 Bytes cada
uno, cuatro sectores constituyen un Cluster.

En la figura No. 1.10 se puede apreciar cual es la cabeza lectora / grabadora,


una pista y un sector.

Figura No. 1.10 Estructura fsica de un Disco Duro.

Pgina : 11
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

Estructura Lgica de los Disco Duros.

En primer lugar, internamente los discos duros se pueden dividir en varios


volmenes homogneos. Dentro de cada volumen se encuentran una estructura
que bajo el sistema operativo del Ms-Dos, sera la siguiente:

El Sector de Arranque : Al formatear un volumen, el sector de arranque se crea


siempre como primer sector del volumen, para que sea fcil de
localizar por el Ms-Dos. En l se encuentra informacin
acerca del tamao, de la estructura del volumen y sobre todo
del BOOTSTRAP-LOADER, mediante el cual se puede
arrancar la microcomputadora desde el Ms-Dos. A sta parte
se le llama sector de arranque (BOOT).

La Tabla de Asignacin de Ficheros (File Allocation Table) (FAT) : Si el Ms-Dos


quiere crear nuevos archivos, o ampliar archivos existentes, ha
de saber qu sectores del volumen correspondiente quedan
libres. Esta informacin las toma la llamada FAT. Cada
entrada a esta tabla se corresponde con un nmero
determinado de sectores, que son adyacentes lgicamente en
el volumen. Cada uno de estos grupos de sectores se llama
Cluster. El tamao de las diferentes entradas de esta tabla en
las primeras versiones del Ms-Dos era de 12 bits con lo que se
podan gestionar hasta 4096 Clusters, correspondiente a una
capacidad aproximada de 8 Mbytes. En vista del problema
que surgi al aparecer discos duros de capacidades ms
elevadas, se ampli el tamao a 16 bits, permitiendo el
direccionamiento de un mximo de 65535 Clusters.
Actualmente se est manejando FATs de hasta 32 bits, para
discos duros capaces de almacenar varios Gigas de
informacin.

Una o ms copias de la FAT : El Ms-Dos permite a un programa de formateo crear


no slo una, sino varias copias idnticas de la FAT. Si el Ms-
Dos encuentra uno de estos medios, cuida todas las copias de
la FAT simultneamente, as que guarda all los nuevos
clusters ocupados o liberados al crear o borrar archivos. Esto
ofrece la ventaja de que se puede sustituir la FAT primaria en
caso de defecto por una de sus copias, para evitar la prdida
de datos.

El directorio Raz : La cantidad mxima de entradas en el directorio raz se limita


por su tamao, que se fija en el sector de arranque. Ya que el
directorio raz representa una estructura de datos esttica, que
no crece si se guardan ms y ms archivos o subdirectorios.

Pgina : 12
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

De ah que, dependiendo del tamao, bien un disco duro o bien


de volumen, se selecciona el tamao del directorio raz en
relacin al volumen.

La Zona de Datos : Es la parte del disco duro en la que se almacena los datos de un
archivo. Esta zona depende en casi su totalidad de las
interrelaciones entre las estructuras de datos que forman el
sistema de archivos del Ms-Dos, y del camino que se lleva
desde la FAT hacia los diferentes sectores de un archivo.

Procesos de grabacin

GCR (Group Coding Recording - Codificacin de grupo de grabacin) Es un proceso


de almacenamiento en el que los bits se empaquetan como grupos y son
almacenados bajo un determinado cdigo. Es utilizado por los discos que
utilizan codificacin RLL.

ZBR (ZoneBit Recording) Es un proceso de almacenamiento que coloca ms


sectores sobre las pistas exteriores del disco que son ms largas, pero
mantienen un valor constante de rotacin. Esta diseado para colocar ms
datos sobre el disco, slo puede usarse con interfaces inteligentes.

Proceso de Codificacin

FM: Es la codificacin ms sencilla, consiste en la grabacin de un cambio de


flujo para cada uno, y el omitir el cambio de flujo para cada cero. Este
procedimiento se puede realizar con una electrnica de control relativamente
simple, pero tiene el inconveniente de que cada bit de datos consume dos
cambios de flujo, limitando mucho la capacidad del disco.

MFM (Modified Frequency Modulation - Modulacin de frecuencia modificada)


Mtodo de codificacin magntica de la informacin que crea una
correspondencia 1 a 1 entre los bits de datos y transiciones de flujo (cambios
magnticos) sobre un disco. Emplea una menor densidad de
almacenamiento y presenta una velocidad ms baja de transferencia que el
RLL.

Esta tecnologa es usada en los discos flexibles y en los primeros discos


duros. Cada bit de datos es almacenado sobre una regin fsica lo
suficientemente grande para contener 2 posibles posiciones 00, 01 10.
Entre cada 2 bits de datos hay un bit que se llama de "reloj" y que se usa para
validar las lecturas, as como para sincronizarlas. Este bit hace que sea uno
cuando est situado entre 2 bits de datos a cero y se hace cero cuando est

Pgina : 13
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

situado entre cualquier otra combinacin de bits de datos. As se hace


imposible que se puedan leer ms de 3 bits consecutivos con un valor de cero,
o ms de un bit seguido a uno. Esto es cierto para todas las informaciones
almacenadas en el disco excepto para las reas de control del mismo cuyas
marcas de comienzo de pista, sector y datos tienen 4 bits consecutivos a cero
en su "adress mark". Evidentemente, estos sistemas, aunque fiables, son
unos grandes consumidores de espacio ya que emplean prcticamente la
mitad del espacio en bits de reloj.

RLL: (Run Length Limited - Longitud recorrido limitado) Mtodo de codificar la


informacin magnticamente que usa GCR para almacenar bloques en vez de
bits individuales de datos. Permite densidades mayores de almacenamiento
y velocidades mas altas de transferencia que MFM. En la prctica, permite
incrementar en un 50% la capacidad de un disco respecto al sistema de
grabacin MFM. Los mtodos de grabacin RLL utilizan un conjunto
complejo de reglas para determinar el patrn de pulsos para cada bit basado
en los valores de los bits precedentes. Este sistema se puede clasificar
dependiendo de la distancia mxima y mnima de silencios entre dos pulsos,
por ejemplo; el RLL 2,7 tiene una distancia mnima entre pulsos de 2 silencios
y una mxima de 7.

COMO MANTENER UN DISCO DURO EN BUEN ESTADO.

Existen varias cosas que usted puede realizar para prevenir que la computadora
le devuelve mensajes de error molestos. A continuacin se muestra una lista de
programas diferentes disponibles para asegurarse de que la unidad de disco duro se
mantenga saludable y funcionando a plena capacidad.

1.-Utilidad de Desfragmentacin de Disco

Al transcurrir el tiempo, es posible que los archivos se vuelvan fragmentados


porque se almacenan en posiciones diferentes en el disco. Los archivos
estarn completos cuando los abra, pero la computadora lleva ms tiempo al
leer y escribir en el disco. Desde Windows 98 y hasta el Windows Xp al
instalar el sistema Operativo, se instala un programa de desfragmentacin que
corrige esto. Para obtener acceso al programa de desfragmentacin de disco
bajo Windows Millenium, haga doble click en el cono de Mi Pc., en la caja de
dilogo que aparece se ubica en el cono de disco duro y haga clic derecho y
baje la barra iluminada hasta la opcin Propiedades; ah dar clic izquierdo,
luego aparece otra caja de dialogo, y ah te colocas en la pestaa llamada
herramientas y dar clic a la opcin de Utilidad de desfragmentacin de
disco.

Pgina : 14
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

2.- Compresin de Datos

Usted puede obtener espacio libre en la unidad de disco duro o en disquetes


al comprimir los datos que estn almacenados en stos. En Windows 95,
haga clic en Inicio. Ilumine Programas, Accesorios, luego en Herramientas
de Sistema. Hacer clic izquierdo en DriveSpace.

3.- Deteccin de Daos

Si experimenta problemas con los archivos, tal vez quiera averiguar si existen
daos en el disco. ScanDisk de Windows Millenium verifica los archivos y las
carpetas para encontrar errores de datos y tambin puede verificar la
superficie fsica del disco. Para ejecutar ScanDisk, haga doble click en el
cono de Mi Pc., en la caja de dilogo que aparece se ubica en el cono de
disco duro y haga clic derecho y baje la barra iluminada hasta la opcin
Propiedades; ah dar clic izquierdo, luego aparece otra caja de dialogo, y ah
te colocas en la pestaa llamada herramientas y dar clic a la opcin de
Utilidad de ScanDisk. Existen varios programas de deteccin y limpieza de
virus que estn disponibles para usted. Simplemente hay que pedirlos del
distribuidor local de software para computadoras.

4.- Respaldos

Si la unidad de disco duro se descompone o si los archivos se daan o se


sobrescriben accidentalmente, es una buena idea contar con una copia de
respaldo de los datos de la unidad de disco duro. Estn disponibles varios
programas de respaldo de uso con cintas, diskettes y aun con los medios
desmontables. A menudo, la computadora tendr una utilidad de respaldo ya
instalada.

Ventajas y limitaciones de los Discos Duros.

VENTAJAS.

Los registros en disco pueden almacenarse en forma secuencial y procesarse


como los registros en cinta magntica o, pueden almacenarse para
procesarlos en forma directa.
Puede tenerse acceso a cualquier registro de disco en lnea y pueden
actualizarse en unos cuantos milisegundos. No es necesario clasificar las
transacciones.
Puede utilizarse una sola transaccin de entrada de datos para actualizar los
registros de disco en lnea de varios archivos relacionados entre s.

Pgina : 15
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

DESVENTAJAS.

Cuando se actualiza un archivo en cinta magntica, la cinta maestra anterior


no suele sufrir alteraciones y sigue disponible durante cierto tiempo, en caso
de que se presentaran fallas en el sistema. En cambio, cuando se actualizan
los registros de un archivo en disco, es posible que se borren los registros
anteriores cuando los registros nuevos se graban en el disco, quiz la
informacin almacenada en un disco duro fijo quede inaccesible o se pierda si
hay una falla de disco.
Ha habido gente que elude las medidas de seguridad y logra tener acceso a
archivos importantes de disco en lnea desde terminales remotas. Estos
archivos han sido manipulados y hasta destruidos. Es ms fcil mantener
esta seguridad en cinta magntica.

Tema 1.3 Dispositivos de memoria intermedia.

UNIDADES ZIP.

Las unidades ZIP, por las capacidades de los diskette, por su fiabilidad, y por
su velocidad de transferencia estn a mitad de camino entre las unidades de diskette
y las de disco duro, aunque ms prximas a esta ltima. As, su velocidad de giro
es del orden de 3000 r.p.m, lo cual redunda en una mayor velocidad de transferencia.

La unidad ZIP es externa al gabinete de la computadora. La conexin del ZIP


generalmente se hace en el puerto paralelo que usa la impresora, debindose
desconectar sta de dicho puerto, y volverla a conectar a la unidad ZIP en un
conector preparado. Los diskettes para ZIP son flexibles, y pueden almacenar en
sus dos caras magnetizables 100/200 Mb, emplendose comnmente para hacer
copias de seguridad del disco duro. Las cabezas de escritura / lectura estn en
contacto con las superficies de ambas caras, siendo ms pequeas en tamao que
las usadas en las unidades de diskette, lo que permite grabar con densidades de
grabacin mayores. La Figura No. 1.11 muestra una unidad zip, as como el diskette
que utiliza.

Actualmente existen en el mercado unidades ZIP de hasta 250 MB de


capacidad de almacenamiento. Normalmente, se conectan al puerto paralelo,
aunque la empresa Iomega ya tiene en el mercado la nueva unidad que se conecta
al puerto USB de la computadora personal.

Pgina : 16
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

Figura No. 1.11 Unidad Zip de almacenamiento

UNIDADES SUPERDISK LS-120-120 MB (Imation/Panasonic).

Pros: reducido formato, precio global, compatibilidad con diskettes 3.5"


Contras: capacidad algo reducida, menor aceptacin que el Zip.

Estos discos son la respuesta a la cada vez ms comn desesperacin del


usuario que va a grabar su trabajo en un diskette y se encuentra con que supera los
temidos 1.44 Mb. No importa, meta un SuperDisk, que aparenta ser un disquete de
3.5" algo ms grueso, y ya tiene 120 MB a su disposicin.

Aparentemente, esta compatibilidad con los diskettes clsicos


tradicionales de 3.5 pulgadas, puede traer consecuencias desastrosas. El problema
est en que la velocidad de este dispositivo, unos 400 Kb/s, si bien es suficiente y
supera con creces la de una unidad de diskettes de 3.5", es algo menos de la mitad
de la de una unidad Zip..

La unidad se vende con conexin IDE para la versin interna o bien puerto
paralelo (el de impresora) para la externa, que, aunque parece menos pensada para
viajes accidentados que el Zip, permite conectarla a cualquier computadora sin
mayores problemas. Adems, acaba de ser presentada una versin USB que hace
la instalacin an ms sencilla. Si la BIOS de la tarjeta madre lo permite (lo cual
slo ocurre con todas las tarjetas madre desde Pentium III) puede configurar la
versin IDE incluso como unidad de arranque, con lo que no necesitar para nada la
unidad de diskette de 3.5 pulgadas.

Su mayor "handicap" reside en haber dejado al Zip como nica opcin durante
demasiado tiempo, pero la compatibilidad con los disquetes de 3,5" y sus 20 Mb
extra parece que estn cambiando esta situacin. Si va a comprar una computadora
nueva, le compensar pedir que le instalen un SuperDisk en vez de la unidad de
diskette de 3,5". La decisin entre Zip y SuperDisk es muy difcil, incluso cuestan
prcticamente lo mismo. La figura No. 1.12 muestra la unidad SuperdDisk y su
disco para almacenar informacin.

Pgina : 17
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

Figura No. 1.12 Unidad SuperdDisk y Disco para grabar.

Magneto-pticos de 3,5" - 128 MB a 1,3 GB

Pros: alta seguridad de los datos, portabilidad, bajo precio de los discos, fcil
manejo
Contras: inversin inicial, poca implantacin.

Se trata de dispositivos que rene lo mejor de ambas tecnologas para ofrecer un


producto con un bajo coste por Mb almacenado, bastante rpido, con un soporte
absolutamente transportable y sobre todo perdurable: almacenan sus datos
prcticamente para siempre, sin afectarles lo ms mnimo los campos magnticos
(ni el polvo, calor, humedad, etc, hasta un lmite razonable), a la vez que le permite
rescribir sus datos tantas veces como quiera.

Son capaces de almacenar hasta 1,3 GB en discos muy similares a los


disquetes de 3,5" que tienen una cubierta de plstico para protegerlos de los golpes
y el polvo, no como los CDs con su superficie expuesta a involuntarias huellas de
dedos que los inutilicen.

Una vez instalada la unidad, se maneja como si fuera un disco duro ms


(sin necesidad de ningn programa o accesorio). Existen discos y lectores-
grabadores de 128, 230, 540, 640 MB y 1,3 Gb, pero en la actualidad slo son
recomendables los de 640 Mb y 1,3 Gb, que adems permiten leer y escribir en los
discos de menor capacidad.

No son compatibles con los diskettes de 1.44 Mb, su velocidad es muy


elevada, comparable a la de los discos duros de hace pocos aos, pero tiene el
problema de que el proceso utilizado obliga a que la escritura se realice a la mitad de
la velocidad de la lectura. As, mientras que se pueden alcanzar casi los 2,5 MB/s
en lectura, la escritura se queda en alrededor de 1 MB/s, con un tiempo de acceso
cercano al de un disco duro (menos de 40 ms). Para subsanar este problema,
Fujitsu (una de las empresas que ms potencian este mercado) a sacado unos

Pgina : 18
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

nuevos modelos con tecnologa LIMDOW (tambin conocida simplemente como OW,
por OverWrite) en los que se puede alcanzar ms de 1,5 MB/s en escritura.

Lo malo de la tecnologa OW es que adems de una unidad lectora-grabadora


reciente necesita discos especiales, ms caros que los normales. La Figura No. 1.13
muestra la unidad lectora/grabadora de Magneto-pticos.

Figura No. 1.13 Unidad lectora / grabadora de Magneto-pticos.

UNIDAD JAZZ

La unidad jazz usa discos de 1Gb de capacidad con autentica tecnologa de


disco duro. El Jazz no solo toma en serio el espacio de almacenamiento, sino que
mejora el aprovechamiento de las unidades internas en muchas computadoras
personales. Las caractersticas son, por ello, impresionantes incluso superiores a la
de algunos discos duros: velocidad de transferencia por rfagas de 10 Mb /seg. , 12
ms de tiempo promedio de bsqueda, 17 ms de tiempo promedio de acceso y la
capacidad de ser reconocida como disco duro por el sistema operativo de la
computadora.

Su precio es de $300 Dls. la unidad externa y $250 Dls. la unidad interna,


pesa aproximadamente 2 libras y su capacidad formateada del cartucho es de
1020.9 Mb. El costo del cartucho de 1 GB es de $100 Dls. aproximadamente, la
instalacin de la unidad es sumamente sencilla y las utileras del manejo son claras e
intuitivas (e incluye proteccin de datos y catalogacin). Puede dejar caer los
cartuchos de una altura de 8 pies (2.43 mts.) sin causarles ningn dao. Los precios
comentados en ste prrafo son al mes de noviembre del ao 2003.

Por otro lado, el Jazz tiene las mismas caractersticas porttiles que su
hermano zip, pero a diferencia de este, tiene la rapidez y capacidad para cargar
aplicaciones, permitir el desarrollo de multimedia, hacer el resguardo de la

Pgina : 19
DISPOSITIVOS DE ALMACENAMIENTO EXTERNO

computadora en 10 min., guarda hasta 8 hrs. de msica con calidad de CD, 2 hrs. de
pelcula o 150 fotografas de color, etc.

Estamos antes el concepto ms moderno de versatilidad en materia de


almacenamiento. No es de extraar que los usos crezcan en todas las direcciones y
que esta tecnologa pase a ser un nuevo estndar en la industria. Muy pronto las
computadoras vendrn ya equipadas con una unidad Iomega y con software que
permita detectar la presencia de un zip o jazz y seleccionarla como ruta bsica de
almacenamiento. La figura No. 1.14 muestra una unidad lectora / grabadora del tipo
JAZZ.

Figura No. 1.14 Unidad lectora / grabadora de JAZZ.

Pgina : 20
CAPITULO 2

Definiciones y
Conceptos
DEFINICIONES Y CONCEPTOS

Capitulo II.- Definiciones y Conceptos.

El procesamiento de la informacin es fundamental para planificar cualquier


actividad del hombre de hoy, que va desde conocer el tiempo que puede hacer el fin
de semana, las ltimas cotizaciones en la bolsa o disponer en todo momento de una
informacin actualizada de los datos de una empresa, entendiendo como empresa
cualquier organizacin comercial, cientfica, tcnica o de otra clase, con un nivel
razonable de autosuficiencia.

Una consecuencia de todo esto es la gran cantidad de datos que es necesario


manejar en cualquier actividad de la vida, sobre todo en el mundo empresarial. Al
aumentar el volumen de datos a manejar, tambin debe aumentar la rapidez con que
se procesan dichos datos. Cualquier empresa mediana, en la actualidad, maneja
miles de millones, o incluso billones de elementos individuales de datos.

Las computadoras han venido a revolucionar la forma de almacenar y tratar


dichos datos, los cuales deben estructurarse en forma adecuada para poder
representarse dentro de la computadora y poder ser procesados en forma adecuada.

Cuando hablamos de archivos, habitualmente se utilizan cuatro trminos que


debemos definir claramente: Campo, Registro, Archivo y Base de datos. Se puede
decir que estos trminos forman una estructura de datos agrupados y relacionados
de alguna manera en particular donde uno contiene al otro y que nos facilitan la
manera de almacenarlos y recuperarlos.

Tema II.1 Campo, campo secuencial, registro, llave, archivo, base


de datos y transaccin.

Campo.- Un Campo es un espacio definido en la memoria de la computadora o en


algn medio de almacenamiento dispuesto para contener un solo dato de
un solo tipo. Como ejemplo: un campo individual contiene un valor nico,
como el apellido de un empleado, una fecha o un valor ledo por un sensor.
Lo ms importante de un campo es su longitud (que puede ser fija o
variable) y el tipo de datos que contenga (ya sea una cadena ASCII o un
dgito decimal).

Campo Secuencial.- Un campo secuencial es aqul que permite establecer una


coleccin de continuidad entre los registros de un archivo. El campo
secuencial se muestra en la figura No. 2.1, donde la clave del
departamento de adscripcin, se encadena con la descripcin
correspondiente que se encuentra en un registro en otro archivo.

Pgina : 22
DEFINICIONES Y CONCEPTOS

Figura No. 2.1 Ejemplo de campo secuencial.

Registro Un registro es un conjunto de campos relacionados entre si que pueden


tratarse como una unidad por algunos programas de aplicacin. Por
ejemplo: un registro de nombre empleado contendra campos tales como:
clave del empleado, nombre, Departamento de adscripcin, sueldo diario,
etc. Un registro puede ser de longitud variable en el caso de que el
nmero de campos pueda variar, esto depender de su diseo.

Llave Es aquel campo que permite identificar en forma unvoca a un registro.


Generalmente se designaran como campos llave, aquellos que no
contienen datos repetidos.

Si el sistema de archivos no posee campos con esas caractersticas,


debern utilizarse llaves intermedias o escalonadas. Y en el ltimo de los
casos, se unen dos o ms campos para generar la llave.

Este mtodo presenta listas de objetos (o individuos) que se van


reduciendo conforme se introducen los valores para cada una de las llaves
escalonadas. El proceso se da por concluido al hacer contacto visual con
el objeto buscado o hasta reducir la lista de tal forma que se determina la
inexistencia del objeto.

Al manejar algunos campos como llaves, stos pueden ser de dos tipos :

Llave primaria.

Es el campo llave principal de un archivo multillave. En un archivo


secuencial indexado con llaves alternas representa el campo por
medio del cual el acceso directo y secuencial es manejado.

Pgina : 23
DEFINICIONES Y CONCEPTOS

Llave secundaria.
Es, en un archivo multillave (de varios campos llave), cualquier llave
exceptuando la primaria.

Archivo.- Un Archivo es un conjunto de registros similares. Los usuarios y las


aplicaciones se refieren a l por un nombre que es nico y que puede
crearse y borrarse. Las restricciones al control de acceso suelen aplicarse
a los archivos. Es decir en un sistema compartido, el acceso de los
usuarios y los programas se garantiza o deniega a archivos completos, en
otros casos se aplica a los registros e incluso a ciertos campos.

La figura No. 2.2 muestra en forma grfica los conceptos de : Campo,


Registro, Campo llave y archivo.

Figura No. 2.2 Ejemplo de campo llave, campo, registro y archivo.

Base de datos.- Una base de datos es un conjunto de varios archivos de datos


independientes, que estn ligados y relacionados de alguna forma, donde
se elimina parcial o totalmente cualquier redundancia entre los mismos.
Las bases de datos generalmente estn mecanizadas en una computadora
por un software llamado DBMS (Database Management System).

La figura No. 2.3 nos muestra el esquema de una base de datos, en la cual se
manejan varios archivos llamados tablas (Empleado, Depto_Ads y Tipos_emp) que
se encuentran vinculados por campos llave (Cve_dep y Tipo_emp) y que entre todos
forman la base de datos.

Transaccin.- Una transaccin consiste en agregar, eliminar o modificar un registro


de datos en algn archivo en especfico. Las transacciones son la forma

Pgina : 24
DEFINICIONES Y CONCEPTOS

ms comn de actualizar los datos de un archivo o de toda una base de


datos.

Figura No. 2.3 Ejemplo de una base de datos trivial.

Tema II.2 Organizacin de registros y archivos.

En los lenguajes de programacin actuales, los dispositivos tradicionales como


: terminales, unidades de disco, unidades de cinta, puertos de comunicacin e
impresora; todos ellos son tratados como archivos. Esto es posible, sea cual sea la
naturaleza del dispositivo externo, el sistema de almacenamiento temporal de
archivos los convierte en un dispositivo lgico denominado corriente (stream).
Debido a que la corriente es casi independiente del dispositivo que la genera, las
funciones de librera que escriben un archivo en disco pueden ser utilizadas, con las
oportunas variaciones, para producir una salida por impresora o por el monitor.

A estos efectos, la entrada estndar de datos (teclado) se asocia con un


archivo de nombre <stdin> (Standard Input o entrada de datos estndar), y la salida
por el monitor con <stdout> (Standard Output o salida de datos estndar).

En forma general se manejan dos tipos de stream o corrientes, para


almacenar los datos en un archivo :

Corrientes de texto.
Corrientes binarias.

Una corriente de texto es una sucesin indefinida de caracteres organizados


en lineas de diversas longitudes o sea en registros de longitud indefinida.

Pgina : 25
DEFINICIONES Y CONCEPTOS

La organizacin de los registros en un archivo considerado como corriente de


texto maneja un separador entre registros y al final del ltimo registro una marca de
fin de archivo, tal como se muestra en la figura No. 2.4.

Figura No. 2.4 Separadores entre registros y fin de archivo de una corriente de texto.

Al tratar los datos contenidos en un archivo como corriente de texto, se


realizan ciertas transformaciones de los caracteres especiales ledos / escritos. Por
ejemplo el carcter LF puede transformarse en un par (CR y LF) segn las
conveniencias del sistema. Por tanto existen ciertas diferencias entre los caracteres
ledos de un archivo y los realmente almacenados en la memoria de la computadora
y viceversa. Dichas conversiones se pueden apreciar en la figura No. 2.5.

Figura No. 2.5 Conversiones Caracteres a Binario y viceversa.

En los lenguajes de programacin como Pascal, Fortran, Cobol, R.P.G. II,


Basic, etc. los archivos de datos se manejaban como corrientes de texto y en
algunos de los casos se trat de ahorrar espacio de almacenamiento y las variables
del tipo numrico se manejaban como empacadas (o sea que en medio byte se
representaba un digito y en el otro medio byte otro dgito).

En la corriente binaria las transformaciones mencionadas no se realizan, y


los datos presentes en la memoria y el del archivo coinciden unvocamente byte a
byte. Adems, al almacenar los datos en un registro no existen separadores entre
registros tal como se puede apreciar en la figura No. 2.6.

Pgina : 26
DEFINICIONES Y CONCEPTOS

Figura No. 2.6 No existen separadores entre registros en la Corriente de Binaria.

Un ejemplo de corriente binaria es el caso de variables tipo int, que ocupan 2


bytes para su almacenamiento y que puede almacenar valores entre -32,768 y
+32,767; es decir que los valores reales pueden tener entre 1 y 5 dgitos; pero como
los datos con convertidos a binario nunca existen conversiones al leer, procesar o
escribir los datos tal como se muestra en la figura No. 2.7.

Figura No. 2.7 Conversiones Caracteres a Binario.

Comparando las dos tipos de corrientes (de texto y binarias), el flujo de texto
ya qued obsoleto y los lenguajes de programacin Orientados a Objetos, los
Lenguajes Visuales y los Lenguajes Orientados a eventos utilizan el flujo binario
porque optimiza el uso del espacio y adems no utiliza mucho tiempo en
conversiones Texto-Binario-Texto.

Al momento de ejecutar una aplicacin creada en los lenguajes de


programacin actuales tales como C++, Visual C++ o Java; se abren de forma
simultanea cinco corrientes estndar las cuales son asociadas por default a los
dispositivos enumerados a continuacin :

stdin Entrada estndar de datos (Teclado).


stdout Salida estndar de datos (Monitor).
stderr Despliegue de errores estndar (Monitor).
stdaux Auxiliar estndar (RS-232, puertos USB y sus variantes).
stdprn Impresora estndar (Impresora).

Pgina : 27
DEFINICIONES Y CONCEPTOS

Para los ejemplos prcticos de administracin de archivos de ste libro, se


elaboraron en el Lenguaje C++ versin 3.1 y se utiliz la filosofa de Programacin
Orientada a Objetos; debido a que es la ms utilizada en los lenguajes de
programacin actuales.

Debido a lo anterior, se adopt la biblioteca de flujos de entrada / salida de


C++ para crear los objetos respectivos tipo archivo. La jerarqua de clases que se
utilizan en la entrada / salida de datos se puede observar en la figura No. 2.8.

Figura No. 2.8 Jerarqua de clases de Entrada / salida de C++.

Para construir y manipular un archivo de datos, se debe conectar el archivo a


un programa, un medio para leer el contenido de un archivo y un medio para crear y
escribir en archivos. El paquete de clases de C++ manipula entradas y salidas de
archivos de igual forma que si manejara entradas y salidas estndar.

Los programadores que deseen conectar un archivo a un programa para


realizar operaciones de entrada / salida debern incluir el archivo de cabecera
<fstream.h> (para crear y manipular objetos tipo archivo) y adems el <iostream.h>
(para las funciones de entrada / salida).

En C++ un archivo se enlaza a un flujo, cuando se abre, se accede, se lee o


se escribe en l y cuando se cierra. Despus que un archivo se ha abierto, se debe
conectar a un flujo. Un archivo se puede conectar a los siguientes flujos :

Ifstream Para abrir un archivo como entrada (Lectura).


Ofstream Para abrir un archivo como salida (Escritura).
Fstream Para abrir un archivo como entrada / salida (Lectura / escritura).

Los tres flujos anteriores son considerados como clases para la creacin de
objetos tipo archivo de datos.

Pgina : 28
DEFINICIONES Y CONCEPTOS

La clase tipo ifstream contiene varias funciones miembro. Entre las ms


comunes tenemos las que se muestran en la figura No. 2.9.

Figura No. 2.9 Funciones miembro de la clase ifstream.

Las acciones que lleva a cabo cada una de las funciones miembro de la clase
ifstream se enumeran a continuacin :

ifstream () Es el constructor del archivo.


~ifstream () Es el destructor del archivo.
open () Sirve para abrir un archivo de tipo lectura.
rdbuf () Sirve para devolver un puntero tipo streambuf a este stream.
eof () Sirve para verificar si llegamos al fin del archivo.
read () Leer datos de un archivo y transferirlos al buffer de lectura que
se encuentra en la memoria.
close () Cierra un archivo previamente abierto como lectura.
seekp () Coloca el apuntador de lectura a una posicin especfica en el
archivo.
gcount () Sirve para conocer los caracteres que se han ledo.

La clase tipo ofstream contiene varias funciones miembro. Entre las ms


utilizadas tenemos las que se muestran en la figura No. 2.10.

Figura No. 2.10 Funciones miembro de la clase ofstream.

Pgina : 29
DEFINICIONES Y CONCEPTOS

Las acciones que lleva a cabo cada una de las funciones miembro de la clase
ofstream se enumeran a continuacin :

ofstream () Es el constructor del archivo de escritura


~ofstream () Es el destructor del archivo de escritura.
open () Sirve para abrir un archivo de tipo escritura.
rdbuf () Sirve para devolver un puntero tipo streambuf a este stream.
write () Sirve para tomar datos del buffer de memoria y escribirlos en el
archivo.
close () Cierra un archivo previamente abierto como escritura.
seekg () Coloca el apuntador de escritura a una posicin especfica en el
archivo.

La clase ultima clase para manipulacin de archivos es la fstream que tambin


contiene varias funciones miembro. Entre las ms comunes tenemos las que se
muestran en la figura No. 2.11.

Figura No. 2.11 Funciones miembro de la clase fstream.

Las acciones que lleva a cabo cada una de las funciones miembro de la clase
fstream se enumeran a continuacin :

fstream () Es el constructor del archivo de lectura / escritura


~ofstream () Es el destructor del archivo de lectura / escritura.
open () Sirve para abrir un archivo lectura / escritura.
read () Leer datos de un archivo y transferirlos al buffer de lectura que
se encuentra en la memoria.
write () Sirve para tomar datos del buffer de memoria y escribirlos en el
archivo.
close () Cierra un archivo previamente abierto como lectura / escritura.
eof () Sirve para verificar si llegamos al fin del archivo.
Pgina : 30
DEFINICIONES Y CONCEPTOS

seekg () Coloca el apuntador de escritura a una posicin especfica en el


archivo.
seekp () Coloca el apuntador de lectura a una posicin especfica en el
archivo.
tellg () Informa la posicin actual del puntero de lectura.
tellp () Informa la posicin actual del puntero de escritura.
rdbuf () Sirve para devolver un puntero tipo streambuf a este stream.

Un archivo de datos debe crearse en algn medio de almacenamiento, el


medio ms comn es el disco duro, el cual es utilizado en un 95 % de las
aplicaciones para almacenar sus datos. En el disco duro est organizado en varios
fragmentos llamados carpetas o subdirectorios y la forma de ubicar el lugar donde se
escribir fsicamente lo podemos apreciar en la figura No. 2.12.

Figura No. 2.12 Elementos a considerar para ubicar un archivo.

El acceso de datos a un archivo (lectura y escritura) requiere de mucha


actividad que es transparente para el programador de la aplicacin. Los lenguajes
de programacin permiten a los programadores definir tcnicas de organizacin de
archivos bastante complejas con instrucciones muy simples. Un sistema de archivos
proporciona el apoyo que permite al programador accesar archivos sin preocuparse
de los detalles sobre las caractersticas de almacenamiento y tiempos de acceso. El
sistema de archivos convierte a las instrucciones de acceso muy sencillas para el
programador sin que l se meta con instrucciones de bajo nivel.

En forma general, el sistema de archivos (file system) del disco duro, es el


encargado de permitir o negar el acceso a ciertos archivos de datos. Para ello los
archivos cuentan con unos elementos propios para cuidar su acceso.

ELEMENTOS PROPIOS DEL ARCHIVO.

Atributos.- Son marcas fsicas que determinan el tipo de operaciones y


caractersticas de un archivo, dichas marcas pueden ser : permitir solo lectura,
permitir solo escritura, permitir lectura / escritura o bien permanecer oculto.

Pgina : 31
DEFINICIONES Y CONCEPTOS

Identificador de archivo.- Es un elemento lgico que se crea en un ambiente


de programacin para hacer referencia al archivo de datos y normalmente es
el nombre del mismo.
Apuntador de registro.- Es una marca lgica que indica la posicin donde se
realizara la siguiente operacin de lectura o escritura en el archivo.
Nmero de registro.- Son elementos lgicos que indican la posicin relativa
del registro en el archivo.
Marca de fin de archivo (EOF).- Es una marca fsica que determina la
finalizacin del archivo.
Marca de fin de lnea (EOL).- Es una marca fsica utilizada en los archivos de
texto para indicar la finalizacin de una lnea.

CLASIFICACIN DE ARCHIVOS DE DATOS

Por su estructura

Con tipo.- Son aquellos que presentan un formato basado en una estructura
especifica, la cual puede ser incluso variable. Son los ms utilizados en
los sistemas de informacin.

De texto.- Son documentos que se graban en formato ASCII y contienen la


informacin de manera legible para el usuario. Estos archivos tienen la
caracterstica de que pueden ser actualizados exclusivamente en el
procesador de palabras con que fueron creados o bien haciendo la
conversin a otro procesador.

Sin tipo.- Son archivos que son procesados por bloques de lectura y/o
escritura. No tienen un formato determinado, y su representacin puede ser
o no binaria. El tamao de los bloques es ajustable.

Por su funcin en un Sistema de Informacin.

Archivo Maestro.- Este tipo de archivo representa una visin esttica de


ciertos datos de un sistema de informacin que no cambian o que sus
cambios son muy espordicos. Un ejemplo clsico es el Archivo maestro
de nmina que contiene todos los datos del trabajador que casi no
cambian, por ejemplo : Clave del empleado, Nombre, Direccin,
Departamento de adscripcin, Rfc, Curp, fecha de nacimiento, etc.

Pgina : 32
DEFINICIONES Y CONCEPTOS

Dichos archivos son utilizados comnmente en el proceso de la nmina


para obtener los datos del trabajador e imprimirlos en los cheques o en los
reportes solicitados.

Archivo de Transacciones.-Es aquel donde se registran las operaciones


que se realizan en un periodo determinado. Una vez transcurrido ste se
realizara la actualizacin del archivo maestro y se reinicializara el de
transacciones. En algunos lugares tambin les llaman archivos de
movimientos y son los que actualizan los movimientos dinmicos del
sistema.

Archivo de Reporte.-Es aquel que convierte los datos en informacin


formateada dirigida al usuario final. Este tipo de archivo puede enviarse a
la impresora para que pueda ser impreso en hojas de papel; o bien puede
enviarse directamente al monitor para que pueda ser consultado
directamente.

Los archivos de reporte generalmente son el resultado de algn proceso,


que adems de actualizar algunos datos, los refleja para ser utilizados por
los usuarios del sistema de informacin.

Archivo de Trabajo .-Son aquellos archivos temporales imperceptibles


para el usuario que son utilizados generalmente en etapas intermedias en
el procesamiento de datos. Un ejemplo clsico es cuando el usuario desea
un reporte ordenado por algn campo en especial (por nombre, por
departamento, por nmero de empleado, etc), lo que se hace es ejecutar
una utilera llamada sort tal como se muestra en la figura No. 2.13.

Figura No. 2.13 Ejemplo de archivo de trabajo o temporal.

En el proceso anterior, el archivo maestro se encuentra en un orden diferente a


como se desea obtener un reporte, los que se hace es ejecutar el sort tomando como
entrada el archivo maestro y como salida un archivo de trabajo, el cual ser utilizado
para obtener el reporte ordenado tal y como fue solicitado. Una vez que se obtiene
el reporte requerido, el archivo de trabajo se elimina.
Pgina : 33
DEFINICIONES Y CONCEPTOS

Archivo de Programa.- Son aquellos que contienen instrucciones las


cuales sern procesadas por la computadora para realizar alguna
operacin especfica. Dichas instrucciones pueden estar en algn lenguaje
de programacin (C++, java, visual Basic, visual fox, etc.) o bien pueden
estar en cdigo que puede ser ejecutado directamente por la computadora
(.exe, .bat, .com, etc).

Archivo de Texto.- Son aquellos que se encuentran en formato ASCII y


contienen generalmente informacin referente a la ayuda y presentacin del
sistema, as como a la salida de datos con destino al medio de
almacenamiento.

OPERACIONES CON ARCHIVOS DE DATOS.

Creacin.- Consiste en la asignacin de un espacio en el medio de


almacenamiento mediante la colocacin del nombre del archivo en la tabla
fat.

Apertura.- Es el establecimiento de un canal de comunicacin con un


archivo determinado, con el fin de que puedan fluir los datos entre el archivo
y la aplicacin o viceversa.

Cierre.- Es la cancelacin de un canal de comunicacin previamente


establecido con un archivo. Incluye una verificacin al buffer para realizar
un vaciado automtico de los datos contenidos en l a travs del canal.

Asignacin.- Es la asociacin de un nombre de archivo con un identificador


valido en el lenguaje de programacin en donde se esta manipulando, para
de esa forma manipular un archivo en forma lgica desde el programa y las
operaciones se reflejen en un archivo que existe fsicamente en el medio de
almacenamiento.

Actualizacin.- Son los procesos u operaciones que modifican el contenido


de un archivo de datos (altas, bajas o cambios).

Consulta.- Es el acceso a los datos de un archivo con el fin de generar una


salida por la impresora o por el monitor. El acceso puede ser especifico,
grupal o global.

Eliminacin.- Es la eliminacin fsica del archivo del medio de


almacenamiento.

Renombrar.- Es el cambio del nombre del archivo en el mbito del sistema


operativo.

Pgina : 34
DEFINICIONES Y CONCEPTOS

Clasificacin.- Consiste en la organizacin de los registros de acuerdo a un


criterio determinado.

Mezcla.- Es la combinacin de dos o ms archivos para dar como resultado


un tercer archivo que contendr los registros totales de los dos archivos.

Particin.- Es la descomposicin de un archivo en dos o ms para ser


utilizados en forma separada con algunos procesos.

Importacin.- Consiste en extender un archivo a partir de los datos


contenidos en otro, ya sea que los registros aadidos se supriman o no de
este ultimo.

Exportacin.- Es la generacin de un nuevo archivo o la extensin de uno


ya existente a partir de los datos contenidos en un archivo primario, ya sea
que los datos exportados sean o no suprimidos de este.

Organizacin de Archivos.

La tcnica utilizada para representar y almacenar registros en archivo de datos


es llamada organizacin de archivos. Existen cuatro tcnicas fundamentales de
organizacin de archivos las cuales sern tratadas en forma detallada en los
prximos captulos de ste libro. Las cuatro tcnicas se enumeran a continuacin :

Organizacin de archivos Secuencial.


Organizacin de archivos Secuencial Indexada.
Organizacin de archivos directa.
Organizacin de archivos multi-llave (una variante de la segunda).

Existen dos aspectos bsicos en que difieren las tcnicas de organizacin de


archivos. Primero, la organizacin determina la secuenciacin de los registros del
archivo, la cual es la ordenacin fsica de los registros almacenados.

La Segunda, la organizacin del archivo determina el conjunto de operaciones


necesarias para encontrar cierto registro en particular. Los registros individuales son
identificados normalmente mediante valores particulares en los campos de la llave de
bsqueda. Este campo de datos puede o no tener valores duplicados en el archivo
y el campo puede ser un elemento bsico o de grupo.

Algunas tcnicas de organizacin de archivos proporcionan una rpida


accesibilidad sobre una variedad de llaves de bsqueda; otras tcnicas apoyan un
acceso directo solamente sobre uno de los valores.

Pgina : 35
DEFINICIONES Y CONCEPTOS

La organizacin mas apropiada para un archivo en particular est determinada


por las caractersticas operacionales del medio de almacenamiento utilizado y por la
naturaleza de las operaciones a ejecutar sobre los datos. La caracterstica ms
importante de un dispositivo de almacenamiento que influye en la eleccin de la
tcnica de organizacin de archivos es, si el dispositivo permite el acceso directo a
registros en particular sin tener que accesar todos los registros anteriores
almacenados en el dispositivo, o si permite nicamente un acceso secuencial a los
registros.

La manera como se va a usar el archivo es un factor importante para


determinar cmo se debe organizar el archivo. Dos aspectos importantes sobre el
uso de archivos son su modo de utilizacin y la naturaleza de las operaciones sobre
el archivo.

Un archivo puede accesarse por un programa que se ejecuta por lotes (en
modo batch) o por un programa que se ejecuta interactivamente. Y en funcin del
acceso se elige la organizacin de archivos mas apropiada.

Pgina : 36
CAPITULO 3

Archivos
Secuenciales
ARCHIVOS SECUENCIALES

Capitulo III.- Archivos Secuenciales.

En los archivos de datos con organizacin secuencial los registros de datos se


graban en el archivo uno detrs de otro, sin dejar huecos. La grabacin de dichos
registros se lleva a cabo exactamente en el mismo orden en que fueron introducidos
por el capturista y tienen la caracterstica que existe un campo en cada registro que
es nico (campo llave) y que se utiliza para identificar cada registro. Dicha forma de
almacenar los registros en organizacin secuencial se puede apreciar en la figura
No. 3.1.

Figura No. 3.1 Registros grabados en forma secuencial (Uno detrs de otro).

En estos archivos, la informacin slo puede leerse desde el inicio del


archivo y escribirse despus del ltimo registro que existe en el archivo.

Los archivos secuenciales tienen algunas caractersticas que hay que tener
en cuenta :

1. La escritura de nuevos registros siempre se hace al final del archivo.

2. Para leer una zona concreta del archivo hay que avanzar siempre, si la zona
est antes de la zona actual de lectura, ser necesario "rebobinar" o regresar
el puntero de lectura del archivo.

3. Los archivos slo se pueden abrir para lectura o para escritura, nunca de los
dos modos a la vez.

Esto es en teora, por supuesto, en realidad el lenguaje C++ no distingue si los


archivos que usamos son secuenciales o no, es el tratamiento que hagamos de ellos
y que los clasifica como de uno u otro tipo.

Pero hay archivos que se comportan siempre como secuenciales, por


ejemplo los archivos de entrada y salida estndar: stdin, stdout, stderr, stdprn y
stdaux.

El caso de stdin, que suele ser el teclado. Un programa slo podr abrir
ese archivo como de lectura, y slo podr leer los caracteres a medida que estn
disponibles y en el mismo orden en que fueron tecleados.

Lo mismo se aplica para stdout y stderr, que es el monitor, en estos casos


slo se pueden usar para escritura, y el orden en que se muestra la informacin es
el mismo en que se enva.

Pgina : 38
ARCHIVOS SECUENCIALES

Un caso especial es stdaux, que suele ser el puerto serie. Tambin es un


archivo secuencial, con respecto al modo en que se leen y escriben los datos. Sin
embargo es un archivo de entrada y salida, aunque no simultneamente.

Trabajar con archivos secuenciales tiene algunos inconvenientes. Por


ejemplo, imagina que tienes un archivo de este tipo en una cinta magntica. Por
las caractersticas fsicas de este soporte, es evidente que slo podemos tener un
archivo abierto en cada unidad de cinta. Cada archivo puede ser ledo y tambin
sobrescrito, pero en general, los archivos que haya a continuacin del que
escribimos se perdern, o bien sern sobrescritos al crecer el archivo o quedar un
espacio vaco entre el final del archivo y el principio del siguiente.

En cuanto a las ventajas, los archivos secuenciales son ms sencillos de


manejar, ya que requieren menos funciones, adems son ms rpidos, ya que no
permiten moverse a lo largo del archivo, el punto de lectura y escritura est
siempre determinado.

En ocasiones pueden ser tiles, por ejemplo, cuando slo se quiere


almacenar cierta informacin a medida que se recibe, y no interesa analizarla en el
momento. Posteriormente, otro programa puede leer esa informacin desde el
principio y analizarla. Este es el caso de archivos "log" o "diarios" por ejemplo, los
servidores de las pginas WEB pueden generar una lnea de texto cada vez que
alguien accede a una de las pginas y las guardan en un archivo secuencial.

A nivel fsico, los bloques estn almacenados "consecutivamente" ya sea:

Almacenados de tal forma que ellos estn fsicamente adyacentes y por lo


tanto residen en la misma sola extensin (archivo secuencial fsico); o
Almacenados de tal forma que pertenezcan a grupos (clusters) diferentes y,
por lo tanto, pertenezcan a ms de una extensin, con su adyacencia lgica
mantenida va punteros de disco. (archivo secuencial enlazado fsico).

Como desventaja se tiene que no existe una manera rpida de acceder a un


registro de datos especfico (en contraste, por ejemplo, con lo que sucede en los
archivos relativos y en los archivos indexados, en dnde es posible acceder a un
registro determinado en pocos accesos).

III.1 Estructura de un archivo secuencial.

Normalmente cada registro tiene una estructura semejante, la cual est


compuesta por una cantidad finita de campos y todos ellos estn relacionados entre
s y hacen referencia a una unidad. La estructura de un registro tiene generalmente
campos de distinto tipo y uno de ellos se denomina campo llave para identificar en
forma nica a cada registro. En la figura No. 3.2 se puede apreciar la estructura del

Pgina : 39
ARCHIVOS SECUENCIALES

registro de datos que ser utilizada a lo largo de ste captulo para ejemplificar todas
las operaciones en un archivo organizado en forma secuencial.

Figura No. 3.2 Estructura del registro de datos.

La manipulacin de los archivos secuenciales puede darse en cualquiera de


los tipos de programacin (en espagueti, modular, estructurada, orientada a objetos,
visual, orientada a eventos, etc). En ste documento, se va a utilizar la
programacin orientada a objetos por ser la ms utilizada y que incluso es usada por
la programacin visual y la orientada a eventos.

Con la filosofa de la programacin Orientada a objetos se abstrae la realidad


y se encapsulan en una sola entidad los datos miembro y las funciones miembro.
Dicho encapsulamiento es con el fin de generar un modelo o plantilla la cual es
llamada clase, en la que se describen todos los datos miembro a utilizar y se
desarrolla el cdigo que manipula a dichos datos.

La mayora de los lenguajes de programacin orientada a objetos utilizan el


trmino clase para describir a los objetos de un mismo tipo. Y consideran a la clase
como un tipo de dato definido por el usuario y a partir de l se crean objetos o
instancias que ya contienen internamente los datos miembro y las funciones
miembro. La figura No. 3.3 muestra en forma grfica el concepto de clase, donde
los datos miembro y las funciones miembro son parte de una sola entidad.

Figura No. 3.3 Representacin grfica de una clase.

En el lenguaje C++ en cualquiera de sus versiones, la clase se codifica en un


archivo que tenga extensin .hpp. La definicin de la clase se puede apreciar en el
programa No. 3.1.

Pgina : 40
ARCHIVOS SECUENCIALES

/* ==========================================================
Clase para definir objetos tipo : Registro de Empleado.
===========================================================*/

class empleado {
private:
int clave; // Datos Miembro : clave (llave)
char nombre[30]; // nombre
float sdia; // sueldo diario
int dias; // dias trabajados
public:
empleado(); // FUNCIONES MIEMBRO
Desplegar(int iL);
PedirDatos();
Modifica();
Consultas();
Datos_Constantes();
~empleado() {};
};

empleado::empleado()
{
dias = clave = 0;
strcpy(nombre," \0");
sdia = 0.0;
}

empleado::Desplegar( int iL)


{
gotoxy(3,iL); cout<<clave;
gotoxy(10,iL); cout<<nombre;
gotoxy(50,iL); cout<<dias;
gotoxy(70,iL); cout<<setprecision(2)<<sdia;
return 0;
}

empleado::PedirDatos()
{
clrscr();
gotoxy(10,5); cout<<"ALTAS DE UN REGISTRO A UN ARCHIVO SECUENCIAL.";
Datos_Constantes();
gotoxy(46,10); cin>>clave;
fflush(stdin);
gotoxy(46,12); gets(nombre);
fflush(stdin);
gotoxy(46,14); cin>>sdia;
fflush(stdin);
gotoxy(46,16); cin>>dias;
fflush(stdin);
return 0;
}

Pgina : 41
ARCHIVOS SECUENCIALES

empleado::Modifica()
{
clrscr();
char nomm[30], diass[3],sdiaa[10];
gotoxy(10,5);
cout<<"MODIFICACION A UN REGISTRO A UN ARCHIVO SECUENCIAL.";
Datos_Constantes();
gotoxy(48,12);gets(nomm);
fflush(stdin);
gotoxy(48,14);gets(diass);
fflush(stdin);
gotoxy(48,16);gets(sdiaa);
fflush(stdin);
if (diass[0] != '\x0') dias = atoi(diass);
if (sdiaa[0] != '\x0') sdia = atof(sdiaa);
if (nomm[0] != '\x0')
{ strcpy(nombre," ");
strcpy(nombre,nomm);
}
return 0;

empleado::Consultas()
{
gotoxy(10,5);
cout<<"CONSULTAS DE UN REGISTRO EN UN ARCHIVO SECUENCIAL.";
Datos_Constantes();
gotoxy(46,10); cout<<clave;
gotoxy(46,12); cout<<nombre;
gotoxy(46,14); cout<<sdia;
gotoxy(46,16); cout<<dias;
gotoxy(50,22); cout<<"<Return> para continuar";
getchar();
return 0;
}

empleado::Datos_Constantes()
{
gotoxy(20,10); cout<<"Clave del empleado : " << clave;
gotoxy(20,12); cout<<"Nombre del empleado : " << nombre;
gotoxy(20,14); cout<<"Sueldo diario : " << sdia;
gotoxy(20,16); cout<<"No. de Dias trabajados : " << dias;
return 0;
}

Programa No. 3.1 Codificacin de la clase registro_empleado.

Pgina : 42
ARCHIVOS SECUENCIALES

Una vez que se tiene la clase, se pueden crear instancias u objetos de la clase
empleado. Cada objeto tendr internamente y en forma ordenada los cuatro
campos y las siete funciones miembro definidas en el programa No. 3.1.

Se crea adicionalmente el cdigo que ser el responsable de crear todos los


objetos de la aplicacin y la manipulacin de los mismos. Dicho cdigo deber
almacenarse con el nombre apropiado, pero deber tener extensin *.cpp
conteniendo lo siguiente :

Incluir archivos de cabecera (incluso el .hpp donde se defini la clase).


Incluir la funcin main () como rectora de la aplicacin.
Dentro de la funcin main () debern crearse, manipularse y destruirse los
objetos requeridos por la aplicacin.

Pueden existir varios archivos .hpp en una aplicacin debido a que en cada
archivo de cabecera se desarroll posiblemente otras acciones complementarias del
sistema de informacin. Pueden incluso existir varios .cpp, pero solo uno de ellos
tendr la funcin main () y ser quien defina el orden de ejecucin. La figura No. 3.2
muestra en forma esquemtica la forma de unir varios archivos de cabecera y un
solo .cpp para crear una aplicacin.

Al compilar la aplicacin con los archivos .hpp incluidos, se genera un solo


ejecutable que ya no requiere el compilador del lenguaje de programacin para su
ejecucin.

Figura No. 3.4 Encadenar varios archivos de clases para crear una aplicacin.

III.2 Operaciones a efectuar.

La manera como se va a usar el archivo es un factor importante para


determinar cmo se debe organizar un archivo. Dos aspectos importantes sobre el
uso de archivos son su modo de utilizacin y la naturaleza de las operaciones sobre
el archivo.

Pgina : 43
ARCHIVOS SECUENCIALES

Un archivo puede accesarse por un programa que se ejecuta por lotes (en
modo batch) o por un programa que se ejecuta interactivamente. Con el modo de
acceso por lotes, las transacciones generalmente pueden ordenarse para mejorar el
acceso al archivo maestro, mientras que con accesos interactivos las transacciones
se procesan a medida que llegan. Con el modo de acceso por lotes el desempeo
es normalmente medido por el nmero de transacciones procesadas en el periodo.
Con el acceso interactivo, el desempeo tambin es medido por el tiempo de
respuesta a las transacciones individuales.

Las operaciones bsicas que se pueden ejecutar sobre un archivo organizado


en forma secuencial son las siguientes :

CREACION.

La creacin incial de un archivo es conocida tambin como la carga del


archivo y consiste en definir un espacio en algn medio de almacenamiento y en
dicho espacio capturar uno a uno los registros de datos de alguna aplicacin
especifica que incluye adems la validacin de los datos que se van introduciendo.

Generalmente la creacin de un archivo ocurre en el preciso momento en que


se ejecuta por primera vez el programa de altas. En ese preciso momento, al indicar
que se abra un archivo que no existe, el sistema operativo busca el archivo en la
unidad y path indicada; pero como no lo encuentra genera un registro de dicho
archivo en la tabla Fat y mediante un puntero le asigna una direccin fisica de la
unidad de almacenamiento para que a partir de ah se graben en forma consecutiva
todos los registros que formarn parte del archivo que se acaba de crear.

ACTUALIZACION.

La actualizacin consiste en cambiar el contenido de un archivo de datos, esto


con el fin de reflejar todos los cambios que se dan en cierto momento en el mundo
real. Dichos cambios pueden incluir las siguientes acciones :

1.- Altas de nuevos registros al archivo de datos. Por ejemplo cuando entra a
trabajar un nuevo empleado, tambin se tiene que dar de alta en el archivo
maestro de nmina para que pueda generarse en la prxima quincena su recibo
de pago.

En la figura No. 3.5, se puede apreciar grficamente el procedimiento para dar


de alta nuevos registros a un archivo organizado en forma secuencial.

Pgina : 44
ARCHIVOS SECUENCIALES

Figura No. 3.5 Alta un registro a un archivo secuencial.

El procedimiento para realizar una alta de acuerdo a la figura No. 3.5, consiste
en lo siguiente :

1.- Crear un objeto tipo ofstream (El del archivo donde se grabarn los nuevos
registros).
2.- Crear un objeto tipo registro de datos (Que es el objeto que contendr los datos
que se van capturando y que se escribirn en el archivo).
3.- Abrir un archivo que se encuentra en algn medio de almacenamiento y ligarlo al
objeto tipo ofstream. En el caso de la figura no. 3.5 se llama nomina.dat.
4.- Se hace una verificacin para investigar si se abri correctamente el archivo de
datos. Si la apertura fue exitosa continuar en el paso 5; en caso contrario se
enva un mensaje de error y dar por terminado el proceso.
5.- Desplegar en el monitor la pantalla de captura en blanco conteniendo :
encabezados, etiquetas que indiquen todos los datos a capturar y los lugares
donde se aceptaran cada uno de los datos.
6.- Teclear todos los datos solicitados en la pantalla de captura y en cada dato pulsar
<return> para pasar al siguiente campo.
7.- Escribir el registro de datos (como objeto) en el archivo (otro objeto), el cual se
adicionar al final del ltimo registro contenido en el archivo.
8.- Deber existir una pregunta para que el usuario indique si desea capturar otro
registro o no. En caso de indicar que se va a capturar otro registro, se ejecutan
los pasos 5, 6 y 7. En caso contrario se continua con el paso 9.
9.- Cerrar el archivo de datos y terminar el proceso.

En el bloque case 1, del programa No. 3.2 que se muestra en el tema III.4
Ejemplo de una Aplicacin, de ste mismo captulo se codifican los pasos

Pgina : 45
ARCHIVOS SECUENCIALES

enumerados anteriormente donde se implementa la operacin de altas a un archivo


secuencial.

2.- La eliminacin de registros; esto es borrar del archivo un registro de datos de


informacin que ya no es til a la compaa (por ejemplo un trabajador que acaba
de renunciar).

Esta operacin de eliminacin de un registro que se encuentra en un archivo


organizado secuencialmente tiene la particularidad que no puede eliminarse
directamente porque dicho registro puede estar al inicio del archivo, en medio del
archivo o bien al final del mismo.

Debido a lo anterior, es necesario utilizar un archivo de trabajo adicional para


pasar a dicho archivo los registros que nos interesan y no grabar el registro que se
va a eliminar tal como se muestra en la figura No. 3.6.

Figura No. 3.6 Eliminacin de un registro en un archivo secuencial.

El procedimiento para eliminar un registro consiste en lo siguiente :

1.- Crear un objeto tipo ofstream que en el caso de la figura No. 3.6 sera el archivo
llamado depaso.dat. y en el cual se grabarn en forma temporal todos los
registros a excepcin del que se va a eliminar.
2.- Crear un objeto tipo ifstream que sera el archivo llamado nomina.dat, del cual se
leeran registro por registro desde el primero hasta el final del archivo para
eliminar el registro deseado.
3.- Crear un objeto tipo registro de datos, que servir para leer registro por registro
del archivo tipo ifstream.

Pgina : 46
ARCHIVOS SECUENCIALES

4.- Abrir un archivo que se encuentra en algn medio de almacenamiento y ligarlo al


objeto tipo ofstream (que para el ejemplo se llama depaso.dat).
5.- Abrir un archivo que se encuentra en algn medio de almacenamiento y ligarlo al
objeto tipo ifstream (que para el ejemplo se llama nomina.dat).
6.- Se hace una verificacin para investigar si se abrieron correctamente los dos
archivos. Si la apertura fue exitosa continuar en el paso 7; en caso contrario
enviar un mensaje de error y dar por terminado el proceso.
7.- En el monitor se pide la clave del empleado (que es la llave de bsqueda) para
buscarla en el archivo de entrada.
8.- Dentro de una estructura de repeticin (en el caso del ejemplo se maneja un
while) leer un registro del archivo de entrada, comparar la clave del registro a
eliminar con la del registro ledo y si son diferentes; grabar dicho registro en el
archivo depaso.dat. En el caso que ambas llaves coincidan, quiere decir que es
el registro que debe eliminarse, por lo que dicho registro no se escribe en el
archivo depaso.dat y se regresa a leer otro registro. Realizar el procedimiento
de ste paso mientras no se llegue al fin del archivo.
9.- Cerrar los dos archivos abiertos al inicio del proceso de eliminacin.
10.- Actualizar el archivo maestro; es decir, eliminar fsicamente del medio de
almacenamiento el archivo llamado nomina.dat y renombrar el archivo depaso.dat
como nomina.dat.

3.- La modificacin de datos a ciertos registros que ya existen en el archivo; por


ejemplo cambiar al trabajador del departamento de adscripcin, cambiar su
sueldo, cambiar su direccin, etc.

Esta operacin de modificacin a ciertos campos de un registro que se


encuentra en un archivo organizado secuencialmente tiene la particularidad que tiene
que buscarse registro por registro en todo el archivo y al momento de encontrarse
debern cambiarse los datos de los campos que tienen modificacin.

Posteriormente se debe grabar el registro modificado en su mismo lugar. El


detalle es que el archivo est organizado en forma secuencial y si se encuentra en
una cinta no se puede rescribir en su mismo lugar, por lo que se procesan todos los
registros y se utiliza un archivo de trabajo tal como se muestra en la figura No. 3.7.

Pgina : 47
ARCHIVOS SECUENCIALES

Figura No. 3.7 Modificacin de algunos datos de un registro.

El procedimiento para modificar algunos datos de un registro consiste en lo


siguiente :

1.- Crear un objeto tipo ofstream que en el caso de la figura No. 3.6 sera el archivo
llamado depaso.dat. y en el cual se grabarn en forma temporal todos los
registros, incluso el modificado.
2.- Crear un objeto tipo ifstream que sera el archivo llamado nomina.dat, del cual se
leeran registro por registro desde el primero hasta el final del archivo con el fin de
encontrar el que se va a modificar.
3.- Crear un objeto tipo registro de datos, que servir para leer registro por registro
del archivo tipo ifstream.
4.- Abrir un archivo que se encuentra en algn medio de almacenamiento y ligarlo al
objeto tipo ofstream (que para el ejemplo se llama depaso.dat).
5.- Abrir un archivo que se encuentra en algn medio de almacenamiento y ligarlo al
objeto tipo ifstream (que para el ejemplo se llama nomina.dat).
6.- Se hace una verificacin para investigar si se abrieron correctamente los dos
archivos. Si la apertura fue exitosa continuar en el paso 7; en caso contrario
enviar un mensaje de error y dar por terminado el proceso.
7.- En el monitor se pide la clave del empleado (que es la llave de bsqueda) para
buscarla en el archivo de entrada.
8.- Dentro de una estructura de repeticin (en el caso del ejemplo se maneja un
while) leer un registro del archivo de entrada , comparar la clave del registro a
modificar con la del registro ledo y si son diferentes; grabar dicho registro en el
archivo depaso.dat. En el caso que ambas llaves coincidan, quiere decir que es
el registro que debe modificar por lo que se mostrar en el monitor.

Pgina : 48
ARCHIVOS SECUENCIALES

9.- Se cambia el contenido de los campos a modificar y tambin se graba en el


archivo depaso.dat. Posteriormente se pasan ntegramente los registros
restantes del archivo nomina.dat al archivo depaso.dat.
10.- Cerrar los dos archivos abiertos al inicio del proceso de modificacin.
11.- Actualizar el archivo maestro; es decir, eliminar fsicamente del medio de
almacenamiento el archivo llamado nomina.dat y renombrar el archivo depaso.dat
como nomina.dat.

RECUPERACIN.

El acceso a un archivo con el propsito de extraer informacin significativa es


llamado recuperacin de la informacin. Existen bsicamente dos clases de
recuperacin de informacin : consulta y generacin de reportes. Estas dos clases
se pueden distinguir de acuerdo al volumen de informacin que producen.

Una consulta produce un volumen relativamente mnimo, mientras que un


reporte puede crear muchas pginas de salida de informacin. Sin embargo,
algunas empresas prefieren distinguir entre consulta y generacin de reportes de
acuerdo a su forma de procesar. Si una recuperacin de informacin es procesada
interactivamente, estas empresas llamarn la recuperacin como consulta.

Si la recuperacin es procesada por lotes, la recuperacin ser llamada


generacin de reportes. Esta terminologa tiende a hacer que la generacin de
reportes sea un proceso ms planificado, ms programado; y la consulta sea un
proceso ms espontneo. La mayora de los sistemas de informacin requieren de
ambas clases de recuperacin de informacin.

Una consulta se formula por lo general mediante un lenguaje de consulta, el


cual idealmente se estructura como un lenguaje natural, fcil de comprender y usar
por cualquier persona que no sea experto en la programacin.

Los procesadores de consulta, son programas que traducen las preguntas del
usuario en instrucciones que son usadas directamente para accesar al archivo de
datos. Un software procesador de consultas muy comn es el SQL (Structured
Query Languaje).

III.3 Mantenimiento.

El mantenimiento de un archivo organizado en forma secuencial consiste en


readaptarlo a todos los cambios continuos del mundo real que es muy dinmico.
Existen dos clases de operaciones de operaciones bsicas, las cuales son :

Pgina : 49
ARCHIVOS SECUENCIALES

1.- Reestructuracin de un archivo implica que es necesario aplicar cambios


estructurales dentro del contexto de la misma organizacin de archivos. Por
ejemplo, cambiar la longitud de los campos, agregar nuevos campos a los
registros, eliminar algunos campos que ya no se utilicen, asignar ms espacio
para el archivo, ordenar por algn otro campo a los registros del archivo. Pero el
mtodo de organizacin sigue siendo el secuencial.

2.- Reorganizacin es la segunda forma de darle mantenimiento a un archivo


organizado en forma secuencial y que consiste en cambiar de organizacin al
archivo de datos. El cambio puede ser a organizacin de archivos secuencial-
indexada u organizacin de archivos directa.

III.4 Ejemplo de aplicacin.

Se desea realizar un programa que permita crear y manipular un archivo


organizado en forma secuencial y que permita las operaciones de : Altas, Bajas,
Modificaciones, Consultas y Reportes.

Se defini un registro de datos que contiene 4 campos que son : Clave del
empleado, su nombre, sueldo diario y das trabajados. La anterior estructura es con
fines didcticos y es la que est establecida en la figura No. 3.1. Se consider la
clave del empleado como campo llave para poder realizar todas las operaciones
mencionadas en el prrafo anterior.

El programa se elabor utilizando la programacin Orientada a Objetos y la


organizacin del cdigo se muestra en un diagrama de niveles mostrado en la figura
No. 3.8.

Figura No. 3.8 Estructura genrica del programa prctico.

La funcin principal del esquema anterior es la encargada de procesar


cualquiera de las seis operaciones que se muestran en forma de bloque.

Pgina : 50
ARCHIVOS SECUENCIALES

El mdulo de desplegar men, es el que muestra una pantalla principal la cual


es la encargada de solicitar al usuario de la aplicacin la operacin que desea
realizar en ese momento (Altas, bajas, Consultas, Modificaciones o reporte).

El mdulo de altas es el encargado de pedir datos al usuario y almacenar


dichos datos al final del archivo. La ejecucin dentro del programa corresponde al
case 1 de la estructura de repeticin while.

El mdulo de bajas es el que elimina un registro de datos que ya no es til en


el archivo. La ejecucin dentro del programa corresponde al case 2 de la estructura
de repeticin while.

El mdulo de consultas permite visualizar todo el registro de un empleado en


especial. La ejecucin dentro del programa corresponde al case 3 de la estructura
de repeticin while.

El mdulo de modificaciones es el que permite cambiar el contenido de uno o


varios campos de un registro, a excepcin del campo llave. La ejecucin dentro del
programa corresponde al case 4 de la estructura de repeticin while.

El mdulo de reporte es el que obtiene un reporte impreso de cada uno de los


registros, realizando algunos clculos con los campos de sueldo diario y das
trabajados. La ejecucin dentro del programa corresponde al case 5 de la
estructura de repeticin while.

En el programa no. 3.2 se muestran las cinco operaciones en un archivo


organizado en forma secuencial.

/* ====================================================
PROGRAMA QUE MANIPULA UN ARCHIVO
ORGANIZADO EN FORMA SECUENCIAL.

AUTOR : JOSE LUIS HERNANDEZ HERNANDEZ


======================================================*/

# include <conio.h>
# include <dos.h>
# include <ctype.h>
# include <stdlib.h>
# include <iostream.h>
# include <fstream.h>
# include <iomanip.h>
# include <string.h>
# include <stdio.h>
# include "C:\NOMINA.HPP"

Pgina : 51
ARCHIVOS SECUENCIALES

main()
{
int lClave;
int iOp, iJ;
float fSueldo_quin, fDeduc, fSueldoNeto, fIssste;
float fIspt, fTotalQuin, fTotalDeduc, fTotalnNeto;
ifstream ifMaestro; // Objeto tipo archivo de lectura.
ofstream ofMaestro; // Objeto tipo archivo de escritura.
empleado EMP; // Objeto tipo registro empleado.

do {
clrscr();
gotoxy(17,5);cout<<"INSTITUTO TECNOLOGICO DE CHILPANCINGO";
gotoxy(17,6);cout<<"PROGRAMA DE EJEMPLO PARA LA CREACION Y";
gotoxy(18,8);cout<<"MANIPULACION DE ARCHIVOS ORGANIZADOS";
gotoxy(24,9);cout<<"EN FORMA SECUENCIAL.";
gotoxy(26,11); cout<<"MENU PRINCIPAL";
gotoxy(25,14); cout<<"1] ALTAS.";
gotoxy(25,15); cout<<"2] BAJAS.";
gotoxy(25,16); cout<<"3] CONSULTAS.";
gotoxy(25,17); cout<<"4] MODIFICACIONES.";
gotoxy(25,18); cout<<"5] REPORTE. ";
gotoxy(25,19); cout<<"6] SALIR.";
gotoxy(25,21); cout<<"Elige una opcion: ";
cin>>iOp;
switch(iOp) {

case 1: // OPCION DE ALTAS


clrscr();
char Op = 'n';
ofMaestro.open("c:\\nomina.dat", ios::app | ios::binary);
do{
EMP.PedirDatos();
ofMaestro.write((char *) &EMP, sizeof(EMP));
gotoxy(24,20);cout<<"Desea otro registro: ";
Op = getchar();
}while(toupper(Op)=='S');
ofMaestro.close();
break;

case 2: // OPCION DE BAJAS


clrscr();
ifMaestro.open("c:\\nomina.dat",ios::in | ios::binary);
ofMaestro.open("c:\\depaso.dat",ios::app| ios::binary);
gotoxy(25,12);cout<<"introduce la clave del registro a eliminar : ";
cin>>lClave;
while(ifMaestro.read((char *) &EMP, sizeof(EMP))!=0){
if(EMP.clave!=lClave)

Pgina : 52
ARCHIVOS SECUENCIALES

ofMaestro.write((char *) &EMP, sizeof(EMP));


}
ifMaestro.close();
ofMaestro.close();
remove("c:\\nomina.dat");
rename("c:\\depaso.dat","c:\\nomina.dat");
break;

case 3: // OPCION DE CONSULTAS.


clrscr();
ifMaestro.open("c:\\nomina.dat",ios::in | ios::binary);
gotoxy(25,12);cout<<"introduce la clave del registro a consultar : ";
cin>>lClave;

while(ifMaestro.read((char *) &EMP, sizeof(EMP))!=0){


if(EMP.clave==lClave) {
clrscr();
EMP.Consultas();
}
}
ifMaestro.close();
break;

case 4: // OPCION DE MODIFICACIONES


clrscr();
int iL = 25;
ifMaestro.open("c:\\nomina.dat",ios::in | ios::binary);
ofMaestro.open("c:\\depaso.dat",ios::out| ios::binary);
gotoxy(25,12);cout<<"introduce la clave del registro a modificar : ";
cin>>lClave;
while(ifMaestro.read((char *) &EMP, sizeof(EMP))!=0){
if(EMP.clave==lClave)
{
EMP.Modifica();
ofMaestro.write((char *) &EMP, sizeof(EMP));
}
else
ofMaestro.write((char *) &EMP, sizeof(EMP));
}
ifMaestro.close();
ofMaestro.close();
remove("c:\\nomina.dat");
rename("c:\\depaso.dat","c:\\nomina.dat");
break;

case 5: // OPCION DE REPORTE


int pagina=1, iLineas=62;
clrscr();

Pgina : 53
ARCHIVOS SECUENCIALES

ifstream entrada("c:\\nomina.dat",ios::in | ios::binary);


ofstream impresora("PRN");
if (!entrada){
gotoxy(10,8); cout<<"no se puede abrir el archivo de datos. ";
delay(2000);
}
else if(!impresora){
gotoxy(10,8); cout<<"no se puede abrir la impresora";
delay(2000);
}
else{
fTotalQuin = fTotalDeduc = fTotalnNeto =0.0;
while(entrada.read((unsigned char *) &EMP,sizeof(empleado))!= 0){
fSueldo_quin=fDeduc=fSueldoNeto=fIssste=fIspt=0.0;
fSueldo_quin=EMP.sdia*EMP.dias;
fIssste=fSueldo_quin*0.0176;
fIspt=fSueldo_quin*0.0143;
fDeduc=fIssste+fIspt;
fSueldoNeto=fSueldo_quin-fDeduc;
fTotalQuin=fTotalQuin+fSueldo_quin;
fTotalDeduc+=fDeduc;
fTotalnNeto=fTotalnNeto+fSueldoNeto;
if (iLineas>60){
impresora<<" INSTITUTO TECNOLOGICO DE;
impresora<< CHILPANCINGO;
impresora<< <<pagina: "<<pagina<<endl<<endl;
impresora<<" REPORTE OBTENIDO DE UN ARCHIVO;
impresora<< ORGANIZADO EN FORMA SECUENCIAL;
impresora<<endl;
impresora<<"=============================================;
impresora<<========<<endl;
impresora<<" CLAVE NOMBRE SUELDO DEDUC.;
impresora<< SUELDO "<<endl;
impresora<<" DEL EMPLEADO QUINCENAL
impresora<< NETO<<endl;
impresora<<"=============================================;
impresora<<========<<endl;
iLineas = 8;
}
impresora.fill(' ');
impresora<<setw(8)<<EMP.clave<<" ";
impresora<<resetiosflags(ios::right);
impresora.setf(ios::left);
impresora<<setw(25)<<EMP.nom;
impresora<<resetiosflags(ios::left);
impresora<<setiosflags(ios::showpoint | ios::fixed);
impresora<<setprecision(2);
impresora.setf(ios::right);
impresora<<setw(12)<<setiosflags(ios::right)<<fSueldo_quin;
impresora<<setw(12)<<fDeduc;
impresora<<setw(10)<<fSueldoNeto<<endl;

Pgina : 54
ARCHIVOS SECUENCIALES

iLineas++;

}
impresora<<endl<<endl;
impresora<<" totales.......... $ ";
impresora<<setw(11)<<fTotalQuin;
impresora<<setw(12)<<fTotalDeduc;
impresora<<setw(10)<<fTotalnNeto;
entrada.close();
impresora<<"\f";
impresora.close();
}
break;
}
}while(iOp!=6);
return 0;
}

Programa No. 3.2 Ejemplo de manipulacin de un archivo secuencial.

Pgina : 55
CAPITULO 4

Archivos
Secuencial-
Indexados
ARCHIVOS SECUENCIAL-INDEXADO

Capitulo IV.- Archivos Secuencial-Indexados.

Una manera efectiva de organizar una coleccin de registros, cuando existe la


necesidad de accesar los registros secuencialmente, por algn valor de llave, como
de accesarlos individualmente, con esa misma llave, es la organizacin de archivos
secuenciales-indexados. Un archivo secuencial-indexado proporciona la
combinacin de tipos de acceso que manejan un archivo secuencial y un archivo
directo.

Esta organizacin est diseada para utilizar la combinacin de la


organizacin directa y la secuencial, obteniendo la ventaja de poder acceder a los
registros en forma secuencial y relativamente de manera directa.

Como se pude apreciar la organizacin de archivos secuenciales-indexados


es efectiva para satisfacer la necesidad tanto de acceder a los archivos en forma
secuencial como de forma directa mediante algn valor del campo llave.

IV.1 Estructura de un archivo secuencial-indexado.

Para poder estructurar esta organizacin es necesario construir el rea de


ndices a partir de un archivo organizado en forma secuencial y basndonos en la
disposicin fsica de los datos almacenados.

Para construir el rea del ndice, se toma un archivo organizado en forma


secuencial para considerarlo como rea de datos. Por ejemplo imaginemos que se
va a tomar el archivo que se muestra en la figura no. 4.1 y dicho archivo
corresponder al rea de datos del archivo secuencial-indexado.

Figura No. 4.1 rea de datos de un archivo secuencial-indexado.

A partir del rea de datos del ejemplo de la figura no. 4.1, se crea el rea de
ndices en donde se manejar una estructura del registro que contenga
exclusivamente dos campos : El campo llave (clave) y la direccin de inicio
(ubicacin) de cada registro. La estructura del registro del rea de ndices queda tal
como se muestra en la figura No. 4.2.

Pgina : 57
ARCHIVOS SECUENCIAL-INDEXADO

Figura No. 4.2 Estructura del registro del rea de datos.

Para cualquier proceso de altas, bajas, modificaciones, consultas o reporte es


necesario utilizar el rea de ndice para la bsqueda del registro solicitado y el rea
de datos para tomar toda la informacin del registro. Es decir, que los dos archivos
unidos son considerados para realizar los accesos en forma secuencial-indexado tal
como se aprecia en la figura no. 4.3.

Figura No. 4.3 El rea de datos y el rea de ndice permiten la organizacin


Secuencial-indexado.

El rea de ndices siempre deber conservarse ordenado por el campo llave,


de forma que la bsqueda pueda ser lo ms rpida posible. La funcin del rea de
ndices es anloga a la del ndice de ste libro : facilitar la bsqueda de una
determinada palabra o tema. Considerando como rea de datos la figura no 4.1, el
rea de ndices queda tal y como se muestra en la figura no. 4.4.

Figura No. 4.3 El rea de datos y el rea de ndice permiten la organizacin

Pgina : 58
ARCHIVOS SECUENCIAL-INDEXADO

El tipo de ms simple de bsqueda en el archivo de ndices es el lineal


simple, que consiste en buscar en forma secuencial la llave solicitada y al
encontrarla toma la ubicacin del registro y se dirige en forma directa al rea de
datos para leer el registro en cuestin.

De acuerdo a la forma en que se estn almacenados los registros y la forma


en que se desea recuperar, se pueden presentar los siguientes dos casos :

1.- El archivo est almacenado en secuencia fsica por el campo llave y se


desea el acceso directo por dicho campo.- Cuando el campo de bsqueda
coincide con el campo de secuencia fsica se le denomina organizacin
secuencial indexada.

2.- El archivo est almacenado en secuencia fsica por un campo y se desea la


recuperacin en secuencia por algn campo.- Si el campo llave por el que se
desea acceder de forma secuencial es el mismo que el de la secuencia fsica,
simplemente hay que leer los registros segn la secuencia en que estn
almacenados.

A la hora de construir el archivo de ndices hay que tener en cuenta los puntos
que se describen a continuacin :

Cualquier campo del archivo puede servir de base para construir el ndice.
Una combinacin de campos de un registro de datos puede servir de base
para construir in ndice. Por ejemplo, para obtener un listado ordenado
alfabticamente, el archivo ndice estar formado por dos o ms campos a la
vez.
Cualquier ndice puede emplearse tanto para el acceso directo, en funcin del
campo indexado, como para el acceso secuencial, segn la secuencia de
dicho campo.
Un determinado archivo puede tener asociados varios archivos ndices, bien
por un campo llave o por una combinacin de ellos. La figura No. 4.5 nos
muestra el caso de un archivo de datos y dos archivos de ndices.
Cuando se modifica el archivo de datos es necesario actualizar todos los
archivos de ndices asociados al archivo de datos. Es una tarea laboriosa
porque en todo momento debe haber una correspondencia entre el archivo de
datos y sus archivos de ndices.

Pgina : 59
ARCHIVOS SECUENCIAL-INDEXADO

Figura No. 4.5 Una rea de datos y dos reas de ndice.

Los ndices que pueden crearse son de dos posibles tipos :

ndice denso o exhaustivo.- Es aquel en el cual existe un registro ndice por


cada valor del campo llave en el archivo de datos. Este tipo de ndice es el
ms utilizado hasta ahora.
ndice escaso o selectivo.- En este tipo de ndices se crea solamente
registros ndice para algunos de los registros del campo llave en el archivo de
datos. Estos ndices son utilizados cuando se desea cierta informacin
selectiva (Por ejemplo todos los trabajadores de confianza de cierta empresa).

Siguiendo con ejemplos en la programacin Orientada a Objetos, se cre una


clase en el lenguaje C++ para crear objetos tipo empleado y otra clase para crear
objetos tipo ndice. Las dos clases se crearon en un solo archivo .hpp y muestran
en el programa no. 4.1

//=========================================================
// DEFINICION DE LA CLASE TIPO : EMPLEADO.
// PARA MANEJO DE ARCHIVOS ORGANIZADOS EN FORMA
// SECUENCIAL-INDEXADOS.
//=========================================================

class empleado{
private:
int clave; // DATOS MIEMBRO
char nom[30];
float sdia;
int dias;
public:
empleado(); // FUNCIONES MIEMBRO
Desplegar(int iL);
PedirDatos();
Modifica();
Consultas();

Pgina : 60
ARCHIVOS SECUENCIAL-INDEXADO

Bajas();
imprime();
Datos_Constantes();
~empleado(){};
};

empleado::empleado()
{
dias = clave = 0;
strcpy(nom," \0");
sdia = 0.0;
}

//=========================================================
// DEFINICION DE LA CLASE TIPO : INDICE.
//=========================================================

class Indice {
private :
int clave; // Campo llave.
unsigned int ubicacion; // Campo Ubicacin.
public :
Indice(); // Funciones miembro
~Indice() {};
};
Indice::Indice()
{
clave = ubicacion = 0;
}

Programa No. 4.1 Codificacin de la clase empleado y la clase indice.

Una vez que se tiene la clase, se pueden crear instancias u objetos de la clase
empleado y de la clase ndice. Los objetos creados con la clase empleado
contendrn los cuatro campos acomodados en el orden definido junto con sus
funciones miembro; por otro lado los objetos creados a partir de la clase ndice
contendrn dos campos y sus funciones miembro respectivas.

Se crea adicionalmente el cdigo que ser el responsable de crear todos los


objetos de la aplicacin y la manipulacin de los mismos. Dicho cdigo deber
almacenarse con el nombre apropiado, pero deber tener extensin *.cpp
conteniendo lo siguiente :

Incluir archivos de cabecera (incluso el .hpp donde se defini la clase).


Incluir la funcin main () como rectora de la aplicacin.
Dentro de la funcin main () debern crearse, manipularse y destruirse los
objetos requeridos por la aplicacin.

Pgina : 61
ARCHIVOS SECUENCIAL-INDEXADO

Al compilar la aplicacin se incluye el archivo .hpp donde estn definidas las


dos clases y junto con l .cpp, se genera un solo ejecutable tal como se muestra en
la figura No. 4.6.

Figura No. 4.6 Se incluye el archivo .hpp con sus clases para crear el ejecutable.

IV.2 Operaciones a efectuar.

La manera como se va a usar el archivo es un factor importante para


determinar que la organizacin secuencial-indexada es la adecuada para cierto
sistema de informacin.

Un archivo con la forma de organizacin secuencial-indexada puede


accesarse por un programa que se ejecuta por lotes (en modo batch) o por un
programa que se ejecuta interactivamente. Con el modo de acceso por lotes, las
transacciones normalmente seran secuenciales, mientras que con accesos
interactivos las transacciones aprovecharan esta forma de organizacin y las
operaciones sera ms rpidas que en un archivo organizado en forma secuencial.

Las operaciones bsicas que se pueden ejecutar sobre un archivo organizado


en forma secuencial-indexada son las siguientes :

CREACION.

La creacin inicial de un archivo es conocida tambin como la carga del


archivo y consiste en tomar un archivo que se encuentra organizado en forma

Pgina : 62
ARCHIVOS SECUENCIAL-INDEXADO

secuencial y generar el rea de ndices para poderle hacer todas las operaciones
que se describen ms delante de ste mismo documento.

Se va a tomar el archivo creado y que est organizado en forma secuencial del


captulo III de ste documento y se hace la programacin requerida, la cual se
plasma en el programa no. 4.2 que se encuentra a continuacin.

//============================================================
// PROGRAMA DE EJEMPLO PARA CREAR EL ARCHIVO DE INDICES
// DE UN ARCHIVO SECUENCIAL INDEXADO
// Autor : Jos Luis Hernndez Hernndez.
//============================================================

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include <fstream.h>
#include "indice.hpp"

int Reg = 0; // Contador de registros.


ifstream ifEmpleado; // Objeto tipo archivo de lectura.
ofstream ofIndice; // Objeto tipo archivo de escritura.
empleado EMP; // Objeto tipo registro de empleados.
Indices IND[50]; // Arreglo de Objetos tipo registro de indices.

Abrir_Archivos(); // Definicin de prototipos de funciones utilizadas.


Leer_Archivo();
Ordenar_Indices();
Grabar_Indices();
Cierra_Archivo();

main()
{
Abrir_Archivos(); // Abre Archivo Secuencial y de Indices.
Leer_Archivo(); // Lee Archivo Secuencial y carga Matriz.
Ordenar_Indices(); // Ordena el Arreglo de Indices.
Grabar_Indices(); // Graba los indices en el archivo.
Cierra_Archivo(); // Cierra los Archivos.
return 0;
}

Abrir_Archivos()
{
ifEmpleado.open("c:\\nomina.dat",ios::in | ios::binary);
if (!ifEmpleado)
{
clrscr();

Pgina : 63
ARCHIVOS SECUENCIAL-INDEXADO

cout << "El Archivo <SECUENCIAL> no pudo abrirse"<<endl;


cout << "Pulsar <Return> para Salir"<<endl;
getchar();
exit (-1);
}

ofIndice.open("c:\indices.dat",ios::out | ios::binary);
if (!ofIndice)
{
clrscr();
cout << "El Archivo de <INDICES> no pudo abrirse"<<endl;
cout << "Pulsar <Return> para Salir"<<endl;
getchar();
exit (-1);
}
return 0;
}

Leer_Archivo()
{
int Ubicacion = 0;
Reg = 0;
ifEmpleado.read((char *) &EMP, sizeof(EMP));
while(!ifEmpleado.eof())
{
IND[Reg].clave = EMP.clave;
IND[Reg].ubicacion = Ubicacion;
ifEmpleado.read((char *) &EMP, sizeof(EMP));
Reg++; // Incrementa # Registro
Ubicacion = Ubicacion + sizeof (EMP); // Incrementa Ubicacin
}
Reg--; // Para Conocer No. de Registros
return 0;
}

Ordenar_Indices()
{
int i,j; // Indices para manipular matriz
int Aux1,Aux2;
for (i=0 ; i < Reg - 1; i++)
{
for (j = 0; j < Reg - 1; j++)
{
if ( (IND[j].clave) > (IND[j+1].clave))
{
Aux1 = IND[j].clave;
Aux2 = IND[j].ubicacion;
IND[j].clave = IND[j+1].clave;
IND[j].ubicacion = IND[j+1].ubicacion;
IND[j+1].clave = Aux1;

Pgina : 64
ARCHIVOS SECUENCIAL-INDEXADO

IND[j+1].ubicacion = Aux2;
}
}
}
return 0;
}

Grabar_Indices()
{
int i;
for(i=0; i<= Reg ; i++)
{
ofIndice.write((char *) &IND, sizeof(IND));
cout << IND[i].clave << " " << IND[i].ubicacion << endl;
}
return 0;
}

Cierra_Archivo()
{
ifEmpleado.close();
ofIndice.close();
return 0;
}
Programa No. 4.2 Programa para la creacin del rea de indices.

ACTUALIZACION.

La actualizacin consiste en cambiar el contenido de un archivo de datos, esto


con el fin de reflejar todos los cambios que se dan en cierto momento en el mundo
real. Dichos cambios pueden incluir las siguientes acciones :

1.- Altas de nuevos registros al archivo de datos. En el caso de los archivos


organizados en forma secuencial-indexada, el nuevo registro deber grabarse
al final del rea de datos y deber insertarse en el lugar adecuado del rea
de ndices para que los ndices siempre estn ordenados.

Un ejemplo de altas de un nuevo registro, se puede observar en el programa


No. 4.3 en el cual se graba el registro completo en el rea de datos y el campo
llave junto con la ubicacin del registro se almacena en el rea de ndices.

2.- La eliminacin de registros implica borrar fsicamente el registro del rea de


datos y adems el registro del rea de ndices. La forma de eliminacin es
semejante a la organizacin de archivos secuencial, porque se recorre todo el

Pgina : 65
ARCHIVOS SECUENCIAL-INDEXADO

archivo apoyndose en un archivo de trabajo y escribiendo en l todos los


registros que tengan la llave diferente al registro que se va a eliminar.

Caber hacer mencin que dicha operacin tiene que hacerse a los archivos
donde se encuentra en rea de datos y tambin al rea de ndice.

3.- La modificacin es el cambio de contenido a uno o varios campos


exclusivamente del registro del rea de datos. El rea de ndice sirve
nicamente para localizar el registro que se va a modificar.

Cabe hacer mencin que el rea de datos es abierta como archivo de entrada
/ salida, debido a que se lee un registro de datos, se corrigen algunos campos y se
vuelve a rescribir en el mismo lugar que ocupa fsicamente.

RECUPERACIN.

El acceso a un archivo con el propsito de extraer informacin significativa es


llamado recuperacin de la informacin. Existen bsicamente dos clases de
recuperacin de informacin : consulta y generacin de reportes. Estas dos clases
se pueden distinguir de acuerdo al volumen de informacin que producen.

Los archivos organizados en forma secuencial-indexados son muy


apropiados para implementar las consultas; debido a que en comparacin con la
organizacin de archivos secuencial, el tiempo de acceso es muchisimo ms rpido
debido a que el rea de ndices es leda y nos manda directamente al registro en
cuestin.

En el caso de los reportes, no existe ninguna diferencia con la organizacin


de archivos secuencial, porque se toma nicamente el rea de datos para generar
cualquier reporte.

III.3 Mantenimiento.

1.- Reestructuracin de un archivo implica que es necesario aplicar cambios


estructurales dentro del contexto de la misma organizacin de archivos.
Dichos cambios pueden ser el cambio del campo llave, lo que implica tomar el
rea de datos y volver a generar el rea de ndices.

Pgina : 66
ARCHIVOS SECUENCIAL-INDEXADO

2.- Reorganizacin es la segunda forma de darle mantenimiento a un archivo


organizado en forma secuencial-indexado y que consiste en cambiar de
organizacin al archivo de datos. El nico cambio que puede ser posible es a
organizacin de archivos directa.

IV.4 Ejemplo de aplicacin.

Se desea realizar un programa que permita crear y manipular un archivo


organizado en forma secuencial y que permita las operaciones de : Altas, Bajas,
Modificaciones, Consultas y Reportes.

Se defini un registro de datos que contiene 4 campos que son : Clave del
empleado, su nombre, sueldo diario y das trabajados. La anterior estructura es con
fines didcticos y es la que est establecida en la figura No. 3.1. Se consider la
clave del empleado como campo llave para poder realizar todas las operaciones
mencionadas en el prrafo anterior.

Debido a que un programa para aplicar todas las operaciones a un archivo


secuencial-indexado se haca muy extenso para poder explicarlo, se utiliz el cdigo
de la clase establecida en el programa no. 4.1 de ste capitulo y se decidi hacer
un programa para cada operacin.

OPERACIN DE ALTAS.

/* ==============================================================
PROGRAMA QUE DA DE ALTAS REGISTROS A UN ARCHIVO INDEXADO
CON LA FILOSOFIA DE LA PROGRAMACION ORIENTADA A OBJETOS.
AUTOR: JOSE LUIS HERNANDEZ HERNANDEZ
===============================================================*/

# include <conio.h>
# include <ctype.h>
# include <stdlib.h>
# include <iostream.h>
# include <fstream.h>
# include <string.h>
# include <stdio.h>

# include "INDICE.HPP" // Se incluye el archivo donde se


// encuentra la clase del registro
// de datos y la clase del indice.

main()

Pgina : 67
ARCHIVOS SECUENCIAL-INDEXADO

{
clrscr();
char Op = 'n';
empleado EMP; // Crea un objeto Tipo Registro Empleado.
Indices Ind; // Objeto tipo indice..

ofstream Arch_Datos; // Se crean dos objetos tipo Archivo de salida.


ofstream Arch_Indice;

Arch_Datos.open("c:\\nomina.dat", ios::app | ios::binary);


Arch_Indice.open("c:\\nomina.idx", ios::app | ios::binary);

if (!Arch_Datos)
{
cout << "No se abrio el archivo de datos" << endl;
cout << "<RETURN> para terminar ..." << endl;
getchar();
exit (-1);
}

if (!Arch_Indice)
{
cout << "No se abrio el archivo de indices" << endl;
cout << "<RETURN> para terminar ..." << endl;
getchar();
exit (-1);
}

do{
EMP.limpiar();
EMP.PedirDatos();
Ind.ubicacion = Arch_Datos.tellp();
Ind.clave = EMP.clave;
Arch_Datos.write((char *) &EMP, sizeof(EMP));
Arch_Indice.write((char *) &Ind, sizeof(Ind));
gotoxy(24,20);cout<<"DESEA CAPTURAR OTRO REGISTRO : ";
Op = getchar();
}while(toupper(Op)=='S');

Arch_Datos.close();
Arch_Indice.close();
}

Programa No. 4.3 Programa dar de alta un registro en el area de datos y en el area de indice.

Pgina : 68
ARCHIVOS SECUENCIAL-INDEXADO

OPERACIN DE MODIFICACION.

/* ================================================================
PROGRAMA QUE SIRVE PARA REALIZAR MODIFICACIONES A UN
ARCHIVO ORGANIZADO EN FORMA SECUENCIAL-INDEXADA.
SE UTILIZA LA FILOSOFIA DE LA PROGRAMACION ORIENTADA A OBJETOS
AUTOR : JOSE LUIS HERNANDEZ HERNANDEZ
===============================================================*/

# include <conio.h>
# include <ctype.h>
# include <stdlib.h>
# include <iostream.h>
# include <fstream.h>
# include <string.h>
# include <stdio.h>
# include "INDICE.HPP" // Se incluye el archivo donde se
// encuentra la clase (del registro
// de datos).
main()
{
int Clave; // Clave para pedir por teclado.
empleado EMP; // Crea un objeto Tipo Registro Empleado
Indices IND; // Crea un objeto Tipo Indice.

fstream Archivo_Datos;
fstream Archivo_Indice;

Archivo_Datos.open("c:\\nomina.dat", ios::in | ios::out | ios::binary);


if (!Archivo_Datos)
{
cout << "No se abrio el archivo de lectura-escritura" << endl;
cout << "<RETURN> para terminar ..." << endl;
getchar(); exit(-1);
}

Archivo_Indice.open("a:\\nomina.idx", ios::in | ios::binary);


if (!Archivo_Indice)
{
cout << "No se abrio el archivo de Indices " << endl;
cout << "<RETURN> para terminar ..." << endl;
getchar(); exit(-1);
}

Clave = EMP.Pedir_Clave(); // Pedir Clave del registro a modificar.

Archivo_Indice.read((char *) &IND, sizeof(IND));


while( !Archivo_Indice.eof() )
{
if (Clave == IND.clave)

Pgina : 69
ARCHIVOS SECUENCIAL-INDEXADO

{
Archivo_Datos.seekg(IND.ubicacion);
Archivo_Datos.read((char *) &EMP, sizeof(EMP));
EMP.Desplegar_Registro();
EMP.PedirDatos();
Archivo_Datos.seekg(IND.ubicacion);
Archivo_Datos.write((char *) &EMP, sizeof(EMP));
Archivo_Indice.close();
Archivo_Indice.close();
return 0;
}
Archivo_Indice.read((char *) &IND, sizeof(IND));
}
gotoxy(40,22);
cout << "NO SE ENCONTRO EL REGISTRO BUSCADO ......." << endl;
Archivo_Indice.close();
Archivo_Indice.close();
return 0;
}

Programa No. 4.4 Modificaciones a un registro en el area de datos sin modificar el area de
indice.

Pgina : 70
CAPITULO 5

Archivos Directos
ARCHIVOS DIRECTOS

Capitulo V.- Archivos Directos.

Un archivo organizado en forma directa consiste en una coleccin de registros


de longitud fija almacenados uno al lado del otro en un dispositivo de
almacenamiento de acceso directo (direct - access storage device, DASD). El
almacenamiento de este tipo de archivos se restringe a los DASD, tales como discos
y tambores, por que el acceso a registros se hace generalmente en orden aleatorio.

Cada registro en un archivo de organizacin en forma directa se puede referir


por medio de un nmero -entero- de direccin, el cual indica su distancia o
desplazamiento desde el origen del archivo. Al primer registro en un archivo relativo
se le asigna el valor 1, 2 al siguiente y as sucesivamente. De este modo, la
direccin relativa de un valor entero refleja su posicin respecto al primer registro del
archivo. El acceso aleatorio de un registro en un archivo de organizacin relativa se
hace va su nmero relativo de registro o bien su llave.

Un archivo de organizacin directa puede crearse con un programa en un


lenguaje de alto nivel si es que el mtodo de acceso del sistema operativo central es
capaz de manejar esta organizacin, y si el compilador del lenguaje de programacin
soporta dicho mtodo de acceso.

Para utilizar esta forma de organizacin, se debe crear el archivo apartando


una cantidad especfica de lugares para cada uno de los registros de datos, tal y
como se muestra en la figura no. 5.1

Figura No. 5.1 Estructura de un archivo directo.

V.1 Estructura de un Archivo Directo.

En un archivo directo existe una relacin predecible entre la clave utilizada


para identificar al registro en particular y la localizacin del registro dentro del
archivo, siempre y cuando la el campo llave del mismo corresponda con la ubicacin
relativa del registro como se aprecia en la figura no. 5.1.

Pgina : 72
ARCHIVOS DIRECTOS

Pero el mayor de los casos ocurre cuando el ordenamiento lgico de los


registros no tiene ninguna relacin con su secuencia fsica; para ste caso tiene que
haber una transformacin del campo llave para traducirlo a una ubicacin dentro del
registro tal como se muestra en la figura no. 5.2.

Figura no 5.2 Archivo directo donde debe transformarse la llave.

Cuando un archivo directo se establece debe definirse una relacin que ser
utilizada para obtener una direccin fsica a travs de un valor del campo llave. Esta
relacin es llamada funcin de mapeo (tambin conocida como transformacin KTA
-Key To Address-). Se utiliza la siguiente funcin de transformacin :

Cuando se debe guardar un registro en un archivo directo, la funcin de


mapeo R se utiliza para traducir el valor del campo llave del registro en una direccin
que indica dnde deber almacenarse el registro.

Cuando se desea recuperar un registro, el valor del campo llave es entregado


a la funcin R, la cual traduce el valor del campo en una direccin en la cual est el
registro.

En general, los archivos organizados en forma directa permiten acceder a


registros en un nmero de accesos igual o cercano a uno.

Los archivos directos deben de ser almacenados en medios de


almacenamiento de acceso directo exclusivamente (como los diskettes, discos duros
o cds).

Existen varias tcnicas de transformacin de llaves (Hashing), cinco de las


ms utilizadas son las que se describen a continuacin :

1.- Direccionamiento por Conversin a Octal.- Esta forma de direccionamiento es


utilizada para llaves que son tipo alfabticas y consiste en asignar a cada

Pgina : 73
ARCHIVOS DIRECTOS

letra de la llave un valor numrico que corresponda con su orden alfabtico.


As la A valdra 1n la B valdra 2, la C valdra, y as sucesivamente. Los
valores de todas las letras que forman la llave se suman y el resultado se
transforma en octal. El nmero obtenido es la direccin lgica buscada.

Por ejemplo, si el campo llave contiene el nombre : LUIS. Dicho dato se


transformar de la forma siguiente :

El nmero 63 est dado en decimal, pero se convierte a octal dando : 77


que es el nmero de registro donde se almacenar el registro de dicha llave.

Este mtodo puede producir sinnimos, es decir que el valor octal sea el
mismo. As por ejemplo las claves : COSA, SACO, CASO y ASCO.
Producen el mismo valor por lo que se debe considerar una rea de
desborde para stos casos.

2.- Direccionamiento por Restas Sucesivas.- Esta forma de direccionamiento se


aplica en campos llave que son del tipo numrico y es utilizada en archivos
que pueden tener muchos huecos de valores conocidos previamente.

Por ejemplo, si los campos llave se encuentran comprendidos entre los


siguientes valores :

Rangos de valores Huecos de numeracin

01500 a 03100 00001 a 01499 inclusive


03700 a 03900 03101 a 03699 inclusive
10001 a 12000 03901 a 10000 inclusive

Este mtodo consiste en restar al campo llave el valor absoluto de estos


lmites de la forma siguiente :

1500 <= Llave <= 3100 Restar 1499


3700 <= Llave <= 3900 Restar (1499 + 599)
10001 <= Llave <= 12000 Restar (1499 + 599 + 6100).

Este mtodo de direccionamiento no produce sinnimos y es muy bueno.

3.- Direccionamiento Por Divisin.- Esta forma de direccionamiento consiste en


dividir el valor del campo llave entre el nmero de direcciones asignadas al

Pgina : 74
ARCHIVOS DIRECTOS

archivo ms uno y tomar el resto de la divisin entera como direccin lgica


del registro.

Por ejemplo, el campo llave con el valor 97234 para un archivo de 1,200
posiciones fsicas se transformar en la direccin lgica siguiente :

97234 / 1201 = 80.96, De la cual se toma el valor entero y por lo tanto


80  corresponde a la direccin lgica calculada.

Esta forma de calcular direccionamiento, por lo que tambin deber


considerarse un rea de desborde.

4.- Direccionamiento por el Centro del Cuadrado.- Consiste en eliminar del


nmero obtenido, al elevar la clave al cuadrado, las cifras extremas (a
izquierda y derecha del nmero) y considerar las cifras restantes como un
valor decimal comprendido entre cero y uno, valor que se multiplica por el
nmero de direcciones disponibles en el archivo para obtener la direccin
lgica del registro.

Por ejemplo, para obtener la direccin lgica correspondiente a la clave 75460


en un archivo de 2000 direcciones, se hace lo siguiente :

75460 * 75460 = 569 4211 600  0.4211

Direccin Lgica = Valor entero de (0.4211 * 2000) = 842.

5.- Direccionamiento por desplazamiento.- En ste mtodo, los dgitos exteriores


en ambos extremos se corren hacia adentro, de modo que queden
trasladados en la medida de la longitud de la direccin. Se suman a
continuacin los dgitos trasladados, y el resultado se multiplica por el factor
de ajuste, que estar en funcin del nmero de direcciones disponibles en el
archivo.

Por ejemplo : La llave que tiene el valor : 17207359

Se toman los primeros cuatro dgitos para formar un valor y los ltimos cuatro
dgitos para formar el otro valor; ambos se suman y se obtiene la direccin
lgica donde se almacenar el registro.

1720
+ 7359
-------------
9 0 7 9  Que es la direccin lgica del registro.

Pgina : 75
ARCHIVOS DIRECTOS

Ventajas y desventajas de usar archivos directos.


La ventaja principal de un archivo directo es la habilidad de accesar registros
individuales directamente.
Su desventaja radica (dependiendo de la funcin de mapeo) en que se puede
presentar una misma direccin para diferentes valores de llave, es decir, se
presentan colisiones.
Otra desventaja es el desperdicio de espacio debido a la distribucin al azar
de los registros.

Siguiendo con ejemplos en la programacin Orientada a Objetos, se cre una


clase en el lenguaje C++ para crear objetos tipo empleado para que en base a dicha
clase se pueda crear un archivo organizado en forma directa. La clase creada se
muestra en el programa no. 5.1.

/* ============================================================
CLASE EMPLEADO, QUE SERA UTILIZADA PARA LA
CREACION DE REGISTROS PARA SER UTILIZADOS
EN UN ARCHIVO ORGANIZADO EN FORMA DIRECTA.
AUTOR : JOSE LUIS HERNANDEZ HERNANDEZ
==============================================================*/

class empleado{
private :
int clave; // DATOS MIEMBRO
char nom[30];
float sdia;
int dias;
public :
empleado(); // FUNCIONES MIEMBRO
Pedir_Datos();
int Pedir_Clave();
Modifica();
Consultas();
Datos_Constantes();
~empleado() { };
};

empleado::empleado()
{
dias = clave = 0;
strcpy(nom," \0");
sdia = 0.0;
}

Pgina : 76
ARCHIVOS DIRECTOS

int empleado::Pedir_Clave()
{
int Cve;
clrscr();

gotoxy(20,10); cout<<"Clave del empleado : ";


cin >> Cve;
fflush(stdin);
return Cve;
}

empleado::Pedir_Datos()
{ clrscr();
gotoxy(10,5); cout<<"ALTAS DE UN REGISTRO A UN ARCHIVO DIRECTO.";
Datos_Constantes();
gotoxy(46,10); cout << clave;
fflush(stdin);
gotoxy(46,12); gets(nom);
fflush(stdin);
gotoxy(46,14); cin>>sdia;
fflush(stdin);
gotoxy(46,16); cin>>dias;
fflush(stdin);
return 0;
}

empleado::Modifica()
{ clrscr();
char nomm[30], diass[3],sdiaa[10];
gotoxy(10,5);
cout<<"MODIFICACION A UN REGISTRO DE UN ARCHIVO DIRECTO.";
Datos_Constantes();
gotoxy(46,10); cout<< clave;
gotoxy(46,12); cout<< nom;
gotoxy(46,14); cout<< sdia;
gotoxy(46,16); cout<< dias;
gotoxy(48,12); gets(nomm);
fflush(stdin);
gotoxy(48,14); gets(sdiaa);
fflush(stdin);
gotoxy(48,16); gets(diass);
fflush(stdin);
if (diass[0] != '\x0') dias = atoi(diass);
if (sdiaa[0] != '\x0') sdia = atof(sdiaa);
if (nomm[0] != '\x0')
{ strcpy(nom," ");
strcpy(nom,nomm);
}
return 0;
}

Pgina : 77
ARCHIVOS DIRECTOS

empleado::Consultas()
{
gotoxy(10,5);
cout<<"CONSULTAS DE UN REGISTRO EN UN ARCHIVO DIRECTO.";
Datos_Constantes();
gotoxy(46,10); cout<< clave;
gotoxy(46,12); cout<< nom;
gotoxy(46,14); cout<< sdia;
gotoxy(46,16); cout<< dias;
gotoxy(50,22); cout<<"<Return> para continuar";
getchar();
return 0;
}

empleado::Datos_Constantes()
{
gotoxy(20,10); cout<<"Clave del empleado : ";
gotoxy(20,12); cout<<"Nombre del empleado : ";
gotoxy(20,14); cout<<"Sueldo diario : ";
gotoxy(20,16); cout<<"No. de Dias trabajados : ";
return 0;
}

Programa no. 5.1 Codificacin de la clase empleado para usarla en Archivos Directos.

V.2 Operaciones a efectuar.

La forma como se va a usar un archivo es un factor importante para


determinar cmo se debe organizar. Dos aspectos importantes sobre el uso de
archivos son su modo de utilizacin y la naturaleza de las operaciones sobre el
archivo.

Los archivos organizados en forma directa son los ideales para utilizarlos en
sistemas de informacin que tienen accesos interactivos o en tiempo real. Lo
anterior es debido a que no importa la cantidad de registros que tenga el archivo de
datos. Las altas, bajas, modificaciones o consultas sern rapidsimas porque el
acceso lo hace en forma directa sin pasar por ningn registro previo.

Para el uso de un archivo en procesos tipo batch, el acceso es semejante a un


archivo organizado en forma secuencial, con la diferencia que tiene que ir verificando
que el registro ledo tenga datos para que sea procesado; en caso contrario, debe
ser brincado si proceso alguno.

Pgina : 78
ARCHIVOS DIRECTOS

Las operaciones bsicas que se pueden ejecutar sobre un archivo organizado


en forma directa son las que se describen a continuacin :

ACTUALIZACION.

La actualizacin consiste en cambiar el contenido de un archivo de datos, esto


con el fin de reflejar todos los cambios que se dan en cierto momento en el mundo
real. Dichos cambios pueden incluir las siguientes acciones :

1.- Creacin.- La creacin inicial de un archivo organizado en forma directa


consiste en crear un esqueleto con una cierta cantidad de registros, donde cada
registro se encuentra vaco, pero que se encuentra disponible para almacenar
en forma directa cualquier registro al que se haga referencia.

Un ejemplo de la creacin de un archivo organizado en forma directa, se puede


observar en el programa no. 5.2 en el cual se crea la estructura vacia de un
archivo que contendr una cierta cantidad de registros de acuerdo a las
necesidades del usuario.

2.- Altas.- Para insertar elementos en archivos directos se utilizan tcnicas como
son las tcnicas de clculo de direcciones, en stas tcnicas tienen lugar las
llamadas "coalisiones" que no son mas que la repeticin de una localidad al
momento de almacenar un dato. Las colisiones no pueden ser eliminadas, lo
mas que se puede hacer es tratar de minimizarlas y para ello existen distintos
mtodos que se describieron anteriormente.

Si la llave de trabajo de los registros son nmeros consecutivos, se puede


hacer un simple enlace directo entre claves y direcciones. Sencillamente se
asocia una llave primaria ms pequea con la direccin relativa 1, la siguiente
clave primaria ms pequea con la direccin relativa 2, y as sucesivamente.
Por cuestiones de didctica se implementar esta forma para el ejemplo de
altas a un archivo directo.

Un ejemplo de altas a un archivo organizado en forma directa, se puede


observar en el programa no. 5.3, el cual en base a la clave del empleado busca
la ubicacin en todo el archivo, a partir de donde se graba el registro.

3.- Eliminacin.- La eliminacin de un registro consiste en buscar en ubicar en el


archivo directo el registro que se va a eliminar y una vez localizado los campos
tipo cadena se llenan completamente con espacios y a los campos tipo
numrico se les borra el valor que contengan.

Pgina : 79
ARCHIVOS DIRECTOS

Un ejemplo de eliminacin de un registro a un archivo organizado en forma


directa, se puede observar en el programa no. 5.4, el cual en base a la clave del
empleado busca la ubicacin en todo el archivo, a partir de donde se graba el
registro completamente en blanco.

4.- La modificacin significa que se van a cambiar los contenidos de algunos


campos de cierto registro de datos, para esto se hacen los siguientes pasos :

Usando el campo llave que es introducido por el usuario (registro a modificar),


se calcula su ubicacin dentro de archivo directo.
Comprobar si el registro est ocupado (o tiene datos) y adems saber si
realmente es el deseado.
Proporcionar las nuevas modificaciones utilizando una variables temporales.
Reemplazar la variable temporal a registro a modificar. Y grabar nuevamente
el registro en la misma ubicacin original.

Un ejemplo de modificacin de algunos campos de un registro a un archivo


organizado en forma directa, se puede observar en el programa no. 5.5, el cual
en base a la clave del empleado busca la ubicacin en todo el archivo, se
cambian los campos requeridos y se graba el registro en su mismo lugar
original.

RECUPERACIN.

El acceso a un archivo con el propsito de extraer informacin significativa es


llamado recuperacin de la informacin. Existen bsicamente dos clases de
recuperacin de informacin : consulta y generacin de reportes.

Una consulta es la operacin ms rpida en un archivo directo, debido a que


el usuario teclea el campo llave y con la conversin respectiva se ubica el puntero de
lectura exactamente en el registro que se desea consultar. El tiempo de respuesta
es exactamente el mismo, ya sea para el registro No. 1 o bien para el registro 20,000
o 1,000,000.

Otra forma de recuperacin de los datos es mediante un reporte, el cual es


manejado exactamente como si fuera un archivo secuencial, con la diferencia que lee
registro por registro. Si el registro contiene informacin lo procesa y lo enva al
reporte; en caso contrario simplemente lo brinca y lee el siguiente hasta alcanzar el
fin del archivo.

Pgina : 80
ARCHIVOS DIRECTOS

IV.3 Mantenimiento.

El mantenimiento de un archivo organizado en forma directa consiste en


readaptarlo a todos los cambios continuos del mundo real que es muy dinmico.

Existen dos clases de operaciones de operaciones bsicas, las cuales son :

1.- Reestructuracin de un archivo implica que es necesario aplicar cambios


estructurales dentro del contexto de la misma organizacin de archivos. Por
ejemplo, cambiar la longitud de los campos, agregar nuevos campos a los
registros, eliminar algunos campos que ya no se utilicen, asignar ms espacio
para el archivo, etc.

2.- Reorganizacin, la cual consiste bsicamente en el cambio de mecanismo de


acceso. Dicha reorganizacin se describe en los siguientes puntos :

Reorganizacin por Cambio del Campo Llave.- En este caso, lo nico


que se va a cambiar es la manera de como se calculaban las direcciones
para los nuevos elementos a introducir. Esto es cuando el cambio
nicamente se refleja en la nueva direccin que ocupa nicamente.

Reorganizacin por Cambio del Campo llave y Aumento en el Tamao. A


hora el cambio tamben se vera reflejado por el aumento de tamao por
nuevos elementos.

V.4 Ejemplo de aplicacin.

Se desea realizar un programa que permita crear y manipular un archivo


organizado en forma directa y que permita las operaciones de : Altas, Bajas, y
Modificaciones.

Se defini un registro de datos que contiene 4 campos que son : Clave del
empleado, su nombre, sueldo diario y das trabajados. La anterior estructura es con
fines didcticos y es la que est establecida desde la figura No. 3.1 de ste
documento.

Debido a que un programa para aplicar todas las operaciones a un archivo


directo se haca muy extenso para poder explicarlo, se utiliz el cdigo de la clase
establecida en el programa no. 5.1 de ste capitulo y se decidi hacer un programa
para cada operacin.

Pgina : 81
ARCHIVOS DIRECTOS

OPERACIN DE LA CREACION DE UN ARCHIVO DIRECTO.

//============================================================
// PROGRAMA DE EJEMPLO PARA CREAR EL ESQUELETO DE UN
// ARCHIVO DIRECTO.
//
// Autor : Jos Luis Hernndez Hernndez.
//============================================================

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include <fstream.h>
#include <dos.h>
#include "emplea.hpp"

ofstream ofDirecto; // Objeto tipo archivo de Directo.


empleado EMP; // Objeto tipo registro de empleados.

Abrir_Archivo(); // Definicin de prototipos de funciones utilizadas.


Grabar_Registro();
Cierra_Archivo();

main()
{
Abrir_Archivo(); // Abre Archivo Secuencial y de Indices.
Grabar_Registro(); // Graba Registros en blanco.
Cierra_Archivo(); // Cierra el Archivo.
return 0;
}

Abrir_Archivo()
{
ofDirecto.open("c:\\directo.dat",ios::out | ios::binary);
if (!ofDirecto)
{
clrscr();
cout << "El Archivo <DIRECTO> no pudo abrirse"<<endl;
cout << "Pulsar <Return> para Salir"<<endl;
getchar();
exit (-1);
}
return 0;
}

Pgina : 82
ARCHIVOS DIRECTOS

Grabar_Registro()
{
int i, Reg;
clrscr();
gotoxy(10,8);
cout << "CREACION DE UN ARCHIVO DIRECTO";
gotoxy(10,12);
cout << "CANTIDAD DE REGISTROS QUE TENDRA EL ARCHIVO DIRECTO : ";
cin >> Reg;
for(i=0; i<= Reg ; i++)
{
ofDirecto.write((char *) &EMP, sizeof(EMP));
gotoxy(20,18); cout << "Registro Creado : " << i;
delay(100);
}
return 0;
}

Cierra_Archivo()
{
ofDirecto.close();
gotoxy(30,22);
cout << "ARCHIVO DIRECTO CREADO EXITOSAMENTE.";
return 0;
}

Programa No. 5.2 que ejemplifica la creacin de un archivo directo.

OPERACIN DE ALTAS A UN ARCHIVO DIRECTO.

//============================================================
// PROGRAMA DE EJEMPLO PARA DAR ALTAS DE REGISTROS
// A UN ARCHIVO DIRECTO.
// Autor : Jos Luis Hernndez Hernndez.
//============================================================

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include <fstream.h>
#include <dos.h>
#include "emplea.hpp"

fstream ofDirecto; // Objeto tipo archivo de Directo.


empleado EMP; // Objeto tipo registro de empleados.

Pgina : 83
ARCHIVOS DIRECTOS

Abrir_Archivo(); // Definicin de prototipos


Alta_Registro(); // de funciones utilizadas.
Cierra_Archivo();

main()
{
Abrir_Archivo(); // Abre Archivo Directo.
Alta_Registro(); // Da de alta un registro en forma Directa.
Cierra_Archivo(); // Cierra el Archivo.
return 0;
}

Abrir_Archivo()
{
ofDirecto.open("c:\\directo.dat",ios::in | ios::out |ios::ate | ios::binary);
if (!ofDirecto)
{
clrscr();
cout << "El Archivo <DIRECTO> no pudo abrirse"<<endl;
cout << "Pulsar <Return> para Salir"<<endl;
getchar();
exit (-1);
}
return 0;
}

Alta_Registro()
{
int Cve, ubicacion;
Cve = EMP.Pedir_Clave();
EMP.clave = Cve;
int Ubi = Cve * sizeof(EMP); // Hace el clculo para encontrar
ubicacion = Ubi - sizeof(EMP); // la ubicacin lgica en el archivo.
EMP.Pedir_Datos();
ofDirecto.seekp(ubicacion, ios::beg);
ofDirecto.write((char *) &EMP, sizeof(EMP));
return 0;
}

Cierra_Archivo()
{
ofDirecto.close();
gotoxy(30,22); cout << "REGISTRO GRABADO EXITOSAMENTE.";
return 0;
}

Programa No. 5.3 Ejemplo de alta de un registro a un archivo Directo.

Pgina : 84
ARCHIVOS DIRECTOS

OPERACIN DE BAJAS A UN ARCHIVO DIRECTO.

//============================================================
// PROGRAMA DE EJEMPLO PARA DAR BAJAS DE REGISTROS
// A UN ARCHIVO DIRECTO.
// Autor : Jos Luis Hernndez Hernndez.
//============================================================

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include <fstream.h>
#include <dos.h>
#include "emplea.hpp"

fstream ofDirecto; // Objeto tipo archivo de Directo.


empleado EMP; // Objeto tipo registro de empleados.

Abrir_Archivo(); // Definicin de prototipos


Eliminar_Registro(); // de funciones utilizadas.
Cierra_Archivo();

main()
{
Abrir_Archivo(); // Abre Archivo Directo.
Eliminar_Registro(); // Eliminar un registro en forma Directa.
Cierra_Archivo(); // Cierra el Archivo.
return 0;
}

Abrir_Archivo()
{
ofDirecto.open("c:\\directo.dat",ios::in | ios::out |ios::ate | ios::binary);
if (!ofDirecto)
{
clrscr();
cout << "El Archivo <DIRECTO> no pudo abrirse"<<endl;
cout << "Pulsar <Return> para Salir"<<endl;
getchar();
exit (-1);
}
return 0;
}

Pgina : 85
ARCHIVOS DIRECTOS

Eliminar_Registro()
{
int Cve, ubicacion;
Cve = EMP.Pedir_Clave();
int Ubi = Cve * sizeof(EMP);
ubicacion = Ubi - sizeof(EMP);

EMP.clave = 0; // Se borran los datos.


strcpy(EMP.nom," \0");
EMP.dias = 0;
EMP.sdia = 0.0;

ofDirecto.seekp(ubicacion, ios::beg);
ofDirecto.write((char *) &EMP, sizeof(EMP));
return 0;
}

Cierra_Archivo()
{
ofDirecto.close();
gotoxy(30,22); cout << "REGISTRO ELIMINADO EXITOSAMENTE.";
return 0;
}

Programa No. 5.4 Ejemplo de eliminacin de un registro a un archivo Directo.

OPERACIN DE MODIFICACION A UN ARCHIVO DIRECTO.

//=================================================================
// PROGRAMA DE EJEMPLO PARA HACER MODIFICACIONES A REGISTROS
// A UN ARCHIVO DIRECTO.
// Autor : Jos Luis Hernndez Hernndez.
//=================================================================

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include <fstream.h>
#include <dos.h>
#include "emplea.hpp"

fstream ofDirecto; // Objeto tipo archivo de Directo.


empleado EMP; // Objeto tipo registro de empleados.

Abrir_Archivo(); // Definicin de prototipos

Pgina : 86
ARCHIVOS DIRECTOS

Modificar_Registro(); // de funciones utilizadas.


Cierra_Archivo();

main()
{
Abrir_Archivo(); // Abre Archivo Directo.
Modificar_Registro(); // Modificar un registro en forma Directa.
Cierra_Archivo(); // Cierra el Archivo.
return 0;
}

Abrir_Archivo()
{
ofDirecto.open("c:\\directo.dat",ios::in | ios::out |ios::ate | ios::binary);
if (!ofDirecto)
{
clrscr();
cout << "El Archivo <DIRECTO> no pudo abrirse"<<endl;
cout << "Pulsar <Return> para Salir"<<endl;
getchar();
exit (-1);
}
return 0;
}

Modificar_Registro()
{
int Cve, ubicacion;
Cve = EMP.Pedir_Clave();
int Ubi = Cve * sizeof(EMP);
ubicacion = Ubi - sizeof(EMP);
ofDirecto.seekp(ubicacion, ios::beg); // Coloca el puntero en la ubicacin lgica
ofDirecto.read((char *) &EMP, sizeof(EMP)); // Lee el registro.
EMP.Modifica(); // Cambia los campos.
ofDirecto.seekp(ubicacion, ios::beg); // Regresa el Puntero.
ofDirecto.write((char *) &EMP, sizeof(EMP)); // Reescribe en registro.
return 0;
}

Cierra_Archivo()
{
ofDirecto.close();
gotoxy(30,22);
cout << "REGISTRO MODIFICADO EXITOSAMENTE.";
return 0;
}

Programa No. 5.5 Ejemplo de modificacin de un registro en un archivo Directo.

Pgina : 87
CAPITULO 6

Correspondencia
entre la llave y la
direccin fsica
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

Capitulo VI. Correspondencia entre la llave y la direccin fsica.

Los registros donde se almacenan los datos de un sistema de informacin,


normalmente contienen un campo especial que se le denomina campo llave y que es
un dato que identifica a cada uno de los registros que se encuentran en un archivo.

Normalmente la llave es una clave nica, aunque no necesariamente nica


que se utiliza para hacer la bsqueda de algn registro en especial y poder accesar a
todos los datos que lo componen.

En las organizaciones de archivos secuencial-indexado y directos, se requiere


establecer la correspondencia entre el campo llave y la direccin fsica en donde se
encuentra un archivo de datos especfico.

Conociendo la relacin que existe entre la llave y la direccin fsica se pueden


establecer algunas tcnicas de bsqueda de datos adecuadas, para minimizar el
tiempo de bsqueda y optimizar los resultados en tiempo real.

Para poder conocer la ubicacin fsica de un registro especfico, es necesario


tener dos archivos encadenados :

El archivo con todos los datos.


Un archivo de llaves con las referencias adecuadas para conocer la ubicacin
de todos y cada uno de los registros de datos.

Teniendo lo anterior, se implementa un direccionamiento el cual puede ser


directo o indirecto.

VI.1 Direccionamiento Directo e Indirecto.

El direccionamiento de dos registros puede darse en forma directa e indirecta.


Se dice que es directa cuando es posible determinar la direccin mediante una
relacin natural con la llave. Es indirecta cuando la llave debe ser alterada o se le
deben de aplicar operaciones para determinar la direccin del registro.

DIRECCIONAMIENTO DIRECTO.

El archivo organizado en forma directa intenta explorar la capacidad,


proporcionada por las unidades de disco y dispositivos similares, de lograr acceso a

Pgina : 89
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

cualquier bloque de direccin conocida. Para lograr el direccionamiento directo se


utiliza la llave del registro para localizarlo en el archivo. En la figura No. 6.1 se
muestra una forma muy simple de realizar un direccionamiento.

Figura No. 6.1 Direccionamiento Directo.

Los ms antiguos archivos almacenados en disco y con una organizacin de


acceso directo fueron utilizados por las maquinas electrnicas de contabilidad que
utilizaban un nmero perforado en una tarjeta, para determinar en dnde debera
archivarse el resto del contenido de la tarjeta. Los mtodos modernos de acceso
directo transforman la llave mediante un algoritmo de computacin antes de utilizarla
como direccin. El mtodo de acceso directo es rpido, ya que se evitan las
operaciones intermedias de archivo, pero obliga a que los datos se localicen d
acuerdo con un solo atributo llave.

Puede compararse el acceso directo con un archivo secuencial indexado en el


que el acceso se proporciona de acuerdo con un solo atributo; sin embargo, los
registros dentro de los archivos directos no estn eslabonados con sus registros
predecesores o sucesores. Los mtodos de archivo directo utilizan un calculo para
proporcionar la direccin de registro para una llave, mientras que las organizaciones
de archivo indexado buscan en ndices para determinar cual es el registro
correspondiente a una llave.

Los rboles B utilizan un espacio extra para reducir el esfuerzo de inversin.


El archivo directo utilizar espacio extra en el archivo principal (m>n), conservando
algunos espacios de registros vacos, para reducir la probabilidad y el costo de
conflictos al insertar mas registros al archivo.

Pgina : 90
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

DIRECCIONAMIENTO INDIRECTO.

El direccionamiento indirecto es muy utilizado al organizar un archivo en forma


secuencial-indexado, debido a que se requiere crear un archivo de ndices o de
direcciones que normalmente contiene nicamente dos datos : Llave del registro y
direccin de la ubicacin del registro en el rea de datos.

Al momento de disear la estructura de un archivo secuencial-indexado,


deben considerarse los siguientes puntos :

Formato de los campos del registro.


Definir el campo llave para identificar un registro.
Definir varios campos llave cuando un registro tiene varias ocurrencias con el
primer campo llave.
Frecuencia esperada de insercin de nuevos registros.
Mtodo utilizado en la aplicacin, para implantar la construccin de los
ndices.
Definir el tamao del registro para hacer los clculos de la ubicacin fsica de
cada registro.

Los campos adecuados para formar la llave para un archivo secuencial


indexado son determinados por la aplicacin. La restriccin significativa de la
organizacin secuencial indexada es, que cualquier campo que constituya la llave
para el acceso secuencial del archivo, tambin deber ser la llave para el acceso
indexado al archivo. Si no es el caso, y diferentes llaves parecen adecuadas para
los accesos secuenciales e indexado, entonces otro tipo de organizacin de archivo
resultara mas adecuada que la organizacin secuencial indexada.

La estructura del rea donde se almacenarn los ndices, queda de la forma


que se muestra en la figura No. 6.2

Figura No. 6.2 Estructura de los ndices

Pgina : 91
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

La cantidad esperada de registros que se van a insertar al archivo determina


cuanto espacio libre debe asignarse en el archivo, cuando es cargado inicialmente y
cuanto espacio queda disponible para insertar registros como se vaya requiriendo.
Una buena sugerencia es considerar aproximadamente el 40% de espacio extra de
la carga inicial.

Dependiendo del mtodo utilizado para implantar al archivo secuencial-


indexado, pueden tomarse algunas otras alternativas para el manejo y manipulacin
de los ndices. Los manuales de manejo de datos locales, a menudo proporcionan
una gua dependiente de la implantacin para la determinacin de parmetros tales
como los que se enumeran a continuacin :

Mtodo de rbol B+

Tamao del bloque de datos.


Tamao del bloque de ndice.
Numero de niveles de ndice inicialmente.
Numero mximo de niveles de ndice.

Mtodo del esquema Fsico de ndice.

Tamao del rea de ndice.


Niveles de ndice.
Tamao del rea primaria.
Tamao del rea de sobrecarga.
Bloqueo de registros en el rea primaria.

Estos parmetros descritos anteriormente, estn determinados por : el tamao


de bloque natural del sistema, el numero actual de registros, el nmero esperado de
registros de datos, y el uso del archivo. La necesidad de una rpida recuperacin
directa implica el uso un de ndice espeso, adems que la rpida recuperacin
secuencial implica bloques de datos ms grandes o reas primarias de datos y un
factor de bloqueo ms grande. Entre mayor sea la frecuencia de particin, los
bloques de datos o de ndices proporciona un mejor desempeo; tanto en la
recuperacin directa y secuencial como en la actualizacin.

VI.2 Clasificacin de los tipos de correspondencia.

Se trat anteriormente de los direccionamientos directos e indirectos que son


utilizados en los archivos organizados en forma directa y en forma secuencial-
indexada para establecer un mecanismo de enlace con una llave especfica y la
ubicacin fsica donde se encuentra un registro de datos.

Pgina : 92
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

El manejo de los direccionamientos directos e indirectos, estn ntimamente


relacionados con la bsqueda ptima de cierto registro. En el uso de los archivos
organizados en forma directa se requieren de tcnicas de calculo de direcciones.
stas tcnicas consisten en transformar una llave en una direccin por medio de
alguna operacin, esta operacin depende del tipo de tcnica usada.

Las tcnicas mas comunes de calculo de direcciones son : Direccionamiento


directo (absoluto o relativo), direccionamiento por asociacin, direccionamiento por
circulo (tcnicas aleatorias tpicas, truncamiento, seleccin, anlisis de frecuencias,
divisin por nmero primo, cambio de base, multiplicacin y cuadrado) y soluciones
con claves no numricas

VI.2.1 Directa.

La tcnica directa es la mas sencilla para traducir una llave de un registro de


datos a una direccin de almacenamiento y consiste bsicamente en utilizar el
campo llave casi en forma directa. La llave es tomada y puede manejarse de dos
posibles formas :

a) Direccionamiento Absoluto.- Esta forma de direccionamiento consiste en tomar


el valor de la llave suministrada por el usuario y que dicha llave
sea la direccin real de registro.

Cuando el registro es almacenado en al archivo, la localidad del


registro (que es la llave) puede ser :

El nmero de cilindro, nmero de superficie y nmero de


registro (Si se utiliza el direccionamiento por cilindro).

Con ste mtodo del cilindro, la direccin de su nmero de


cilindro, nmero de superficies y nmero de registros, todas las
pistas de un dimetro dado en el paquete de discos forman un
cilindro tal como se aprecia en la figura No. 6.3.

El nmero de sector y nmero de registro.

Con ste otro mtodo, cada pista del paquete est dividida en
sectores, como se ilustra en la figura No. 6.4. Cada sector es un
rea de almacenamiento para un nmero fijo de registros. Una
direccin del registro es simplemente su nmero de sector. Dado
un nmero de sector, el controlador del disco puede determinar

Pgina : 93
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

que pista deber accesar y donde reside en registro direccionado


sobre la pista.

Figura No. 6.3 Estructura de un cilindro.

Cuando el registro es recuperado posteriormente, se localiza en


forma absoluta, ya que el usuario conoce exactamente donde se
encuentra por lo que el acceso es directo.

Figura No. 6.4 Ejemplo de direccionamiento por sector.

Esta forma de direccionamiento directo absoluto tiene dos grandes


ventajas :

La funcin de mapeo R es muy sencilla.


Dado un valor de llave de un registro, no se requiere
tiempo de procesamiento del CPU para determinar la
localidad del registro en el almacenamiento secundario.

Pgina : 94
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

Las desventajas de sta forma de direccionamiento son mucho


mayores que las ventajas y se enuncian a continuacin :

Las consideraciones lgicas y fsicas no son


independientes del direccionamiento absoluto; el usuario
debe conocer exactamente cmo estn almacenados
fsicamente los registros.
Los usuarios normalmente no suministran los tipos
apropiados de valores de llave, por ejemplo en un banco
no se producen direcciones fsicas de almacenamiento con
los nmeros de cliente; ya que en el banco se necesitan
rangos consecutivos y es muy difcil hacerlos adaptar la
administracin del banco con la forma de almacenamiento
en un archivo de datos.
Las direcciones absolutas dependen de los dispositivos.
Si fuera conveniente actualizar o cambiar el dispositivo en
el que se almacen un archivo de datos, los valores de las
llaves tambin tienen que cambiar.
Las direcciones absolutas dependen del espacio
direccionable. Si fuera conveniente reorganizar el archivo
directo, pero conservarlo en el mismo dispositivo, los
valores de las llaves deberan cambiarse. Esta
reorganizacin puede ser necesaria debido al propsito de
ampliar el espacio de direccin, compactar el espacio libre,
recuperar el espacio desperdiciado, o reducir el espacio de
direcciones.

b) Direccionamiento Relativo.- Este tipo de direccionamiento consiste en tomar el


valor de la llave, el cual es el nmero ordinal del registro dentro del
archivo de datos.

Un archivo con espacio para contener N registros con direcciones


que estn dentro del conjunto {1,2,3,4,5,6,....., n-1,n}, o bien el
conjunto {0,1,2,3,4,5,......, n-2,n-1}. El i-simo tiene la direccin
relativa, la cual se calcula de la forma siguiente :

Direccin = (N * CB) CB. Donde :

Direccin = Ubicacin fsica del registro


N = Nmero ordinario del registro
CB = Cantidad en bytes de registro

Pgina : 95
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

Las ventajas del esquema de direccionamiento directo relativo son


las que se describen a continuacin :

La funcin de direccionamiento R es muy sencilla.


Dado el valor de una llave de registro, esencialmente no se
requiere tiempo de proceso para determinar la localidad del
registro en el almacenamiento secundario.

Las direcciones relativas directas, no dependen tanto del


dispositivo como las direcciones absolutas, lo cual elimina una de
las desventajas mencionadas para el direccionamiento absoluto.
Sin embargo, como en el caso de las direcciones absolutas, las
direcciones relativas dependen del espacio para las direcciones.

Algunos tipos de valores naturales no son apropiados para usarse


como direcciones relativas. Por ejemplo, aunque pudiesen
convertirse a un equivalente numrico, los valores del nmero de
control de los alumnos del Instituto Tecnolgico de Chilpancingo
no son buenos para usarse como direccin relativa. La razn es
muy sencilla, el nmero de control estn definido considerando
tres datos diferentes y conjugados nos proporcionan el nmero de
control de cada alumno que ingresa a la institucin como puede
apreciarse en la figura No. 6.5.

Figura No. 6.5 Formacin del Nmero de control de un alumno del Tecnolgico.

Si se crea un archivo utilizando el direccionamiento relativo, sera


necesario que el archivo tuviera 99,999,999 de registros y con los
alumnos registrados en 20 aos que tiene de vida el Instituto
tecnolgico de Chilpancingo, a lo mucho tendremos unos 9,000
alumnos registrados lo que equivale aproximadamente al 9 % del
archivo, teniendo un desperdicio de espacio del 91 %.

Recordemos que el tamao del archivo (es decir, el tamao del


espacio de direcciones del archivo) est determinado por el rango
de valores posibles para las direcciones relativas, el cual, con un
direccionamiento relativo es equivalente al rango de posibles

Pgina : 96
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

valores para la llave, y no por el nmero real de valores de llave


utilizados.

Un enfoque para este problema de espacio de llaves es identificar


o inventar una llave cuyo rango de valores est altamente poblado.
Por ejemplo, en un archivo directo de datos de un inventario de
partes, un nmero de parte de 4 dgitos puede ser una buena
direccin relativa, si el inventario contiene por ejemplo 8,489 tipos
de partes distintas. Pero las solicitudes para accesar los datos de
alguna parte o artculo en particular tendrn que enunciarse en
trminos del nmero de parte de 4 dgitos, y no en trminos de su
nombre, o de su tipo, o por algn otro valor del campo.

VI.2.2 Asociacin.

La correspondencia entre la llave y la direccin fsica donde se encuentra un


registro especfico, puede ser por asociacin la cual es muy utilizada en archivos del
tipo secuencial indexados y consiste en utilizar una rea de datos y una rea de
ndice para asociar o ligar el registro de datos y su ndice que tiene la ubicacin
exacta.

El rea de datos y el rea de ndice se muestra asociadas por la llave del


registro en la figura No. 6.6 que se encuentra a continuacin.

Figura No. 6.6 rea de datos y rea de ndice de un archivo secuencial-indexado.

Como se muestra en la figura No. 6.6, en el rea de datos se encuentran


todos los registros grabados en el mismo orden en que fueron introducidos por el
capturista, que como puede apreciarse no estn ordenados de ninguna forma.

Pgina : 97
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

En al rea de ndice de la misma figura No. 6.6, se encuentran nicamente


dos campos: El primero que es la llave que identifica a cada uno de los registro del
rea de datos y el segundo campo es la ubicacin fsica o apuntador donde inicia el
registro en el rea de datos.

Entre el rea de ndice y el rea de datos se realiza una asociacin, debido a


que la llave en ambos archivos es la misma y estn encadenados por la ubicacin o
apuntador de cada uno de los registros.

Cabe hacer mencin que el rea de ndice normalmente se encuentra en


forma ordenada, con el fin de implementar la bsqueda binaria y sea ms rpido
encontrar un registro en especial.

Cuando un usuario desea hacer una bsqueda, normalmente teclea la clave


que identifica al registro que desea accesar. En ese momento se hace una
bsqueda binaria en el rea de ndice; al encontrar la clave del registro que se desea
accesar, se toma nicamente la ubicacin o apuntador donde se encuentra el
registro en cuestin y dicho dato se enva como parmetro para que una funcin del
lenguaje en uso posicione el puntero de lectura-escritura al inicio del registro. En ese
momento todos los datos del registro encontrado pueden manipularse de la forma
que se crea conveniente (Desplegarse en el monitor, imprimirse en papel e incluso
modificar el contenido de algn campo del registro; desde luego considerando que la
llave no puede alterarse).

Esta forma de correspondencia entre la llave y la direccin fsica es lo que


permite accesar los registros, incluso por dos o ms llaves; para lo que es necesario
crear dos reas de ndice tal como se puede apreciar en la figura No. 6.7.

Figura 6.7 Asociacin cuando existen 2 reas de ndices y una rea de datos.

Pgina : 98
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

De acuerdo a la figura No. 6.7, el rea de datos est asociado con una rea de
ndice por la clave de la persona y con otra rea de ndice por el nombre de la
persona. Con cualquiera de los dos datos (clave y nombre) es posible accesar al
registro respectivo que se encuentra en el rea de datos.

VI.2.3 Por Circulo.

Un mtodo ampliamente utilizado para generar direcciones fsicas de los


registros es aquel llamado por circulo y que consiste en una descomposicin de la
llave la cual se aplica a todos los registros realizando una serie de operaciones que
darn como resultado un numero relativamente grande (en proporcin al tamao total
del archivo) y del cual ser generado un numero en un intervalo determinado, el cual
se utilizara como direccin en el esqueleto.

Este mtodo es mejor conocido como Hashing y en el presente documento se


tratarn las siguientes tcnicas para obtener la direccin fsica donde se almacena
cada uno de los registros : Tcnicas aleatorias tpicas, truncamiento, seleccin,
anlisis de frecuencias, divisin por nmero primo, cambio de base, multiplicacin y
cuadrado.

La creacin del esqueleto para almacenar los registros de un archivo


organizado en forma relativa o directa, debe considerar un porcentaje de registros
para las colisiones, es decir para ubicaciones de registro que se obtengan
exactamente igual para varios registros de datos.

La forma del esqueleto que se crea puede apreciarse en la figura No. 6.8 y
que considera un rea del 10% para posibles colisiones.

Figura No. 6.8 Esqueleto de un archivo relativo que considera una rea para colisiones.

Pgina : 99
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

TECNICAS ALEATORIAS TIPICAS.

La tcnica aleatoria tpica consiste en utilizar una funcin o instruccin del


lenguaje de programacin que se est utilizando que sea capz de generar en forma
aleatoria una secuencia de nmeros a partir de una clave. La secuencia de
nmeros obtenidos generalmente obtendr varios repetidos, lo que significa que
existirn varias colisiones que debern ser tratadas adecuadamente para que el
acceso a los registros sea lo ms ptimo posible.

En algunas ocasiones puede crearse una rutina personal para crear los
nmero aleatorios; aunque el resultado sern nmeros pseudoaleatorios.

Es muy comn que como existen muchos valores repetidos, se aplique a


dichos nmeros alguna otra tcnica de conversin con el fin de minimizar la cantidad
de colisiones.

TRUNCAMIENTO.

La tcnica de truncamiento consiste en particionar en varias partes la llave del


registro, cada una de las cuales (Excepto la ltima) tiene el mismo nmero de dgitos
que tiene la direccin relativa objetiva. Las particiones obtenidas de la llave son
colocadas una debajo de la otra y son sumadas.

Una vez que se obtuvo un resultado, se toma la cantidad de dgitos que tendr
la direccin relativa objetiva empezando de derecha a izquierda y los dgitos de
mayor valor son truncados para de esa forma obtener la direccin relativa.

Por ejemplo, sonsiderese que tenemos el valor 68654321, y suponga que la


direccin relativa objetiva tendr 3 dgitos. Se sigue el siguiente procedimiento :

Se toma la Llave y se divide en bloques de 3 valores, iniciando de derecha a


izquierda de la forma siguiente :

68 654 321

A continuacin se toman los tres valores obtenidos y se colocan uno abajo del
otro, ajustandolos de izquierda a derecha y sumandose de la forma siguiente :

68
+ 654
321
1655

Pgina : 100
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

Al realizar al suma anterior, se obtiene el valor 1655 y el ddito de mayor


orden es eliminado para finalmente obtener la direccin relativa : 655.

SELECCIN.

La tcnica por seleccin consiste en seleccionar un patrn que en algunas


circunstancias aparece en forma natural. Esto sucede con mucha probabilidad entre
llaves del tipo numricas. Un buen ejemplo puede ser definir la direccin relatica
seleccionando la fecha de nacimiento de la persona, lo que dar como resultado
incluso a no tener sinnimos y por lo tanto a no tener colisiones.

Imagine usted que se desea encontrar la direccin relativa de los empleados


del Instituto Tecnolgico, por lo que se decidi seleccionar el patrn de su fecha de
nacimiento con el formato MMDD, el cual fue tomado de los datos de su Curp y
considerando la clave Curp como llave.

Implementando sta tcnica para encontrar la direccin relativa, encontramos


los valores que se muestran en la Figura No. 6.9.

Figura 6.9 Direccin relativa seleccionando la fecha de nacimiento.

ANLISIS DE FRECUENCIAS.

El mtodo de anlisis de frecuencias consiste en obtener una gran muestra de


llaves posibles y sus nmero hash correspondientes, se analiza la frecuencia de
repeticin para cada una de las columnas y se van descartando aquellos que
presentan mayor repeticin porque son colisiones al definir la ubicacin fsica del
registro.

Finalmente, se toman las columnas con mayor variacin y tantas como dgitos
se requieren. Se aplica un factor de ajuste para reducir el porcentaje de colisiones.

Pgina : 101
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

DIVISIN POR NMERO PRIMO.

Este mtodo consiste en dividir una llave dada entre un numero primo
seleccionado con anterioridad, y finalmente utilizar el resultado de la operacin como
una direccin relativa.

Lo anterior se implementa con la formula siguiente :

Ubicacin = Llave mod Primo.

Donde : Ubicacin es la direccin relativa resultante de la operacin.


Llave es la clave del registro que se va a convertir.
Mod es una funcin llamada divisin modulo que obtiene un valor
entero.
Primo es el nmero divisor que debe ser un nmero primo con el
fin de minimizar la cantidad de valores repetidos.

Como se menciono anteriormente, el valor del nmero primo debe ser


escogido con anterioridad considerando los dos factores siguientes :

Primero, el rango de valores que resultan de la operacin "llave mod primo",


va desde 0 hasta primo 1. Luego, el valor del divisor determina el tamao
del espacio de direccin relativa. Si se sabe que nuestro archivo va a
contener por lo menos n registros, entonces tendremos que hacer que primo
> n, suponiendo que solamente un registro puede ser almacenado en una
direccin relativa dada.

Segundo, el divisor deber seleccionarse de tal forma que la probabilidad de


colisin sea minimizada. De hecho, ste es un objetivo difcil de alcanzar.
Se trata de seleccionar un divisor que mantenga la probabilidad de colisin
relativamente baja, pero en general no nos vamos a esforzar en minimizar
realmente las colisiones. Mediante investigaciones se ha demostrado que los
divisores que son nmeros pares tienden a comportarse pobremente,
especialmente con los conjuntos de valores de llave que son
predominantemente impares.

Algunas investigaciones sugieren que el divisor debe ser un numero primo,


con lo cual se reduciran los resultados sesgados. Sin embargo, otro trabajo sugiere
que los divisores no primos trabajan tambin como los divisores primos, siempre y
cuando los divisores no primos no contengan nmeros primos pequeos como
factores. Se sugieren seleccionar un nmero que no contenga ningn factor primo
menor de 20, lo que asegura un buen desempeo.

Pgina : 102
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

De esta forma si elegimos usar un nmero primo como divisor y tener un


numero mximo de localidades de 5000, entonces nuestro divisor tendra el valor de
5003 que es el numero primo mayor inmediato a 5000.

La figura No. 6.10 nos muestra como obtener la ubicacin fsica utilizando la
tcnica de divisin por nmero primo, considerando el valor 5003 como nmero
primo.

Figura No. 6.10 Ubicacin fisica de un registro con la divisin por nmero primo.

CAMBIO DE BASE.

Esta tcnica de cambio de base o conversin de base consiste en convertir la


llave a otra base numrica que no sea la decimal con la que se est trabajando, y
tomar despus el resultado del mdulo con la mxima direccin como la direccin
fsica donde se almacenar el registro de datos.

Por ejemplo supongase que se desea generar las direcciones fsicas entre 0 y
99 y se considera que se cambiar la base 10 a base 8, tal como se muestra en la
figura No. 6.11.

Figura No. 6.11 Direcciones fsicas utilizando el cambio de base 10 a base 8.

Pgina : 103
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

MULTIPLICACIN.

L tcnica de la mltiplicacin es muy sencilla y consiste en tomar la llave (que


se supone que est compuesta de una gran cantidad de dgitos y multiplicarla por
algn valor fraccionario que fue previamente analizado en funcin de las posibles
combinaciones y la direccin relativa objetiva.

En funcin a dichas consideraciones, imaginemos que la llave de los registros


tienen generalmente 9 dgitos y se espera que la direccin objetiva sea mximo de 4
dgitos. Tomando dichas consideraciones, se analiza y se llega a la conclusin de
que se debe multiplicar por la fraccin 0.0000072, de la cual se obtiene un nmero
real con enteros y fracciones; de dicho resultado se toma exclusivamente el valor
entero y dicho dato es la direccin relativa calculada tal como se muestra en la
Figura No. 6.12.

Figura 6.12 Clculo de la direccin relativa por medio de multiplicacin.

CUADRADO.

La tcnica por medio del cuadrado consiste en tomar la llave del registro y
elevarla al cuadrado, despus se extraen algunos dgitos especificados de la mitad
del resultado para constituir la direccin relativa.

Si se desea una direccin relativa de N dgitos, entonces los dgitos se


truncan en ambos extremos de la llave que fue elevada al cuadrado, tomando los N
digitos intermedios. Las mismas posiciones de n-digitos deben extraerse para
cada llave.

Pgina : 104
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

La figura No. 6.13 ilustra el uso de la tcnica del cuadrado para llaves que
tienen 9 digitos y que se extraen 4 digitos del centro para tomarlo como ubicacin
fsica del registro.

Figura No. 6.13 Uso del cuadrado para obtener la direccin fsica.

Como se puede observar en la figura No. 6.13, se genera una direccin


relativa y en muchas ocasiones existen colisiones porque al hacer el clculo del
cuadrado y extraer la parte intermedia del resultado del cuadrado, coincide y se
obtiene una direccin relativa que ya est ocupada, lo que implica enviar el registro al
rea de colisiones definida en el esqueleto del archivo.

A modo de conclusin con respecto a las 8 formas de establecer la


correspondencia entre la llave y la direccin fsica, se debe considerar la eleccin de
alguna de ellas que conduzca a una ptima bsqueda de los datos en un archivo.

Para elegir alguna de las ocho formas, se deben de considerar dos puntos que
son muy importantes :

Tiempo.- Cualquiera de las ocho formas de calcular la ubicacin de un registro


de datos, requieren un tiempo de CPU, por lo que en funcin al tamao del
registro, al tipo de datos que contiene el registro y a la cantidad de registros
totales que contendr el esqueleto del archivo directo, se debe hacer un estudio
detallado del tiempo real que requiere cada una de las ocho formas para
establecer la ms ptima para una cierta aplicacin.

Espacio.- Por regla general, no se conoce la cantidad exacta de todos los


registros que contendr un archivo organizado en forma directa, por lo que se
recomienda utilizar una aproximacin lo ms cercano a lo que realmente se va a
utilizar, dejando un 20% adicional para las posibles colisiones.

Frecuencia de las supresiones.- Si hay muchas eliminaciones de registros de


datos de un archivo debe buscarse la tcnica de direccionamiento ms
conveniente considerando que sea la que menos colisiones presente, debido al
alto ndice de movimiento del archivo.

Pgina : 105
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

VI.2.4 Soluciones con Claves no Numricas.

En muchas ocasiones se tiene el problema de que las llaves de acceso son


del tipo cadena, lo que implica hacer una conversin a valores enteros para poder
hacer la transformacin y encontrar la direccin relativa.

Un procedimiento muy conveniente es hacer la conversin siguiendo los pasos


siguientes :

Tomar carcter por carcter de la clave no numrica y obtener su valor


numrico de acuerdo con el cdigo ascii de la forma siguiente :

Clave = JOSE LUIS

Valores del codigo ascii :

BYTES J O S E L U I S

VALOR (Cdigo Ascii) 74 79 83 69 32 76 85 73 83

A continuacin se suman todos los valores individuales del cdigo ascii y se


obtiene un valor entero largo de la forma siguiente :

74 + 79 + 83 + 69 + 32 + 76 + 85 + 73 + 83 = 654

Finalmente, la clave : JOSE LUIS, corresponde con la direccin relativa =


654.

Esta forma de conversin presenta un problema y es quer seguramente no


utilizar todos los caracteres del cdigo ascii. Por ejemplo, imaginemos el caso
habitual en que las cadenas de caracteres representan nombres (de personas, de
lugares, etc.); es evidente que algunos caracteres vlidos del cdigo de la mquina
no aparecern nunca (como por ejemplo : }, , , |, ~, , , , ,, , , %, etc.), por lo
que su codificacin numrica no se usar.

En casos prcticos, esta forma de conversin ser mas o menos laboriosa


segn la distribucin de los caracteres dentro del cdigo usado por la computadora.

En la figura No 6.14 se muestra un ejemplo de claves tipo cadena convertidas


por el procedimiento comentado anteriormente.

Pgina : 106
CORRESPONDENCIA ENTRE LA LLAVE Y LA DIRECCIN FSICA

Figura No. 6.14 Llaves tipo cadenas convertidas a direcciones relativas.

Pgina : 107
CAPITULO 7

Otros mtodos de
organizacin de
archivos y
busquedas de
economas.
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

Capitulo VII. Otros mtodos de organizacin de archivos


y bsquedas de economas.

Otro de los mtodos de administracin de archivos que es posible manejar, es


utilizar la memoria RAM de la computadora como un medio de almacenamiento
rpido, minimizando el tiempo de acceso a casi cualquier registro de datos y por lo
tanto tambin maximizando el tiempo de respuesta en tiempo real.

Al hacer uso de la memoria como almacenamiento de datos, se debe


considerar al administrador de la memoria y que es parte del sistema operativo. Su
labor consiste en llevar un registro de las partes de la memoria que se estn
utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos
cuando stos los necesiten y liberarlo cuando terminen, as como administrar el
intercambio entre la memoria principal y el disco, en los casos en que la memoria
principal no pueda albergar a todos los procesos.

Cabe hacer mencin que la memoria de la computadora es voltil y no debe


considerarse como un medio de almacenamiento de datos real; por lo que deben
implementarse mecanismos para que en ciertos intervalos de tiempo se graben a
disco duro los archivos que se encuentran en memoria y desde luego tambin al
momento de terminar de utilizar la aplicacin.

Los sistemas de administracin de la memoria se pueden clasificar en dos


tipos: los que desplazan los procesos de la memoria principal al disco y viceversa
durante la ejecucin (intercambio y paginacin) y aquellos que no.

VII.1 Memoria Virtual.

La memoria virtual fue diseada por Fotheringhan en el ao de 1961. La idea


de la memoria virtual es que el tamao combinado del programa, los datos y la pila
puede exceder la cantidad de memoria fsica disponible par l. El sistema operativo
mantiene aquellas partes del programa que se utilicen en cada momento en la
memoria principal y el resto permanece en el disco duro.

La memoria virtual se encuentra en el disco duro (rea de swap del disco


duro). En esa zona se encuentran los programas (instrucciones y datos) que se
estn ejecutando y que estn divididos en bloques.

Todas las palabras de un programa (proceso) ubicadas en la memoria virtual


tienen una direccin lgica (direccin virtual) distinta tal como puede mostrarse en la
figura No. 7.1

Pgina : 109
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

Figura No. 7.1 Memoria virtual de una computadora.

Los bloques de la memoria virtual son llevados a la memoria principal cuando


son necesarios para la ejecucin. Una direccin fsica es entonces asignada a cada
direccin lgica y la correspondencia entre direccin fsica y lgica del comienzo del
bloque es guardada en una tabla asociada al proceso de una forma semejante a
como se muestra en la figura No. 7.2.

Figura No. 7.2 Correspondencia entre la direccin fsica y lgica de la memoria.

Pgina : 110
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

La ilusin de la memoria virtual est soportada por el mecanismo de


traduccin de memoria, junto con una gran cantidad de almacenamiento rpido en
disco duro. En cualquier momento el espacio de direcciones virtual, est mapeado
de tal forma que una pequea parte de l, est en memoria real y el resto
almacenado en el disco.

El objeto de las tcnicas de memoria virtual en los sistemas actuales de


computacin es el de hacer que la memoria principal de la maquina aparezca como
mayor de lo que realmente es. Se logra dar esta ilusin dividiendo el contenido de la
memoria en paginas (esta tcnica es llamada paginacin) y almacenando estas en
una memoria auxiliar o de respaldo. Cuando un programa necesita datos que no se
encuentran en la memoria principal, se suspende temporalmente la ejecucin de
aqul mientras se copia la pagina faltante con la mayor rapidez posible. Cuando el
programa ha modificado los datos contenidos en la pagina, sta vuelve
inmediatamente al almacn de respaldo. El sistema operativo intenta satisfacer las
necesidades del programa mediante una juiciosa permutacin de las paginas entre la
memoria principal y la memoria de respaldo (disco duro).

Los sistemas de almacenamiento virtual permiten a los programas referenciar


direcciones que no necesitan corresponder con las direcciones reales disponibles en
el almacenamiento primario. Las direcciones virtuales desarrolladas por los
programas en ejecucin son traducidas dinmicamente (por ejemplo, en el momento
de ejecucin) por el hardware a las direcciones de instrucciones y datos de
almacenamiento principal. Los sistemas de almacenamiento virtual permiten a los
programas hacer referencia a espacios de direcciones mucho mayores que los
espacios de direcciones disponibles en el almacenamiento primario. Permiten al
usuario crear programas independientes (en su mayor parte) de los limites del
almacenamiento primario, y facilitan la operacin de los sistemas de informacin.

Los sistemas de almacenamiento virtual utilizan tcnicas de paginacin de


bloques de datos de tamao fijo que van o vienen entre el almacenamiento primario y
secundario, y la segmentacin, la cual identifica las unidades lgicas de los
programas y datos para facilitar el control de acceso a los datos.

VII.2 Sistema de paginacin.

La paginacin pura en el manejo de memoria consiste en que el sistema


operativo divide dinmicamente los programas o los archivos de datos en unidades
de tamao fijo (generalmente mltiplos de 1 kbyte) los cuales va a manipular de la
memoria RAM a disco y viceversa. Al proceso de intercambiar pginas, segmentos
o programas completos entre memoria RAM y disco se le conoce como `intercambio'
o `swapping'. En la paginacin, se debe cuidar el tamao de las pginas, ya que si
stas son muy pequeas el control por parte del sistema operativo para saber cules

Pgina : 111
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

estn en memoria RAM y cuales en disco, sus direcciones reales, etc; crece y
provoca mucha `sobrecarga' (overhead). Por otro lado, si las pginas son muy
grandes, el overhead disminuye pero entonces puede ocurrir que se desperdicie
memoria en procesos pequeos.

El traspaso de datos entre los distintos niveles de almacenamiento se realiza


eventualmente en paginas de longitud fija, tal y como ocurre en la actualidad en los
sistemas de memoria virtual. El tamao de la pagina es un parmetro del sistema y
no esta determinado por las longitudes de registro elegidas por los programadores.
Al usarse la paginacin, los datos sern lgicamente independientes del tamao de
pagina, pero tendrn que ser fsicamente empaquetados para que encajen en las
paginas.

Los registro de datos empaquetados, pueden quedar almacenados en una o


en otra pgina de la memoria de la computadora e incluso algunas pginas de la
memoria pueden ser compartidas por registros de datos de otros procesos tal como
se muestra en la pgina No. 7.3.

Figura No. 7.3 Pginas de memoria compartidas por uno o ms procesos.

Pgina : 112
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

Uno de los aspectos ms importantes de la paginacin, as como de cualquier


esquema de memoria virtual, es la forma de traducir una direccin virtual a direccin
real. Para comprenderlo mejor, observar la figura No. 7.4 que se muestra a
continuacin.

Figura No. 7.4 Traduccin de pgina virtual a pgina real.

Como se observa en la figura 7.4, una direccin virtual `v' = (b,d) est formada
por un nmero de pgina virtual `b' y un desplazamiento `d'. Por ejemplo, si el
sistema ofrece un espacio de direcciones virtuales de 64 kbytes, con pginas de 4
kbytes y la memoria RAM slo es de 32 kbytes, entonces se tienen 16 pginas
virtuales y 8 reales. La tabla de direcciones virtuales contiene 16 entradas, una por
cada pgina virtual. En cada entrada, o registro de la tabla de direcciones virtuales
se almacenan varios datos: si la pgina est en disco o en memoria, quin es el
dueo de la pgina, si la pgina ha sido modificada o es de lectura nada mas, etc.
Pero el dato que nos interesa ahora es el nmero de pgina real que le corresponde
a la pgina virtual. Obviamente, de las 16 virtuales, slo ocho tendrn un valor de
control que dice que la pgina est cargada en memoria RAM, as como la direccin
real de la pgina, denotada en la figura 7.4 como b' . Por ejemplo, supngase que
para la pgina virtual nmero 14 la tabla dice que, efectivamente est cargada y es la
pgina real 2 (direccin de memoria 8192). Una vez encontrada la pgina real, se le
suma el desplazamiento, que es la direccin que se desea dentro de la pgina
buscada ( b' + d ).

La tabla de direcciones virtuales a veces est ubicada en la misma memoria


RAM, por lo cual se necesita saber en qu direccin comienza y en este caso, existe
un registro con la direccin base denotada por la letra `a' en la figura 7.4.

Cuando se est buscando una pgina cualquiera y sta no est cargada,


surge lo que se llama un `fallo de pgina' (page fault ). Esto es caro para el
manejador de memoria, ya que tiene que realizar una serie de pasos extra para

Pgina : 113
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

poder resolver la direccin deseada y darle su contenido a quien lo solicita. Primero,


se detecta que la pgina no est presente y entonces se busca en la tabla la
direccin de dicha pgina en el disco duro. Una vez localizada en disco se intenta
cargar en alguna pgina libre de la memoria RAM. Si no hay pginas libres se tiene
que escoger alguna para enviarla hacia el disco. Una vez escogida y enviada a
disco, se marca su valor de control en la tabla de direcciones virtuales para indicar
que ya no est en la memoria RAM, mientras que la pgina deseada se carga en
RAM y se marca su valor para indicar que ahora ya est en RAM. Todo este
procedimiento es caro, ya que se sabe que los accesos a disco duro son del orden
de decenas de veces ms lentos que en RAM. En el ejemplo anterior se mencion
que cuando se necesita descargar una pgina de RAM hacia disco se debe de hacer
una eleccin.

Para realizar la eleccin de la pgina deseada, se utilizan varios algoritmos,


los cuales se describen a continuacin :

Algoritmo de reemplazo de pginas optimo.- Mejor algoritmo posible para


reemplazo de pginas pero irrealizable en la prctica.

Al momento de ocurrir una falla de pgina cierto conjunto de pginas se


encuentran en la memoria, otras pginas no se utilizaran sino hasta mucho
despus, cada pgina puede ejecutarse con el nmero de instrucciones
ejecutadas antes de la primera referencia a esa pgina, el algoritmo dice que
se elimine la pgina con la mayor etiqueta; si una pgina no va a utilizase sino
hasta mucho despus que otra la eliminacin de la primera retrasa el fallo de
pgina lo ms posible, el nico problema de este algoritmo es que es
irrealizable. Al momento del fallo de pgina el Sistema Operativo no tiene
forma de saber a qu pgina se hace referencia.

Algoritmo de pgina de uso no muy reciente.- En un fallo de pgina, el


sistema operativo inspecciona todas las pginas y las divide en cuatro
categoras segn los valores actuales de los bits R y M.

Clase 0: No se ha hecho referencia ni ha sido modificada.


Clase 1: No se ha hecho referencia pero ha sido modificada.
Clase 2: Se ha hecho referencia pero no ha sido modificada.
Clase 3: Se ha hecho referencia y ha sido modificada.

El algoritmo de pginas de uso no muy reciente implica una hiptesis que


indica que es mejor eliminar una pgina modificada sin referencias al menos
por lo general un intervalo de reloj. Este algoritmo es fcil de comprender, de
implantacin eficiente y con un rendimiento que, an sin ser el ptimo si es
adecuado en muchos casos.

Pgina : 114
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

Algoritmo de reemplazo " primero en entrar, primero en salir FIFO" .- El


sistema operativo tiene una lista de todas las pginas que se encuentran en
memoria, siendo la primera pgina la ms antigua y la ltima la ms reciente,
en un fallo de pgina, se elimina la primera pgina y se aade la nueva al final
de la lista.

Algoritmo de reemplazo de pginas de la segunda oportunidad.- Una


modificacin simple del FIFO que evita deshacerse de una pgina de uso
frecuente inspecciona el bit R de la pgina ms antigua, busca una pgina
antigua sin referencias durante el anterior intervalo de tiempo.

Algoritmo de reemplazo de pginas del reloj.- Aunque el anterior algoritmo


es razonable un mejor enfoque es mantener las pginas en una lista circular
con la forma de un reloj, una manecilla apunta hacia la ms antigua. Al
ocurrir un fallo de pgina se inspecciona la pgina a la que apunta la manecilla
si su bit R=0 se retira de la memoria, se inserta la nueva pgina en su lugar en
el reloj y la manecilla avanza una posicin, si R=1 la manecilla avanza una
posicin y el bit se limpia, esto continua hasta encontrar una pgina con R=0.

Al ocurrir el fallo de pgina, el sistema operativo debe elegir una pgina para
retirarla de la memoria y usar el espacio para la pgina que se necesita para
desbloquear el sistema y que el hardware pueda seguir trabajando. Si la pgina por
eliminar de la memoria fue modificada, se debe volver a escribir al disco para
mantener la informacin actualizada; de lo contrario, si la pgina no fue modificada
no es necesario rescribir la informacin a disco y la pgina que se carga simplemente
se escribe sobre la pgina que se va a borrar de la memoria. La figura 7.5 muestra
grficamente un intercambio de pginas entre la memoria principal y el disco
(memoria secundaria).

Figura No. 7.5 Eliminacin de la memoria principal una pgina que no est en uso y se
reemplaza por otra pgina que se requiere.

Pgina : 115
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

Otro dato interesante de la paginacin es que ya no se requiere que los


programas estn ubicados en zonas de memoria adyacente, ya que las pginas
pueden estar ubicadas en cualquier lugar de la memoria RAM.

VII.3 Concepto de segmentacin y sistema.

Cuando se usa paginacin, el sistema divide la memoria para poder


administrarla, no para facilitarle la vida al programador. Lo que ocurre es que la
vista lgica que el programador tiene de la memoria no tiene nada que ver con la
vista fsica que el sistema tiene de ella. El sistema ve un slo gran arreglo dividido
en pginas, pero cuando se est programando, uno piensa en trminos de un
conjunto de subrutinas y estructuras de datos, a las cuales nos referimos por su
nombre: la funcin coseno, el stack, la tabla de smbolos, sin importarnos su
ubicacin en memoria, y si acaso una est antes o despus que la otra.

La segmentacin es una forma de administrar la memoria que permite que el


usuario vea la memoria de esa manera, es decir, como una coleccin de
segmentos, cada uno de los cuales tiene un nombre y un tamao (que, adems,
puede variar dinmicamente).

La segmentacin se aprovecha del hecho de que los programas se dividen en


partes lgicas, como son las partes de datos, de cdigo y de pila (stack). La
segmentacin asigna particiones de memoria a cada segmento de un programa y
busca como objetivos el hacer fcil el compartir segmentos (por ejemplo libreras
compartidas) y el intercambio entre memoria y los medios de almacenamiento
secundario.

Esta forma de organizacin de la memoria para el manejo de archivos, tiene


ciertas ventajas para el programador frente a un espacio de direcciones no
segmentado. Dichas ventajas se enumeran a continuacin :

Simplifica la gestin de las estructuras corrientes de datos. Si el programador


no conoce a priori el tamao que puede llegar a tener una estructura de datos
particular, no es necesario que lo presuponga. A la estructura de datos se le
asigna su propio segmento y el Sistema Operativo lo expandir o reducir
segn sea necesario.

Permite modificar los programas y recompilarlos independientemente, sin que


sea necesario volver a enlazar y cargar el conjunto entero de programas.
Nuevamente, esto se logra utilizando varios segmentos.

Pgina : 116
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

Permite que varios procesos compartan segmentos. Un programador puede


situar un programa correspondiente a una utilidad o una tabla de datos de
inters en un segmento que puede ser direccionado por otros procesos.

Se facilita la proteccin. Puesto que un segmento se construye para contener


un conjunto de programas o datos bien definido, el programador o el
administrador del sistema puede asignar privilegios de acceso en forma
adecuada.

Las ventajas anteriormente descritas, no se tienen con la paginacin, que es


invisible para el programador. Por otra parte se ha visto que la paginacin
proporciona una forma eficiente de gestionar la memoria. Para combinar las
ventajas de ambas, algunos sistemas estn equipados con el HW y el SW del
Sistema Operativo que permite las dos.

En teora, cada programa debe tener un nmero muy grande de segmentos


(por Ej. 232), de los cuales cada uno conste, a su vez, de un nmero grande de bytes
(por Ej., 232 tambin). Los primeros segmentos de 64 Kbyte podran reservarse para
procedimientos, datos, pilas y grupos que pertenezcan al programa en ejecucin.
Los segmentos restantes podrn contener cada uno un archivo por segmento, de
modo que los procesos pudieran direccionar en forma directa todos sus archivos, sin
tener que abrirlos y utilizar primitivas especiales de E/S para leerlos y escribirlos.
Cada archivo podra crecer y contraerse en forma completamente independiente de
los dems.

La memoria administrada mediante segmentos, estar dividida en cuatro


partes tal como se muestran en al figura No. 7.6.

Figura No. 7.6 Segmentos que puede tener la memoria.

La idea de memoria segmentada ha sobrevivido hasta la fecha. En una forma


muy moderada en muchas microcomputadoras basada los procesadores 68000 de
motorola y en los Pentium de Intel. Una implementacin comn proporciona soporte
de hardware hasta para 16 procesos, cada uno con 1.024 pginas de 2 K o 4 K.
Tomaremos para nuestro ejemplo, las pginas de 4 K. Cada proceso tiene un
espacio de direccin virtual de 4 Mega bites (1024 pginas de 4 Kbyte / pgina =
4096 Kbyte = 4 Megabytes).

Pgina : 117
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

Este esquema se implementa de la siguiente manera: el HW de la MMU


contiene una tabla con 16 secciones, una para cada uno de los 16 procesos. Cada
seccin consta de 64 descriptores de segmentos (de modo que el espacio de
direccin de cada proceso de 4 Megabytes se divide hasta en 64 segmentos, donde
cada uno contiene 16 pginas.

Cada uno de los descriptores del segmento contiene la longitud del segmento
(de 0 a 16 pginas), bits de proteccin que indican si el segmento se puede leer o
escribir y un apuntador a la tabla de pginas. Cuando el Sistema Operativo da inicio
a un proceso carga el nmero de proceso de 4 bits y los 6 bits de alto orden (posic.
Ms significativas) de la direccin virtual de 22 bits y los combina en un nmero de
10 bits que se usa como ndice en la tabla de segmentos y para localizar el descriptor
del segmento relevante. Luego verifica los bits de proteccin en el descriptor. Si el
acceso est permitido la MMU verifica el nmero de pgina que se extrajo de la
direccin virtual respecto al campo de longitud del segmento para ver si el segmento
es suficientemente grande. Si lo es el nmero de pgina se utiliza como ndice en
la tabla de pginas, cuya direccin se proporciona en el descriptor del segmento.
Una vez que se halla el nmero del frame, ste se combina con el desplazamiento
para acceder a la memoria fsica.

Una caracterstica importante de este diseo es que cuando el Sistema


Operativo debe realizar un cambio de proceso, todo lo que tiene que hacer es
cambiar el registro del Nmero de proceso de 4 bits. tiene que volver a cargar todas
las tablas de segmentos o pginas.

Dos o ms procesos pueden compartir un segmento sin ms que hacer que


sus descriptores de segmentos apunten a la misma tabla de pginas. Cualquier
variacin hecha a las pginas de este segmento por algn proceso se hace
automticamente visible para los otros.

La tabla de segmentos del procesador.

Para traducir las direcciones virtuales a direcciones reales, el procesador


posee una tabla de segmentos con 4 filas. Cada una de estas filas describe uno de
los 4 segmentos del programa en ejecucin. Para cada segmento se indica:

Base: Direccin virtual en donde comienza (incluyendo esta direccin).


Lmite: Direccin virtual en donde finaliza (excluyendo esta direccin).
Desplazamiento: Desplazamiento que hay que sumar a una direccin virtual
para obtener su direccin real. Se calcula como la direccin de comienzo del
segmento en la memoria real menos la direccin virtual de inicio del
segmento.

Pgina : 118
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

Atributos del segmento: lectura/escritura, solo lectura e invisible (accesible


solo por el ncleo).

Problemas de la segmentacin

A pesar de que un sistema segmentado aporta soluciones y optimizaciones,


persisten algunos problemas que solo se resuelven con paginacin. Estos
problemas son:

La implementacin de fork es ineficiente, pues copia completamente los


segmentos. Con paginacin, frecuentemente no es necesario copiar
completamente datos y pila.

La compactacin introduce una pausa generalizada del sistema que es difcil


distinguir de una cada del sistema. Con paginacin no es necesario efectuar
compactacin.

El tamao de un proceso no puede exceder el tamao de la memoria real,


puesto que un proceso necesita estar completamente residente para poder
correr. Con paginacin en demanda, un proceso no necesita estar
completamente residente en memoria para poder correr.

Ventajas:

Al usuario se le simplifica el manejo de estructuras de datos de tamao


dinmico.
Se facilita el que los procesos compartan memoria.
Los segmentos pueden estar protegidos segn la semntica de su contenido.
Por ejemplo, un segmento que contiene cdigo, puede especificarse como
slo para ejecucin (y nadie puede copiarlo ni sobrescribirlo); un arreglo
puede especificarse como read/write but not execute. Esto facilita
enormemente la deteccin de errores en el cdigo.
Libreras compartidas de enlace dinmico (DLLs).

Sistemas de Archivos

La mayora de aplicaciones necesitan almacenar y recuperar informacin. Un


proceso puede almacenar una cantidad limitada de esta en su propio espacio de
direcciones, sin embargo este es de un tamao muy limitado. Adems cuando el

Pgina : 119
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

proceso termina, la informacin se pierde. Por otro lado en algunas ocasiones se


hace necesario que varios procesos accesen la misma informacin simultneamente.
La solucin a estos tres problemas est en el almacenamiento de la informacin
en medios externos, en unidades denominadas archivos.

La informacin almacenada en los archivos debe ser persistente, es decir,


no debe depender de la creacin y terminacin de un proceso. Un archivo, en
teora, solo debe desaparecer por su eliminacin explcita.

Los archivos son administrados por el sistema operativo. Su estructura,


nombre, forma de acceso, uso, proteccin e implantacin son responsabilidad de l.
La parte del sistema operativo que se encarga de esta labor se conoce con el
nombre de sistema de archivos o File System.

VII.4 Archivos Vsam (virtual storage access method).

Un archivo secuencial indizado, normalmente es un archivo ordenado por la


clave con un ndice no denso ordenado, donde el archivo y el ndice estn
organizados bajo la forma de un rbol_B. Esta estructura surge como una mejora a
un mtodo de acceso a archivos llamado ISAM (Indexed Sequential Access Method),
siendo un producto de la IBM. As, el VSAM hace que el almacenamiento de los
archivos sea ms independiente de las unidades de almacenamiento.

El archivo se divide en reas que son un conjunto de pistas de un cilindro o de


cilindros contiguos. Cada rea se divide en intervalos, los cuales se componen de
una parte de una pista o de varias pistas consecutivas accedidas en una E/S. Hay
fisionamiento de intervalos y reas para producir el crecimiento del archivo, por lo
que no hay reas de desborde pues las polticas de fisin las absorben.

El mtodo de acceso de almacenamiento virtual, utiliza una Zona de datos


que es la que contiene todos los registros de un archivo de datos. Dicha zona de
datos est dividida en intervalos y reas. Los registros son almacenados por orden
ascendente de la clave principal o llave. Las actualizaciones son previstas dejando
intervalos vacos por reas y registros vacos por intervalos.

Si se tiene, por ejemplo, un archivo cuyos registros tienen claves numricas


con una secuencia inicial de carga como: 0, 1, 3, 5, 6, 7, 10, 12, 14, 15, 18, 20, 25,
30, 38, 40 y 50, almacenados bajo el mtodo VSAM en dos reas que contienen
cuatro intervalos cada una, con capacidad para cuatro registros por intervalo, el
estado del archivo al final de la carga inicial es el mostrado en la figura No. 7.7.

Pgina : 120
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

Figura No. 7.7 Archivo VSAM luego de la carga inicial.

La insercin de un nuevo registro con clave 26 se realiza buscando en el


ndice de reas, el rea adecuada para dicho registro, as el 26 no es menor que 14
pero si es menor que el valor ms grande (HV) por debajo del cual estar una clave.
Por ello, el rea adecuada es el rea 1. Luego se busca dentro de la zona de ndice
de esa rea el intervalo adecuado, como 26 no es menor que 20 pero si menor que
38, se identifica el intervalo adecuado que deber contener el registro y luego se
decide cul es el caso de insercin.

CASOS DE INSERCIN :

Primero: insercin sobre un intervalo no lleno.

Como el registro de datos de clave 26 va en el segundo intervalo, este ltimo


es ledo y el registro es insertado dentro de l siguiendo el orden creciente de sus
claves. El nuevo estado del archivo una vez que el registro de clave 26 ha sido
insertado, se muestra en la figura No. 7.8.

Figura No. 7.8 Archivo VSAM luego de una insercin en un intervalo no lleno.

Pgina : 121
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

Segundo: insercin sobre un intervalo lleno.

Como el intervalo est lleno y la insercin debe hacerse all, se dice que dicho
intervalo desbord por lo cual debe ser dividido en dos intervalos semi-llenos. Esta
fisin puede presentar dos casos suplementarios, ellos son:

1. Existe un intervalo vaco en el rea hacia el cual se dirigirn los registros en


desborde:

Este caso se muestra en la Figura No. 7.9, con la insercin del registro con
clave 29. Siguiendo los mismos pasos que en el primer caso, el intervalo
donde este registro debe ser insertado es el mismo intervalo anterior.

Figura No 7.9 Insercin en intervalo lleno con intervalo vaco en el rea.

2. No existe un intervalo vaco en el rea :

Al no haber un intervalo libre en el rea, el intervalo que desborde tendr que ser
dividido y dicha fisin har que el rea desborde a su vez, tenindose que fisionar
el rea tambin. La fisin de un rea se realiza de igual manera que la de los
intervalos. La insercin de los registros de claves 27 y 28 consecutivamente
hacen que el rea 1 desborde, crendose una nueva rea que es la nmero 2 y
se puede apreciar en la figura No. 7.10.

Figura No. 7.10 Insercin con fisin de intervalo y de rea.

Pgina : 122
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

El mtodo de acceso de almacenamiento virtual, utiliza adems una Zona de


ndice, de la cual pueden existir dos o ms niveles de ndices. El primer nivel se
llama ndice de intervalos y hay uno por cada rea. Cada entrada contiene la clave
mayor del intervalo y su direccin. El segundo nivel es el ndice de reas y hay
uno por archivo. Cada entrada de ste contiene la clave mayor del rea y su
direccin. En caso que el ndice de rea sea muy grande y desborde se tiene un
tercer nivel denominado ndice maestro.

La principal cualidad de VSAM es su transportabilidad, el inconveniente es la


cantidad de accesos a disco que se requieren para obtener el dato deseado.

Segn la cantidad de memoria disponible se diseara la cantidad de memoria


de los bloques. A mayor cantidad de memoria, mayor tamao de bloques y en
consecuencia menor cantidad de niveles y por lo tanto menos accesos a disco.

Ventajas:

El archivo est siempre ordenado y agrupado segn la clave


El tiempo de acceso en lectura es siempre pequesimo.

Desventajas:

El tiempo de acceso en escritura puede ser grande si hay fisin de intervalo y


de rea.

VII.5 Compactacin de datos.

La compresin no es ms que una tcnica que consiste en aplicar un


algoritmo, es decir, una serie de transformaciones que reducen el tamao inicial de
un conjunto de datos informticos, ya sean textos, archivos, grficos, video o
audio. La compresin de datos parte de una mxima: "el espacio es dinero", y trata
de realizarla de la mejor manera posible. Puesto que cualquier informacin
procesada por una computadora ocupa un determinado espacio a la hora de
almacenarla, hay que encontrar la manera de reducir ese espacio, sin perder
informacin. Esta es la base sobre la que se asientan todos los sistemas de
compresin de datos.

Los avances experimentados nos permiten disponer de una computadora con


el doble de memoria que la memoria fsica; el doble de espacio en el disco duro;
diversos formatos que reducen el tamao de un archivo grfico o sonoro a la dcima
parte de su tamao real; mdems funcionando al doble o al triple de su capacidad,

Pgina : 123
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

as como secuencias de vdeo reproducidas con una calidad muy superior a la


ofrecida por una tarjeta grfica que no utilice ningn sistema de compresin.

Los logros obtenidos por la compresin de datos son espectaculares. Sin la


existencia de compresores, es posible que el hardware de las computadoras hubiese
evolucionado de forma muy distinta. Los disquetes, tal como hoy los conocemos,
habran dejado de existir hace muchos aos, pues no son capaces de almacenar
archivos de ms de 2.8 Megabytes.

La compresin de datos es un tema complejo, pero a la vez apasionante,


pues no en vano abarca prcticamente todos los campos en los que se produce una
manipulacin de datos.

La pregunta clave de todo esto es: cmo funcionan los compresores de


archivos?. La teora es muy sencilla. La idea consiste en partir de un determinado
conjunto de archivos con un determinado tamao, y conseguir almacenarlos en un
espacio mucho menor, sin perder informacin. Todos los compresores se
aprovechan de la repeticin de los datos dentro de un archivo, puesto que todos los
archivos se traducen en combinaciones de bits, segn el cdigo ASCII, de tal forma
que podemos apreciar que en la prctica existen secuencias de bytes repetidas, que
pueden almacenarse de forma ms corta. Por ejemplo, si un archivo contiene 300
bytes con el nmero 46, el cual corresponde al color de una determinada porcin de
un dibujo, estos 200 bytes pueden reducirse a 2 bytes, que contendrn el nmero 46
y el 200, para indicar que el primero est repetido 200 veces. Este mtodo tambin
se aplica a conjuntos de datos repetidos que no estn seguidos, de manera que,
dependiendo del sistema que se utilice para controlar los bloques repetidos, se
obtienen los distintos algoritmos para la compresin de archivos.

Los Mtodos de compactacin de datos entran en dos categoras:

1.- La primera es la de los mtodos dependientes de la estructura de registros o


del contenido de los datos, por lo general deben ser escritos para cada
aplicacin en especial.

2.- La segunda es la de los mtodos de uso ms general, por los que se les puede
incluir en paquetes de software de uso general, en el hardware o en
microprogramas. Muchas firmas especializadas ofrecen
comercialmente paquetes de software para reducir el tamao de los
archivos.

Los mtodos de compresin ms utilizados son los siguientes:

1.- Eliminacin de los tems de datos redundantes.- Es uno de los ms


importantes para reducir el espacio de almacenamiento de una base

Pgina : 124
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

de datos es el que se basa en la eliminacin de la redundancia


inherencia al almacenamiento mltiple de tems de datos idnticos
en distintos archivos. Es ste uno de los objetivos principales de los
sistemas de administracin de bases de datos.

2.- Conversin de la notacin humana en notacin compacta.- Cuando se


almacenan datos en la forma que los humanos prefieren para
leerlos, ellos contienen a menudo ms caracteres que los
necesarios. Las fechas, por ejemplo, pueden escribirse como 12
Nov 1976, o de las manera ms compacta 12.11.76, de modo que
ellas se almacenan a menudo con seis bytes en los archivos (hasta
antes del Ao 2000, ya que actualmente se utilizan cuatro bytes
para almacenar la fecha, en lugar de dos como se hacia
anteriormente). Este tipo de compactacin es tambin aplicable a
muchos otros tems, por ejemplo, los nmeros de pieza y las
direcciones postales.

3.- Supresin de caracteres repetidos.- Los campos numricos de algunos


archivos contienen a menudo muchos ceros a la izquierda o a la
derecha. Cuando hay ms de dos ceros, la codificacin requiere en
rigor solo dos caracteres (decimales compactados): uno para indicar
la repeticin y el otro para indicar las veces que se repite el cero. En
algunos archivos se encuentran espacios en blanco u otros
caracteres repetitivos, los que pueden codificarse de manera similar.

4. Evitar los espacios vacos en el archivo.- En algunos archivos, los registros y


los tems de datos son de longitud muy variable. Son muy variables,
por ejemplo, los tems de datos que representan la direccin postal
de un individuo o los que representan comentarios. La organizacin
de un archivo para tems variables es ms compleja que la de un
archivo para tems de longitud fija.

5. Sustitucin de los tems de datos de uso habitual.- Cuando existe solo un


conjunto limitado de valores de atributo, no es necesario escribir el
tem de forma completa. Con ciertos tipos de tems de datos, por
ejemplo, clase de licencia, se utilizara normalmente un cdigo; los
nombres en cambio, se deletrean de forma completa a menudo.

6. Sustitucin de texto idiomtico.- Es frecuente el almacenamiento de textos


escritos en los archivos de la computadora. Cuando el texto escrito
constituye una porcin considerable de un archivo, es una buena
idea la de sustituir palabras y aun frases completas con caracteres
de cdigo. Supongamos que un archivo almacena bytes de 8 bits.
Cada byte permite combinaciones suficientes para representar ms
o menos 200 palabras de uso comn. Supongamos, adems, que

Pgina : 125
OTROS MTODOS DE ORGANIZACIN DE ARCHIVOS Y BUSQUEDAS DE ECONOMAS

se reservan 32 de las 256 posibles combinaciones para indicar que


ese carcter solo no da por si mismo la palabra completa sino que
hay que leer el siguiente carcter. Se tiene as la posibilidad de
codificar 32*256 = 8192 palabras adicionales. Otra combinacin de
bits en el primer carcter podra indicar que la palabra est
deletreada segn el cdigo EBCDIC o el cdigo ASCII. La maquina
que recibe esta sucesin de datos la convertir en texto escrito
mediante una operacin de lectura de tabla.

Pgina : 126
CAPITULO 8

Acceso Multi-
llaves
ACCESO MULTI-LLAVES

Capitulo VIII. Acceso Multi-llaves.

Muchas aplicaciones que existen en las reas administrativas de nuestra vida


cotidiana, exigen que los registros de datos tengan ms de una llave de bsqueda, lo
que viene a complicar la forma de organizacin de los archivos. Para cierto tipo de
consultas es ventajoso el uso de mltiples ndices. Los registros de clave mltiple
aparecen, en algunos sistemas de operaciones, pero se los encuentra ms
comnmente en los sistemas de informacin, en los que han de admitirse muchos
tipos de averiguaciones sobre diferentes aspectos de la informacin contenida en los
archivos.

En los ltimos aos ha existido mucho inters en los sistemas de archivos que
guardan mltiples tipos de datos tales como multimedia, imgenes, sonido y vdeo.
En dichas aplicaciones es muy conveniente implementar un sistema de archivos que
pueda manejar mltiples llaves de acceso.

Cuando el nmero de objetos multimedia es relativamente reducido, las


prestaciones proporcionadas por los sistemas de archivos con mltiples llaves, no
suelen ser importantes.

La funcionalidad de los archivos que se accesan utilizando varias llaves, se


vuelve ms importante cuando el nmero de objetos multimedia guardado es grande.
Los aspectos como las actualizaciones de las transacciones, las posibilidades de
consulta y la creacin de ndices se vuelve un punto importantsimo al establecer los
sistemas de archivos.

Las consultas intentan encontrar los registros de datos, especificando, por


ejemplo, conjuntos de palabras clave. La consulta que el usuario tiene en mente no
suele poderse formular con precisin; por tanto, los sistemas de recuperacin de
registros intentan dar las respuestas imaginando todas las posibles forma de
bsqueda que se le puedan ocurrir al usuario.

Existen dos mtodos para proporcionar trayectorias de acceso adicional hacia


los archivos de registros de datos. Dichos mtodos son :

La organizacin multilista.
La inversin.

Muchos compiladores de los lenguajes de programacin no proporcionan


capacidades preconstruidas para manejar archivos organizados en forma de
multillave. Ms bien, una agrupacin de procesamiento de datos normalmente
adquiere un paquete de manejo de datos que manipula a los archivos multillave, o
bien su propio sistema de manejo de datos. Entonces, los compiladores del

Pgina : 128
ACCESO MULTI-LLAVES

lenguaje pueden establecer una interfase directa con este manejo de archivos, o
pueden generar llamadas a estas rutinas de manejo.

Un ejemplo donde se requiere manejar un archivo organizado en forma de


multillave, es en los sistemas bancarios, en el que hay varios usuarios de la misma
informacin : Cajeros, jefes de crdito, administradores de sucursal, gerentes, cuenta
habientes, y muchos ms. Todos ellos tienen la necesidad de accesar los mismos
datos, para ste caso se utiliza un registro que es mostrado en la Figura No. 8.1.

Clave de Nombre Cdigo de grupo Num. De Balance Lmite de


Cliente Apell. Pat. Apell. Mat Nombre Sucursal Tipo Socio Crdito

Figura No. 8.1 Ejemplo de un registro de una sucursal bancaria.

De los usuarios mencionados en el prrafo anterior, todos ellos tienen la


necesidad de accesar la informacin de diferente manera. El cajero podra
identificar un registro de cuenta por el valor de su Clave de Cliente. Un Jefe de
crdito podra necesitar accesar todos los registros de cuenta con un valor dado para
el Lmite de crdito, o todos los registros con base en el valor de Num. De socio.
Un administrador de sucursal podra accesar los registros mediante los cdigos de
Grupo Sucursal y Tipo. Un gerente podra necesitar reportes peridicos de todos
totales de cuentas, ordenados por Clave de Cliente.

Debido a todo lo anterior, muchas de las aplicaciones que se utilizan en la


industria y en las dependencias requieren el uso de los archivos organizados en
forma de multillave.

VIII.1 Organizacin multilista.

Otro enfoque bsico para suministrar la conexin entre un ndice y el archivo


de registros de datos, se llama organizacin multilista.

El enfoque de multilista para instrumentar acceso multillave ha sido la base


para estructuras fsicas en muchos sistemas de administracin de base de datos
jerrquicos y de redes disponibles comercialmente incluyendo la familia de sistemas
CODASYL, TOTAL de Cincom, y el IMS de la IBM.

Los archivos multilista mantienen un ndice para cada llave secundaria.


Existe una entrada en el ndice de llave secundaria para cada valor que, la llave

Pgina : 129
ACCESO MULTI-LLAVES

secundaria, tiene en este momento en el archivo de datos. La organizacin de


archivos multilista difiere de la inversin en que, mientras que la entrada en el ndice
de inversin para un valor de llave tiene un apuntador a cada registro de datos con
ese valor de llave, la entrada en el ndice de multilista para un valor de llave tiene
slo un apuntador al primer registro de datos con ese valor de llave. Este registro de
datos contiene un apuntador al siguiente registro de datos con ese valor de llave, y
as sucesivamente. Posteriormente hay una lista ligada de registros de datos para
cada valor de la llave secundaria. Los encadenamientos en Multilistas normalmente
son bidireccionales y ocasionalmente son circulares, para mejorar la eficiencia de
actualizacin.

Esta forma de organizacin de un archivo, permite accesar la informacin de


manera ordenada a travs de campos llaves. Las multilistas permiten llegar a un
registro por diferentes caminos. El camino lo determina el campo clave sobre el cual
se hace la bsqueda.

Supngase que se tiene un archivo en el cual cada registro almacena la


siguiente informacin :

Nombre Profesin Categora

En un archivo organizado en forma de multilista, se tienen almacenados seis


registros que contienen los datos definidos en la tabla No. 8.1.

Nombre Profesin Categora


Alejo Matemtico 1
Andrs Fsico 2
Miguel Matemtico 2
Toms Ingeniero 3
Daro Ingeniero 1
Esperanza Abogado 2
Tabla 8.1 Datos para crear un archivo multilista.

Una vez creando la estructura del archivo organizado en forma de multilista,


se crean dos reas de ndices : La lista del ndice profesin y la lista del ndice por la
categora. Dicha estructura se puede apreciar en la figura No. 8.2.

Una caracterstica interesante de los archivos organizados en forma de


multilista, es que las entradas del ndice pueden ser de longitud fija. Cada Valor
est asociado a un solo apuntador.

Pgina : 130
ACCESO MULTI-LLAVES

Figura No. 8.2 Organizacin multilista por profesin y categora

En el caso de la Figura No. 8.2, la informacin de cada persona puede


accesarse por medio de su profesin y por medio de su categora, que son los
atributos que permiten realizar bsqueda directa en el archivo. Como puede
observarse en la Figura No. 8.2, se tiene una lista por profesin y una por categora.

La organizacin de archivos multilista como puede apreciarse, implementa


unas listas ligadas entre los campos llave que se hayan definido y encadenando a
todos los registros con un cierto valor. Todos los registros estn ligados entre s por
medio de apuntadores que hacen virtualmente varias listas ligadas en un solo
archivo.

Como se mostr en la Tabla No. 8.1, los registros estn almacenados en


forma aleatoria y dispersos en una unidad de almacenamiento; ya que el sistema de
archivos almacena registros en cualquier espacio libre, su secuencia lgica se
mantiene por medio de apuntadores. Esto contrasta con lo que sucede en archivos
organizados en forma secuencial, en el cual la secuencia lineal lgica coincide con la
contigidad fsica de los registros. Cada registro en una estructura de listas ligadas
incluye un campo sealador dirigido al siguiente registro en la lista ligada y el
apuntador consiste en una direccin relativa, un valor principal o una direccin fsica
real.

La lista ligada es una estructura prctica para el mantenimiento de la


secuencia lgica de un archivo en el que se efectan frecuentes operaciones de
actualizacin. La insercin y la eliminacin se llevan a cabo sin tener que
reorganizar nuevamente el archivo de datos.

Pgina : 131
ACCESO MULTI-LLAVES

VIII.2 Lista Invertida.

Un mtodo fundamental para proporcionar el encadenamiento entre un ndice


y los registros del archivo es llamado inversin. Un ndice de inversin de llaves
contiene todos los valores que la llave tiene presente en los registros del archivo.
Cada uno de los valores de la llave en el ndice de inversin apunta a todos los
registros que tienen el valor correspondiente. El archivo de datos se dice que est
invertido sobre esa llave.

La inversin como enfoque para proporcionar acceso multillave ha sido


utilizado como base para las estructuras fsicas de bases de datos en sistemas
comerciales disponibles para la administracin de bases de datos, incluyendo varios
sistemas relacionales (el DB2 de IBM el Ingres Relational Technology y Oracle),
sistema 2000 de Intel y el Adabas de Software AG. Estos sistemas fueron diseados
para proporcionar un rpido acceso a los registros, va tantas llaves de inversin
como el diseador quiere identificar. Estn orientados al usuario con lenguajes de
consulta de tipo natural para asistir al usuario en la formulacin de consultas.

Si un campo de llave se usa para determinar la estructura de almacenamiento


de los datos del archivo, ste es llamado llave primaria o principal del archivo.
Todas las dems llaves de acceso son llamadas llaves secundarias.

Desde el punto de vista comn, el uso del trmino inversin implica que los
valores de los datos indexados han sido sacados del registro de datos y residen
solamente en el correspondiente ndice de inversin.

En los archivos de listas mltiples con listas de longitud controlada, sta puede
ir desde un eslabn por lista hasta una longitud suficiente para incluir todos los tems.
En el primer caso hablamos de una lista invertida, en sta hay una entrada de ndice
de cada clave, para cada registro.

De esta manera, se requiere un nico acceso a los datos para cada registro
que es la respuesta a una consulta. Suponiendo que es posible examinar
rpidamente los ndices secundarios, la organizacin de lista invertida da la
respuesta ms rpida a las consultas en tiempo real, porque no hay lista que seguir.
En cambio, los ndices pueden resultar tan extensos (habr que almacenarlos en
dispositivos secundarios) que su propia organizacin llega a constituir un problema.

En las listas invertidas, se indizan todos los valores de atributo de la clave


secundaria, de modo que no hay cadenas.
Debe observarse que el archivo de listas invertida no es sino un caso
particular de los archivos de listas mltiples, es decir, se trata de listas mltiples
cuando k=1, en el ndice se incluyen todos los registros o valores de la clave.

Pgina : 132
ACCESO MULTI-LLAVES

Se emplean en los sistemas de gestin de bases de datos (SGBD)


Documentales llamados SRI (Sistemas de Recuperacin de Informacin). Los
archivos de datos equivalen a una funcin del estilo:

Archivo (# registro ) (atributo : valor) , (atributo : valor) ...

El archivo de ndice representa la funcin inversa (de ah el nombre de


archivos invertidos).

Archivo ( atributo : valor ) # reg. # reg ...

En la Figura No. 8.3 se observa un archivo donde se almacenaron 6 registros


en el rea de datos en forma desordenada con respecto a las llaves clave e ndice.
Se crearon dos ndices, uno por clave y el otro por telfono. Los dos ndices se
encuentran totalmente ordenados por lo que la bsqueda en ellos puede
implementarse como binaria para encontrar rpidamente el registro completo en el
rea de datos.

Figura No. 8.3 Organizacin de datos de lista invertida (dos ndices).

Al momento de realizar una bsqueda en el archivo organizado como lista


invertida, se puede implementar por dos campos : Proporcionando la clave, o bien el
nmero telefnico de la persona.

Pgina : 133
ACCESO MULTI-LLAVES

Si la bsqueda se realiza por clave, se accesa en primer trmino el rea de


ndices. Se ejecuta un procedimiento de bsqueda en el que se implement
previamente la bsqueda binaria debido a que estn ordenadas todas las claves;
Una vez que se encontr la clave buscada, se toma el apuntador. Una vez que se
tiene el apuntador, se hace uso el rea de datos y se coloca el puntero de lectura-
escritura en el registro que indica el apuntador. En ese preciso momento se tiene
acceso completo al registro que se estaba buscando.

Por el otro lado, si la bsqueda se realiza por nmero telefnico, se accesa


el rea de ndices y se ejecutan exactamente todos los pasos descritos
anteriormente hasta llegar al registro que se est buscando.

VIII.3 Multilista restringida y estructurada.

Una variante de la organizacin multilista bsica es la multilista restringida y


estructurada que consiste en un archivo multilista de longitud controlada en la cual
una longitud mxima es impuesta a las listas ligadas de los registros de datos.
Si el valor de la llave secundaria lo poseen ms registros de datos de lo que permite
la longitud, entonces el valor de la llave aparecer ms de una vez en el ndice y
podr haber ms de una lista ligada de registros de datos con ese valor.

Por cada campo llave, puede haber una o varias listas ligadas dependiendo la
restriccin que se le haya impuesto a cada una de las listas ligadas de los ndices.

Suponga usted que se tiene un registro de datos con la estructura siguiente :

Grupo Nombre Categora

En el rea de datos se almacenarn los cinco registros que se muestran en la


Tabla No. 8.2.

Tabla No. 8.2 Registros que se almacenan en una multilista restringida.


Una vez creando la estructura del archivo organizado en forma de multilista
restringida, se crean dos reas de ndices : La lista del ndice grupo y la lista del
ndice por la categora. Dicha estructura se puede apreciar en la figura No. 8.4.

Pgina : 134
ACCESO MULTI-LLAVES

Figura No. 8.4 Organizacin multilista restringida por grupo y categora

En la figura No. 8.4, se restringi la cantidad de elementos a 3 de la lista


ligada de grupo, de tal forma que existen dos listas ligadas de la llave grupo.

Al momento de realizar una bsqueda por la llave grupo, se verifica la cantidad


de listas ligadas del grupo del que se hace la bsqueda y si existen varios grupos de
la misma llave, todos esos grupos sern considerados para realizar la bsqueda de o
de los registros la cual se realizar en forma secuencial en los ndices.

La organizacin de archivos multilista restringida no es muy eficiente, debido a


que en ocasiones existen varias listas ligadas y las bsquedas utilizan mucho tiempo
del procesador, por lo que las respuestas en tiempo real son un poco lentas.

VIII.4 Particionada celular.

Por regla general, al manipular archivos multillaves se est buscando reducir


el tiempo de bsqueda en las listas ligadas, sobre todo cuando hay una gran
cantidad de elementos en el archivo, lo que se hace es dividir en segmentos, dando
lugar a las multilistas celulares o particionada celular.

De sta forma, cada uno de estos segmentos no se extiende fuera de una


frontera fsica determinada, como puede ser un cilindro, e incluso, si es posible, una
pista, as, cada segmento se halla prcticamente al alcance inmediato del dispositivo
de acceso cuando se recorra la lista ligada.

Pgina : 135
ACCESO MULTI-LLAVES

En la figura No. 8.5 se muestra un esquema donde el archivo est organizado


en forma de multilista celular o particionada celular. Se supone que se almacenan 6
registros por sector y existen dos listas ligadas una por articulo (Mueca en el
ejemplo) y otra por color del producto (negro en el ejemplo), y las dos listas
encadenan a los registros en cierto sector y en cierta pista.

Figura No. 8.5 Estructura de un archivo organizado en forma particionada celular.

Imaginemos que en el archivo de la Figura No. 8.5, se desea obtener un


listado de un pedido de muecas Negras, se examinara lo siguiente :

Pgina : 136
ACCESO MULTI-LLAVES

1. Los ndices para ver qu zonas del hardware contienen el atributo Negro y el
atributo mueca. Si observamos la Figura No. 8.5 nos damos cuenta
que la zona 4 no contiene el atributo mueca, y las zonas 1,3,5 no tienen
el atributo negro. Por lo tanto, solo hay que explorar la zona 2, pero slo
tiene dos registros con el atributo negro.

2. Por lo tanto solo se examinar los registros que contienen el atributo negro para
ver si hay muecas negras.

La relacin entre un archivo organizado en lista invertida y un archivo


organizado en forma de multilista; es una multilista celular o particionada celular.

Para el caso de que cada sublista contenga un nico registro, el ndice de la


multilista celular es semejante al ndice del archivo inverso, con la diferencia de que
este ltimo no requiere la presencia del campo contador.

En las consultas sobre claves mltiples se puede accesar directamente a la


zona fsica con los registros deseados por medio del ndice llave.

En los dos componentes de la organizacin multilista y lista invertida, se


puntualiz como las longitudes de las listas se limitaban de manera que no se
extendiesen ms all de ciertas fronteras o zonas del hardware. Evitando as las
largas bsquedas en que se incurre al seguir una lista de una zona a otra.

Esta variante de multilista puede ser til en la reduccin de movimientos de los


brazos lectores del disco duro y de accesos de entrada/salida del buffer de datos.

Existe una variante llamada multilista celular en paralelo. Esta tcnica es


un caso particular de Multilista celular que consiste en desparramar los registros de
datos en mdulos que pueden ser ledos simultneamente, diseando la distribucin
de manera de maximizar el nmero de pedazos de lista que se recorren en paralelo.
Esta forma de operacin se encontrar seguramente con mayor frecuencia en los
sistemas del futuro que deban permitir la rpida exploracin de grandes bases de
datos.

Otra versin de las multilistas celulares o particionada celular, son las listas
invertidas celulares en paralelo en las cuales las posiciones de las celdas podrn
seleccionarse de forma que dos o ms de ellas puedan explorarse en paralelo, con el
fin de reducir los tiempos de respuesta del sistema.

El archivo de claves mltiples puede distribuirse, por ejemplo, entre varios


paquetes de discos, ocupando slo unos pocos cilindros en cada paquete y con
datos diferentemente organizados en los dems cilindros.

Pgina : 137
ACCESO MULTI-LLAVES

Las celdas a que se refieren los ndices son cilindros, varios de los cuales
pueden ser explorados en paralelo. Cada cilindro posee un ndice propio para
acelerar la bsqueda dentro de ese cilindro y para que no sea necesario leer todas
las pistas de ste.

Para muchos archivos el cilindro sera una celda demasiado grande y se


usaran entonces como celdas grupos menores de pistas dentro del mismo cilindro.

VIII.5 Mantenimiento (De cada una de las anteriores).

El mantenimiento a un archivo son todos los cambios hechos para mejorar la


eficiencia de los programas que los accesan y manipulan.

Existen tres formas de mantenimiento que se les puede aplicar a un archivo


organizado en forma de multillave : reestructuracin, reorganizacin y actualizacin
de los datos.

La reestructuracin consiste en aplicar cambios estructurales, por ejemplo


cambiar la longitud de algn campo, incluir un campo que se requiere, eliminar algn
campo que ya no es necesario, etc.

La reorganizacin consiste en cambiar de una organizacin multilista a una


lista invertida, a una particionada celular o multilista restringida. Cualquier
cambio entre ellas por cuestin de optimizacin, tambin se le llama reorganizacin.

Finalmente tenemos la actualizacin que es, que consiste en mantener los


datos de los archivos exactamente igual a como ocurren en la vide de una
organizacin. Dicho mantenimiento puede ser : Altas, Bajas y Modificaciones.

MANTENIMIENTO A UN ARCHIVO ORGANIZADO EN FORMA DE


MULTILISTA.

El mantenimiento de un archivo multilista consiste en cambiar el contenido del


archivo, de tal forma que refleje todos los momentos transitorios del mundo actual.
Estos cambios incluyen :

A) La insercin de nuevos registros.- Esta accin consiste en adicionar un nuevo


registro, modificando los ndices y los apuntadores que sean
necesarios.

Pgina : 138
ACCESO MULTI-LLAVES

Cuando se va a insertar un registro en una lista ligada, puede


insertarse en cualquier espacio libre del archivo. Sin embargo,
los apuntadores de los nodos (registros) afectados, deben
ajustarse para que reflejen la secuencia lgica deseada.

Por ejemplo, imagine usted que se inserta un registro al archivo


utilizado en la tabla No. 8.1. El archivo quedara de la forma en
que se muestra en la Tabla No. 8.3.

Tabla No. 8.3 Insertar un registro a un archivo multilista.

En los ndices y apuntadores, se adicionara el registro de la


forma como se muestra en la Figura No. 8.6.

B) La modificacin de datos.- Esta accin consiste en buscar un registro especifico


y cambiar el contenido de uno o varios de los campos del
registro; a excepcin del campo llave.

En el caso de las modificaciones, se hace el recorrido por los


ndices, hasta llegar al registro que se desea modificar. Una vez
que se encontr el registro se podr cambiar el contenido de
todos los campos e excepcin de los campos llave.

C) La eliminacin de registros.- Esta accin consiste en eliminar fsicamente un


registro en especfico, eliminndolo tanto del rea de datos como
del rea de los ndices.

Pgina : 139
ACCESO MULTI-LLAVES

Figura No. 8.6 Adicin de un registro en las listas ligadas de profesin y categora.

MANTENIMIENTO A UN ARCHIVO ORGANIZADO EN FORMA DE LISTA


INVERTIDA.

El mantenimiento de un archivo multilista consiste en cambiar el contenido del


archivo de datos y de los ndices, de tal forma que refleje todos los momentos
transitorios del mundo actual. Estos cambios se llevan a cabo por las siguientes tres
acciones :

A) La insercin de nuevos registros.- Esta accin consiste en adicionar un nuevo


registro, modificando tanto al rea de datos como el rea de
ndices.

En el caso de ste tipo de organizacin de archivos,


primeramente se graba el registro al final del rea de datos y
se toma la direccin fsica donde se graba el registro y la llave
del registro.

A continuacin, se graba la llave y la direccin fsica del registro


en el rea de ndices y se reorganiza dicha rea, con el fin de
que los ndices estn siempre ordenados.

Pgina : 140
ACCESO MULTI-LLAVES

B) La modificacin de datos.- Esta accin consiste en tomar del usuario la clave


llave del registro que se desea modificar. Con dicha llave, se
hace una bsqueda binaria en el rea de ndices para
encontrar la ubicacin fsica del registro de datos.

Una vez que se ha obtenido la ubicacin fsica del registro, se


ejecuta una funcin para posicionar el puntero de
lectura/escritura del archivo de datos. Una vez que se
localiz el registro en cuestin, podrn modificarse todos los
datos que se deseen, a excepcin del campo llave.

Una vez que ya se actualiz el registro de datos, se re-escribe


el registro de datos en el mismo lugar donde estaba
originalmente.

C) La eliminacin de registros.- Esta accin consiste en eliminar fsicamente un


registro en especfico, eliminndolo tanto del rea de datos como
del rea de los ndices.

Para ste tipo de organizacin, se busca primero en el rea de


ndices utilizando la bsqueda binaria, tomando la ubicacin
fsica y marcando el registro como baja.

A continuacin se posiciona directamente en el registro a


eliminar del rea de datos y tambin se marca como registro
dado de baja.

Por ltimo, se ejecuta un proceso de actualizacin, el cual


consiste en eliminar fsicamente todos los registros del rea de
datos y del rea de ndices que estn marcados como bajas.
Dicho proceso se ejecuta al final del todo un proceso de
actualizacin o bien al final del da.

MANTENIMIENTO A UN ARCHIVO ORGANIZADO EN FORMA DE


MULTILISTA RESTRINGIDA Y ESTRUCTURADA Y PARTICIONADA CELULAR.

La actualizacin a los archivos organizados en forma de multilista restringida y


estructurada y la particionada celular, siguen exactamente el mismo procedimiento
que la organizacin multilista; esto por ser stas ltimas una versin de la primera.

Pgina : 141
CAPITULO 9

Evaluacin
General de
Sistemas de
Archivos
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

Capitulo IX. Evaluacin General del Sistema de Archivos.

Actualmente, las empresas se enfrentan a un entorno comercial que


progresivamente se hace ms complejo y difcil. El mercado requiere respuestas
cada vez ms rpidas en un mundo donde los cambios resultan impredecibles, las
situaciones evolucionan con mucha velocidad, los problemas requieren un
conocimiento mayor de una cantidad elevada de factores que se interrelacionan
entre s de forma compleja, etc. Ante esto, la compaa debe adaptarse creando
organizaciones ms eficaces. Los directivos de las empresas buscan el tipo de
organizacin que resulte ms apropiada para los objetivos que se quieren lograr. La
eficacia de una empresa depende de su capacidad para que todos sus elementos
funcionen de manera coordinada para la consecucin de los objetivos fijados. En un
mercado como el actual en el que la competitividad y la rapidez de maniobra es
esencial para el xito, hay que contar con la informacin adecuada para actuar y
tomar las mejores decisiones. Por ello, las organizaciones crean sistemas de
informacin que ayuden a lograr los objetivos de la compaa.

Los sistemas de informacin es todo el conjunto de componentes que


interaccionan entre s para lograr un objetivo comn.

Los sistemas de informacin, a travs de su papel central en la economa de


la informacin, estn llevando a cabo los cambios en cuatro aspectos fundamentales:

Las personas trabajan de manera ms inteligente.


Un cambio global en el concepto de la industria.
Tanto las ideas como la informacin estn tomando mayor importancia que el
dinero.
Las personas que trabajan con la informacin dominan la fuerza del trabajo.

Todo sistema organizacional depende, en mayo o menor medida, de una


entidad abstracta denominada sistema de informacin. Este sistema es el medio por
el cual fluyen los datos de una persona o departamento hacia otros y puede ser
cualquier cosa, desde la comunicacin interna entre los diferentes componentes de
la organizacin y lneas telefnicas hasta sistemas de cmputo que generan
reportes peridicos para varios usuarios.

La idea general, es puntualizar que en todo sistema organizacional se


requieren sistemas de informacin tales como : Nomina, inventarios, contabilidad,
cuentas por cobrar, etc. Dichos sistemas de informacin operaban en forma
tradicional registrando todas las operaciones y movimientos en papel. Con el uso de
los equipos de cmputo como herramienta para su operacin se minimiz el tiempo
de proceso trayendo grandes ventajas.

Pgina : 143
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

Los sistemas de informacin va computadora, requieren que la computadora


cuente con un buen medio de almacenamiento de datos y dentro de dicho medio
crear un buen sistema de archivos (tambin llamado file system), para almacenar
todos los datos del sistema.

El file system es aquel sistema que provee servicios a los usuarios y


aplicaciones en el uso de archivos. El nico camino que tiene el usuario o la
aplicacin para acceder a los archivos es a travs de un sistema de gestin de
archivos. Esto revela para el usuario o programador la necesidad de desarrollar
software de propsito especial para cada aplicacin y provee al sistema un medio de
controlar su ventaja ms importante. Los objetivos de un sistema de gestin de
archivos se enumeran a continuacin :

Cumplir con las necesidades de gestin de datos y con los requisitos del
usuario, que incluye el almacenamiento de datos y la capacidad de ejecutar
las operaciones cotidianas.
Garantizar, en la medida de lo posible, que los datos en el archivo sean
vlidos.
Optimizar el rendimiento, ambos desde el punto de vista del sistema en
trminos de productividad global, y como punto de vista del usuario en
tiempos de respuesta.
Para proveer soporte de E/S para una variedad de tipos de dispositivos de
almacenamiento.
Para minimizar o eliminar la posibilidad de perdida o destruccin de datos.
Para proveer un conjunto estndar de rutinas de E/S.
Para proveer soporte de E/S para mltiples usuarios, en caso de sistemas
multiusuarios.

Diferentes sistemas van a tener diferente organizaciones pero estas


organizaciones son razonablemente representativas. A un nivel mas bajo los
manejadores de dispositivos se comunican directamente con los dispositivos de
perifricos o con sus canales o controladores. Un controlador de dispositivos es
responsable de iniciar las operaciones de E/S en un dispositivo y procesar la
terminacin de una peticin de E/S. Para operaciones de archivos, el controlador
tpico de dispositivos son discos y unidades de cinta. Los manejadores de los
dispositivos son usualmente considerados como parte del sistema operativo.

El prximo nivel esta referido con el nombre de sistema de archivos bsicos, o


nivel de E/S fsica. Esta es la interfase primaria con el ambiente fuera del sistema
de la computadora. Este nivel trata con bloques de datos que son intercambiados
con sistemas de disco o cinta. De este modo se preocupa de ubicar dichos bloques
en el dispositivo de almacenamiento secundario y del almacenamiento intermedio de
los mismos en memoria principal. Este nivel no comprender el contenido de los

Pgina : 144
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

datos o la estructura de los archivos implicados. El sistema de archivos bsicos es


usualmente considerado como parte del sistema operativo.

La E/S lgica habilita a los usuarios y aplicaciones de acceder a registros.


As, mientras el sistema de archivos bsico trabaja con bloques de datos. El modulo
lgico de E/S trabaja con el archivo de registros. La E/S lgica provee una
capacidad de E/S de registro de propsito general y mantiene los datos bsicos
acerca de los archivos.

Este captulo tiene como fin evaluar en forma general un sistema de archivos;
pero como para ello se requiere contar con un sistema de archivos real y no se
cuenta, lo que se hizo fue tomar datos ficticios. A dichos datos ficticios se les
aplicaron ciertas operaciones aritmticas y ciertas consideraciones; para finalmente
obtener estimaciones del uso de un sistema de archivos tales como : anlisis de los
beneficios del sistema, necesidades de almacenamiento y una comparacin entre
costo-beneficio.

IX.1 Estimacin del uso del sistema.

Como Ingeniero en Sistemas Computacionales, probablemente tendr que


producir varias estimaciones para un sistema de informacin y sobre todo para el
sistema de archivos del sistema. De hecho, tal vez sea el nico responsable de
producir las estimaciones de los costos.

Qu tipo de cosas necesitan estimarse en un proyecto de desarrollo de


sistemas?. Esto vara de un proyecto a otro pero tpicamente lo principal que se
requiere estimar es lo siguiente :

Recursos humanos. Cuntos programadores, ingenieros, diseadores de


bases de datos, expertos en telecomunicaciones, representantes de los
usuarios y otros tipos de personas se necesitan para el proyecto?

Tiempo. Cunto tardar el proyecto? Cunto tiempo se puede esperar


invertir en cada fase tpica del proyecto (por ejemplo, la tasa de anlisis, la de
diseo, la de programacin, la de prueba, etc.)?

Programacin de personal. Adems de saber cuantas personas requiere e!


proyecto, se necesita saber cuando se requerirn. Si el proyecto requiere diez
programadores. Se necesitarn todos al mismo tiempo?

Presupuesto. Cunto costar desarrollar el sistema?. El costo principal


ser probablemente el de los sueldos del personal de desarrollo, y esto

Pgina : 145
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

usualmente se puede calcular directamente una vez que se conocen los


recursos humanos y la programacin del personal.

Hay que tener en mente que generalmente habr que hacer las estimaciones
ms de una vez. Suele hacerse un conjunto de estimaciones en las primeras etapas
de un proyecto, pero pueden requerirse muchas veces, a medida que los usuarios y
la administracin exploran las diferentes posibilidades de combinaciones. Un
ejemplo obvio de esto es el posible sacrificio de funcionalidad a cambio de tiempo y
viceversa (por ejemplo, el administrador del proyecto puede decir al usuario: "Estoy
prcticamente seguro de que podemos entregarle el sistema para el 1 de enero si no
metemos las funciones X, Y y Z"; otro ejemplo es el de la relacin inversa entre
personas y tiempo (por ejemplo, el usuario puede decirle al administrador del
proyecto, "Si tuviera tres programadores ms, podra terminar el proyecto a tiempo".
Podra tomar varias iteraciones que el equipo del proyecto, la administracin y la
comunidad usuaria lleguen a un acuerdo aceptable.

Dependiendo de su puesto dentro del proyecto y de su influencia con la admi-


nistracin y los usuarios, puede tener la posibilidad de prevenir que algunos de estos
problemas se vuelvan ms serios. Pero incluso si es un ingeniero muy abajo en el
escalafn, debe estar consciente de los problemas de estimacin, pues a fin de
cuentas pueden determinar el xito o fracaso de un proyecto.

A menudo existe una buena cantidad de negociacin al principio de un proyec-


to. Esto es normal, pues la comunidad usuaria entiende poco acerca de la cantidad
de trabajo que un sistema de informacin complejo involucra, y por ello pedirn "que
les bajen la luna", es decir, funcionalidad enorme en una cantidad absurdamente
pequea de tiempo, y a cambio de muy poco dinero. Mientras tanto, el
administrador se enfrenta al problema de personal y presupuesto limitado; por tanto,
necesita trabajar con los usuarios para ayudarles a ver las posibles combinaciones.

Desafortunadamente es muy difcil hacer una estimacin real del uso del
sistema de archivos y lo que se propone hacer es la aplicacin de programas
sintticos para emular el trabajo real de procesamiento de un sistema de cmputo.

Los programas de prueba permiten someterse a una mezcla de trabajos que


sean representativos de la carga proyectada de trabajo del usuario. Tambin
demuestran las tcnicas de almacenamiento de datos por part6e del equipo y dan la
oportunidad de probar funciones especficas realizadas por el sistema. Por medio
de sta tcnica, las limitaciones del equipo se hacen evidentes en el proceso de
adquisicin.

Las pruebas ms comunes para comprobar el sistema de archivos son la


velocidad del procesador central, con instrucciones tpicas de lectura/ecritura en
archivos de datos organizados en cualquier tipo de organizacin. La misma
prueba se realizar en otras computadoras para mostrar la diferencia entre velocidad
y desempeo atribuible al procesador de la computadora.

Pgina : 146
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

IX.2 Anlisis de los beneficios del sistema.

Es mucho ms difcil calcular los beneficios de un nuevo sistema de


informacin que calcular su costo. En algunos casos puede ser imposible; debido tal
vez a que el sistema es obligatorio, o porque el usuario decidi que quiere el sistema
sin importar si se pueden identificar beneficios tangibles o no.

El intento de calcular beneficios tangibles es el que ocasiona tantos


problemas. Los usuarios probablemente hablarn entusiastamente acerca de
"mejor control" o "informacin ms oportuna" o "mejores marcos para toma de
decisiones", pero si les pregunta cuanto dinero va a ahorrar o cuntas ganancias
reportar, es probable que contesten: "Pues... mucho ... sencillamente, s que ser
magnfico...". De hecho, probablemente lo ser, pero trminos como "magnfico' no
tienen mucha cabida en hojas de clculo que muestran comparaciones numricas de
costo/beneficio.

Por ello, su ms grande labor al Ilevar a cabo un clculo de costo-beneficio


ser acorralar a los usuarios y hacer que identifiquen beneficios tangibles que
puedan medirse y calcularse de manera cuantitativa. Si no lo puede lograr hay que
tratar de lograr que comparen su nuevo sistema con algn otro con beneficios
conocidos. As, puede decir al usuario: "Suponga que tuviera que elegir entre el
sistema nuevo del que estamos hablando y el sistema X. Cul considerara ms
importante? Si solo se pudiera implantar uno de ellos, cul escogera?" Suponiendo
que el sistema X tiene algunos beneficios tangibles asociados, esto debiera darle por
lo menos una manera burda de determinar el valor aproximado del nuevo sistema.

Un beneficio tctico es aquel que permite que la organizacin contine


realizando la misma actividad de negocios, pero a menor costo (o mayor ganancia);
un beneficio estratgico es el que permite comenzar a realizar un tipo de negocio
totalmente nuevo, o a hacerlo en un rea totalmente nueva o con clientes nuevos.

Beneficios tcticos

Los beneficios tcticos suelen asociarse con reducciones en el personal


administrativo o de oficina. Aunque esto no es msica para los odos de los
oficinistas, es una realidad. Un nuevo sistema de informacin puede permitir que se
realice la misma funcin con la mitad o menos del nmero de usuarios que se
ocupaban antes. Esto generalmente se debe a que los usuarios actualmente estn
realizando clculos o actividades de registro de datos a mano, cuando podran
computarizarse; o se ven forzados a realizar las mismas actividades mltiples veces,
cuando puede hacerse una vez con una computadora; o les toma una gran cantidad
de tiempo recuperar los datos, siendo que puede hacerse rpidamente por
computadora.

Pgina : 147
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

En algunos casos, habr menos ahorro de lo que puede haber estimado;


los reglamentos del sindicato y la bondad de algunos administradores intermedios de
la organizacin usuaria pueden evitar el despido de algunos de esos usuarios
oficinistas (cuyas indemnizaciones deben contemplarse como costo del nuevo
sistema). Adems, es igualmente importante darse cuenta que los niveles
superiores de la administracin se impresionan cada vez menos con el ahorro de uno
o dos oficinistas; buscan beneficios mayores y mejores con la introduccin de un
nuevo sistema.

Un tipo de beneficio tctico mucho ms interesante es el ahorro que resulta


de poder procesar transacciones de negocios ms rpidamente. Poder manejar
mas transacciones por segundo no solo permite reducir costos de oficina, sino que
puede llevar a un mejor flujo de efectivo para la organizacin. Nuevamente el
secreto radica en cuantificar esto y expresarlo como una cantidad en dinero.

Un nuevo sistema tambin puede reportar ahorros en equipo de cmputo;


el sistema anterior puede estar funcionando en una computadora principal cara.
mientras que el nuevo funciona en una pequea PC colocada en el escritorio del
usuario. Un cambio as no slo ahorra costos de hardware, sino tambin representa
un ahorro en el rea de costos de local, de operadores, etc. Y si el nuevo sistema
reduce la cantidad de papel y de formularios impresos tambin ah debe reflejarse un
ahorro. Asegrese de que sus clculos en cuanto a esto estn completos; tenga en
cuenta que pueden requerirse menos archiveros, menos espacio de oficina, menos
mquinas de escribir, y posiblemente menos Ilamadas telefnicas entre su
organizacin y los clientes, etc.

Los costos de mantenimiento del nuevo sistema tambin deben


proporcionar un beneficio. Los costos de mantenimiento de hardware deben
reducirse, y los costos de mantenimiento de software es de suponerse que sern
interiores a los del sistema actual.

Beneficios estratgicos del nuevo sistema

En cada vez ms casos, los beneficios realmente interesantes e importantes


de un nuevo sistema son beneficios estratgicos. No solo se trata de la oportunidad
de ahorrarse unos cuantos oficinistas o unas cuantas hojas de papel, sino de la
posibilidad de permitirle a la organizacin hacer cosas que le serian imposibles con el
sistema actual. Existen varios ejemplos de beneficios estratgicos potenciales entre
las que tenemos :

Identificar o atraer nuevos clientes que de otra manera no podra identificar la


organizacin.
Entrar a nuevos mercados o proporcionar nuevos productos que previamente
no estaban disponibles

Pgina : 148
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

Capturar, reproducir o distribuir conocimientos y experiencia a los que


previamente solo tenan acceso una o dos personas dentro de la
organizacin.

En una economa tan competitiva como parece ser la actual, un sistema de


informacin que puede atraer nuevos clientes o evitar la prdida de los actuales por
la competencia es realmente muy valioso. En algunos casos, esto es posible
gracias a la funcionalidad que ofrece el nuevo sistema, que anteriormente no estaba
disponible en otros, puede resultar de la capacidad del sistema para identificar
clientes potenciales nuevos que anteriormente ignoraba la organizacin.

Una forma ms difcil de beneficio estratgico es la capacidad del sistema


para proporcionar informacin que anteriormente no se tenia. El ejemplo tpico es la
capacidad de identificar tendencias y patrones. Esto es posible en casi cualquier
sistema automatizado que reemplace a uno manual y usualmente cualquier sistema
en lnea o de tiempo real presenta tales tendencias de una manera ms oportuna
que la lograda con un sistema por lotes. De manera similar, un sistema con
capacidades grficas puede proporcionar informacin de una manera ms efectiva
que uno actual que produzca informacin en forma de tablas y salidas numricas.

IX.3 Necesidades de almacenamiento.

Debido a que el fin es hacer la estimacin del uso del sistema de archivos
en un sistema de informacin, se tiene que investigar los datos que se van a
almacenar en los archivos, por lo que se hace necesario hacer las preguntas
siguientes :

Cuando se crea un archivo nuevo. Se asigna de una sola vez el mximo


espacio que necesite?
El espacio se asigna a un archivo en forma de una o ms unidades contiguas
que se llaman secciones. Un tamao de una seccin puede variar desde un
nico bloque a un archivo entero. Que tamao de seccin debera usarse
para asignar archivos?
Qu tipos de estructura de datos o tabla se usaran para guardar constancia
de las secciones asignadas a un archivo?.

Respondiendo a las preguntas anteriores, se crea un diagrama de bloques


para conocer a ciencia cierta la cantidad de archivos que se van a utilizar en el
sistema de informacin. De cada archivo se analiza y se encuentran los datos
siguientes : Cantidad total de registros, tamao del registro, medio de
almacenamiento y organizacin de cada archivo. Se hace un concentrado
semejante al de la Tabla No. 9.1.

Pgina : 149
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

Nombre Cantidad de Tamao del Medio de Organizacin Tamao en


Del Archivo Registros. Registro Almacenamiento del Archivo Bytes

Empleados 500 270 Disco Duro Multi - llave 135,000


Deptos 28 120 Disco Duro Directo 3,360
Incidencias 250 170 Disco Duro Secuencial 42,500
Extra 400 220 Disco Duro Indexado 88,000
Issste 500 245 Disco Duro Secuencial 122,500
Hacienda 500 224 Disco Duro Secuencial 112,000
Sindicato 500 212 Disco Duro Indexado 106,000
Base 500 165 Disco Duro Directo 82,500

TOTAL EN BYTES -----------------> 691,860

Tabla No. 9.1 Concentrado para conocer la cantidad de espacio de almacenamiento secundario
requerido.

Cabe hacer mencin que los nombres de los archivos y los datos que se
manejan en la Tabla No. 9.1, son ficticios y nicamente se utilizan para
ejemplificar y obtener las necesidades de almacenamiento de un sistema de
informacin.

Una vez que se conoce la cantidad de bytes que ocuparn los archivos de
datos, se hace un clculo del 10 % adicional para los ndices de los archivos
Indexados y multillave, obtenindose los datos que se muestran en la tabla No. 9.2.

Nombre Cantidad de Tamao del Medio de Organizacin Tamao en


Del Archivo Registros. Registro Almacenamiento del Archivo Bytes

Empleados 500 270 Disco Duro Indexado 135,000


Extra 400 220 Disco Duro Indexado 88,000
Sindicato 500 212 Disco Duro Indexado 106,000

Total en bytes p/rea de datos ---> 329,000

Total en bytes para ndices ---------> 32,900

Tabla No. 9.2 Cantidad en Bytes para los ndices.

Una vez que se obtienen los datos, se hace una estimacin de un 50 % para
contener los programas de la aplicacin, se consideran 900 megabytes para el
Sistema Operativo y dos megabytes para un software antivirus que ser
actualizado mensualmente o antes si es necesario, obtenindose el total que se
muestra en la Tabla No. 9.3.

Pgina : 150
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

Total de bytes para el rea de datos 691,860


Total de bytes para el rea de ndices 32,900
Total de bytes para los programas de la aplicacin 362,380
Total de bytes para el Sistema Operativo 900,000
Total de bytes para un antivirus 2,000

Gran total en bytes ------------------------> 1,989,140

Tabla No. 9.3 Estimacin General para el Sistema de Archivos.

Se debe considerar en forma global un incremento del 12 % mensual, por


concepto de actualizacin de los datos y crecimiento en forma general del sistema
de archivos. Dicho incremento se plasma en la tabla No. 9.4.

Mes Inicial Incremento Total

Enero 1,989,140 238,697 2,227,837


Febrero 2,227,837 267,340 2,495,177
Marzo 2,495,177 299,421 2,794,598
Abril 2,794,598 335,352 3,129,950
Mayo 3,129,950 375,594 3,505,544
Junio 3,505,544 420,665 3,926,210
Julio 3,926,210 471,145 4,397,355
Agosto 4,397,355 527,683 4,925,037
Septiembre 4,925,037 591,004 5,516,042
Octubre 5,516,042 661,925 6,177,967
Noviembre 6,177,967 741,356 6,919,323
Diciembre 6,919,323 830,319 7,749,642

Tabla No. 9.4 Incremento global mensual.

De los datos plasmados en las Tablas No. 9.1 al 9.4 se deduce que el disco
duro como medio de almacenamiento requerido para ste pequeo caso de estudio,
debe considerarse de al menos 3 Gigabytes al iniciar operaciones y al ao debe
tener una capacidad para almacenar 8 gigabytes y de esa forma se hace el clculo
para los aos posteriores.

Una buena prctica es adquirir un disco duro con una capacidad suficiente
para que funcione correctamente en al menos 3 aos y posteriormente se ver la
posibilidad de crecimiento o escalamiento de la computadora segn sea el caso.

Cabe hacer mencin que debe considerarse la adquisicin de algn medio de


almacenamiento secundario para hacer respaldos mensualmente, pero dichos
respaldos deben quedar fuera de la computadora por si sufre daos el disco duro o la

Pgina : 151
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

propia computadora. Se sugiere pensar en la compra de cintas o cartuchos para


hacer el proceso de respaldo.

Los respaldos deben contener nicamente lo siguiente : Todos los archivos


de datos del sistema, los archivos de ndices y los programas de la aplicacin.
Todos ellos porque son actualizados dinmicamente en tiempo real.

En esta estimacin se consider exclusivamente el medio de almacenamiento


(disco duro) de la computadora, sin considerarse la configuracin propia de la
computadora, debido a que dicha evaluacin es realizada en otra etapa del anlisis y
diseo de sistemas de informacin.

IX.4 Comparacin entre costo y beneficio.

Este tema se dedica a las tcnicas de clculos de costo/beneficio que es


parte importante de toda evaluacin de un sistema de archivos. El propsito desde
luego, es mostrar a los usuarios del nuevo sistema, al igual que a otros grupos de
administradores de la organizacin, que los beneficios que se esperan obtener con
el nuevo sistema superan a los costos esperados.

Como ingeniero en sistemas computacionales, se le podra dar la tarea de


desarrollar un modelo de costo/beneficio para el sistema de archivos de una
aplicacin. Incluso como ingeniero en jefe a cargo de todo el proyecto, podra ser
que no est involucrado en los clculos de costo/beneficio porque podran estar a
cargo, por ejemplo, de un grupo de finanzas separado.

A continuacin se examinan los aspectos de los clculos de costo/beneficio:

ANLISIS DE COSTOS

El propsito de esta actividad, es calcular todos los costos anticipados


asociados con el sistema de archivos; no solo el costo de construirlo, sino tambin el
costo de instalarlo, de operario y de mantenerlo, adems de los costos extras.

El costo de construir el sistema

En la mayora de los casos, de la administracin puede obtener el salario


promedio de las distintas categoras de personas incluidas en su proyecto; esto se
puede expresar en trminos de costos por hora, por mes, o anuales.

Pgina : 152
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

En muchos proyectos deber incluir tambin el costo de preparar al


personal de desarrollo. Puede ser que los miembros del equipo necesiten
prepararse en el rea de las nuevas metodologas de desarrollo, los nuevos
lenguajes de programacin o las diversas habilidades sobre el software y hardware
asociados con el equipo comercial que se est usando.

Otro costo que hay que tener en cuenta es el de tiempo de computadora,


terminales o estaciones de trabajo y herramientas de desarrollo (editores, paquetes
de prueba, etc.) que se ocupan para el desarrollo del sistema. En algunos casos,
las terminales y las herramientas pueden existir ya y por tanto el proyecto no incurrir
en gastos adicionales; en casi todos los casos, sin embargo, el proyecto tendr que
incluir los costos del tiempo de computadora.

El costo de instalar el sistema

En un proyecto sencillo, pudiera ser suficiente Ilamar por telfono al


usuario y decirle que se termin de desarrollar el sistema; puede entregarse en un
disco flexible y dejar que l mismo lo instale en su computadora personal. Pero en un
proyecto grande y complejo, el proceso de instalacin es ms difcil e incluye
muchos gastos. Entre ellos tenemos los siguientes:

Gastos de capacitacin de usuarios


Gastos de conversin de sistemas de archivos
Gastos de ejecuciones paralelas
Gastos del equipo de desarrollo durante la instalacin

Tpicamente, toda la comunidad usuaria necesitar de cierta capacitacin para


familiarizarse con el uso del sistema.

Costos operacionales

Una vez instalado el sistema, al usuario le costar dinero continuar


operndolo. Sin embargo, esto tambin debe representar un rea en la que el
nuevo sistema ahorrar dinero, dado que es de suponerse que ser ms econmico
que el que actualmente tiene l. Algunos ejemplos tpicos de costos operacionales
son:

Costos de hardware y materiales y equipo relacionados


Costo de software
Costos de personas
Costos de mantenimiento

Un costo final que debe estimarse cuando se calcula el costo operacional


del nuevo sistema es el de la planta fsica. Si el nuevo sistema va a operar en una

Pgina : 153
EVALUACIN GENERAL DEL SISTEMA DE ARCHIVOS

computadora principal centralizada que ya est instalada estos costos pueden estar
incluidos en el costo global del hardware. Sin embargo, si se est desarrollando un
sistema completamente nuevo que tendr su propio local de operaciones, ste
podra ser un gasto importante.

Si se incurriera de manera instantnea en todos los costos del sistema, y


todos los beneficios se observaran de manera instantnea, sera relativamente
sencillo representar el valor del sistema como la diferencia entre costos y
beneficios. Pero, como los gastos usualmente se hacen en el transcurso de
algunos aos y si el gasto se llegara a hacer en un momento (por ejemplo, una
compra de hardware), las polticas de contabilidad de la organizacin pudiera
dictaminar que se reparta a lo largo de un periodo de varios aos.

As, probablemente tendr que demostrar los costos y beneficios que del
sistema a lo largo de cierto periodo de tiempo. Existen cuatro mtodos comunes
para hacer comparar los costos contra los beneficios. Dichos mtodos se enumeran
a continuacin :

Flujo de efectivo.
Rendimientos de inversiones (en ingles, ROI).
Tasa interna de rendimiento (IRR).
Valor neto actual (VNA).
.
Aplicando los cuatro mtodos comunes, se podr hacer la comparacin de los
costos con los beneficios y en ese momento se podr evaluar si el sistema de
archivos vino a resolver un problema a bajo costo o si su utilizacin sali mas cara
que como vena operando.

Pgina : 154
BIBLIOGRAFIA

[t1] Anlisis y Diseo Orientado a Objetos.


James Martn y James J. Odell.
Prentice Hall.

[t2] Base de Datos. Serie Informtica de Gestin.


Miguel A. Rodrguez Almeida.
Mc. Graw Hill.

[t3] C++ a su alcance. Un enfoque Orientado a Objetos.


Luis Joyanes Aguilar.
Mc. Graw Hill.

[t4] Computacin y Programacin Moderna. Perspectiva integral de la Informtica.


Guillermo Levine Gutierrez.
Addison-Wesley.

[t5] Estructura de datos y Organizacin de Archivos.


Mary E. S. Loomis.
Prentice Hall.

[t6] Estructura de Datos. Algoritmos, abstraccin y objetos.


Luis Joyanes Aguilar e Ignacio Zahonero Martnez.
Mc. Graw Hill.

[t7] Estructura de la Informacin.


Juan F. Garca de Sola.
Mc. Graw Hill.

[t8] Estructuras de Archivos. Un conjunto de herramientas conceptuales.


Michael J. Folk y Bill Zoellick
Addison Wesley Iberoamericana.

[t9] Estructuras de Datos. Especificacin, diseo e implementacin.


Xavier Franch Gutirrez.
Alfaomega.

[t10] Estructuras de Datos. Referencia prctica con Orientacin a Objetos.


Romn Martnez y Elda Quiroga.
Instituto Tecnolgico y de estudios Superiores de Monterrey.
Thomson Learning.

Pgina : 155
[t11] Fundamentos de Programacin.
Luis Joyanes Aguilar, Luis Rodrguez Bahena y Matilde Fernndez Azuela.
Mc. Graw Hill.

[t12] Introduccin a la Programacin con ejemplos en Visual Basic, C, C++ y Java.


Ramn A. Mata-Toledo y Pauline K. Cushman.
Mc. Graw Hill.

[t13] Introduccin a los Sistemas de Bases de Datos.


Jeffrey D. Ullman y Jennifer Widom.
Prentice Hall.

[t14] Lenguaje C y Estructura de Datos. Aplicaciones generales y de gestin.


Juan F. Garca de Sola y Vicente Garcern Hernndez.
Mc. Graw Hill.

[t15] Modelado y Diseo Orientado a Objetos. Metodologa OMT.


James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy
y William Loresen.
Prentice Hall.

PAGINAS DE INTERNET CONSULTADAS.

[i-1] http://www.lafacu.com/apuntes/informatica/organizacion_de_computadoras/default.htm

[i-2] http://www.itlp.edu.mx/publica/tutoriales/admonarch/index.htm

[i-3] http://www.info-ab.uclm.es/labelec/solar/Discos/33cdrom.htm

[i-4] http://www.domotica.net/ir'www.monografias.com/trabajos/perifericos/perifericos.shtml

[i-5] http://www.inf.udec.cl/~sistcomp/c5.html

[i-6] http://www.lafacu.com/apuntes/informatica/Los_archivos_II/default.htm

[i-7] http://www.uap.edu.pe/Fac/02/trabajos/02119/archivos.htm

[i-8] http://www.intel.com

Pgina : 156
GLOSARIO DE TERMINOS.

Acceso Directo.- Es la facilidad para accesar cualquier registro, de un conjunto sin


necesidad de accesar los registros precedentes fsicamente.

Administrador de archivos.- Es la parte del sistema operativo responsable de la


administracin de archivos, que incluye un conjunto de programas cuyas
responsabilidades van desde seguirle la pista a los archivos hasta llamar a
los procesos de E/S que transmiten informacin entre los almacenamientos
primario y secundario.

Almacenamiento temporal o buffer.- Es un rea de almacenamiento reservada


para la ejecucin de operaciones de entrada/salida, en el cual los datos
son ledos y de la cual los datos son escritos.

Archivo multilista celular.- Es un archivo multilista en el cual ninguna lista ligada


sobrepasa el lmite entre las reas de celdas fsicas.

Archivo multilista de longitud controlada.- es un archivo multilista donde ninguna


lista ligada excede una longitud especificada.

Bloque.- Es una coleccin de registros contiguos registrados como una sola unidad;
algunas veces es llamado registro fsico.

Bsqueda.- Es el proceso de tratar de encontrar el o los registros que satisfacen un


criterio dado.

Cilindro.- Conjunto de pistas en un disco que se encuentran directamente una sobre


la otra. Se puede accesar a todas las pistas de un cilindro sin tener que
mover el brazo de acceso, lo que significa que se puede tener acceso a
ellas sin gasto de tiempo de desplazamiento.

Coercitividad.- es una propiedad fsica que se define como la resistencia de los


materiales magnetizados. Un material con alto nivel de coercitividad,
necesitar un campo magntico ms intenso para alterar la orientacin de
sus partculas.

Colisin.- Situacin que ocurre cuando dos valores de llaves diferentes se mapean a
la misma direccin fsica.

Controlador.- Dispositivo que controla directamente la operacin de uno o ms


dispositivos de almacenamiento secundario, como unidades de disco,
unidades de cd-rom, etc.

Pgina : 157
Direccionamiento por Cilindro.- Es una tcnica para el direccionamiento de los
registros de datos sobre un disco duro, donde una direccin de registro es
su nmero de cilindro, numero de superficie y nmero de registro.

Estructura de datos.- Es una clase de datos que se caracterza por su organizacin


lgica y operaciones que se definen sobre ella. Tambin es conocida
como tipo de datos.

Indice de inversin.- Es un ndice que contiene todos los valores que la llave
primaria o secundaria tiene en el archivo de datos y apuntadores a todos
los registros de datos que tienen los valores correspondientes.

Llave.- Es el campo que identifica a un registro de datos.

Mb.- Megabyte (millones de bytes que realmente equivale a : 1024,000,000 bytes).

Ms.- milisegundos.

Ordenamiento.- Es el proceso para ordenar una coleccin de llaves en un orden


especfico.

Pista.- Es un rea sobre la superficie de un disco duro, puede ser leda sin el
reposicionamiento de la cabeza de lectura/escritura.

R.p.m.- Significa revoluciones por minuto que gira un disco duro.

Sector.- Es la parte de una pista sobre el disco duro que puede ser accesada por las
cabezas de lectura/escritura durante el desplazamiento rotacional
predeterminado del dispositivo.

Pgina : 158

You might also like