Almacenamiento y Recuperación de la Información 2do Semestre 2005

38
Almacenamiento y Recuperación de la Información 2do Semestre 2005 Wenceslao Palma M. <wpalma @inf. utfsm . cl > www.inf.utfsm.cl/~wpalma/ari

description

Almacenamiento y Recuperación de la Información 2do Semestre 2005 Wenceslao Palma M. < [email protected] > www.inf.utfsm.cl/~wpalma/ari. Representación de Datos. Organización Física de los Datos. - PowerPoint PPT Presentation

Transcript of Almacenamiento y Recuperación de la Información 2do Semestre 2005

Page 1: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Almacenamiento y Recuperación de la Información

2do Semestre 2005Wenceslao Palma M. <[email protected]>

www.inf.utfsm.cl/~wpalma/ari

Page 2: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosOrganización Física de los Datos

• Representación y organización física sobre un medio de almacenamiento (índices, punteros, listas, etc.).

• Representa la visión del administrador de los archivos (o de la base de datos, DBA), que es dependiente del dispositivo.

• El archivo es visto como una colección de bloques en memoria secundaria.

Page 3: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosOrganización Física de los Datos

Operaciones a considerar:

• Controlar accesos.

• Asignar y administrar buffers.

• Crear y mantener directorios.

• Crear y mantener tablas en la memoria principal.

Page 4: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosElementos de Datos

• Pregunta a responder: ¿cómo se registran en el disco los diferentes tipos de datos, al momento de declaraciones como:

create table ActorDeCine( nombre CHAR(30), domicilio VARCHAR(255), sexo CHAR(1), fecha_nacimiento DATE);

Page 5: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosElementos de Datos

Tipo CHAR(n): este string de largo fijo se representa mediante un arreglo de n bytes.

• Si el valor guardado tiene un largo menor, se completa el espacio con algún carácter especial.

Page 6: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosElementos de Datos

Tipo VARCHAR(n): este string de largo variable se puede representar de dos formas:

• Largo más contenido: asignando un arreglo de (n+1) bytes, siendo el primero de éstos el largo real del dato. Bytes no usados se ignoran.

Page 7: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosElementos de Datos

• String terminado en Nulo: asigna, también, un arreglo de (n+1) bytes, pero sin registrar el largo, sino que tras el último byte de dato válido, se coloca un carácter nulo.

Page 8: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosElementos de Datos

Tipo DATE: representable mediante un string de largo fijo (típicamente CHAR(10).• Ejemplo: 15-04-2004 se presenta con 10 caracteres, uno por cada dígito más uno por cada guión.

Una idea similar se sigue con las horas, expresadas como HH:MM:SS, o similar.

Page 9: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosElementos de Datos

En la mayoría de los otros tipos de datos, en particular los BIT(n), booleanos y enumerativos se representan con tantos bytes como sean suficientes para contener el total de bits presentes, lo que normalmente significa que el último de los bytes no se usa totalmente.

Page 10: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros

• Registros de Largo Fijo

struct deposito{ char nombre_sucursal[20]; int número_cuenta; char nombre_cliente[20]; float saldo;};

Page 11: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Fijo

Almacenamiento secuencial:

Registro 0 Perryridge 102 Hayes 400 Registro 1 Round Hill 305 Turner 350 Registro 2 Mianus 215 Smith 700 Registro 3 Downtown 101 Johnson 500 Registro 4 Redwood 222 Lindsay 700 Registro 5 Perryridge 201 Williams 900 Registro 6 Brighton 217 Green 750 Registro 7 Downtown 110 Peterson 600 Registro 8 Perryridge 218 Lyle 700

Page 12: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Fijo

Almacenamiento secuencial: problemas...

• Difícil la eliminación de un registro...marca de borrado o llenar con otro registro.

• A menos que el tamaño del bloque sea un múltiplo del registro, algunos registros no podrán almacenarse completamente en un bloque.

Page 13: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Fijo

Almacenamiento secuencial:

Eliminación del Registro 2, con corrimientos de datos

Registro 0 Perryridge 102 Hayes 400Registro 1 Round Hill 305 Turner 350Registro 3 Downtown 101 Johnson 500Registro 4 Redwood 222 Lindsay 700Registro 5 Perryridge 201 Williams 900Registro 6 Brighton 217 Green 750Registro 7 Downtown 110 Peterson 600Registro 8 Perryridge 218 Lyle 700

Page 14: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Fijo

Almacenamiento secuencial:

Eliminación del Registro 2, con traslado del registro 8

Registro 0 Perryridge 102 Hayes 400Registro 1 Round Hill 305 Turner 350Registro 8 Perryridge 218 Lyle 700Registro 3 Downtown 101 Johnson 500Registro 4 Redwood 222 Lindsay 700Registro 5 Perryridge 201 Williams 900Registro 6 Brighton 217 Green 750Registro 7 Downtown 110 Peterson 600

Page 15: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Fijo

Almacenamiento secuencial, con uso de punteros:

Eliminación de los Registros 1, 4 y 6.

EncabezadoRegistro 0 Perryridge 102 Hayes 400Registro 1Registro 2 Mianus 215 Smith 700Registro 3 Downtown 101 Johnson 500Registro 4Registro 5 Perryridge 201 Williams 900Registro 6Registro 7 Downtown 110 Peterson 600Registro 8 Perryridge 218 Lyle 700

Page 16: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Fijo

Encabezados:

• El esquema del registro, o bien un puntero al lugar donde el SABD almacena el esquema para este tipo de registro.• El largo del registro.• Estampillas de tiempo que indican el momento que el registro fue modificado/leído por última vez.

Page 17: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Fijo

Encabezados: la base de datos mantiene información del esquema, rescatada del create table, con:• Los atributos de la relación, y sus tipos.• El orden en el cual aparecen en la tupla.• Restricciones sobre los atributos y la relación misma.

Page 18: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Variable

Campo de Largo Variable:• Por lo general, se guardan al final del registro.• En el encabezado se maneja un puntero al inicio de cada campo de este tipo.

Page 19: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Variable

Campo Repetitivo:• Una alternativa es usar un caracter de separación para delimitar los valores repetitivos del campo, y otro separador para indicar el término del campo.

• Otra alternativa es usar un puntero a la primera ocurrencia del campo, más un número que indique la cantidad de veces de la repetición.

Page 20: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Variable

Campo de Distintos Tipos:

• Cada tipo es precedido por un campo indicador de tipo.

Page 21: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Variable

Campo Opcional:

• Si el número total de campos del registro es alto, pero el número de campos fijos es bajo, se puede incluir una secuencia de duplas <nombre del campo, valor del campo>, en vez de guardar sólo los valores.

• La secuencia anterior puede considerar un número de campo, en lugar del nombre + un esquema para mantener una correspondencia entre los campos y dichos números.

Page 22: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Variable

Grupo Repetitivo:

struct deposito{ int número_cuenta; char nombre_cliente[20]; float saldo;};

struct lista-deposito{ char nombre_sucursal[20]; deposito set(info_cuenta);}

Page 23: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Variable

Grupo Repetitivo: uso de marca especial como fin de registro.

Perryridge 102 Hayes 400 201 Williams 900 218 Lyle 700 Round Hill 305 Turner 350

Mianus 215 Smith 700 Downtown 101 Johnson 500 110 Peterson 600 Redwood 222 Lindsay 700 Brighton 217 Green 750

Page 24: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Variable

Grupo Repetitivo: uso de marca especial como fin de registro ….problemas!!

• No es fácil volver a usar el espacio que ocupaba un registro que se eliminó.

• En general, los registros no disponen de espacio para crecer.

por lo tanto, no se usa normalmente.

Page 25: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Variable

Grupo Repetitivo: Espacio Reservado.

Perryridge 102 Hayes 400 201 Williams 900 218 Lyle 700Round Hill 305 Turner 350

Mianus 215 Smith 700 Downtown 101 Johnson 500 110 Peterson 600 Redwood 222 Lindsay 700 Brighton 217 Green 750

Page 26: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Variable

Perryridge 102 Hayes 400Round Hill 305 Turner 350

Mianus 215 Smith 700Downtown 101 Johnson 500Redwood 222 Lindsay 700

201 Williams 900Brighton 217 Green 750

110 Peterson 600218 Lyle 700

Grupo Repetitivo: Punteros (básico)

Page 27: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosRegistros de Largo Variable

Grupo Repetitivo: Punteros con dos archivos.

Perryridge 102 Hayes 400Round Hill 305 Turner 350

Mianus 215 Smith 700Downtown 101 Johnson 500Redwood 222 Lindsay 700Brighton 217 Green 750

201 Williams 900110 Peterson 600218 Lyle 700

Page 28: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosOrganización de Registros en Bloques

• Factor de bloqueo (fb):

tamaño del bloque / tamaño del registro

• En general, el cuociente no entrega un valor exacto. Luego, se usa la fórmula:

tamaño del bloque / tamaño del registro

• Este factor permite saber el número de bloques del archivo.

Page 29: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosOrganización de Registros en Bloques

Está la posibilidad de usar el espacio libre que queda porque el tamaño del bloque no es múltiplo del tamaño del registro, mediante registros atravesados (SPAN).

Page 30: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosOrganización de Registros en Bloques

Bloque i Registro 1 Registro 2 Registro 3

Bloque i+1 Registro 4 Registro 5 Registro 6

Registros no Atravesados

Bloque i Registro 1 Registro 2 Registro 3 Registro 4a

Bloque i+1 Registro 4b Registro 5 Registro 6 Registro 7

…Registros Atravesados (Registros Span)

Registro 1 Registro 2 Registro 3

Registro 4 Registro 5 Registro 6

Registro 1 Registro 2 Registro 3 Registro 4a

Registro 4b Registro 5 Registro 6 Registro 7

Page 31: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosOrganización de Bloques en Archivos

• Asignación Contigua.

• Asignación Enlazada.

bloque bloque bloque bloque 1 2 3 4

bloque bloque bloque bloque 1 2 3 4

Page 32: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosOrganización de Bloques en Archivos

Page 33: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosOrganización de Bloques en Archivos

• Asignación Indexada.

Page 34: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosOrganización de Bloques en Archivos

Un archivo tiene un encabezado o descriptor de archivo con:

• Información para determinar las direcciones de disco de los bloques del archivo.

• Descripción de los formatos de registros: largo de registro, orden de los campos en el registro, separadores.

Page 35: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosBLOBs

• Un dato de tipo BLOB representa un dato de gran tamaño.

• Ejemplos comunes de datos BLOB son las imágenes (GIF, JPEG), películas en formato MPEG y el audio.

Page 36: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosBLOBs

Almacenamiento:• Debe almacenarse como una secuencia de bloques, comúnmente asignados consecutivamente en un cilindro para ser recuperado fácilmente.• No obstante puede ser almacenado como una lista enlazada de bloques.

Page 37: Almacenamiento y Recuperación de la Información 2do Semestre 2005

Representación de DatosBLOBs

Almacenamiento: (cont.)• Por otro lado, puede requerirse que el BLOB sea recuperado rápidamente, de modo que guardarlo en un solo disco resulte insuficiente.• Luego, será necesario particionar el BLOB entre varios discos, alternando sus bloques entre ellos.• Así, varios bloques del BLOB pueden ser leídos a la vez, aumentando la tasa de recuperación por un factor similar al número de discos de la partición.

Page 38: Almacenamiento y Recuperación de la Información 2do Semestre 2005

FIN