almacenamiento y recuperación de la información 2do semestre 2005

Post on 21-Jan-2016

38 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Almacenamiento y Recuperación de la Información

2do Semestre 2005Wenceslao Palma M. <wpalma@inf.utfsm.cl>

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

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.

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.

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);

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.

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.

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.

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.

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.

Representación de DatosRegistros

• Registros de Largo Fijo

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

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

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.

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

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

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

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.

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.

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.

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.

Representación de DatosRegistros de Largo Variable

Campo de Distintos Tipos:

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

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.

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);}

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

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.

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

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)

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

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.

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).

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

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

Representación de DatosOrganización de Bloques en Archivos

Representación de DatosOrganización de Bloques en Archivos

• Asignación Indexada.

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.

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.

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.

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.

FIN

top related