Estructuras
Estructuras
de
de
Almacenamiento
Almacenamiento
Bases de Datos Bases de Datos IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas
Nivel F
Nivel Fí
ísico
sico
Introducci
Introduccióónn 22
Nivel LógicoÆModelo Entidad-Relación y Modelo Relacional
El nivel en el que se deben mover los usuario es el nivel lógico El objetivode un sistema de bases de datos es simplificar y facilitarla tarea de acceso a los datos
Al final están los dispositivos de almacenamiento y es
necesario su conocimientopara su adecuada utilización
¾RAID
¾Acceso al Almacenamiento ¾Organización de los Archivos
¾Organización de los Registros en los Archivos ¾Almacenamiento con Diccionario de Datos
Í
Índice
ndice
Introducci Introduccióónn 33RAID
RAID
Estructuras de Almacenamiento Estructuras de Almacenamiento Bases de Datos Bases de Datos IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas
Requisitos Almacenamiento
Requisitos Almacenamiento
RAID
RAID 55
Los requisitos de almacenamiento de datos de algunas aplicaciones (en particular aplicaciones Web, aplicaciones de bases de datos y aplicaciones multimedia) han crecido tan rápido que se necesita un gran número de discos para almacenar sus datos (incluso aunque las capacidades de los discos hayan estado creciendo muy rápidamente)
Tener varios discos presenta oportunidades para mejorar la velocidad(discos funcionando con lectura/escritura en paralelo) y la fiabilidad
(guardar información repetida)
RAID
RAID
RAID
RAID 66
Las técnicas de organización de discosdenominadas
RAID(Redundant Array of Independent Disks; Disposición Redundante de Discos Independientes) se han propuesto para abordar los problemas de rendimiento y fiabilidad
Nacen con la idea de usar discos pequeños de bajo coste como alternativa económicamente efectiva a los discos grandes y caros Actualmente se usan por su mayor fiabilidad y por su mayor velocidad de transferencia de datos, más que por motivos económicos
Fiabilidad RAID
Fiabilidad RAID
RAID
RAID 77
La probabilidad de que algún disco, de una estructura de N discos, falle es mucho más elevada que la probabilidad de que falle un único disco concreto
Tiempo Medio entre Fallos (un disco): 100.000 horas = 11 años
Tiempo Medio entre Fallos (un disco de cien): 100.000/100 horas = 1.000 Horas= 42 días
La solución al problema de la fiabilidad es introducir redundancia
Redundancia
Redundancia
RAID
RAID 88
La Redundanciaconsiste en guardar información adicional que normalmente no se necesitapero que puede utilizarse en caso de fallo de un disco para reconstruir la información perdida
En presencia de redundancia el tiempo medio efectivo entre fallosaumenta
Creaci
Creació
ón de Im
n de Imá
ágenes
genes
RAID
RAID 99
La forma más sencilla de crear redundancia (y la más costosa) es duplicar los discos(Un disco lógico ÆDos discos físicos)
El tiempo medio entre pérdidas de datos (fallos de un disco con imagen) depende del tiempo medio entre fallos de cada disco y del tiempo medio de reparación Fallos de los discos independientes
Tiempo medio entre fallos de disco: 100.000 Horas Tiempo medio de reparación: 10 Horas
Tiempo medio entre pérdidas de datos: 57.000 años (Disponibles sistemas con 55 a 110 años)
Rendimiento RAID
Rendimiento RAID
RAID
RAID 1010
Con la creación de imágenes la velocidad a la que se pueden procesar las solicitudes de lectura se duplica (la solicitud puede enviarse a cualquiera de los discos, si ambos están operativos)
Con varios discos se puede mejorar la velocidad de transferencia distribuyendo los datos (en su forma más sencilla se puede hacer una distribución en el nivel del bit: 8 discos –> un bit de cada byte en cada disco)
Sectores 8 veces más grandes Velocidad de Acceso 8 veces mayor
Distribuci
Distribució
ón Nivel de Bloque
n Nivel de Bloque
La distribución de datos más usada es la distribución en el nivel de bloque: se reparte los bloques entre varios discos
Se trata la disposición de discos como un único y gran disco y se proporciona números lógicos a los bloques de todos los discos comenzando en 0 8 discos: Bloque lógico 0 ÆBloque físico 0 del disco 1
Bloque lógico 11 ÆBloque físico 1 del disco 4 Al leer un archivo grande, se buscan n bloques en paralelo en los n discos
Niveles RAID
Niveles RAID
La creación de imágenes proporciona gran fiabilidad pero resulta costosa
La distribución proporciona velocidades de transferencia elevadas pero no mejora la fiabilidad
Niveles RAID: esquemas con diferentes compromisos de coste y rendimiento
(proporcionan la redundancia mediante bits de paridad) 4 discos de datos
P: bits para corrección de errores mediante paridad C: copia redundante de los datos
RAID de Nivel 0
RAID de Nivel 0
RAID
RAID 1313
RAID de Nivel 0se refiere a disposiciones de disco con
distribución en el nivel de bloque pero sin redundancia
(ni creación de imágenes ni bits de paridad) P: Paridad C: Copia Distribución no redundante
RAID de Nivel 1
RAID de Nivel 1
RAID RAID 1414RAID de Nivel 1, o discos con imagen, se refiere a la creación de imágenes de disco con distribución de bloques P: Paridad C: Copia C C C C
RAID de Nivel 2
RAID de Nivel 2
RAID RAID 1515RAID de Nivel 2también se conoce como organización de códigos de corrección de errores tipo memoria
P: Paridad
C: Copia P P P
Realizan la detección de errores utilizando los bits de paridad (1 bit de paridad permite detectar un error en un bit de un byte)
RAID 2 vs. RAID 1
RAID 2 vs. RAID 1
RAID
RAID 1616
RAID de Nivel 2 sólo necesita la sobrecarga de tres discos para cuatro discos de datos, a diferencia de RAID de Nivel 1, que necesita la sobrecarga de cuatro discos
RAID de Nivel 3
RAID de Nivel 3
RAID RAID 1717 RAID de Nivel 3, u organización de paridad con bits entrelazados, a diferencia de los sistemas de memoria, los controladores de disco pueden detectar si un sector se ha leído correctamente, por lo que es suficiente un bit de paridadP: Paridad
C: Copia P
Si un sector se deteriora se sabe exactamente cual es y se puede recuperar a través del único bit de paridad
RAID 3 vs. RAID 2
RAID 3 vs. RAID 2
RAID
RAID 1818
RAID de Nivel 3 es tan bueno como RAID de Nivel 2, pero resulta menos costoso en cuanto al número de discos adicionales (sólo tiene la sobrecarga de un disco), por lo que RAID de Nivel 2 no se utiliza en la práctica
RAID 3 vs. RAID 1
RAID 3 vs. RAID 1
RAID
RAID 1919
RAID de Nivel 3 tiene dos ventajas respecto a RAID de Nivel 1
Sólo se necesita un disco de paridad para varios discos normales, en comparación con un disco imagen por cada disco en RAID de Nivel 1, por lo que se reduce la sobrecarga de almacenamiento (la velocidad de transferencia es N veces más rápida que en un disco) RAID de Nivel 3 permite un menor número de operaciones de entrada/salida, dado que participan todos los discos
RAID de Nivel 4
RAID de Nivel 4
RAID
RAID 2020
RAID de Nivel 4, u organización de paridad con bloques entrelazados, usa distribución de bloque y además guarda un bloque de paridad en un disco aparte en un disco aparte para los bloques del resto de discos
P: Paridad
C: Copia P
La velocidad de transferencia es menor, pero se pueden ejecutar en paralelo varios accesos de lectura, lo que produce una mayor velocidad global
La mejor velocidad de transferencia es para accesos de gran tamaño
RAID de Nivel 5
RAID de Nivel 5
RAID
RAID 2121
RAID de Nivel 5, o
paridad distribuida con bloques entrelazados, divide los datos y la paridad entre los N+1 discos aumentando de esta forma el número de solicitudes atendidas por unidad de tiempo P: Paridad C: Copia P P P P P
RAID 5 vs. RAID 4
RAID 5 vs. RAID 4
RAID RAID 2222RAID de Nivel 4 RAID de Nivel 5
P4 19 18 17 16 P3 15 14 13 12 P2 11 10 9 8 P1 7 6 5 4 P0 3 2 1 0 D5 D4 D3 D2 D1 P4 19 18 17 16 15 P3 14 13 12 11 10 P2 9 8 7 6 5 P1 4 3 2 1 0 P0 D5 D4 D3 D2 D1
RAID Nivel 5 incluye a RADI Nivel 4 dado que ofrece mejor rendimiento de lectura y escritura por el mismo coste
RAID de Nivel 6
RAID de Nivel 6
RAID de Nivel 6, también denominado esquema de redundancia P+Q, guarda información redundante adicional para protección contra fallos de disco múltiples
P: Paridad C: Copia
Utiliza códigos de Reed-Solomon para la corrección de errores
P P P P P P
Elecci
Elecció
ón del Nivel RAID
n del Nivel RAID
Factoresa tener en cuenta al elegir un Nivel RAID ¾Coste económico extra de los requisitos de
almacenamiento en disco
¾Requisitos de rendimiento en términos del número de operaciones de entrada/salida
¾Rendimiento cuando falla un disco
¾Rendimiento durante la reconstrucción (mientras los datos del disco estropeado se reconstruyen en un nuevo disco)
Rendimiento en Reconstrucci
Rendimiento en Reconstrucció
ón
n
RAID
RAID 2525
El rendimiento en la reconstrucciónde un sistema RAID puede ser un factor importante si se necesita un aporte continuo de datos, como ocurre en los sistemas de bases de datos de alto rendimiento
RAID de Nivel 0se usa en aplicaciones de alto rendimiento donde la seguridad de los datos no es crítica
RAID de Nivel 1presenta la reconstrucción más sencillo pero con el sistema más caro
RAID de Nivel 3 (2)raramente se usa dado que la distribución de bloques da mejores resultados para grandes transferencias
Rendimiento en Reconstrucci
Rendimiento en Reconstrucció
ón
n
RAID
RAID 2626
RAID de Nivel 5 (4)es una gran opción para aplicaciones donde los datos se leen frecuentemente y se escriben raramente
RAID de Nivel 6no se soporta actualmente en casi ninguna implementación RAID, pero es recomendable en aplicaciones en las cuales la seguridad de datos es muy importante Moderado Alto RAID de Nivel 5 Alto Moderado RAID de Nivel 1 Entrada/Salida Almacenamiento Requisitos
Aspectos Hardware
Aspectos Hardware
RAID RAID 2727RAID Software(implementado sin cambios en el nivel hardware) / RAID Hardware(hardware de propósito especial) Intercambio en caliente (los discos averiados se puede eliminar y reemplazar sin apagar el sistema; fundamental en los sistemas críticos 24x7)
Varias fuentes de alimentación con baterías de respaldo Varios controladores de disco
Varias interconexiones con el sistema
Los “conceptos RAID” se han generalizado a otros dispositivos de almacenamiento e incluso a la transmisión de datos
Acceso al
Acceso al
Almacenamiento
Almacenamiento
Estructuras de Almacenamiento Estructuras de Almacenamiento Bases de Datos Bases de Datos IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas
Archivos y Bloques
Archivos y Bloques
Acceso al Almacenamiento
Acceso al Almacenamiento 2929
Las bases de datosse corresponden con archivos, residentes en disco con copia de seguridad en cinta, que mantiene el sistema operativo
Cada archivose divide en unidades de almacenamiento de longitud constantes denominadas bloques, que son las unidades de asignación de almacenamiento y de transferencia de datos
Uno de los principales objetivosdel sistema de bases de datos es minimizar el número de transferencias de bloques entre el disco y la memoria
Memoria Intermedia
Memoria Intermedia
Acceso al Almacenamiento
Acceso al Almacenamiento 3030
Una manera de reducir el número de accesos a disco es mantener en la memoria principal todos los bloques que sea posible
El objetivo es maximizar la probabilidad de que, cuando se necesite, un bloque ya se encuentre en la memoria principal y por tanto no se necesite un acceso a disco
El gestor de la memoria intermediaes el responsable de la asignación de la memoria intermedia La memoria intermedia (buffer)es la parte de la memoria principal disponible para el almacenamiento de las copias de los bloques de disco
Gestor Memoria Intermedia
Gestor Memoria Intermedia
Acceso al Almacenamiento
Acceso al Almacenamiento 3131
Los programas de un sistema de bases de datos formulan solicitudes al gestor de la memoria intermediacuando necesitan un bloque del disco
Si el bloque se encuentra en la memoria intermedia se devuelve al programa solicitante
Si el bloque no se encuentra en la memoria intermedia el gestor asigna espacio al bloque descartando, si hace falta, algún otro bloque (este se graba en disco si ha sido modificado desde la última vez que se grabó) y lo lee a la memoria intermedia
Esquemas de Gestión de Memoria específicos
Estrategia de Substituci
Estrategia de Substitució
ón
n
Acceso al Almacenamiento
Acceso al Almacenamiento 3232
Cuando no queda espacio libre en la memoria intermedia hay que eliminar un bloque de ésta antes de que se pueda escribir en él otro nuevo
Generalmente los sistemas operativos utilizan un esquema de menos recientemente utilizado(Last Recently Used, LRU), en el que se vuelve a escribir en el disco y se elimina de la memoria intermedia el bloque al que se ha hecho referencia menos recientemente
En las bases de datos funciona mejor el esquema de más recientemente utilizado(Most Recently Used, MRU) pues se suele reutilizar la información
Bloques Clavados
Bloques Clavados
Acceso al Almacenamiento
Acceso al Almacenamiento 3333
Para que el sistema de bases de datos pueda recuperarse de las caídasresulta necesario limitar las ocasiones en que se puede volver a escribir el bloque en el disco
Se dice que un bloque está clavadocuando no se le permite que se vuelva a escribir en el disco
Aunque muchos sistemas operativos no permiten trabajar con bloques clavados, esta prestación resulta esencial para la implementación de un sistema de bases de datos resistente a caídas
Salida Forzada de Bloques
Salida Forzada de Bloques
Acceso al Almacenamiento
Acceso al Almacenamiento 3434
Hay situaciones en las que resulta necesario volver a escribir el bloque en el disco, aunque no se necesite el espacio de memoria intermedia que ocupa
Este proceso de escritura se denomina
salida forzada del bloque
Se necesita la salida forzada porque la memoria intermedia se pierde en las caídas mientras que los datos del disco suelen sobrevivir
for each tupla p de prestatario do for each tupla c de cliente do
if p[nombre_cliente]=c[nombre_cliente] then begin
sea x una tupla definida como sigue: x[nombre_cliente]:=p[nombre_cliente] x[numero_prestamo]:=p[numero_prestamo] x[calle_cliente]:=c[calle_cliente]
x[ciudad_cliente]:=c[ciudad_cliente] incluir la tupla x como parte del resultado end end end
Ejemplo
Ejemplo
prestatario clienteMRU + clavado del bloque de cliente que se está procesando
Organizaci
Organizaci
ó
ó
n de
n de
los Archivos
los Archivos
Estructuras de Almacenamiento Estructuras de Almacenamiento Bases de Datos Bases de Datos IngenierRegistros
Registros
Organizaci
Organizacióón de los Archivosn de los Archivos 3737 Los archivos se organizan lógicamente
como secuencias de registros
Aunque los bloques son de un tamaño fijo determinado por las propiedades físicas del disco y por el sistema operativo, los tamaños de
los registros varíanpues en las bases de datos relacionales las tuplas de las diferentes relaciones suelen ser de tamaños distintos
Registros Longitud Fija
Registros Longitud Fija
Organizaci
Organizacióón de los Archivosn de los Archivos 3838 type cuenta = record
numero_cuenta: char(10); nombre_sucursal: char(22); saldo: real; end 1 carácter = 1 byte 1 real = 8 bytes 40 bytes
Registros Consecutivos
Registros Consecutivos
OrganizaciOrganizacióón de los Archivosn de los Archivos 3939 700 Santiago C-218 registro 8 600 Pontevedra C-110 registro 7 750 Monforte C-217 registro 6 900 Santiago C-201 registro 5 700 Betanzos C-222 registro 4 500 Pontevedra C-101 registro 3 700 Orense C-215 registro 2 350 Lugo C-305 registro 1 400 Santiago C-102 registro 0
Resulta difícil borrar un registro (rellenar o marcar) Registros en dos bloques (salvo tamaño múltiplo exacto)
Desplazamiento Global
Desplazamiento Global
Organizaci
Organizacióón de los Archivosn de los Archivos 4040 700 Santiago C-218 registro 8 600 Pontevedra C-110 registro 7 750 Monforte C-217 registro 6 900 Santiago C-201 registro 5 700 Betanzos C-222 registro 4 500 Pontevedra C-101 registro 3 350 Lugo C-305 registro 1 400 Santiago C-102 registro 0
Necesita desplazar muchos registros
Desplazar
Desplazar Ú
Último
ltimo
Organizaci
Organizacióón de los Archivosn de los Archivos 4141 600 Pontevedra C-110 registro 7 750 Monforte C-217 registro 6 900 Santiago C-201 registro 5 700 Betanzos C-222 registro 4 500 Pontevedra C-101 registro 3 700 Santiago C-218 registro 8 350 Lugo C-305 registro 1 400 Santiago C-102 registro 0
Más sencilla que un desplazamiento global
Mejor dejarlos libres y esperar una inserción posterior (no basta una simple marca)
Cabecera de Archivo
Cabecera de Archivo
Organizaci
Organizacióón de los Archivosn de los Archivos 4242 700 600 900 500 700 400 cabecera Santiago C-218 registro 8 Pontevedra C-110 registro 7 registro 6 Santiago C-201 registro 5 registro 4 Pontevedra C-101 registro 3 Orense C-215 registro 2 registro 1 Santiago C-102 registro 0
La cabecera de archivo guarda la dirección del primer registro libre y cada registro libre se utiliza para guardar la dirección del siguiente registro libre
Registros Longitud Variable
Registros Longitud Variable
Organizaci
Organizacióón de los Archivosn de los Archivos 4343 Los registros de longitud variablesurgen en los sistemas de bases de datos de varias maneras:
Almacenamiento de varios tipos de registros en un mismo archivo
Tipos de registro que permiten longitudes variables para uno o varios campos
Tipos de registros que permiten campos repetidos
Registros Longitud Variable
Registros Longitud Variable
Organizaci
Organizacióón de los Archivosn de los Archivos 4444 type lista_cuentas = record
nombre_sucursal: char(22);
informacion_cuentas: array [1…∞] of record numero_cuenta: char(10);
saldo: real
end end
No hay límite para el tamaño del registro… hasta el tamaño del disco
Cadena de
Cadena de Bytes
Bytes
Organizaci
Organizacióón de los Archivosn de los Archivos 4545 ⊥ ⊥ C-110 ⊥ ⊥ C-201 600 900 ⊥ C-218 700 Monforte Betanzos Pontevedra Orense Lugo Santiago 750 C-217 registro 5 700 C-222 registro 4 500 C-101 registro 3 700 C-215 registro 2 350 C-305 registro 1 ⊥ 400 C-102 registro 0
No resulta sencillo reutilizar el espacio ocupado por un registro borrado anteriormente (fragmentación) No queda espacio para el aumento del tamaño de los registros (el desplazamiento es costoso)
P
Pá
áginas con Ranuras
ginas con Ranuras
Organizaci
Organizacióón de los Archivosn de los Archivos 4646 Espacio Libre
Número Entradas Cabecera de bloque
Fin del espacio libre
Tamaño Ubicación
Espacio Reservado
Espacio Reservado
⊥ ⊥ C-110 ⊥ ⊥ C-201 ⊥ ⊥ 600 ⊥ ⊥ 900 ⊥ ⊥ ⊥ ⊥ ⊥ C-218 ⊥ ⊥ ⊥ ⊥ ⊥ 700 Monforte Betanzos Pontevedra Orense Lugo Santiago ⊥ 750 C-217 registro 5 ⊥ 700 C-222 registro 4 ⊥ 500 C-101 registro 3 ⊥ 700 C-215 registro 2 ⊥ 350 C-305 registro 1 ⊥ 400 C-102 registro 0Válida si existe una longitud máxima que no se supera nunca
Listas Enlazadas
Listas Enlazadas
Monforte Betanzos Pontevedra Orense Lugo Santiago 700 C-218 registro 8 600 C-110 registro 7 750 C-217 registro 6 900 C-201 registro 5 700 C-222 registro 4 500 C-101 registro 3 700 C-215 registro 2 350 C-305 registro 1 400 C-102 registro 0Organizaci
Organizaci
ó
ó
n de
n de
los Registros en
los Registros en
los Archivos
los Archivos
Estructuras de Almacenamiento Estructuras de Almacenamiento Bases de Datos Bases de Datos IngenierIngenieríía Ta Téécnica en Informcnica en Informáática de Sistemastica de Sistemas
Organizaci
Organizació
ón de Registros
n de Registros
Organizaci
Organizacióón de los Registros en los Archivosn de los Registros en los Archivos 5050 Generalmente se usa un archivo separado para almacenar los registros de cada relación de la base de datos Existen organizaciones de archivos en agrupaciones
en las cuales se guardan en el mismo archivo registros de relaciones diferentes
Archivos en Mont
Archivos en Montí
ículo
culo
Organizaci
Organizacióón de los Registros en los Archivosn de los Registros en los Archivos 5151 En la organización de archivos en montículose puede colocar cualquier registro en cualquier parte del archivo en que haya espacio suficiente No hay ninguna ordenación de los registros Generalmente sólo hay un archivo por relación
Archivos Secuenciales
Archivos Secuenciales
Organizaci
Organizacióón de los Registros en los Archivosn de los Registros en los Archivos 5252 En la organización de archivos secuencialeslos registros se guardan en orden secuencial, basado en el valor de la clave de búsqueda (no tiene por qué ser una clave principal o una superclave) de cada registro 750 Monforte C-217 400 Santiago C-102 900 Santiago C-201 700 Betanzos C-222 700 Santiago C-218 600 Pontevedra C-110 500 Pontevedra C-101 700 Orense C-215 350 Lugo C-305
Hash
Hash
OrganizaciOrganizacióón de los Registros en los Archivosn de los Registros en los Archivos 5353 En la organización asociativa (hash)de archivos se calcula una función de asociación de algún atributo de cada registro
El resultado de la función de asociación especifica el bloque del archivo en el que se colocará el registro Está muy relacionado con la creación de índices
Almacenamiento
Almacenamiento
con Diccionario
con Diccionario
de Datos
de Datos
Estructuras de Almacenamiento Estructuras de Almacenamiento Bases de Datos Bases de Datos IngenierCat
Cat
álogo del Sistema
á
logo del Sistema
Almacenamiento con Diccionario de Datos
Almacenamiento con Diccionario de Datos 5555 Un sistema de bases de datos relacionalnecesita tener datos sobre las relaciones, como por ejemplo el esquema
¾Los nombres de las relaciones
¾Los nombres de los atributos de cada relación
¾Los dominios y las longitudes de los atributos
¾Los nombres de las vistas definidas en la base de datos y las definiciones de esas vistas
¾Las restricciones de integridad
Adem
Ademá
ás
s …
…
Almacenamiento con Diccionario de Datos
Almacenamiento con Diccionario de Datos 5656 …datos de los usuarios del sistema
¾Los nombres de los usuarios autorizados
¾La información de las cuentas de los usuarios
¾Contraseñas u otra información usada para autentificar a los usuarios
Adem
Ademá
ás
s …
…
Almacenamiento con Diccionario de Datos
Almacenamiento con Diccionario de Datos 5757 …datos de información estadística y descriptiva
¾Número de tuplas de cada relación
¾Método de almacenamiento utilizado para cada relación
¾La organización del almacenamiento (secuencial, asociativa o con montículos)
Adem
Ademá
ás
s …
…
Almacenamiento con Diccionario de Datos
Almacenamiento con Diccionario de Datos 5858 …datos sobre los índicesde cada una de las relaciones
¾El nombre del índice
¾El nombre de la relación para la cual se crea el índice
¾Los atributos sobre los cuales se define el índice
¾El tipo de índice formado
Minibase de Datos
Minibase de Datos
La información del catálogo constituye una base de datos en miniatura
Algunos sistemas de bases de datos guardan esta información utilizando estructuras de datos y código especial
Suele resultar preferible guardar los datos sobre la base de datos en la misma base de datos