Está en la página 1de 10

Contenido del curso de Manejo e Implementación de Archivos

Desarrollado por: Ing. Marlon Antonio Pérez Türk


Ing. Alvaro Díaz Ardavin
Universidad de San Carlos de Guatemala
Guatemala Julio – Noviembre / 2006

Unidad No. 1
Arquitectura de una Base de Datos

1.1 Introducción al almacenamiento de información

¿Por qué almacenar información durante un tiempo indefinido?


Tres requisitos (almacenar la inf. durante un tiempo indefinido):
• Gran cantidad de información.
• La información persiste a la terminación de los procesos
• Varios procesos deben ser capaces de acceder concurrentemente

Almacenamiento primario
Este tipo de almacenamiento se da cuando el computador guarda información de manera
temporal en memoria RAM, hasta que esta se libera.

Almacenamiento secundario
Este tipo de almacenamiento se da cuando la información que esta en almacenamiento
primario (memoria RAM), pasa a un dispositivo como un disco duro, diskette, cinta,
disco compacto, memoria flash, etc.

¿Qué es un archivo?
Según Folk (libro de texto): Una colección de bytes que representa información y que
normalmente se guarda en almacenamiento secundario. Para su procesamiento, todo el
contenido del archivo, o parte de el, suele cargarse en memoria RAM.

Estructuras de archivos
Es la organización impuesta a un archivo para facilitar su procesamiento.
Archivo físico
Archivo que en realidad existe en el almacenamiento secundario. Es el archivo tal
como lo conoce el sistema operativo y que aparece en su directorio de archivos.

Archivo lógico
El archivo, visto por el programa. El uso de archivos logicos permite a un programa
describir las operaciones que van a efectuarse en un archivo sin saber cual archivo fisico
real se usara. El programa puede entonces usarse para procesar cualquiera de diversos
archivos que comparten la misma estructura.

Operaciones básicas de archivos


Es importante cómo va a ser usado un archivo para determinar su organización.
Existen dos aspectos primordiales del uso de un archivo:
1. Su modo de uso (programas batch o interactivo).
a. Procesamiento batch: las transacciones se van acumulando a lo largo del
tiempo y luego se aplican.
b. Procesamiento interactivo: las transacciones se procesan inmediatamente
después que se produce la entrada.
2. La naturaleza de las operaciones sobre el archivo.
Operaciones fundamentales:
ƒ Creación
ƒ Actualización: inserción, modificación y borrado de registros.
ƒ Recuperación de información: consulta, generación de informes.
ƒ Mantenimiento: reestructurar→cambios estructurales sobre el archivo, dentro de
una misma técnica de org. de archivos; reorganizar→un cambio de una org. a
otra.

Cada Sistema Operativo ofrece su propio conjunto de operaciones sobre archivos.


Las operaciones más comunes y básicas son:
1. CREATE: El fichero es creado sin datos.
2. DELETE: Cuando el archivo ya no se va a utilizar, se borra para liberar el espacio
que ocupa en disco.
3. OPEN: Antes de usar un fichero, un proceso ha de abrirlo para que el sistema busque
y almacene en memoria aquellos atributos y direcciones de disco necesarias para
acceder rápidamente al fichero.
4. CLOSE: Cuando se acaban los accesos a un fichero, el espacio que ocupa en
memoria ha de ser liberado.
5. READ: El proceso que lee información de disco debe de especificar la cantidad de
información a leer y el lugar donde colocarla (buffer).
6. WRITE: Los datos se escriben en un fichero a partir de la posición que indica el
puntero de desplazamiento.

Podríamos considerar otras operaciones adicionales como:


1. SEEK: Posiciona el puntero de desplazamiento en cualquier posición de un fichero
de acceso aleatorio.
2. GET ATTRIBUTES: Para algunos procesos es necesario obtener algunos atributos
de los ficheros.
3. SET ATTRIBUTES: Algunos atributos pueden ser modificados por el usuario
4. RENAME: Es frecuente que sea necesario cambiar el nombre de un fichero.
5. APPEND: Es una forma restringida de WRITE que fuerza a que los nuevos datos se
escriban al final del fichero.
6. TRUNCATE: Mantiene los atributos del fichero, pero borra su contenido.

1.2 Dispositivos de almacenamiento secundario


Todo aparato que se utilice para grabar los datos de la computadora de forma permanente o
temporal.

Dispositivos de acceso directo Æ permiten el acceso directo a los datos.


Dispositivos de acceso secuencial Æ permite el acceso en serie, es decir, no se puede leer o
escribir un dato en particular hasta que todos los datos que lo preceden hayan sido
leídos o escritos en orden.

BIOS - Basic Input/Output System (sistema básico de entrada/salida)


Conjunto de rutinas que trabajan estrechamente con el hardware de una computadora para
soportar la transferencia de información entre los elementos del sistema, como la memoria, los
discos, el monitor, el reloj del sistema y las tarjetas de expansión. En los IBM y compatibles
originales, el BIOS o ROM BIOS, estaba incorporado en un chip de memoria de sólo lectura
(ROM) integrado en la placa base de la máquina. Aunque es fundamental para el
funcionamiento, el BIOS es normalmente invisible a los usuarios de los equipos.

[
Al encender la computadora, el BIOS hace una comprobación del sistema, por ejemplo para
verificar la disponibilidad de discos duros instalados o el acceso a memoria. Los sistemas
actuales constan de un BIOS programable, que puede ser actualizado mediante un software
específico. En estos casos se dispone de una batería que mantiene la información de cada
sistema concreto, mientras el ordenador o computadora permanece desconectado de la red.
Muchas de las opciones del BIOS pueden ser definidas mediante un sistema de menús al que
puede accederse, normalmente, mediante la pulsación de alguna tecla antes del arranque del
sistema operativo. Así, por ejemplo, se podrán fijar factores de trabajo del hardware, tales como
el modo de caché del procesador, la secuencia de arranque desde disquete, disco duro y unidad
de CD-ROM, la frecuencia de refresco de memoria y otros.
]

Unidad de disco
Dispositivo electromecánico que permite leer —y en ocasiones escribir— información en los
discos. Los principales componentes de una unidad de disco incluyen un eje sobre el que va
montado el disco, un motor que lo hace girar cuando la unidad está en funcionamiento, uno o
más cabezales de lectura/escritura, un segundo motor que sitúa dichos cabezales sobre el disco,
y un circuito controlador que sincroniza las actividades de lectura/escritura y transmite la
información hacia y desde el ordenador o computadora. Los tipos de unidad de disco más
comunes son las disqueteras, o unidades de discos flexibles, los discos duros, los lectores de
disco compacto, CD, y los lectores de disco versátil digital, DVD. Existen, además, otras
unidades cuyo uso está menos extendido, pero que están pensadas para aplicaciones específicas,
como por ejemplo el LS-120, o super-disk, el ZIP de 100 MB y 200 MB, el JAZ y las unidades
de cinta.

Tanto las unidades de disquete como las unidades de disco duro, disponen de una cabeza de
lectura/escritura que permite leer y escribir información en los discos; pero, mientras que en los
disquetes, la cabeza está en contacto físico con el disco, en los discos duros hay un espacio entre
la cabeza y la superficie del disco.
Por su parte, los lectores de disco compacto, CD, y las unidades de DVD, disponen de un láser,
ya que la lectura de la información se hace por procedimientos ópticos. En algunos casos, estas
unidades son de sólo lectura y en otros, de lectura y escritura.

Disco duro
Unidad de almacenamiento permanente de gran capacidad. Está formado por varios discos
apilados —dos o más—, normalmente de aluminio o vidrio, recubiertos de un material
ferromagnético. Como en los disquetes, una cabeza de lectura/escritura permite grabar la
información, modificando las propiedades magnéticas del material de la superficie, y leerla
posteriormente; esta operación se puede hacer un gran número de veces.

La mayor parte de los discos duros son fijos, es decir, están alojados en el ordenador de forma
permanente, sin embargo, existen también discos duros removibles.

CONTROLADOR DE DISCO:
Conjunto de circuitos, generalmente integrados en un chip o tarjeta, que dirige la lectura y
escritura en las unidades de disco de una computadora. La transferencia de información desde y
hacia la unidad de disco es una operación compleja, y el controlador de disco lleva a cabo tareas
tales como situar el cabezal de lectura/escritura, servir de intermediario entre la unidad y el
microprocesador y controlar la transferencia de información hacia y desde la memoria. Los
controladores de disco se utilizan con ambas unidades de discos flexibles (o disquetes) y con los
discos duros.

Tipos de controlador
IWM Æ Integrated Woz Machine – Macintosh
IDE, EIDE Æ Tarjeta conectada a ranura de expansión en la placa base del sistema,
maneja como máximo 4 unidades de disco duro.
SCSI Æ Tarjeta conectada a ranura de expansión en la placa base del sistema, maneja
como máximo 7 unidades de disco duro.

Partes de un disco duro:


• Pista: es el conjunto de bytes en la superficie de un disco al cual puede accederse
sin mover el brazo de acceso.
• Sector: es la porción referenciable más pequeña de un disco. Cada pista está
divida en varios sectores.
• Cilindros: son pistas que están directamente unas sobre otras. La importancia
del cilindro es que se puede tener el acceso a toda la información almacenada
sin mover el brazo que sostiene las cabezas de lectura y escritura.
• Cluster: Parámetro de organización. Unidad de asignación que agrupa varios
sectores, que es donde se almacenan los datos de manera organizada. Cada
unidad puede ser utilizada por un solo archivo, pero un archivo puede utilizar
varias unidades.

Cuando se quiere acceder a un byte almacenado en el archivo, el sistema operativo del


computador encuentra la superficie, la pista y sector correctos, lee el sector completo y
lo pone en un área especial en memoria RAM llamada buffer, y después encuentra
dentro de ese buffer el byte solicitado.

Fórmulas para cálculos sencillos de capacidades

Capacidad de la pista = # de sectores por pista x bytes por sector


Capacidad del cilindro = # de pistas por cilindro x capacidad de la pista
Capacidad de la unidad = # de cilindros x capacidad del cilindro

Formas para referenciar datos


Hay dos formas de hacer referencia a datos en los discos:
1. Por sectores.
2. Por bloques.

Por bloques se refiere a un grupo de registros que se almacenan juntos en un disco y son
tratados como una unidad, para propósitos de E/S. La búsqueda de un registro entre los
bloques de una pista con una llave es más rápida.
Desventajas:
• El peligro de fragmentación interna de la pista (fragmentación es el espacio que
se vuelve inútil dentro de un cúmulo, bloque, pista u otra unidad de
almacenamiento físico).
• La molestia que significa para el usuario el trabajo con alguna complejidad
adicional.
• La pérdida de oportunidades para lograr algunos tipos de sincronización (como
la intercalación de sectores) que si proporciona el hacer referencia por sectores.

Por sectores o intercalación de sectores, se refiere al acceso a sectores lógicamente


adyacente, es decir, los sectores se ven como segmentos de pista adyacentes de tamaño
fijo, capaces de contener un archivo.

Costo del acceso a disco


Este puede medirse de tres formas:
1. En términos del tiempo que consume el desplazamiento: este se refiere al tiempo
requerido para mover el brazo de acceso hasta el cilindro adecuado, es decir,
donde se encuentra en el byte que buscamos. El tiempo depende por supuesto
de la distancia que tenga que recorrer el brazo.
2. El retraso por rotación: se refiere al tiempo que transcurre para que en el disco
que gira el sector que se desea quede bajo la cabeza de lectura y escritura.
3. El tiempo de transferencia: una vez que los datos que se desean están bajo la
cabeza de lectura y escritura, se pueden transferir. El tiempo de transferencia
está dado por la fórmula:
Tiempo de Transferencia = # de bytes por transferir x Tiempo de rotación
# de bytes en una pista
Cintas magnéticas
Las unidades de cinta magnética pertenecen a una clase de dispositivos que no brindan
la facilidad del acceso directo, pero son muy buenas para el procesamiento secuencial
de datos. Cuando se sabe que un archivo grande normalmente no requiere acceso
directo, almacenarlo en cinta tiene ventajas. Las cintas son compactas, estables en
diferentes condiciones ambientales y fáciles de almacenar y transportar. Otra ventaja es
que el espacio de la cinta generalmente es menos costoso que el del disco.
Las cintas se presentan en una diversidad de formas, tamaños y velocidades. Las
diferencias de desempeño entre las unidades normalmente se miden en términos de tres
cantidades:
• Densidad de la cinta
• Velocidad de la cinta
• Tamaño del espacio entre bloques

El viaje de un Byte
Con esto se refiere al viaje que realiza un byte o dato desde el almacenamiento primario
(memoria RAM) hacia el almacenamiento secundario (disco). Este viaje implica la
participación de diversos programas y dispositivos, como son:
1. El programa del usuario, que hace la llamada inicial al sistema operativo.
2. El administrador de archivos del sistema operativo, el cual mantiene y maneja
tablas cuya información emplea para pasar del punto de vista lógico que el
programa tiene con respecto a un archivo hasta el archivo físico en donde se
almacenará el byte.
3. Un procesador de E/S y su software, que sincronizan la transmisión de un byte
entre un buffer de E/S en memoria RAM y el disco (almacenamiento primario y
secundario).
4. El controlador del disco y su software, que dan instrucciones a la unidad acerca
de cómo encontrar la pista y el sector apropiados, para después enviar el byte, y
5. La unidad de disco (almacenamiento secundario), que recibe el byte y lo
deposita en la superficie del disco.

Manejo de buffers
Manejar buffers implica trabajar con grandes grupos de datos en memoria RAM para
que el número de accesos al almacenamiento secundario se reduzca.
Desventaja: Æ el uso de buffers en un programa también puede afectar
considerablemente el desempeño.

Cuellos de botella con un buffer


Este problema se da cuando el administrador de archivos tiene solo un buffer de E/S
para procesar los datos y tiene el problema del manejo, al mismo tiempo, de manejar la
entrada y salida de un dato o byte del disco a memoria y viceversa. Este problema se
soluciona teniendo un buffer para la entrada y otro para la salida, la cual es conocida
como una estrategia de Manejo doble de Buffers.

1.3 ¿Qué es una Base de Datos?


Consiste en un conjunto de datos persistentes que son utilizados por una aplicación de
software.
Sistema de Base de Datos
Básicamente es un sistema computarizado para almacenamiento de registros, cuyo
propósito principal es dar mantenimiento a la información y mantenerla disponible en
demanda. Los datos almacenados en un sistema de Base de Datos deben ser íntegros y
compartidos, lo cual representa la mayor ventaja de un sistema de Base de Datos.
Se entiende por integridad de datos a la unificación de información en archivos de datos
evitando la redundancia de información dentro de los mismos.
Se entiende por información compartida al hecho de que las piezas individuales de
información pueden ser compartidas por diferentes usuarios en un mismo tiempo.

Tipos de Usuario:
Programador de aplicaciones – responsable de escribir programas que usan la
información almacenada en la DB.
Usuario Final – es el que interactua con el sistema desde una terminal en línea.
DBA – Administrador de la base de datos.

Base de Datos Relacional


Es una base de datos basada en el modelo relacional, estas bases de datos son percibidas
por los usuarios como una colección de tablas.

Beneficios del uso de una base de datos para almacenar información


• Se reduce la redundancia
• Se evita la inconsistencia en la información almacenada
• La información puede ser compartida
• Se obliga a la utilización de estándares
• Se pueden aplicar restricciones de seguridad
• La integridad se puede mantener
• Requerimientos conflictivos pueden ser balanceados

1.3 Arquitectura para un sistema de Base de Datos


Los tres niveles de la arquitectura de una Base de Datos
La arquitectura ANSI/SPARC está dividida en tres niveles conocidos como el nivel
interno, el nivel conceptual y el nivel externo.

El nivel interno es el más cercano al almacenamiento físico, es decir, es el nivel más


comprometido con la forma en que se almacenan físicamente los datos.
El nivel externo es el nivel más cercano a los usuarios, es decir, es el nivel más
comprometido con la forma en que los datos son vistos por los usuarios individuales.
El nivel conceptual es un nivel de indirección entre los otros dos niveles. Es una vista
común de la base de datos completa para toda la comunidad de usuarios.

1.3.1 Mapeo entre niveles


El mapeo conceptual/interno en la arquitectura, define la correspondencia entre la vista
conceptual y el almacenamiento de la base de datos, especifica cómo los registros y los
campos son representados a un nivel interno. Si la estructura de almacenamiento
interno de la base de datos cambia, entonces, el mapeo conceptual/interno debe ser
modificado también, pero, el esquema conceptual debe permanecer invariante, en otras
palabras, el efecto de tales cambios debe ser transparente para el nivel conceptual para
que se preserve la política de independencia de datos.

1.3.2 El administrador de la Base de Datos (DBA)


El administrador de datos es la persona que define la estrategia y políticas acerca de los
datos de la empresa. El administrador de la base de datos, es la persona, que provee el
soporte técnico necesario para implementar estas definiciones. Esto es, el DBA es la
persona responsable del control del sistema de bases de datos a un nivel técnico, algunas
de sus funciones son las siguientes:
• Definir el esquema conceptual
• Definir el esquema interno
• Definir el esquema de datos para cada usuario
• Definir chequeos de seguridad e integridad
• Definir los procedimientos de backup y recuperación de la información
• Monitorear el desempeño y responder a los requerimientos de cambio

1.3.3 El sistema administrador de la Base de Datos (DBMS)


Es el software que maneja el acceso a la base de datos. Conceptualmente, lo que ocurre
es lo siguiente:
1. Un usuario realiza una solicitud de acceso a datos utilizando algún sublenguaje
particular de datos (ej. SQL)
2. El DBMS intercepta esta solicitud y la analiza
3. El DBMS inspecciona el esquema externo del usuario, el correspondiente mapeo
externo/conceptual, el esquema conceptual, el mapeo conceptual/interno y la
definición estructural del almacenamiento
4. El DBMS ejecuta las operaciones necesarias sobre la base de datos almacenada
Algunas de las funciones del DBMS son las siguientes:
• Definición de datos utilizando DDL (Data definition language)
• Manipulación de datos utilizando DML (Data manipulation language), las
solicitudes para utilizar DML pueden ser planificadas y no planificadas.
• Garantizar la seguridad e integridad de los datos
• Forza controles para la concurrencia y recuperación de datos, normalmente
utiliza un componente de software llamado “Transaction Manager”.
• Provee una función de diccionario de datos.
• Debe proveer todas las funciones necesarias para que el rendimiento sea lo más
efectivo posible.

1.3.4 El manejador de comunicación de datos (Data


Communications manager)
Las solicitudes hechas a una base de datos desde un usuario final son transmitidas en la
forma de mensajes, lo mismo ocurre con las respuestas de la base de datos hacia los
usuarios finales. Todos estos mensajes de transmisión toman lugar bajo la dirección de
otro software denominado manejador DC (data communications manager).
El manejador DC no es un componente del DBMS, sino más bien un sistema autónomo.
A pesar de que el manejador DC y el DBMS son claramente necesarios para trabajar
armoniosamente, algunas veces son vistos como un sistema cooperativo de alto nivel
llamado database/data-communications system (DB/DC system), en el cual el DBMS
administra la base de datos y el DC manager administra todos los mensajes hacia y
desde el DBMS, o visto de otra forma, desde y hacia aplicaciones que utilizan el
DBMS.

1.3.5 Bakcend vs Frontends


El backend es el DBMS en sí. Soporta todas las funciones básicas del DBMS
(definición de datos, manipulación de datos, seguridad e integridad de datos, etc.). En
particular, provee provee todo el soporte para los niveles externo, conceptual e interno.
En este contexto, backend es otro nombre para el DBMS.
Los frontdends son varias aplicaciones que corren en la cima del DBMS – tanto
aplicaciones de usuario como aplicaciones builtin (ej. Aplicaciones provistas tanto por
el dueño del DBMS como por algunos proveedores de software conocidos como third-
party) – En lo que al backend concierne, no existe alguna diferencia entre las
aplicaciones de usuario y las aplicaciones builtin, ambos usan la misma interfaz con el
backend, llamada la interfaz del nivel externo discutida anteriormente.
Las aplicaciones pueden ser divididas en las siguientes categorías:
• Aplicaciones de usuario - Estas son básicamente aplicaciones regulares, escritas
en un lenguaje convencional de programación o en algún lenguaje propietario,
en cualquier caso el lenguaje necesita acoplarse con un sub-lenguaje apropiado
para el manejo de datos.
• Aplicaciones provistas por terceros (también llamadas herramientas). El
propósito fundamental de estas herramientas es asistir en el proceso de crear y
ejecutar otras aplicaciones. Por ejemplo, una herramienta de terceros sería un
procesador de queries, cuyo propósito sería permitir al usuario final realizar
queries libres sobre la base de datos. Estas herramientas de terceros pueden ser
clasificadas de la siguiente forma:
o Lenguajes para procesar de consultas. (Query language processors)
o Reporteadores
o Subsistemas de gráficas de negocios
o Spreadsheets
o Procesadores de lenguaje natural
o Paquetes estadísticos
o Herramientas para manejo de copias
o Generadores de aplicaciones
o Otras herramientas de desarrollo de aplicaciones, incluidas las
herramientas case (computer-aided software engineering).

1.3.6 Utilitarios
Son programas diseñados para ayudar al DBA con varias tareas administrativas.
Algunos de estos utilitarios pueden ser los siguientes:
• Programas para carga. Permiten crear una versión inicial de la base de datos
desde uno o más archivos.
• Programas para descargar/recargar. Para descargar la base de datos (o una parte
de ella) para hacer un backup de la información para propósitos de restauración
posterior de la información.
• Programas de reorganización. Para reacomodar los datos en la base de datos,
algunas razones para requerir esto tienen que ver con el rendimiento de las
aplicaciones que utilizan la base de datos.
• Programas estadísticos, para computar varias estadísticas de rendimiento tales
como tamaño de archivos, distribuciones de valores de datos, conteos de I/O,
etc.
• Programas de análisis, para analizar las estadísticas.

1.3.7 Proceso distribuido


El término proceso distribuido significa que múltiples máquinas pueden ser conectadas
juntas dentro de una red de comunicación como una tarea simple de proceso de datos
que realmente involucra varias máquinas en la red. La comunicación entre varias
máquinas es manejada por una extensión del manejador DC.

También podría gustarte