tema 9. almacenamiento y estructura de archivoss3.amazonaws.com/uned/apuntes/tema9.pdftema 9....

23
Tema 9. Almacenamiento y estructura de archivos Juan Ignacio Rodr´ ıguez de Le ´ on Resumen Visi ´ on general de los medios f´ ısicos de almacenamiento. Discos magn´ eticos. RAID. Almacenamiento terciario. Acceso al almacenamien- to. Organizaci ´ on de los archivos. Organizaci´ on de los registros en archivos. Almacenamiento con diccionarios de datos. Almacenamien- to para las bases de datos orientadas a objetos. ´ Indice 1. Los medios f´ ısicos de almacenamiento 3 2. Los discos magn ´ eticos 4 2.1. Caracter´ ısticas f´ ısicas de los discos ............... 4 2.2. Medidas del rendimiento de los discos ............. 5 2.3. Optimizaci ´ on del acceso a los bloques del disco ........ 6 3. RAID 7 3.1. Mejora de la fiabilidad mediante la redundancia ....... 8 3.2. Mejora del rendimiento mediante el paralelismo ....... 8 3.3. Niveles de RAID ......................... 9 3.3.1. RAID 0 ........................... 9 3.3.2. RAID 1 ........................... 10 3.3.3. RAID 2 ........................... 10 3.3.4. RAID 3 ........................... 11 3.3.5. RAID 4 ........................... 11 3.3.6. RAID 5 ........................... 11 3.3.7. RAID 6 ........................... 12 3.4. Elecci ´ on del nivel RAID adecuado ............... 13 3.5. Aspectos hardware ........................ 14 4. Almacenamiento terciario 14 4.1. Discos ´ opticos ........................... 14 4.2. Cintas magn´ eticas ......................... 15 1

Upload: others

Post on 20-Mar-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

Tema 9. Almacenamiento y estructura dearchivos

Juan Ignacio Rodrıguez de Leon

Resumen

Vision general de los medios fısicos de almacenamiento. Discosmagneticos. RAID. Almacenamiento terciario. Acceso al almacenamien-to. Organizacion de los archivos. Organizacion de los registros enarchivos. Almacenamiento con diccionarios de datos. Almacenamien-to para las bases de datos orientadas a objetos.

Indice

1. Los medios fısicos de almacenamiento 3

2. Los discos magneticos 42.1. Caracterısticas fısicas de los discos . . . . . . . . . . . . . . . 42.2. Medidas del rendimiento de los discos . . . . . . . . . . . . . 52.3. Optimizacion del acceso a los bloques del disco . . . . . . . . 6

3. RAID 73.1. Mejora de la fiabilidad mediante la redundancia . . . . . . . 83.2. Mejora del rendimiento mediante el paralelismo . . . . . . . 83.3. Niveles de RAID . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3.1. RAID 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.3.2. RAID 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.3.3. RAID 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.3.4. RAID 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3.5. RAID 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3.6. RAID 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3.7. RAID 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.4. Eleccion del nivel RAID adecuado . . . . . . . . . . . . . . . 133.5. Aspectos hardware . . . . . . . . . . . . . . . . . . . . . . . . 14

4. Almacenamiento terciario 144.1. Discos opticos . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.2. Cintas magneticas . . . . . . . . . . . . . . . . . . . . . . . . . 15

1

Page 2: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

INDICE 2

5. Acceso al almacenamiento 155.1. Gestor de la memoria intermedia . . . . . . . . . . . . . . . . 165.2. Polıticas para la sustitucion de la memoria intermedia . . . . 16

6. Organizacion de los archivos 186.1. Registros de longitud fija . . . . . . . . . . . . . . . . . . . . . 186.2. Registros de longitud variable . . . . . . . . . . . . . . . . . . 19

6.2.1. Representacion en cadenas de bytes . . . . . . . . . . 196.2.2. Representacion de longitud fija . . . . . . . . . . . . . 20

7. Organizacion de los registros en archivos 217.1. Organizacion de archivos secuenciales . . . . . . . . . . . . . 217.2. Organizacion de archivos en agrupaciones . . . . . . . . . . 22

8. Almacenamiento con diccionarios de datos 22

Page 3: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

1 LOS MEDIOS FISICOS DE ALMACENAMIENTO 3

1. Los medios fısicos de almacenamiento

En la mayor parte de los sistemas informaticos existen diferentes tiposde almacenamiento de datos. Estos medios se pueden clasificar por su coste,por la velocidad con la que se puede acceder a los datos y por su fiabilidad.

Los diferentes medios de almacenamiento pueden organizarse en unajerarquıa de acuerdo con su velocidad y su coste. Los niveles superiores sonde coste elevado, pero rapidos. A medida que se desciende por la jerarquıael coste por bit disminuye, mientras que el tiempo de acceso aumenta.

Un ejemplo de esta jerarquıa podrıa ser el siguiente:

Cache Es la forma de almacenamiento mas rapida y costosa. La memo-ria cache es pequena; su uso lo gestiona el hardware del sistemainformatico.

Memoria principal El medio de almacenamiento utilizado para operar conlos datos disponibles es la memoria principal. Aunque la memoriaprincipal puede contener muchos megabytes de datos, suele ser de-masiado pequena (o demasiado cara) para guardar toda la base dedatos.

Memoria flash Tambien conocida como memoria solo de lectura program-able y borrable electricamente (Electrically Erasable Programmable Read-Only Memory, EEPROM), la memoria flash se diferencia de la memoriaprincipal en que los datos pueden sobrevivir a los fallos del sumin-istro electrico. Las lecturas son aproximadamente iguales a la memoriaprincipal, pero las escrituras suelen ser bastante mas lenta.

Discos magneticos El principal medio de almacenamiento a largo plazo dedatos en conexion es el disco magnetico. Generalmente se guarda eneste tipo de discos toda la base de datos. Para tener acceso a los datoshay que trasladarlos desde el disco a la memoria principal. Despuesde realizar la operacion hay que escribir en el disco los datos que sehan modificado.

El almacenamiento en disco puede aguantar los fallos del suministroelectrico y caıdas del sistema. Los dispositivos de almacenamiento endisco pueden fallar a veces y, en consecuencia, destruir los datos, perotales fallos suelen producirse con mucha menos frecuencia que unacaıda del sistema.

Almacenamiento optico La forma mas popular de almacenamiento opti-co es el disco compacto (Compact Disk, CD), que puede almacenaralrededor de 640 megabytes de datos, y el disco de vıdeo digital (Dig-ital Video Disk, DVD), que puede almacenar 4,7 u 8,5 gigabytes dedatos por cada cara del disco (o hasta 17 gigabytes en un disco dedoble cara).

Page 4: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

2 LOS DISCOS MAGNETICOS 4

Almacenamiento en cinta El almacenamiento en cinta se utiliza principal-mente para copias de seguridad y datos de archivo. Aunque la cintamagnetica es mucho mas barata que los discos, el acceso a los datosresulta mucho mas lento, ya que el acceso es secuencial

Los medios de almacenamiento mas rapidos (por ejemplo, cache ymemoria principal) se denominan almacenamiento primario. Los medios delsiguiente nivel de la jerarquıa (por ejemplo, los discos magneticos) se cono-cen como almacenamiento secundario o almacenamiento en conexion. Los mediosdel nivel inferior de la jerarquıa –por ejemplo, cinta magnetica o discosopticos– se denominan almacenamiento terciario o almacenamiento sin conexion.

Tambien hay que considerar la volatilidad del almacenamiento. El al-macenamiento volatil pierde su contenido cuando se suprime el suministroelectrico del dispositivo. Los datos deben escribirse en almacenamiento novolatil por razones de seguridad.

2. Los discos magneticos

Los discos magneticos constituyen el principal medio de almacenamien-to secundario en los sistemas informaticos modernos. Las capacidades delos discos han estado creciendo alrededor del 50 por ciento anual, pero losrequisitos de las grandes aplicaciones tambien han estado creciendo muyrapido, en algunos casos mas que la tasa de crecimiento de las capacidadesde los discos.

2.1. Caracterısticas fısicas de los discos

Cada plato del disco tiene una forma circular plana. Estan hechos demetal rıgido o de vidrio y estan cubiertos (generalmente por los dos lados)con material magnetico para grabaciones.

Mientras se esta utilizando el disco, un motor lo hace girar a una veloci-dad constante. Hay una cabeza de lectura y escritura ubicada justo encimade la superficie del plato. La superficie del disco se divide a efectos logicosen pistas, que se subdividen en sectores. Un sector es la unidad mınima deinformacion que puede leerse o escribirse en el disco.

Un disco suele contener muchos platos y las cabezas de lectura y escrit-ura de todas las pistas estan montadas en un solo dispositivo denominadobrazo del disco, y se desplazan conjuntamente. El conjunto de los platos deldisco montados sobre un eje y las cabezas montadas en el brazo del disco sedenomina dispositivo cabeza-disco. Dado que las cabezas de todos las platosse desplazan conjuntamente, cuando la cabeza de un plato se halle en lapista i, las cabezas de todos las demas platos tambien se encontraran enla pista i de sus platos respectivos. Por consiguiente, las pistas i-esimas detodos los platos se denominan conjuntamente cilindro i-esimo.

Page 5: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

2 LOS DISCOS MAGNETICOS 5

Los discos se conectan a un sistema informatico o a un controlador medi-ante una conexion de alta velocidad. En los sistemas de disco modernos, lasfunciones de menor nivel del controlador de disco, como el control del bra-zo, el calculo y verificacion de la comprobacion de suma y la reasignacionde los sectores danados se implementan en la unidad de disco.

Ejemplos de interfaces de conexion a disco son la interfaz ATA (AT At-tachment) (que es una version mas rapida que la interfaz electronica de dis-positivos integrados [IDE, Integrated Drive Electronics] usada antiguamenteen los PC de IBM) y la interfaz SCSI (Small Computer-System InterconnectInterface, pronunciado ((escasi))).

Por lo general los discos se conectan directamente al controlador medi-ante cables, pero tambien pueden estar situados en una ubicacion remota yconectarse mediante una red de alta velocidad. En una arquitectura de redde area de almacenamiento (SAN, Storage-Area Network), se conecta un grannumero de discos mediante una red de alta velocidad a varias computa-doras servidoras. Los discos generalmente se organizan localmente usandouna tecnica de organizacion del almacenamiento denominada “disposicionredundante de discos independientes” (RAID, Redundant Array of Indepen-dent Disks), que se describira en la seccion 3.

2.2. Medidas del rendimiento de los discos

Las principales medidas de la calidad de un disco son la capacidad, eltiempo de acceso, la velocidad de transferencia de datos y la fiabilidad.

El tiempo de acceso es el tiempo transcurrido desde que se formula unasolicitud de lectura o de escritura hasta que comienza la transferencia dedatos. Esto incluye el tiempo invertido en desplazar el brazo sobre la pistacorrecta y esperar hasta que el sector aparezca bajo el brazo por accion dela rotacion del disco. El tiempo para volver a ubicar el brazo se denominatiempo de busqueda y aumenta con la distancia que deba recorrer el brazo

El tiempo medio de busqueda es la media de los tiempos de busqueda medi-do en una sucesion de solicitudes aleatorias (uniformemente distribuidas)

Una vez ha tenido lugar la busqueda, el tiempo que se pasa esperando aque el sector al que hay que tener acceso aparezca bajo la cabeza se denominatiempo de latencia rotacional. De media hace falta la mitad de una rotacion deldisco para que aparezca bajo la cabeza el comienzo del sector deseado. Portanto, el tiempo de latencia medio del disco es la mitad del tiempo empleadoen una rotacion completa del disco.

Una vez que se ha ubicado bajo la cabeza el primer sector de datos,comienza su transferencia. La velocidad de transferencia de datos es la velocidada la que se pueden recuperar o guardar datos en el disco.

La ultima de las medidas de los discos utilizadas con frecuencia es eltiempo medio entre fallos, que es una medida de la fiabilidad del disco. Eltiempo medio entre fallos de un disco (o de cualquier otro sistema) es la

Page 6: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

2 LOS DISCOS MAGNETICOS 6

cantidad de tiempo que, de media, se puede esperar que el sistema funcionede manera continua sin tener ningun fallo.

2.3. Optimizacion del acceso a los bloques del disco

Las solicitudes de E/S especifican una direccion del disco a la que hay quehacer referencia; esa direccion esta en la forma de un numero de bloque. Unbloque es una secuencia continua de sectores de una sola pista de un plato.

Los datos se transfieren entre el disco y la memoria principal en unidadesde bloques. Los niveles inferiores del gestor del sistema de archivos trans-forman las direcciones de los bloques en cilindro, superficie y numero desector del nivel de hardware.

Dado que el acceso a los datos del disco es varios ordenes de magnitudmas lento que el acceso a la memoria principal, se ha prestado muchaatencion a la mejora de la velocidad de acceso a los bloques del disco. Lamas habitual, el uso de memorias intermedias o caches se explica en laseccion 5.1. Otras tecnicas son:

Planificacion Si hay que transferir varios bloques de un cilindro desde eldisco a la memoria principal puede que se logre disminuir el tiempo deacceso solicitando los bloques en el orden en el que pasaran por debajode las cabezas. Si los bloques deseados se hallan en cilindros diferentesresulta ventajoso solicitar los bloques en un orden que minimice elmovimiento del brazo del disco. Los algoritmos de planificacion delbrazo del disco intentan ordenar el acceso a las pistas de manera quese aumente el numero de accesos que puede procesarse.

Los controladores de disco suelen realizar la labor de reordenar lassolicitudes de lectura para mejorar el rendimiento, dado que conocenperfectamente la organizacion de los bloques del disco, la posicionrotacional de los platos y la posicion del brazo.

Organizacion de archivos Para reducir el tiempo de acceso a los bloquesse pueden organizar los bloques del disco de una manera que secorresponda fielmente con la forma en que se espera tener accesoa los datos. Por ejemplo, si se espera tener acceso secuencial a unarchivo, en teorıa se deberıan guardar secuencialmente en cilindrosadyacentes todos los bloques del archivo

Los sistemas operativos modernos ocultan a los usuarios la organi-zacion del disco y gestionan la asignacion de manera interna. Sinembargo, en el transcurso del tiempo, un archivo secuencial puedequedar fragmentado; es decir, sus bloques pueden quedar dispersospor el disco. Para reducir la fragmentacion, el sistema puede reubicarlos bloques de cada archivo de forma que queden contiguos.

Page 7: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

3 RAID 7

Memoria intermedia de escritura no volatil El rendimiento de las aplica-ciones de bases de datos sensibles a las actualizaciones, como lossistemas de procesamiento de transacciones, dependen mucho de lavelocidad de escritura en el disco. Se puede utilizar memoria no volatilde acceso aleatorio (RAM no volatil) para acelerar la escritura en eldisco de manera drastica. El contenido de la RAM no volatil no sepierde durante un fallo del suministro electrico.

La idea es que, cuando se solicita que se escriba un bloque en el disco,el controlador del disco lo almacene en la memoria intermedia RAMno volatil y comunique de manera inmediata al sistema operativoque la escritura se completo con exito. El controlador escribe los datosen su destino en el disco en cualquier momento en que el disco notenga otras solicitudes o cuando la memoria intermedia de RAM novolatil se llene. Solo se percibe retraso en la escritura si la memoriaintermedia esta llena.

Durante la recuperacion de una caıda del sistema se vuelven a escribiren el disco todas las escrituras que se hallan pendientes en la memoriaintermedia de RAM no volatil.

Disco de registro historico Otro enfoque para reducir las latencias de es-critura es utilizar un disco de registro historico (de manera muy pare-cida a la memoria intermedia RAM no volatil). Todos los accesos aldisco de registro historico son secuenciales, lo que elimina principal-mente el tiempo de busqueda y, ası, pueden escribirse simultanea-mente varios bloques consecutivos, lo que hace que los procesos deescritura en el disco sean muy rapidos.

Aun hay que escribir los datos en su ubicacion verdadera en el disco,pero este proceso de escritura puede llevarse a cabo sin que el sistemade bases de datos tenga que esperar a que se complete.

Mas aun, el disco de registro historico puede reordenar las escrituraspara reducir el movimiento del brazo. Si el sistema cae antes de quese hayan realizado algunas escrituras en la ubicacion real del disco,cuando el sistema se recupere lee el disco de registro historico paraencontrar las escrituras que no se han realizado y completarlas.

3. RAID

Tener un gran numero de discos en un sistema presenta oportunidadespara mejorar la velocidad a la que se pueden leer o escribir los datos si losdiscos funcionan en paralelo. El paralelismo se puede usar para realizarvarias lecturas o escrituras independientes simultaneamente.

Ademas, esta configuracion ofrece la posibilidad de mejorar la fiabili-dad del almacenamiento de datos, ya que se puede guardar informacion

Page 8: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

3 RAID 8

repetida en varios discos. De esta forma, el fallo de un disco no provoca unaperdida de datos.

Para abordar los problemas de rendimiento y de fiabilidad se han prop-uesto varias tecnicas de organizacion de discos, denominadas colectiva-mente disposicion redundante de discos independientes (RAIDs - Redun-dant Array of Independent Disks)

3.1. Mejora de la fiabilidad mediante la redundancia

La posibilidad de que algun disco de una disposicion de N discos fallees mucho mas elevada que la posibilidad de que un unico disco concretofalle.

Supongase que el tiempo medio entre fallos de un disco es de cien milhoras. El tiempo medio entre fallos de un disco en una disposicion de ciendiscos sera de 100,000/100 = 1,000 horas, o 42 dıas, ¡lo que no es mucho! Sisolo se guarda una copia de los datos, cada fallo de un disco dara lugar ala perdida de una cantidad de datos significativa. Una tasa de perdida dedatos tan elevada resulta inaceptable.

La solucion al problema de la fiabilidad es introducir la redundancia;es decir, guardar informacion adicional que normalmente no se necesitapero que puede utilizarse en caso de fallo de un disco para reconstruir lainformacion perdida.

3.2. Mejora del rendimiento mediante el paralelismo

Con la creacion de imagenes de los discos la velocidad a la que lassolicitudes de lectura pueden procesarse se duplica, dado que las solicitudesde lectura pueden enviarse a cualquiera de los discos. La velocidad detransferencia de cada proceso de lectura es la misma que en los sistemas dediscos unicos, pero el numero de procesos de lectura por unidad de tiempose ha duplicado.

Con varios discos tambien se puede mejorar la velocidad de transferen-cia distribuyendo los datos entre varios discos. En su forma mas sencilla ladistribucion de datos consiste en dividir los bits de cada byte entre variosdiscos; esta distribucion se denomina distribucion en el nivel de bit. Por ejem-plo, si se dispone de una disposicion de ocho discos se puede escribir el biti de cada byte en el disco i.

La disposicion de ocho discos puede tratarse como un solo disco consectores que tienen ocho veces el tamano normal y, lo que es mas importante,que tienen ocho veces la velocidad de acceso.

La distribucion en el nivel de bloque reparte los bloques entre varios discos.Trata la disposicion de discos como un unico y gran disco, y proporcionanumeros logicos a los bloques; se asume que los numeros de bloque comien-zan en 0.

Page 9: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

3 RAID 9

Con una disposicion de n discos, la distribucion en el nivel de bloqueasigna el bloque logico i de la disposicion de discos al disco (imodn)+ 1; usael bloque fısico [i/n]-esimo del disco para almacenar el bloque logico i. Porejemplo, con ocho discos, el bloque logico 0 se almacena en el bloque fısico0 del disco 1, mientras que el bloque logico 11 se almacena en el bloquefısico 1 del disco 4.

Al leer un archivo grande, la distribucion en el nivel de bloque busca nbloques en un instante en paralelo en los n discos, dando una gran velocidadde transferencia para grandes lecturas. Cuando se lee un unico bloque, lavelocidad de transferencia de datos es igual que en un disco, pero losrestantes n − 1 discos estan libres de realizar cualquier otra accion.

La distribucion en el nivel de bloque es la forma de distribucion dedatos mas usada. Tambien son posibles otros niveles de distribucion, comolos bytes de cada sector o los sectores de cada bloque.

3.3. Niveles de RAID

La eleccion de los diferentes niveles de RAID va a depender de las necesi-dades del usuario en lo que respecta a factores como seguridad, velocidad,capacidad, coste, etc. Cada nivel de RAID ofrece una combinacion especıfi-ca de tolerancia a fallos (redundancia), rendimiento y coste, disenadas parasatisfacer las diferentes necesidades de almacenamiento. La mayorıa de losniveles RAID pueden satisfacer de manera efectiva solo uno o dos de estoscriterios. No hay un nivel de RAID mejor que otro; cada uno es apropiadopara determinadas aplicaciones y entornos informaticos. De hecho, resul-ta frecuente el uso de varios niveles RAID para distintas aplicaciones delmismo servidor. Oficialmente existen siete niveles diferentes de RAID (0-6),definidos y aprobados por el el RAID Advisory Board (RAB). Luego existenlas posibles combinaciones de estos niveles (10, 50, ...). Los niveles RAID 0,1, 0+1 y 5 son los mas populares.

3.3.1. RAID 0

Tambien conocido como separacion, fraccionamiento o Disk Striping “Lamas alta transferencia, pero sin tolerancia a fallos”.

Los datos se desglosan en pequenos segmentos y se distribuyen entrevarias unidades. Al no existir redundancia, RAID 0 no ofrece ninguna pro-teccion de los datos. El fallo de cualquier disco de la matriz tendrıa comoresultado la perdida de los datos y serıa necesario restaurarlos desde unacopia de seguridad.

Consiste en una serie de unidades de disco conectadas en paralelo quepermiten una transferencia simultanea de datos a todos ellos, con lo quese obtiene una gran velocidad en las operaciones de lectura y escritura.La velocidad de transferencia de datos aumenta en relacion al numero de

Page 10: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

3 RAID 10

discos que forman el conjunto. Esto representa una gran ventaja en opera-ciones secuenciales con ficheros de gran tamano. Por lo tanto, este arrayes aconsejable en aplicaciones de tratamiento de imagenes, audio, vıdeoo CAD/CAM, es decir, es una buena solucion para cualquier aplicacionque necesite un almacenamiento a gran velocidad pero que no requieratolerancia a fallos. Se necesita un mınimo de dos unidades de disco paraimplementar una solucion RAID 0.

3.3.2. RAID 1

Tambien llamado ”Mirroring.o ”Duplicacion”(Creacion de discos en es-pejo) “Redundancia. Mas rapido que un disco y mas seguro”.

Se basa en la utilizacion de discos adicionales sobre los que se realizauna copia en todo momento de los datos que se estan modificando. RAID 1ofrece una excelente disponibilidad de los datos mediante la redundanciatotal de los mismos. Para ello, se duplican todos los datos de una unidado matriz en otra. De esta manera se asegura la integridad de los datos y latolerancia al fallo, pues en caso de averıa, la controladora sigue trabajandocon los discos no danados sin detener el sistema. Los datos se pueden leerdesde la unidad o matriz duplicada sin que se produzcan interrupciones.

RAID 1 es una alternativa costosa para los grandes sistemas, ya que lasunidades se deben anadir en pares para aumentar la capacidad de almace-namiento. Sin embargo, RAID 1 es una buena solucion para las aplicacionesque requieren redundancia cuando hay solo dos unidades disponibles. Losservidores de archivos pequenos son un buen ejemplo. Se necesita un mıni-mo de dos unidades para implementar una solucion RAID 1.

3.3.3. RAID 2

Acceso paralelo con discos especializados y redundancia a traves delcodigo Hamming. Tambien se conoce como organizacion de codigos decorreccion de errores tipo memoria (memory-style error-correcting-code orga-nization, ECC).

El RAID nivel 2 adapta la tecnica comunmente usada para detectar y cor-regir errores en memorias de estado solido. En un RAID de nivel 2, el codigoECC (Error Correction Code) se intercala a traves de varios discos a nivel debit. El metodo empleado es el Hamming. Puesto que el codigo Hammingse usa tanto para deteccion como para correccion de errores (Error Detectionand Correction), RAID 2 no hace uso completo de las amplias capacidades dedeteccion de errores contenidas en los discos. Las propiedades del codigoHamming tambien restringen las configuraciones posibles de matrices paraRAID 2, particularmente el calculo de paridad de los discos. Por lo tanto,RAID 2 no ha sido apenas implementado en productos comerciales, lo que

Page 11: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

3 RAID 11

tambien es debido a que requiere caracterısticas especiales en los discos yno usa discos estandares.

Debido a que es esencialmente una tecnologıa de acceso paralelo, RAID2 esta mas indicado para aplicaciones que requieran una alta tasa de trans-ferencia y menos conveniente para aquellas otras que requieran una altatasa de demanda I/O.

3.3.4. RAID 3

Acceso sıncrono con un disco dedicado a paridad.Dedica un unico disco al almacenamiento de informacion de paridad.

La informacion de ECC (Error Checking and Correction) se usa para detectarerrores. La recuperacion de datos se consigue calculando el O exclusivo(XOR) de la informacion registrada en los otros discos. La operacion I/Oaccede a todos los discos al mismo tiempo, por lo cual el RAID 3 es mejorpara sistemas de un solo usuario con aplicaciones que contengan grandesregistros.

RAID 3 ofrece altas tasas de transferencia, alta fiabilidad y alta disponi-bilidad, a un coste intrınsecamente inferior que un Mirroring (RAID 1). Sinembargo, su rendimiento de transaccion es pobre porque todos los discosdel conjunto operan al unısono.

Se necesita un mınimo de tres unidades para implementar una solucionRAID 3.

3.3.5. RAID 4

Acceso Independiente con un disco dedicado a paridad.Basa su tolerancia al fallo en la utilizacion de un disco dedicado a

guardar la informacion de paridad calculada a partir de los datos guarda-dos en los otros discos. En caso de averıa de cualquiera de las unidadesde disco, la informacion se puede reconstruir en tiempo real mediante larealizacion de una operacion logica de O exclusivo.

Debido a su organizacion interna, este RAID es especialmente indicadopara el almacenamiento de ficheros de gran tamano, lo cual lo hace ide-al para aplicaciones graficas donde se requiera, ademas, fiabilidad de losdatos. Se necesita un mınimo de tres unidades para implementar una solu-cion RAID 4. La ventaja con el RAID 3 esta en que se puede acceder a losdiscos de forma individual.

3.3.6. RAID 5

Acceso independiente con paridad distribuida.Este array ofrece tolerancia al fallo, pero ademas, optimiza la capaci-

dad del sistema permitiendo una utilizacion de hasta el 80capacidad del

Page 12: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

3 RAID 12

conjunto de discos. Esto lo consigue mediante el calculo de informacion deparidad y su almacenamiento alternativo por bloques en todos los discosdel conjunto. La informacion del usuario se graba por bloques y de formaalternativa en todos ellos. De esta manera, si cualquiera de las unidadesde disco falla, se puede recuperar la informacion en tiempo real, sobre lamarcha, mediante una simple operacion de logica de O exclusivo, sin queel servidor deje de funcionar. Ası pues, para evitar el problema de cuellode botella que plantea el RAID 4 con el disco de comprobacion, el RAID 5no asigna un disco especıfico a esta mision sino que asigna un bloque alter-nativo de cada disco a esta mision de escritura. Al distribuir la funcion decomprobacion entre todos los discos, se disminuye el cuello de botella y conuna cantidad suficiente de discos puede llegar a eliminarse completamente,proporcionando una velocidad equivalente a un RAID 0.

RAID 5 es el nivel de RAID mas eficaz y el de uso preferente para las apli-caciones de servidor basicas para la empresa. Comparado con otros nivelesRAID con tolerancia a fallos, RAID 5 ofrece la mejor relacion rendimiento-coste en un entorno con varias unidades. Gracias a la combinacion del frac-cionamiento de datos y la paridad como metodo para recuperar los datos encaso de fallo, constituye una solucion ideal para los entornos de servidoresen los que gran parte del E/S es aleatoria, la proteccion y disponibilidadde los datos es fundamental y el coste es un factor importante. Este nivelde array es especialmente indicado para trabajar con sistemas operativosmultiusuarios.

Se necesita un mınimo de tres unidades para implementar una solucionRAID 5.

Los niveles 4 y 5 de RAID pueden utilizarse si se disponen de tres omas unidades de disco en la configuracion, aunque su resultado optimo decapacidad se obtiene con siete o mas unidades. RAID 5 es la solucion maseconomica por megabyte, que ofrece la mejor relacion de precio, rendimien-to y disponibilidad para la mayorıa de los servidores.

3.3.7. RAID 6

Acceso independiente con doble paridad.Similar al RAID 5, pero incluye un segundo esquema de paridad dis-

tribuido por los distintos discos y por tanto ofrece tolerancia extremada-mente alta a los fallos y a las caıdas de disco, ofreciendo dos niveles deredundancia. Hay pocos ejemplos comerciales en la actualidad, ya que sucoste de implementacion es mayor al de otros niveles RAID, al ser las con-troladoras requeridas para soportar esta doble paridad mas complejas ycaras que las de otros niveles RAID.

Page 13: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

3 RAID 13

3.4. Eleccion del nivel RAID adecuado

Los factores a tener en cuenta al elegir un nivel RAID son:

Costo economico extra de los requisitos de almacenamiento en disco.

Requisitos de rendimiento en terminos del numero de operacionesE/S.

Rendimiento cuando falla un disco.

Rendimiento durante la reconstruccion (esto es, mientras los datos deldisco averiado se reconstruyen en un nuevo disco).

Si un disco falla, el tiempo que se tarda en reconstruir los datos quecontenıa puede ser significativo, y variara con el nivel RAID utilizado. Lareconstruccion resulta mas sencilla para RAID de nivel 1, dado que los datospueden copiarse de otro disco; para los otros niveles hay que tener accesoa todos los demas discos de la disposicion para reconstruir los datos deldisco averiado.

El rendimiento en la reconstruccion de un sistema RAID puede ser unfactor importante si se necesita un aporte continuo de datos, como ocurreen los sistemas de bases de datos de alto rendimiento. Ademas, dado queel tiempo de reconstruccion puede formar parte del tiempo de reparacion,el rendimiento de la reconstruccion influye en el tiempo medio entre fallos.

RAID de nivel 0 se usa en aplicaciones de alto rendimiento donde laseguridad de los datos no es crıtica.

Dado que los niveles 2 y 4 de RAID se incluyen en los niveles 3 y 5de RAID, la eleccion de los niveles RAID se limita a los niveles restantes.La distribucion de bits (nivel 3) se usa raramente, dado que la distribucionde bloques (nivel 5) da buenas velocidades de transferencia de datos paragrandes transferencias. Para pequenas transferencias, el tiempo de accesoa disco es el factor dominante, ası que el beneficio de las lecturas paralelasdisminuye. De hecho, el nivel 3 puede funcionar peor que el nivel 5 parauna pequena transferencia, ya que la transferencia solo se completa cuan-do los sectores correspondientes en todos los discos se hayan encontrado;la latencia media de la disposicion de discos se comporta de forma muyparecida a la latencia en el caso peor para un unico disco, descartando losbeneficios de las mayores velocidades de transferencia.

El nivel 6 no se soporta actualmente en muchas implementaciones RAID,pero ofrece una mejor fiabilidad que el nivel 5 y se puede usar en aplica-ciones donde la seguridad de datos es muy importante.

La eleccion entre RAID de nivel 1 y de nivel 5 es mas difıcil de tomar.RAID de nivel 1 es popular para las aplicaciones como el almacenamien-to de archivos de registro historico en un sistema de bases de datos, yaque ofrece el mejor rendimiento en escritura. RAID de nivel 5 tiene una

Page 14: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

4 ALMACENAMIENTO TERCIARIO 14

menor sobrecarga de almacenamiento que el nivel 1, pero tiene una mayorsobrecarga en las escrituras. Para las aplicaciones donde los datos se leenfrecuentemente y se escriben raramente, el nivel 5 es la eleccion adecuada.

El nivel 5 de RAID, que incrementa el numero d operaciones E/S nece-sarias para escribir un unico bloque logico, sufre una penalizacion de tiemposignificativa en terminos del rendimiento en escritura. El nivel 1 de RAIDes, por tanto, la eleccion adecuada par muchas aplicaciones con requisitosmoderados de almacenamiento y altos requisitos de E/S.

3.5. Aspectos hardware

Otro aspecto en la eleccion de implementaciones RAID se encuentraen el nivel hardware. RAID se puede implementar sin cambios en el nivelhardware modificando solo el software. Tales implementaciones se conocencomo RAID software. Sin embargo, hay beneficios significativos al construirhardware de proposito especial para dar soporte a RAID. Los sistemas consoporte hardware especial se denominan sistemas RAID hardware.

Las implementaciones RAID hardware pueden usar RAM no volatilpara registrar las escrituras que es necesario ejecutar, con el consiguienteincremento en la velocidad.

Algunas implementaciones RAID permiten el intercambio en caliente;esto es, los discos averiados se pueden eliminar y reemplazar por otrosnuevos sin desconectar la corriente. El intercambio en caliente reduce eltiempo medio de reparacion, ya que el cambio de un disco no debe esperarhasta que se pueda apagar el sistema.

La fuente de alimentacion, o el controlador de disco, o incluso la inter-conexion del sistema en un sistema RAID podrıa llegar a ser un punto defallo que detendrıa el funcionamiento del sistema RAID. Para evitar estaposibilidad, las buenas implementaciones RAID tienen varias fuentes dealimentacion (con baterıas de respaldo que les permiten continuar funcio-nando aunque se corte la corriente), varios controladores de disco y variasinterconexiones para conectarlos con el sistema informatico (o a la red de lossistemas informaticos). Ası, el fallo de cualquier componente no detendra elfuncionamiento del sistema RAID.

4. Almacenamiento terciario

Los dos medios de almacenamiento terciario mas frecuentes son losdiscos opticos y las cintas magneticas.

4.1. Discos opticos

Los discos compactos son un medio popular de distribucion de softwarey datos multimedia . Tienen una elevada capacidad de almacenamiento (640

Page 15: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

5 ACCESO AL ALMACENAMIENTO 15

megabytes) y resultan baratos de producir en serie.Los discos de vıdeo digital (DVD, Digital Video Disk) estan reemplazan-

do a los discos compactos en las aplicaciones que requieren grandes can-tidades de datos. Los discos en formato DVD-5 pueden almacenar 4,7 gi-gabytes de datos (en una superficie de grabacion), mientras que los discosen formato DVD-9 pueden almacenar 8,5 gigabytes de datos (en dos su-perficies de disco). La grabacion en ambas caras de un disco ofrece inclusomayores capacidades; los formatos DVD-10 y DVD-18, que son las versionesde doble cara de DVD-5 y DVD-9, pueden almacenar respectivamente 9,4y 17 gigabytes.

Los cambiadores de discos son dispositivos que guardan un gran numerode discos opticos (hasta varios cientos) y los cargan automaticamente bajodemanda en una de las unidades reproductoras (usualmente entre una ydiez). La capacidad de almacenamiento agregada de tal sistema puede tenermuchos terabytes.

4.2. Cintas magneticas

Son relativamente permanentes y pueden albergar grandes volumenesde datos, pero resultan lentas en comparacion con los discos magneticos yopticos y estan limitada al acceso secuencial.

Las cintas se utilizan principalmente para copias de seguridad, para el al-macenamiento de la informacion poco utilizada y como medio sin conexionpara transferir informacion de un sistema a otro. Las cintas tambien se usanpara almacenar grandes volumenes de datos, tales como vıdeo o imagenque, o no es necesario acceder rapidamente a ellos, o son tan voluminososque el almacenamiento en disco serıa muy caro.

Los cambiadores de cintas, al igual que los cambiadores de discos opti-cos, guardan gran numero de cintas con unas cuantas unidades en las quese pueden montar las cintas; se utilizan para guardar grandes volumenesde datos.

5. Acceso al almacenamiento

Hemos visto que los archivos del sistema operativo se dividen en blo-ques, que son unidades de almacenamiento de longitud constante, y queson la unidad mınima para las operaciones de almacenamiento y de trans-ferencia de datos.

Uno de los principales objetivos del sistema de bases de datos es mini-mizar el numero de transferencias de bloques entre el disco y la memoria.Para ello intenta mantener en la memoria principal todos los bloques que seaposible. El objetivo es maximizar la posibilidad de que, cuando se necesitea un bloque, ya se encuentre en la memoria principal.

Page 16: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

5 ACCESO AL ALMACENAMIENTO 16

Normalmente no caben todos los bloques en memoria, por lo que hayque gestionar la asignacion del espacio disponible en la memoria principalpara el almacenamiento de los mismos. Este espacio se denomina memoriaintermedia o buffer. El subsistema responsable de la asignacion del espaciode la memoria intermedia se denomina gestor de la memoria intermedia.

5.1. Gestor de la memoria intermedia

El gestor de la memoria intermedia es muy parecido al gestor de lamemoria virtual de un sistema operativo, con la diferencia de que el tamanode la base de datos puede ser mucho mayor que el espacio de direcciones dehardware de la maquina. Ademas, para dar un buen servicio al sistema debases de datos el gestor de la memoria intermedia debe utilizar tecnicas mascomplejas que los esquemas de gestion de la memoria virtual habituales:

Estrategia de sustitucion Cuando no queda espacio libre en la memoriaintermedia hay que eliminar un bloque de esta. Generalmente los sis-temas operativos utilizan un esquema menos recientemente utilizado(LRU, Least Recently Used), en el que se vuelve a escribir en el discoy se elimina de la memoria intermedia el bloque al que se ha hechoreferencia menos recientemente.

Bloques clavados A veces resulta necesario limitar las ocasiones en que sepuede volver a escribir el bloque en el disco. Se dice que un bloque alque no se le permite que se vuelva a escribir en el disco esta clavado.Aunque muchos sistemas operativos no permiten trabajar con bloquesclavados, esta prestacion resulta esencial para la implementacion deun sistema de bases de datos resistente a las caıdas.

Salida forzada de los bloques Hay situaciones en las que resulta necesariovolver a escribir el bloque en el disco, aunque no se necesite el espa-cio de memoria intermedia que ocupa. Este proceso de escritura sedenomina salida forzada del bloque.

5.2. Polıticas para la sustitucion de la memoria intermedia

LRU es un esquema de sustitucion aceptable para los sistemas opera-tivos. Sin embargo, los sistemas de bases de datos pueden predecir la pautade las referencias futuras con mas precision que los sistemas operativos. Elsistema de bases de datos suele poder determinar con antelacion los blo-ques que se necesitaran examinando cada una de las etapas necesarias parallevar a cabo la operacion solicitada por el usuario.

Para ilustrar la manera en que la informacion relativa al futuro acceso alos bloques permite mejorar la estrategia LRU considerese el procesamientode la expresion del algebra relacional:

Page 17: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

5 ACCESO AL ALMACENAMIENTO 17

prestatario Z cliente

Supongase que la estrategia escogida para procesar esta solicitud vienedada por el siguiente programa en pseudocodigo:

resultado = []

for p in prestatario:

for c in cliente:

if p[nombre-cliente] = c[nombre-cliente]:

x = tupla()

x[nombre-cliente] = p[nombre-cliente]

x[numero-prestamo] = p[numero-prestamo]

x[calle-cliente] = c[calle-cliente]

x[ciudad-cliente] = c[ciudad-cliente]

resultado.append(x)

return resultado

Supongase que las relaciones prestatario y cliente se guardan en archivosdiferentes. Se puede ver que, una vez procesada una tupla de prestatario,esta no se vuelve a necesitar. Por tanto, una vez que se ha completado elprocesamiento de un bloque completo de tuplas de prestatario, ese bloqueya no se necesita en la memoria principal, aunque se haya utilizado recien-temente. Deben darse instrucciones al gestor de la memoria intermedia paraliberar el espacio ocupado por el bloque de prestatario tan pronto como sehaya procesado la ultima tupla. Esta estrategia de gestion de la memoriaintermedia se denomina estrategia de extraccion inmediata.

Consideremos ahora los bloques que contienen las tuplas de cliente.Hay que examinar todas las tuplas cliente por cada tupla de la relacionprestatario. Cuando se completa el procesamiento de un bloque de tuplasde cliente se sabe que no se necesitara hasta que se hayan procesado todoslos demas bloques de cliente. Por tanto, el bloque de cliente al que sehaya hecho referencia mas recientemente sera el ultimo bloque al que sevuelva a referenciar, y el bloque de cliente al que se haya hecho referenciamenos recientemente sera el bloque al que se vuelva a hacer referencia acontinuacion. ¡Esto es el reverso exacto de la base de la estrategia LRU

En realidad, en este caso, la estrategia optima para la sustitucion de blo-ques es la estrategia mas recientemente utilizada (MRU, Most Recently Used).Si hay que eliminar de la memoria intermedia un bloque de cliente, laestrategia MRU escoge el bloque utilizado mas recientemente.

Para que la estrategia MRU funcione correctamente en el ejemplo, elsistema debe clavar el bloque de cliente que se este procesando hasta quese haya procesado la ultima tupla de cliente. Despues el bloque se desclavay se transforma en el bloque utilizado mas recientemente.

Page 18: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

6 ORGANIZACION DE LOS ARCHIVOS 18

Ademas de utilizar la informacion sobre la solicitud que se este proce-sando, el gestor de la memoria intermedia puede utilizar informacion es-tadıstica concerniente a la probabilidad de que una solicitud haga referenciaa una relacion concreta. Por ejemplo, el diccionario de datos, que guardael esquema logico de las relaciones y su informacion del almacenamientofısico, o los ındices de los archivo, son partes del sistema a los que se accedecon mucha frecuencia. El gestor de la memoria intermedia no debera, engeneral, eliminar los bloques del diccionario de datos o de ındices de lamemoria principal si dispone de alternativas.

6. Organizacion de los archivos

Aunque los bloques son de un tamano fijo determinado por las propiedadesfısicas del disco y por el sistema operativo, los tamanos de los registrosvarıan. En las bases de datos relacionales las tuplas de las diferentes rela-ciones suelen ser de tamanos distintos.

Los archivos con registros de longitud fija son mas sencillos de imple-mentar que los archivos con registros de longitud variable. Muchas de lastecnicas utilizadas para los primeros pueden a los segundos. Por tanto, secomienza considerando un archivo con registros de longitud fija.

6.1. Registros de longitud fija

Un enfoque sencillo consiste en ir colocando los registros fijos dentrodel bloque de manera secuencial. Sin embargo, hay dos problemas con esteenfoque sencillo:

1. Resulta difıcil borrar un registro de esta estructura. Se debe rellenar elespacio ocupado por el registro que hay que borrar con algun otro reg-istro del archivo o tener algun medio de marcar los registros borradospara que puedan pasarse por alto.

2. A menos que el tamano de los bloques sea un multiplo exacto deltamano del bloque (lo que resulta improbable), algunos de los registrosse saltaran los lımites de los bloques. Es decir, parte del registro seguardara en un bloque y parte en otro. Haran falta, por tanto, dosaccesos a bloques para leer o escribir ese tipo de registros.

No resulta deseable desplazar los registros para ocupar el espacio lib-erado por los registros borrados, por la sobrecarga que supondrıa. Comolas inserciones tienden a ser mas frecuentes que los borrados, sı resulta engeneral aceptable dejar libre el espacio ocupado por los registros borradosy esperar a una insercion posterior para volver a utilizar ese espacio.

Page 19: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

6 ORGANIZACION DE LOS ARCHIVOS 19

No obstante, no basta con una simple marca en el registro borrado, dadoque resulta difıcil encontrar el espacio disponible mientras se realiza unainsercion; hay que introducir una estructura adicional.

Al comienzo del archivo se asigna cierto numero de bytes como cabeceradel archivo. La cabecera contendra gran variedad de informacion sobre elarchivo. Por ahora, todo lo que hace falta guardar ahı es la direccion delprimer registro cuyo contenido se haya borrado. Se utiliza este primer reg-istro para guardar la direccion del segundo registro disponible, y ası suce-sivamente. De manera intuitiva se pueden considerar estas direccionesguardadas como punteros, dado que indican la posicion de un registro.Los registros borrados, por tanto, forman una lista enlazada a la que sesuele denominar lista libre.

Al insertar un registro nuevo se utiliza el registro indicado por lacabecera. Se cambia el puntero de la cabecera para que apunte al sigu-iente registro disponible. Si no hay espacio disponible, se anade el nuevoregistro al final del archivo.

6.2. Registros de longitud variable

Los registros de longitud variable surgen de varias maneras en los sis-temas de bases de datos:

Almacenamiento de varios tipos de registros en un mismo archivo

Tipos de registro que permiten longitudes variables para uno o variosde los campos

Tipos de registro que permiten campos repetidos

Existen diferentes tecnicas para implementar los registros de longitudvariable.

6.2.1. Representacion en cadenas de bytes

Un metodo sencillo de implementar los registros de longitud variable esadjuntar un sımbolo especial de fin-de-registro (⊥) al final de cada registro.Ası se puede guardar cada registro como una cadena de bytes consecutivos.Una version alternativa de la representacion en cadenas de bytes guarda lalongitud del registro al comienzo de cada registro.

La representacion en cadenas de bytes tal y como se ha discutido pre-senta varios inconvenientes:

No resulta sencillo volver a utilizar el espacio ocupado anteriormentepor un registro borrado. Aunque existen tecnicas para gestionar lainsercion y el borrado de registros, generan una gran fragmentacionde disco.

Page 20: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

6 ORGANIZACION DE LOS ARCHIVOS 20

Por lo general, no queda espacio para el aumento del tamano de losregistros. Si un registro de longitud variable aumenta de tamano hayque desplazarlo (el movimiento puede resultar muy costoso).

Se suele utilizar una forma modificada de la representacion en cadenasde bytes, denominada estructura de paginas con ranuras, para organizar losregistros de longitud variable dentro de cada bloque.

En la estructura de paginas con ranuras hay una cabecera al principiode cada bloque que contiene la informacion siguiente:

1. El numero de elementos del registro de la cabecera

2. El final del espacio vacıo del bloque

3. Un array cuyas entradas contienen la ubicacion y el tamano de cadaregistro

Los registros reales se ubican de manera contigua en el bloque, empezan-do desde el final del mismo. El espacio libre dentro del bloque es contiguo,entre la ultima entrada del array de la cabecera y el primer registro. Si seinserta un registro se le asigna espacio al final del espacio libre y se anadea la cabecera una entrada que contiene su tamano y su ubicacion.

Si se borra un registro se libera el espacio que ocupa y se da el valor de“borrada” a su entrada (por ejemplo, se le da a su tamano el valor de −1).Ademas, se desplazan los registros de bloque situados antes del registroborrado, de modo que se ocupe el espacio libre creado por el borrado ytodo el espacio libre vuelve a hallarse entre la ultima entrada del array dela cabecera y el primer registro. Tambien se actualiza de manera adecuadael puntero de final del espacio libre de la cabecera. Se puede aumentar odisminuir el tamano de los registros utilizando tecnicas parecidas, siemprey cuando quede espacio en el bloque. El coste de trasladar los registros noes demasiado elevado, dado que el tamano del bloque es limitado: un valortıpico es cuatro kilobytes.

6.2.2. Representacion de longitud fija

Otra manera de implementar eficientemente los registros de longitudvariable en un sistema de archivos es utilizar uno o varios registros delongitud fija para representar cada registro de longitud variable.

Hay dos tecnicas para hacer esto:

1. Espacio reservado. Si hay una longitud de registro maxima que nose supera nunca, se pueden utilizar registros de longitud fija de esalongitud. El espacio no utilizado por los registros mas cortos se rellenacon un sımbolo especial de valor nulo o de final de registro.

Page 21: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

7 ORGANIZACION DE LOS REGISTROS EN ARCHIVOS 21

2. Representacion con listas. El registro de longitud variable se repre-senta mediante una lista de registros de longitud fija, enlazada medi-ante punteros.

El metodo del espacio reservado resulta util cuando la mayor parte delos registros son de una longitud cercana a la maxima. En caso contrario, sepuede desperdiciar mucho espacio.

Un inconveniente de la representacion con listas es que se desperdiciaespacio en todos los registros excepto en el primero de la serie. Para resolvereste problema se permiten en el archivo dos tipos de bloques:

1. Bloque ancla, que contiene el primer registro de cada cadena

2. Bloque de desbordamiento, que contiene los registros que no son losprimeros de sus cadenas.

7. Organizacion de los registros en archivos

Hasta ahora se ha estudiado la manera en que se representan los registrosen la estructura de los archivos. A continuacion se indican varias de lasmaneras de organizar los registros en archivos:

Organizacion de archivos en montıculo. En esta organizacion se puedecolocar cualquier registro en cualquier parte del archivo en que hayaespacio suficiente. No hay ninguna ordenacion de los registros.

Organizacion de archivos secuenciales. En esta organizacion los registrosse guardan en orden secuencial, basado en el valor de la clave debusqueda de cada registro.

Organizacion asociativa (hash) de archivos. En esta organizacion se cal-cula una funcion de asociacion (hash) de algun atributo de cada reg-istro. El resultado de la funcion de asociacion especifica el bloque delarchivo en que se debera colocar el registro.

7.1. Organizacion de archivos secuenciales

Los archivos secuenciales estan disenados para el procesamiento efi-ciente de los registros de acuerdo con un orden basado en una clave debusqueda. Una clave de busqueda es un atributo o conjunto de atributos;no tiene por que ser una clave primaria, ni siquiera una superclave.

La organizacion secuencial de archivos permite que los registros se leande forma ordenada, lo que puede ser util para la visualizacion, ası comopara ciertos algoritmos de procesamiento de consultas.

Page 22: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

8 ALMACENAMIENTO CON DICCIONARIOS DE DATOS 22

Sin embargo, resulta difıcil mantener el orden fısico secuencial cuandose insertan y borran registros, dado que resulta costoso desplazar muchosregistros como consecuencia de una sola insercion o borrado. Se puede ges-tionar el borrado utilizando cadenas de punteros. Esto permite la insercionrapida de nuevos registros, pero obliga a las aplicaciones de procesamientode archivos secuenciales a procesar los registros en un orden que no coincidecon su orden fısico.

Si hay que guardar un numero relativamente pequeno de registros enlos bloques de desbordamiento, este enfoque funciona bien. Finalmente,sin embargo, la correspondencia entre el orden de la clave de busqueda yel orden fısico puede perderse totalmente, en cuyo caso el procesamientosecuencial sera significativamente menos eficiente. Llegados a este puntose debe reorganizar el archivo de modo que vuelva a estar fısicamente enorden secuencial. Estas reorganizacion es resultan muy costosas.

7.2. Organizacion de archivos en agrupaciones

Es posible almacenar cada relacion en un archivo del sistema operativo.Muchos sistemas de bases de datos de gran tamano, por el contrario, utilizanun unico archivo de gran tamano. En este archivo se guardan todas lasrelaciones y se confıa la gestion de este archivo al sistema de bases de datos.

Una organizacion de archivos en agrupaciones es una organizacion dearchivos que almacena registros relacionados de dos o mas relaciones encada bloque. Esta organizacion permite leer muchos de los registros quesatisfacen la condicion de reunion utilizando un solo proceso de lectura debloques. Por tanto, se puede procesar esta consulta concreta de manera maseficiente.

La determinacion del momento de utilizar la agrupacion depende delos tipos de consulta que el disenador de la base de datos considere masfrecuentes. El uso cuidadoso de la agrupacion puede producir ganancias derendimiento significativas en el procesamiento de consultas.

8. Almacenamiento con diccionarios de datos

Hasta ahora solo se ha considerado la representacion de las propias rela-ciones. Un sistema de bases de datos relacionales necesita tener datos sobrelas propias relaciones, como el esquema de las mismas. Esta informacion sedenomina diccionario de datos o catalogo del sistema.

Entre los tipos de informacion que debe guardar el sistema figuran lossiguientes:

Los nombres de las relaciones

Los nombres de los atributos de cada relacion

Page 23: Tema 9. Almacenamiento y estructura de archivoss3.amazonaws.com/UNED/apuntes/Tema9.pdfTema 9. Almacenamiento y estructura de ... solicitud de lectura o de escritura hasta que comienza

8 ALMACENAMIENTO CON DICCIONARIOS DE DATOS 23

Los dominios y las longitudes de los atributos

Los nombres de las vistas definidas en la base de datos y las defini-ciones de esas vistas

Las restricciones de integridad (por ejemplo, las restricciones de lasclaves)

Ademas, muchos sistemas guardan los datos siguientes de los usuariosdel sistema:

Los nombres de los usuarios autorizados

La informacion de las cuentas de usuarios

Contrasenas u otra informacion usada para autentificar a los usuarios

Ademas, se puede guardar informacion estadıstica y descriptiva sobreestos asuntos:

Numero de tuplas de cada relacion

Metodo de almacenamiento utilizado para cada relacion (por ejemplo,con agrupaciones o sin agrupaciones)

El diccionario de datos puede tambien anotar la organizacion del alma-cenamiento (secuencial, asociativa o con montıculos) de las relaciones y laubicacion donde se almacena cada relacion

Toda esta informacion constituye, en efecto, una base de datos en miniatu-ra. Algunos sistemas de bases de datos guardan esta informacion utilizandoestructuras de datos y codigo especiales. Suele resultar preferible guardarel diccionario de datos como otra base de datos.

Al utilizar la base de datos para guardar los meta-datos del sistema sesimplifica la estructura global del sistema y se permite que se utilice todala potencia de la base de datos en obtener un acceso rapido a los datos delsistema.