domingo, 3 de julio de 2011

Procesamiento de Datos:

Hasta el momento hemos supuesto que los datos que maneja una aplicación no son tan voluminosos y por lo tanto caben en memoria. Cuando recurrimos a archivos se debe a la necesidad de conservar datos después de que termina un programa, por ejemplo para apagar el computador.
Sin embargo, existen problemas en donde el volumen de datos es tan grande que es imposible mantenerlos en memoria. Entonces, los datos se almacenan en un conjunto de archivos, los que forman una base de datos. Una base de datos es por lo tanto un conjunto de archivos que almacenan, por ejemplo, datos con respecto al negocio de una empresa.
Cada archivo se forma en base a un conjunto de líneas y cada línea esta formada por campos de información. Todas las líneas de un mismo archivo tienen la misma estructura, es decir los mismos campos de información. Diferentes archivos poseen estructuras distintas, i.e. campos de información.
Por ejemplo, el archivo de postulantes post.dat, visto en capítulos anteriores, tiene la siguiente información:
  • ci: carnet de identidad de la persona.
  • nombre.
En lo que sigue supondremos que ambos archivos son lo suficientemente grandes como para que no quepan en la memoria del computador. A continuación resolveremos eficientemente el problema de generar un archivo con los tres campos de información, sin colocar previamente el contenido de un archivo en un arreglo.
Algunas definiciones
Recolección de datos:
Provee un vínculo para obtener la información interoperacionables racional y las parametrizaciones.
Almacenamiento de datos:

Las unidades de disco de la computadora y otros medios de almacenamiento externo permiten almacenar los datos a más largo plazo, manteniéndolos disponibles pero separados del circuito principal hasta que el microprocesador los necesita. Una computadora dispone también de otros tipos de almacenamiento.
La memoria de sólo lectura (ROM) es un medio permanente de almacenamiento de información básica, como las instrucciones de inicio y los procedimientos de entrada/salida. Asimismo, una computadora utiliza varios buffers (áreas reservadas de la memoria) como zonas de almacenamiento temporal de información específica, como por ejemplo los caracteres a enviar a la impresora o los caracteres leídos desde el teclado.
Procesamiento de datos:
  1. El objetivo es graficar el Procesamiento de Datos, elaborando un Diagrama que permita identificar las Entradas, Archivos, Programas y Salidas de cada uno de los Procesos.

  2. Su antecedente es el Diagrama de Flujo.
  3. Los elementos claves son los Programas.
  4. Se confecciona el Diagrama de Procesamiento de Datos
  5. Este Diagrama no se podrá elaborar por completo desde un primer momento ya que depende del Flujo de Información.
  6. En este primer paso sólo se identifican las Salidas y Programas. Los elementos restantes se identifican en forma genérica.
Validación de datos:
Consiste en asegurar la veracidad e integridad de los datos que ingresan a un archivo. Existen numerosas técnicas de validación tales como: Digito verificador, chequeo de tipo, chequeo de rango.
5. Concepto de Procesamiento Distribuido y Centralizado
Procesamiento Centralizado:
En la década de los años 50’s las computadoras eran máquinas del tamaño de todo un cuarto con las siguientes características:
• Un CPU
• Pequeña cantidad de RAM
• Dispositivos DC almacenamiento secundario (cintas)
• Dispositivos d salida (perforadoras de tarjetas)
• Dispositivos de entrada (lectores de tarjeta perforada)
Con el paso del tiempo, las computadoras fueron reduciendo su tamaño y creciendo en sofisticación,
• Aunque la industria continuaba siendo dominada por las computadoras grandes "mainframes". A medida que la computación evolucionaba, las computadoras, fueron capaces de manejar aplicaciones múltiples simultáneamente, convirtiéndose en procesadores centrales "hosts" a los que se les
Conectaban muchos periféricos y terminales tontas que consistían solamente de dispositivos de entrada/salida (monitor y teclado) y quizá poco espacio de almacenamiento, pero que no podían procesar por sí mismas. Las terminales locales se conectaban con el procesador central a través de interfaces seriales ordinarias de baja velocidad, mientras que las terminales remotas se enlazaban con
• El "host" usando módems y líneas telefónicas conmutadas. En este ambiente, se ofrecían velocidades de transmisión de 1200, 2400, o 9600 bps. Un ambiente como el descrito es lo que se conoce como procesamiento centralizado en su forma más pura "host/terminal". Aplicaciones características de este tipo de ambiente son:
Administración de grandes tuses de datos integradas
Algoritmos científicos de alta velocidad
Control de inventarios centralizado
Al continuar la evolución de los "mainframes", estos se comenzaron a conectar a enlaces de alta velocidad donde algunas tareas relacionadas con las comunicaciones se delegaban a otros dispositivos llamados procesadores comunicaciones "Front End Procesos" (I7EP’s) y controladores de grupo "Cluster Controllers" (CC’s).
Procesamiento Distribuido:
El procesamiento centralizado tenía varios inconvenientes, entre los que podemos mencionar que un número limitado de personas controlaba el acceso a la información y a los reportes, se requería un grupo muy caro de desarrolladores de sistemas para crear las aplicaciones, y los costos de mantenimiento y soporte eran extremadamente altos. La evolución natural de la computación fue en el sentido del procesamiento distribuido, así las minicomputadoras (a pesar de su nombre siguen siendo máquinas potentes) empezaron a tomar parte del procesamiento que tenían los "mainframes".
Ventajas
Existen cuatro ventajas del procesamiento de bases de datos distribuidas. La primera, puede dar como resultado un mejor rendimiento que el que se obtiene por un procesamiento centralizado. Los datos pueden colocarse cerca del punto de su utilización, de forma que el tiempo de comunicación sea mas corto. Varias computadoras operando en forma simultánea pueden entregar más volumen de procesamiento que una sola computadora.
Segundo, los datos duplicados aumentan su confiabilidad. Cuando falla una computadora, se pueden obtener los datos extraídos de otras computadoras. Los usuarios no dependen de la disponibilidad de una sola fuente para sus datos .Una tercera ventaja, es que los sistemas distribuidos pueden variar su tamaño de un modo más sencillo. Se pueden agregar computadoras adicionales a la red conforme aumentan el número de usuarios y su carga de procesamiento. A menudo es más fácil y más barato agregar una nueva computadora más pequeña que actualizar una computadora única y centralizada. Después, si la carga de trabajo se reduce, el tamaño de la red también puede reducirse.
Por último, los sistemas distribuidos se pueden adecuar de una manera más sencilla a las estructuras de la organización de los usuarios.

6. Estructura de Datos utilizados en el proceso electrónico de datos
Arreglos
Son una agrupación de datos homogéneos, es decir, con un mismo tipo de dato básico asociado. Se almacenan en forma contigua en la memoria y son referenciados con un nombre común y una posición relativa.
Ejemplos:
Arreglo Lineal (1 dimensión ó vector)
Vista gráfica
[1]
[2]
[3]
[4]
[5]
Definición de tipo

Type
Linea: Array [1..5] of TipoBasico;
Var
MiArreglo:Linea;
Arreglo Bidimensional (matriz)
Vista gráfica
[1,1]
[1,2]
[1,3]
[1,4]
[2,1]
[2,2]
[2,3]
[2,4]
[3,1]
[3,2]
[3,3]
[3,4]

Definición de tipo
Type
TipoTabla:Array[1..3,1..4] of TipoBasico;
Var
MiTabla: TipoTabla;
Pilas o colas Lifo:
Imagina un montón de platos "apilados" o bien fichas de dominó formando una torre e intenta eliminar una desde el centro, ¿qué ocurre?, naturalmente esta operación no está permitida si queremos mantener intactos a los platos o a la torre construida. Por esta razón, una pila se asocia a una estructura de datos LIFO (LAST IN FIRST OUT). En base a lo anterior, construye la definición de una PILA y discútela con el profesor.
En general, podemos definir para cada una de las estructuras de datos una representación estática y otra dinámica según el método de asignación de memoria utilizado.
Clasificación
a.)Pila estática:
Sin duda tendremos que utilizar arreglos o registros que como ya sabemos son la base para estructuras de datos más complejas. Considerando la siguiente figura:
Vista gráfica

Suponiendo que Dato pertenece a un mismo tipo de datos y Cuenta Dato corresponde a un entero que se incrementa a medida que un nuevo elemento se incorpora a la pila. Intenta construir la definición de tipo para la estructura Pila.
TYPE
______________________________
______________________________
______________________________
END;
b.)Pila
Dinámica:
Sin duda tendremos que utilizar nodos con punteros. Considera la siguiente figura:

Suponiendo que los punteros que aparecen en la figura son capaces de apuntar a un nodo y que Dato pertenece a cualquiera de los tipos básicos o estructurados, la definición de tipo sería:
TYPE
Puntero=^NodoPila;
NodoPila=Record
Info:AlgunTipo;
sgte:Puntero;
End;
Var tope:Puntero;
Un concepto por introducir es el de encapsulamiento, que significa que una vez definida la estructura e implementadas las operaciones básicas, uno se remite a utilizarlas sin importar su codificación interna, es decir, las llamadas a PUSH(pila, x) o POP(pila, y) empilarán a x o desempilarán en y sin importar cómo lo hagan.
c.)Listas Enlazadas:
Corresponde a una estructura lineal compuesta por una colección de datos homogéneos con alguna relación entre ellos. Dicha estructura se crea a través del método dinámico de memoria.
En una lista enlazada el orden de los elementos está determinado por un campo enlace (puntero) explícito en cada elemento, por ejemplo: pilas y filas dinámicas.
La representación de lista enlazada es la más óptima debido a que cualquier proceso de actualización (modificación inserción o eliminación) se realiza en base a reasignación de punteros. En este capítulo trataremos sólo con las listas enlazadas ya que las listas secuénciales ya son bien conocidas por ustedes.
Tipos de Listas Enlazadas
  • Listas lineales simplemente enlazadas
  • Listas Circulares
  • Listas doblemente enlazadas
  • Listas múltiplemente enlazadas
Árboles
Es una estructura de datos no lineal que posee raíz, ramas y hojas, técnicamente constituye un grafo finito y sin ciclos. Un árbol define ciertos niveles jerárquicos precedidos por la raíz (1er. nivel), en donde las hojas constituyen el nivel más bajo.
Componentes
Raíz: Nodo que constituye la única entrada a la estructura (por ello es necesario tener un puntero sobre él).
Ramas o Arcos: Conexión entre dos nodos del árbol que representa una relación de jerarquía.
Hojas: Nodo sin hijos.
Características
Nivel o profundidad de un nodo: Longitud del camino para ir desde la raíz al nodo. Por definición la raíz está en el nivel 0. Por ejemplo: profundidad(Y)=2, profundidad(raíz)=0, profundidad(árbol)= profundidad(hoja más profunda).
Altura de un nodo: Longitud del camino más largo desde el nodo a una hoja. Por ejemplo:
Altura(X)=1, Altura(Y)=0, Altura(arbol)=Altura(raíz)=profundidad(árbol)
Grado de nodo: Cantidad de hijos de un nodo cualquiera.
Grado de árbol: Cantidad máxima de hijos posibles de asociar a un nodo del árbol
Clasificación
a.)Según Número de Hijos:
b.)Según Estructura de Niveles:
Arbol completo: Es un árbol binario en el cual cada nodo es una hoja o posee exactamente 2 hijos.
Arbol lleno: Es un árbol binario con hojas en a lo más dos niveles adyacentes l-1 y l, en las cuales los nodos terminales se encuentran ubicados en las posiciones de más a la izquierda del árbol.
Si un árbol binario es completo, necesariamente es lleno
c.)Según Funcionalidad:
Árbol binario de búsqueda (ABB)
Árbol binario de expresión
Archivos:

Es una es estructura de datos que reside en memoria secundaria o almacenamiento permanente (cinta magnética, disco
magnético, disco óptico, disco láser, etc.). La forma de clasificación más básica se realiza de acuerdo al formato en que residen estos archivos, de esta forma hablamos de archivos ASCII (de texto) y archivos binarios. En este capítulo nos centraremos en estos últimos.
Definición archivo binario:
Estructura de datos permanente compuesto por registros (filas) y éstos a su vez por campos (columnas). Se caracteriza por tener un tipo de dato asociado, el cual define su estructura interna.
Definición archivo texto:
Estructura de datos permanente no estructurado formado por una secuencia de caracteres ASCII.
Tipos de Acceso a los Archivos
a.)Secuencial:
Se accesan uno a uno los registros desde el primero hasta el último o hasta aquel que cumpla con cierta condición de búsqueda. Se permite sobre archivos de Organización secuencial y Secuencial Indexada.
b.)Random:
Se accesan en primera instancia la tabla de índices de manera de recuperar la dirección de inicio de bloque en donde se encuentra el registro buscado. (dentro del  rea primaria o de overflow). Se permite para archivos con Organización Sec.Indexada.
c.)Dinámico:
Se accesan en primera instancia la tabla de índices de manera de recuperar la dirección de inicio de bloque en donde se
encuentra el registro buscado. (dentro del  rea primaria o de overflow). Se permite para archivos con Organización Sec.Indexada.
d.)Directo:
Es aquel que utiliza la función de Hashing para recuperar los registros. Sólo se permite para archivos con Organización Relativa.
Constantes
Las constantes son similares a una variable pero tienen un valor determinado que se mantiene igual en toda la ejecución del programa. El contenido de una variable puede cambiar tantas veces sea necesario. ¿Porque usar una constante si no puede cambiar de valor?. Hacemos esto cuando deseamos usar un mismo número o una palabra (string) varias veces.
Variables
Magnitud que puede tomar diferentes valores y se representa con una letra o letras. La variable real es el conjunto de los números reales, y se puede representar por cualquier letra o conjunto de letras y nos sirve para poder utilizar dicha letra para calculos o para obtener resultados.
7. Conclusión
La tecnología de información está transformando las actividades económicas y cotidianas como uno de los fenómenos sociológicos más importantes del siglo. Por esta razón, los niveles de oportunidades de trabajo se incrementan de una manera acelerada en diferentes áreas del conocimiento.
Indiscutiblemente, las computadoras han invadido ya todos y cada uno de los campos de la actividad humana: ciencia, tecnología, arte, educación, recreación, administración, economía y de acuerdo a la tendencia actual, nuestra civilización y las venideras dependerán cada vez más de estos "cerebros" electrónicos.
Se ha venido acelerando la velocidad de cambio del medio de casi todas las organizaciones, de allí que éstas necesiten ahora más información como soporte a la toma de decisiones.
Aunque las entidades de tipo educativo se han descuidado en este aspecto, en estos momentos se percibe un cierto interés en la implantación de estrategias que logren interesar a estudiantes y profesores en el aprendizaje de técnicas que pretende a corto plazo masificar e implementar el uso de bases de datos, redes de datos e información y tecnología informática de punta como herramientas básicas de los actuales y nuevos profesionales del país.
Para responder a los retos planteados por la nueva situación económica y tecnológica mundial, se impulsa una dinámica tendiente a dar a conocer los elementos necesarios para estar a la vanguardia en este campo.

No hay comentarios:

Publicar un comentario