Professional Documents
Culture Documents
7 Archivos
7 Archivos
Esquema Lógico
Base de Datos
Tipos de almacenamiento
Los medios de almacenamiento forman una jerarquía de almacenamiento que incluye dos
categorías principales:
Almacenamiento principal o primario. Incluye los medios de almacenamiento en los que la CPU
(unidad central de procesamiento) puede operar directamente, como la memoria RAM.
Acceso rápido
Capacidad limitada
Costo alto
Almacenamiento volátil
Almacenamientos secundario. Incluye, entre otros, los discos disco duros. La CPU no puede
procesar directamente los datos almacenados en éste; primero deben copiarse en el
almacenamiento principal.
Acceso más lento
Mucha capacidad
Costo reducido
Almacenamiento permanente
Almacenamiento de las BD
Los datos se intercambian entre los discos de almacenamiento y la memoria principal cuando sea necesario.
Como el intercambio de datos con el disco es lento comparado con la velocidad de la CPU, es fundamental
que el SGBD estructure los datos para localizarlos de la forma más eficaz.
Transferencia de datos
La transferencia de datos entre la memoria principal y el disco se realiza en
unidades de bloques de disco
Un disco magnético está estructurado en pistas
Una pista está dividida en sectores
Un bloque de disco consiste en un número fijo de sectores contiguos.
El tamaño del bloque lo establece el sistema operativo al formatear el disco y no se
puede cambiar dinámicamente
Registros de longitud fija: todos los registros del archivo tiene exactamente el mismo tamaño en bytes.
• Cada registro de Empleado tiene una longitud de 73 bytes R es el tamaño en bytes de cada registro
• El archivo Empleado tiene un total de 8 registros r es la cantidad de registros del archivo
Registros de longitud variable: los registros del archivo tienen tamaños diferentes.
Longitud variable
Asignación contigua: los bloques de un archivo se asignan a un conjunto de bloques de disco consecutivos.
Desperdicio de espacio
La lectura del archivo entero es mucho más rápida Tabla de asignación de archivos
Número de búsquedas y tiempo de búsqueda mínimos
para acceder a archivos contiguos
Se hace más complejo expandir el archivo
Asignación enlazada: los bloques están dispersos en cualquier parte del disco; cada bloque del archivo
contiene un puntero al siguiente bloque del archivo.
No hay desperdicio de espacio
La expansión del archivo es más sencilla
La lectura del archivo entero más lenta
Organización de los archivos
Cabecera de Archivo
Una cabecera de archivo contiene información necesaria para los programas que tienen acceso
a los registros del archivo.
La información de cabecera:
permite determinar las direcciones en el disco de los bloques del archivo y
contiene la descripción de formato de los registros
a) Archivos con registros no extendidos y de longitud fija:
longitud y orden de los campos dentro del registro
b) Archivos con registros de longitud variable:
marcas de tipo de campo (campos opcionales)
caracteres separadores entre los campos
marcas de tipo de registro (registros de tipo mixto)
se utiliza cuando se necesitar buscar registros dentro del archivo en disco
Operaciones con archivos
1) Operaciones de RECUPERACIÓN DE DATOS
No alteran los datos del archivo, sólo localizan ciertos registros para poder examinar y procesar su contenido.
La localización o búsqueda de un registro dentro de un archivo en disco se realiza de la siguiente manera:
Se copian los bloques en los búfers de la memoria principal
Los programas buscan el registro deseado, dentro de los búfers, utilizando la información de la cabecera del archivo.
Búsqueda Lineal: se examina bloque por bloque hasta encontrar el registro o hasta haber buscado en todos los bloques
del archivo sin encontrarlo.
Procedimiento costoso, puede requerir mucho tiempo si el archivo es grande
Mejor de los casos: el registro se encuentra en el primer bloque
Peor caso: se examinan los b bloques del archivo
Caso promedio: se examinan b/2 bloques
Búsqueda Binaria: los valores de búsqueda se encuentran ordenados; el conjunto de valores se divide en 2 partes
y el valor central se compara con el valor del registro que se busca
Constituye una mejora sobre la búsqueda lineal
Mejor de los casos: el registro se encuentra en el primer bloque
Peor caso: se examinan los log2 (b) bloques del archivo
Caso promedio: se examinan log2 (b)/2 bloques
Método de Acceso
Conjunto de operaciones para recuperar y/o actualizar los registros del archivo
Localización
Inserción
Modificación
Eliminación
Se deberá elegir una organización que permita efectuar de manera eficiente las operaciones requeridas
sobre el archivo Mejor combinación entre la organización del archivo y el método de acceso.
Métodos para organizar los registros de un archivo
Según la forma de almacenamiento:
Archivo de registros no ordenados
Archivo de registros ordenados
Archivo hash
r3
Archivos de registros desordenados
r0
La búsqueda de un registro dado implica una búsqueda lineal, r1
b0
leyendo bloque por bloque. En promedio se leen b/2 bloques. r2
r3
Para leer los registros en orden según un campo se debe crear una r0
copia ordenada de estos registros. La ordenación de un archivo r1
b1
voluminoso es costosa. Se emplea una ordenación externa. r2
r3
Para archivos con registros de longitud fija, bloques no extendidos
y almacenamiento contiguo, se puede acceder fácilmente a r0
r1
cualquier registro por su posición relativa en el archivo: r2
b2
Desventaja del direccionamiento calculado No garantiza que a valores distintos de K se obtengan diferentes
direcciones
Archivo Hash (acceso directo)
Colisión: ocurre cuando el valor de un registro con clave hash que se quiere insertar da una
dirección que ya contiene un registro y debe ser ubicado en alguna otra posición.
Hallar otro lugar para el nuevo registro cuando se produce una colisión se llama “resolución
de colisiones”:
Direccionamiento abierto: A partir de la dirección que da la transformación de la clave hash, el
programa busca en las direcciones subsecuentes hasta que encuentra la primera posición vacía.
Encadenamiento: En este caso se tienen varias direcciones (bloques) aparte donde se guardarán las
colisiones. En la primera posición vacía de los bloques se guarda la colisión, y se asigna un puntero
hacia esta posición en el bloque que debería haber ocupado. Se mantiene una lista vinculada de
colisiones.
Hash múltiple: se aplica una segunda conversión clave-dirección. Si da una nueva colisión se aplica
una tercera ó alguno de los 2 métodos para colisiones descriptos anteriormente.
Archivo Hash (acceso directo)
■ Direccionamiento abierto: A partir de la dirección que da la transformación de la clave hash, el programa
busca en las direcciones subsecuentes hasta que encuentra la primera posición vacía.
Sea una tabla hash con 6 cubetas de 1 registro cada una. Cada registro tiene los siguientes campos: Nombre,
Descripción, Carrera. La función hash se llama “h”. Se desea almacenar los registros siguientes y en caso de
colisión tratar los desbordes con direccionamiento abierto (o derrame consecutivo):
Archivo hash
Nombre Dirección hash
0 Física
Paradigmas h=2
1 Química
Algoritmos y estr. de datos h=3
2 Paradigmas
Álgebra h=5
colisión
3 Algoritmos y estr. de datos
Base de datos h=3
4 Base de datos
Física h=0
colisión 5 Álgebra
Química h=3