Vous êtes sur la page 1sur 25

Universidad de Extremadura Centro Universitario de Mrida Departamento de Sistemas Informticos y Telemticos rea de Lenguajes y Sistemas Informticos

Tema 1. Conceptos bsicos sobre el almacenamiento de informacin

Estructuras de Almacenamiento de la Informacin Curso 2010/2011

Situacin del tema


N Temario terico
Presentacin

H.
1

I
II

Conceptos bsicos sobre el almacenamiento de informacin


Organizacin de ficheros indexados

8
10 6 5

III Organizacin de ficheros directos: dispersin IV Organizacin de ficheros secuenciales: tratamiento de grandes ficheros

ndice y programacin
Conceptos bsicos sobre el almacenamiento de inf.
1
2 3 4 5 6

H.
0,5
1,5 2,5 3 0,5

Introduccin
Jerarqua de almacenamiento Dispositivos de almacenamiento. Discos Gestin de E/S. El sistema de ficheros orientado al almacenamiento El sistema de ficheros orientado a tuplas Organizacin de ficheros

5. El SF orientado a tuplas
1. 2. 3. 4. Introduccin Jerarqua de almacenamiento Dispositivos de almacenamiento. Discos Gestin de E/S. El sistema de ficheros orientado al almacenamiento
4.1 Introduccin 4.2 El sistema de ficheros bsico 4.3 Objetos y operaciones del SF bsico 4.4 Asignacin de espacio 4.5 Gestin del buffer

5. El sistema de ficheros orientado a tuplas


5.1 Introduccin 5.2 Las pginas. Organizacin interna 5.3 Administracin del espacio libre en ficheros 5.4 Representacin fsica de los registros

6. Organizacin de ficheros

5.1 Introduccin
Control de bloque fsico Cabecera de bloque Cabecera Directorio Fin de bloque

Datos

Registros = Tuplas

Organizaciones de ficheros

Pgina
El SFOT gestiona tuplas almacenadas en pginas de manera independiente del almacenamiento
Sistema de Ficheros orientado a tuplas (SFOT)

Gestin de buffer

Sistema de Ficheros orientado al almacenamiento (SFOA)

5.2 Organizacin de las pginas


Las pginas deben estructurarse de tal manera que el SFOT sea capaz de almacenar y borrar tuplas fcilmente

Estructura genrica de una pgina


Cabecera Tupla 1 Tupla 3 Tupla 2 Tupla 4
Crecimiento de tuplas

Cabecera Tuplas

ESPACIO LIBRE
Crecimiento del directorio

Directorio

Comienzo del directorio

5.2 Organizacin de las pginas


Implementacin de una pgina
Tipos usados typedef struct { FILENO fileno ; uint pageno ; } PAGEID, *PAGEIDP ;
Cabecera Tupla1 Tupla2

Tupla3

Tupla4

ESPACIO LIBRE Crecimiento del directorio Comienzo del directorio

enum PAGE_TYPE {DATA, INDEX, FREESPACE, DIRECTORY, CLUSTER, TABLE} enum PAGE_STATE {VALID, INVALID, SHADOW}

Directorio de pgina struct { char not_needed[PAGESIZE] ; uint offset_in_page[] ;


} PAGE_DIR, * PPAGE_DIR ;

/* definimos una pgina completa */ /* definimos el directorio al final, pero el ndice del array crece negativamente */

5.2 Organizacin de las pginas


Implementacin de una pgina
typedef struct { PAGEID PAGE_TYPE OBJID LSN PAGEID PAGEID PAGE_STATE int int pageid ; page_type ; object_id ; safe_up_to ; previous ; next ; status ; no_entries ; unused ; Cabecera

/* identificador interno del objeto */ /* log serial number */ /* anterior si estn encadenadas */ /* siguiente */

/* nmero de entradas en directorio */ /* nmero de bytes no usados y no contiguos con el espacio libre */ int freespace ; /* nmero de bytes libres contiguos */ char stuff[] ; /* otra informacin que no nos interesa */ } PAGE_HEADER, * PAGE_PTR ;

5.2 Organizacin de las pginas


Operaciones en una pgina
Insercin:
Si tamao tupla < freespace, insertar al final

Si tamao tupla < freespace+unused, compactar e insertar al final


Y en cualquier caso aadir entrada al directorio

Borrado:
Se aade su espacio que ocupaba la tupla al unused Generalmente, si unused+freespace > umbral, se compacta

5.2 Organizacin de las pginas


Operaciones en una pgina
Actualizar cabecera no_entries freespace unused
ESPACIO LIBRE

Cabecera Tupla 1 Tupla 3

Tupla 2 Tupla 4

Comienzo del directorio

5.2 Organizacin de las pginas


Operaciones en una pgina
Acualizacin:
Si el tamao de la tupla disminuye se aade el espacio liberado al unused y la tupla permanece en el mismo sitio Si el tamao de la tupla aumenta se procede como en un borrado seguido de una insercin. Si no hubiese suficiente espacio en esa misma pgina hay dos posibilidades: - llevar la tupla completa a otra pgina - mantener una parte de la tupla en esta pgina y el resto en otra pgina

5.3 Administracin del espacio libre en ficheros


El concepto de fichero con el que trabajaremos
Secuencia de pginas de tamao fijo numeradas a partir de 0 Pgina de datos 0 1 2 3 4 5 ... Pgina cabecera, con informacin administrativa
Nombre fichero Nmero de pginas asignadas Informacin acerca de espacio libre ...

5.3 Administracin del espacio libre en ficheros


Mecanismos para la gestin del espacio libre
Pginas de control de espacio libre
Array en pginas predefinidas con una entrada por pgina que nos indica el espacio libre en esa pgina

Si caben e entradas de este tipo por pgina y el fichero tiene P pginas, se necesitarn F pginas de espacio libre, donde F*e>=P-F
Cada pgina de control de espacio libre va seguida de las pginas a las que controla as se permite el crecimiento del fichero
0
f2 f5 f8 f11 f14 f17 f3 f6 f9 f12 f15 f18 f4 f7 f10 f13 f16 f19

19

...

f21 f24 f27 f30 f33 f36

f22 f25 f28 f31 f34 f37

f23 f26 f29 f32 f35 f38

21

....

5.3 Administracin del espacio libre en ficheros


Mecanismos para la gestin del espacio libre
Puntero al lugar de insercin a la lista de pginas vacas
En la cabecera del fichero (o en catlogo) se mantiene la informacin de espacio libre mediante dos apuntadores: - uno a la siguiente pgina donde puede realizarse una insercin - otro a una lista de pginas vacas Necesita menos espacio administrativo que el anterior pero proporciona informacin menos exacta y, por tanto, es menos verstil. Slo til si el orden de las tuplas no importa.

19

20

21

Inserta Vacas

...

....

5.4 Representacin fsica de tuplas


Cmo se gestionan los campos de una tupla?
Catlogo o diccionario de datos: mantiene informacin acerca de los
campos de un fichero y sus caractersticas, proporcionada en el momento de la creacin, as como informacin derivada.
Relaciones

R1
ALUMNO

Atributos Nombre DNI Direccin .....

R3 R4 R5

Tipo
Longitud Desplaz. ....

Numrico
9 30 .... C/ Parras, 3 ...

Tupla fsica

Pepe

67432104

5.4 Representacin fsica de tuplas


Los mtodos que se utilicen para representar las tuplas deben dar facilidades para:
Recuperacin e insercin Manejo de campos fijos y variables Aadido de nuevos campos Manejo de nulos Modificaciones con cambio de tamao

Informacin general que precede a cada tupla


Id. Relacin o fichero Id. tupla Suele ir seguido por: n atributos o longitud de la tupla

N pgina + desplazamiento N secuencial dentro del fichero ...

5.4 Representacin fsica de tuplas


Tcnicas de representacin de tuplas cortas
Campos y tupla de longitud fija Mezcla de campos fijos y variables Atributos autoidentificados Puntero de prefijos a los campos Estructura consolidada

Ejemplo
Supongamos que queremos representar una tupla con 6 campos: C1, de longitud fija = 3 C2, de longitud variable, como mximo 10 C3, de longitud fija = 4 C4, de longitud fija = 2 C5, de longitud fija = 4 C6, de longitud variable, como mximo 8

5.4 Representacin fsica de tuplas


Campos y tupla de longitud fija
Todos los campos se representan como de longitud fija Se almacenan en el orden en que fueron definidos No se usa informacin administrativa a nivel de atributo Para el acceso a un atributo se usa el offset (desplaz.) Desventaja: si campos reales son variables o nulos

Inf. de N campos identificacin N C1 C2 (10) C3 C4 C5 C6(8)

5.4 Representacin fsica de tuplas


Mezcla de campos fijos y variables
Cada campo de longitud variable lleva un byte delante que indica su longitud Se almacenan en el orden en que fueron definidos Para el acceso a un campo se utiliza el offset de los campos fijos y se aade en tiempo de ejecucin la longitud de los campos variables Campos nulos se almacenan con longitud 0
Inf. de Longitud tupla identificacin
L C1 3 C2 C3 C4 C5 5 C6

5.4 Representacin fsica de tuplas


Atributos autoidentificados
Inf. de identificacin Longitud tupla L I1 3 C1 I2 3 C2 I3 4 C3 I4 2 C4 I5 4 C5 I6 5 C6

Cada atributo va precedido de un campo de longitud y un identificador de atributo, es decir, todos se almacenan como variables No es preciso que se almacenan en el orden en que fueron definidos Pueden aadirse atributos nuevos sin que afecte a las tuplas previamente almacenadas Campos nulos no se almacenan Desventaja: Interpretacin de las estructuras en tiempo de ejecucin y redundancia para campos fijos

5.4 Representacin fsica de tuplas


Puntero de prefijos a los campos
Inf. de N de campos identificacin N C1 C2 C3 C4 C5 C6

Se usa un array que apunta al final de cada atributo Los atributos se almacenan en el orden en que fueron definidos Pueden aadirse atributos nuevos sin que afecte a las tuplas previamente almacenadas Campos nulos no se almacenan; su puntero apunta al mismo sitio que el anterior Desventaja: Cierta redundancia al almacenar los punteros de los campos fijos ya que sus desplazamientos siempre son los mismos respecto al campo anterior

5.4 Representacin fsica de tuplas


Estructura consolidada
N de Inf. de campos fijos identificacin F V N de campos variables C1 C3 C4 C5 C2 C6

Despus de la identificacin de tupla se aaden dos campos: nmero de atributos fijos y nmero de atributos variables Primero se almacenan los campos de longitud fija, despus un array con los punteros al final de los variables y a continuacin los variables Los campos se almacenan en distinto orden a como se definieron: en el catlogo debe existir informacin de la posicin real de almacenamiento

5.4 Representacin fsica de tuplas


Tcnicas de representacin de tuplas largas
Una tupla puede ser larga si tiene muchos atributos o los atributos son muy largos

Pginas de mayor tamao Pginas separadas para los atributos largos


Cabecera Tupla Cabecera Atributo largo

El atributo puede estar en una pgina de mayor tamao, otro fichero u otro tipo de almacenamiento Adecuado para atributos con un tipo diferente al resto

Pgina P

Pgina K

5.4 Representacin fsica de tuplas


Tcnicas de representacin de tuplas largas
Pginas de desbordamiento
Cabecera Tupla larga Pgina P Cabecera Pgina P Cabecera Cabecera

Vaco Pgina P

Otras tuplas

La tupla se expande en otras pginas que pueden ser del mismo u otro tamao

Adecuado si la tupla suele recuperarse como un todo


Pgina P+1

5.4 Representacin fsica de tuplas


Tcnicas de representacin de tuplas largas
Fragmentacin de tuplas
Cabecera Tupla larga 1 parte de tupla Pgina P Pgina K Pgina M Cabecera 2 parte Cabecera 3 parte

La tupla se fragmenta en varios trozos, cada uno de los cuales puede ir a una pgina diferente. Estas pginas son pginas normales del fichero.

Los distintos fragmentos estn doblemente enlazados

Vous aimerez peut-être aussi