You are on page 1of 10

Nivel F

Fsico

Estructuras
de
Almacenamiento

Nivel Lgico Modelo Entidad-Relacin


y Modelo Relacional
El nivel en el que se deben mover los usuario es el nivel lgico
El objetivo de un sistema de bases de datos
es simplificar y facilitar la tarea de acceso
a los datos
Al final estn los dispositivos de almacenamiento y es
necesario su conocimiento para su adecuada utilizacin

Bases de Datos
Ingenier
Ingeniera T
Tcnica en Inform
Informtica de Sistemas

Introducci
Introduccin

ndice
RAID
Acceso al Almacenamiento

RAID

Organizacin de los Archivos


Organizacin de los Registros en los Archivos
Almacenamiento con Diccionario de Datos

Estructuras de Almacenamiento
Bases de Datos
Ingenier
Ingeniera T
Tcnica en Inform
Informtica de Sistemas
Introducci
Introduccin

Requisitos Almacenamiento

RAID

Los requisitos de almacenamiento de datos de algunas


aplicaciones (en particular aplicaciones Web, aplicaciones
de bases de datos y aplicaciones multimedia) han crecido
tan rpido que se necesita un gran nmero de discos para
almacenar sus datos (incluso aunque las capacidades de
los discos hayan estado creciendo muy rpidamente)

Las tcnicas de organizacin de discos denominadas


RAID (Redundant Array of Independent Disks; Disposicin
Redundante de Discos Independientes) se han propuesto
para abordar los problemas de rendimiento y fiabilidad
Nacen con la idea de usar discos pequeos de
bajo coste como alternativa econmicamente
efectiva a los discos grandes y caros

Tener varios discos presenta oportunidades


para mejorar la velocidad (discos funcionando
con lectura/escritura en paralelo) y la fiabilidad
(guardar informacin repetida)
RAID

Actualmente se usan por su mayor fiabilidad y por


su mayor velocidad de transferencia de datos, ms
que por motivos econmicos
5

RAID

Fiabilidad RAID

Redundancia

La probabilidad de que algn disco, de una estructura de


N discos, falle es mucho ms elevada que la probabilidad
de que falle un nico disco concreto

La Redundancia consiste en guardar informacin


adicional que normalmente no se necesita pero
que puede utilizarse en caso de fallo de un disco para
reconstruir la informacin perdida

Tiempo Medio entre Fallos (un disco):


100.000 horas = 11 aos

En presencia de redundancia el tiempo


medio efectivo entre fallos aumenta

Tiempo Medio entre Fallos (un disco de cien):


100.000/100 horas = 1.000 Horas= 42 das
La solucin al problema de la fiabilidad
es introducir redundancia
RAID

Creaci
Creacin de Im
Imgenes

RAID

Rendimiento RAID

La forma ms sencilla de crear redundancia (y la ms costosa)


es duplicar los discos (Un disco lgico Dos discos fsicos)
El tiempo medio entre prdidas de datos (fallos de un
disco con imagen) depende del tiempo medio entre
fallos de cada disco y del tiempo medio de reparacin

Con la creacin de imgenes 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 estn operativos)
Con varios discos se puede mejorar la velocidad de
transferencia distribuyendo los datos (en su forma ms
sencilla se puede hacer una distribucin en el nivel
del bit: 8 discos > un bit de cada byte en cada disco)

Fallos de los discos independientes


Tiempo medio entre fallos de disco: 100.000 Horas
Tiempo medio de reparacin: 10 Horas

Sectores 8 veces ms grandes

Tiempo medio entre prdidas de datos: 57.000 aos

Velocidad de Acceso 8 veces mayor

(Disponibles sistemas con 55 a 110 aos)


RAID

RAID

Distribuci
Distribucin Nivel de Bloque

Niveles RAID

La distribucin de datos ms usada es la distribucin en el


nivel de bloque: se reparte los bloques entre varios discos

La creacin de imgenes proporciona gran fiabilidad


pero resulta costosa
La distribucin proporciona velocidades de
transferencia elevadas pero no mejora la fiabilidad

Se trata la disposicin de discos como un nico y


gran disco y se proporciona nmeros lgicos a los
bloques de todos los discos comenzando en 0
8 discos:

10

Niveles RAID: esquemas con diferentes


compromisos de coste y rendimiento
(proporcionan la redundancia mediante bits de paridad)

Bloque lgico 0 Bloque fsico 0 del disco 1


Bloque lgico 11 Bloque fsico 1 del disco 4
Al leer un archivo grande, se buscan
n bloques en paralelo en los n discos

RAID

11

4 discos de datos
P: bits para correccin de errores mediante paridad
C: copia redundante de los datos
RAID

12

RAID de Nivel 0

RAID de Nivel 1

RAID de Nivel 0 se refiere a


disposiciones de disco con
distribucin en el nivel de
bloque pero sin redundancia
(ni creacin de imgenes ni bits
de paridad)

RAID de Nivel 1, o discos con


imagen, se refiere a la creacin
de imgenes de disco con
distribucin de bloques

Distribucin no redundante
P: Paridad
C: Copia

P: Paridad
C: Copia

RAID

13

RAID de Nivel 2

RAID

C
14

RAID 2 vs. RAID 1

RAID de Nivel 2 tambin se conoce como organizacin


de cdigos de correccin de errores tipo memoria

RAID de Nivel 2 slo 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

Realizan la deteccin de errores utilizando los


bits de paridad (1 bit de paridad permite
detectar un error en un bit de un byte)

P: Paridad
C: Copia

RAID

15

RAID de Nivel 3

16

RAID 3 vs. RAID 2

RAID de Nivel 3, u
organizacin de paridad
con bits entrelazados, a
diferencia de los sistemas de
memoria, los controladores
de disco pueden detectar si
un sector se ha ledo
correctamente, por lo que es
suficiente un bit de paridad
Si un sector se deteriora se sabe exactamente cual es
y se puede recuperar a travs del nico bit de paridad
P: Paridad
C: Copia

RAID

RAID de Nivel 3 es tan bueno como RAID de Nivel 2,


pero resulta menos costoso en cuanto al nmero de
discos adicionales (slo tiene la sobrecarga de un
disco), por lo que RAID de Nivel 2 no se utiliza en la
prctica

P
RAID

17

RAID

18

RAID 3 vs. RAID 1

RAID de Nivel 4

RAID de Nivel 3 tiene dos ventajas respecto a RAID de


Nivel 1

RAID de Nivel 4, u organizacin de paridad con


bloques entrelazados, usa distribucin de bloque y
adems guarda un bloque de paridad en un disco aparte
en un disco aparte para los bloques del resto de discos

Slo se necesita un disco de paridad para varios discos


normales, en comparacin 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 ms rpida que en un disco)

La velocidad de transferencia es menor, pero se


pueden ejecutar en paralelo varios accesos de
lectura, lo que produce una mayor velocidad global

RAID de Nivel 3 permite un menor nmero de


operaciones de entrada/salida, dado que participan
todos los discos

La mejor velocidad de transferencia


es para accesos de gran tamao
P: Paridad
C: Copia

RAID

19

RAID

RAID de Nivel 5

RAID 5 vs. RAID 4

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
nmero de solicitudes
atendidas por unidad de
tiempo

P: Paridad
C: Copia

20

RAID de Nivel 4

RAID de Nivel 5

D1

D2

D3

D4

D5

D1

D2

D3

D4

D5

P0

P0

P1

P1

10

11

P2

P2

10

11

12

13

14

15

P3

12

13

14

P3

15

16

17

18

19

P4

16

17

18

19

P4

RAID Nivel 5 incluye a RADI Nivel 4 dado


que ofrece mejor rendimiento de lectura
y escritura por el mismo coste

RAID

21

RAID de Nivel 6

RAID

22

Elecci
Eleccin del Nivel RAID

RAID de Nivel 6, tambin denominado esquema de


redundancia P+Q, guarda informacin redundante
adicional para proteccin contra fallos de disco mltiples

Factores a tener en cuenta al elegir un Nivel RAID


Coste econmico extra de los requisitos de
almacenamiento en disco
Requisitos de rendimiento en trminos del nmero
de operaciones de entrada/salida

Utiliza cdigos de Reed-Solomon


para la correccin de errores

Rendimiento cuando falla un disco


Rendimiento durante la reconstruccin (mientras los datos
del disco estropeado se reconstruyen en un nuevo disco)

P: Paridad
C: Copia

P
RAID

P
23

RAID

24

Rendimiento en Reconstrucci
Reconstruccin

Rendimiento en Reconstrucci
Reconstruccin
RAID de Nivel 5 (4) es una gran opcin para
aplicaciones donde los datos se leen frecuentemente
y se escriben raramente

El rendimiento en la reconstruccin de 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 0 se usa en aplicaciones de alto rendimiento
donde la seguridad de los datos no es crtica

RAID de Nivel 6 no se soporta actualmente en casi


ninguna implementacin RAID, pero es recomendable
en aplicaciones en las cuales la seguridad de datos es
muy importante

RAID de Nivel 1 presenta la reconstruccin ms sencillo


pero con el sistema ms caro

Requisitos
Almacenamiento

RAID de Nivel 3 (2) raramente se usa dado que la


distribucin de bloques da mejores resultados para
grandes transferencias
RAID

25

Entrada/Salida

RAID de Nivel 1

Moderado

Alto

RAID de Nivel 5

Alto

Moderado

RAID

26

Aspectos Hardware
RAID Software (implementado sin cambios en el nivel
hardware) / RAID Hardware (hardware de propsito especial)
Intercambio en caliente (los discos averiados se puede eliminar
y reemplazar sin apagar el sistema; fundamental en los sistemas
crticos 24x7)
Varias fuentes de alimentacin con bateras de respaldo
Varios controladores de disco

Acceso al
Almacenamiento

Varias interconexiones con el sistema


Los conceptos RAID se han generalizado a otros
dispositivos de almacenamiento e incluso a la
transmisin de datos
RAID

Estructuras de Almacenamiento
Bases de Datos
Ingenier
Ingeniera T
Tcnica en Inform
Informtica de Sistemas

27

Archivos y Bloques

Memoria Intermedia

Las bases de datos se corresponden con archivos,


residentes en disco con copia de seguridad en cinta,
que mantiene el sistema operativo

Una manera de reducir el nmero de accesos a


disco es mantener en la memoria principal todos los
bloques que sea posible

Cada archivo se divide en unidades de almacenamiento


de longitud constantes denominadas bloques, que son
las unidades de asignacin de almacenamiento y de
transferencia de datos
Uno de los principales objetivos del sistema de bases
de datos es minimizar el nmero de transferencias
de bloques entre el disco y la memoria
Acceso al Almacenamiento

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
La memoria intermedia (buffer) es la parte de la
memoria principal disponible para el almacenamiento
de las copias de los bloques de disco
El gestor de la memoria intermedia es el
responsable de la asignacin de la memoria intermedia

29

Acceso al Almacenamiento

30

Gestor Memoria Intermedia

Estrategia de Substituci
Substitucin

Los programas de un sistema de bases de datos


formulan solicitudes al gestor de la memoria
intermedia cuando necesitan un bloque del disco

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

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, algn 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

En las bases de datos funciona mejor el esquema de ms


recientemente utilizado (Most Recently Used, MRU) pues
se suele reutilizar la informacin

Esquemas de Gestin de Memoria especficos


Acceso al Almacenamiento

31

Bloques Clavados

Acceso al Almacenamiento

32

Salida Forzada de Bloques

Para que el sistema de bases de datos pueda recuperarse


de las cadas resulta necesario limitar las ocasiones en que
se puede volver a escribir el bloque en el disco

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

Se dice que un bloque est clavado cuando no se le


permite que se vuelva a escribir en el disco

Este proceso de escritura se denomina


salida forzada del bloque

Aunque muchos sistemas operativos no permiten trabajar


con bloques clavados, esta prestacin resulta esencial para la
implementacin de un sistema de bases de datos resistente a
cadas

Se necesita la salida forzada porque la memoria intermedia


se pierde en las cadas mientras que los datos del disco
suelen sobrevivir

Acceso al Almacenamiento

33

Acceso al Almacenamiento

34

Ejemplo
prestatario
cliente
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
MRU + clavado del bloque de
end
cliente que se est procesando
Acceso al Almacenamiento

Organizacin de
los Archivos
Estructuras de Almacenamiento
Bases de Datos
Ingenier
Ingeniera T
Tcnica en Inform
Informtica de Sistemas

35

Registros

Registros Longitud Fija

Los archivos se organizan lgicamente


como secuencias de registros

type cuenta = record


numero_cuenta: char(10);
nombre_sucursal: char(22);
saldo: real;
end

Aunque los bloques son de un tamao fijo


determinado por las propiedades fsicas del
disco y por el sistema operativo, los tamaos de
los registros varan pues en las bases de datos
relacionales las tuplas de las diferentes relaciones
suelen ser de tamaos distintos

1 carcter = 1 byte
1 real = 8 bytes
40 bytes

Organizaci
Organizacin de los Archivos

37

Registros Consecutivos

Organizaci
Organizacin de los Archivos

38

Desplazamiento Global

registro 0

C-102

Santiago

400

registro 0

C-102

Santiago

400

registro 1

C-305

Lugo

350

registro 1

C-305

Lugo

350

registro 2

C-215

Orense

700

registro 3

C-101

Pontevedra

500

registro 3

C-101

Pontevedra

500

registro 4

C-222

Betanzos

700

registro 4

C-222

Betanzos

700

registro 5

C-201

Santiago

900

registro 5

C-201

Santiago

900

registro 6

C-217

Monforte

750

registro 6

C-217

Monforte

750

registro 7

C-110

Pontevedra

600

registro 7

C-110

Pontevedra

600

registro 8

C-218

Santiago

700

registro 8

C-218

Santiago

700

Resulta difcil borrar un registro (rellenar o marcar)

Necesita desplazar muchos registros

Registros en dos bloques (salvo tamao mltiplo exacto)


Organizaci
Organizacin de los Archivos

39

Organizaci
Organizacin de los Archivos

Desplazar ltimo

Cabecera de Archivo

registro 0

C-102

Santiago

400

cabecera

registro 1

C-305

Lugo

350

registro 0

registro 8

C-218

Santiago

700

registro 1

registro 3

C-101

Pontevedra

500

registro 4

C-222

Betanzos

700

registro 5

C-201

Santiago

900

registro 4

registro 6

C-217

Monforte

750

registro 5

registro 7

C-110

Pontevedra

600

registro 6

Ms sencilla que un desplazamiento global

C-102

Santiago

400

registro 2

C-215

Orense

700

registro 3

C-101

Pontevedra

500

C-201

Santiago

900

registro 7

C-110

Pontevedra

600

registro 8

C-218

Santiago

700

La cabecera de archivo guarda la direccin del primer


registro libre y cada registro libre se utiliza para guardar
la direccin del siguiente registro libre

Mejor dejarlos libres y esperar una insercin posterior


(no basta una simple marca)
Organizaci
Organizacin de los Archivos

40

41

Organizaci
Organizacin de los Archivos

42

Registros Longitud Variable

Registros Longitud Variable

Los registros de longitud variable surgen 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

type lista_cuentas = record


nombre_sucursal: char(22);
informacion_cuentas: array [1] of record
numero_cuenta: char(10);
saldo: real
end
end

Tipos de registros que permiten campos repetidos


No hay lmite para el tamao del
registro hasta el tamao del disco

Organizaci
Organizacin de los Archivos

43

Organizaci
Organizacin de los Archivos

Cadena de Bytes

Pginas con Ranuras

C-102

400

C-201

Lugo

C-305

350

Cabecera de bloque

registro 2

Orense

C-215

700

Nmero
Entradas

Pontevedra

C-101

500

C-110

Betanzos

C-222

700

registro 5

Monforte

C-217

750

600

C-218

700

Tamao

Santiago

registro 3

900

registro 0
registro 1

registro 4

44

No resulta sencillo reutilizar el espacio ocupado por un


registro borrado anteriormente (fragmentacin)

Ubicacin
Espacio Libre

Fin del espacio libre

No queda espacio para el aumento del tamao de los


registros (el desplazamiento es costoso)

Organizaci
Organizacin de los Archivos

45

Organizaci
Organizacin de los Archivos

Espacio Reservado

46

Listas Enlazadas

registro 0

Santiago

C-102

400

C-201

900

C-218

700

registro 0

Santiago

C-102

400

registro 1

Lugo

C-305

350

registro 1

Lugo

C-305

350

registro 2

Orense

C-215

700

registro 2

Orense

C-215

700

registro 3

Pontevedra

C-101

500

C-110

600

registro 3

Pontevedra

C-101

500

registro 4

Betanzos

C-222

700

registro 4

Betanzos

C-222

700

registro 5

Monforte

C-217

750

registro 5

C-201

900

C-217

750

registro 7

C-110

600

registro 8

C-218

700

registro 6

Vlida si existe una longitud mxima


que no se supera nunca

Organizaci
Organizacin de los Archivos

47

Monforte

Organizaci
Organizacin de los Archivos

48

Organizaci
Organizacin de Registros

Organizacin de
los Registros en
los Archivos

Generalmente se usa un archivo separado para almacenar


los registros de cada relacin de la base de datos
Existen organizaciones de archivos en agrupaciones
en las cuales se guardan en el mismo archivo registros de
relaciones diferentes

Estructuras de Almacenamiento
Bases de Datos
Ingenier
Ingeniera T
Tcnica en Inform
Informtica de Sistemas
Organizaci
Organizacin de los Registros en los Archivos

Archivos en Mont
Montculo

Archivos Secuenciales

En la organizacin de archivos en montculo se


puede colocar cualquier registro en cualquier parte
del archivo en que haya espacio suficiente

En la organizacin de archivos secuenciales los


registros se guardan en orden secuencial, basado en
el valor de la clave de bsqueda (no tiene por qu
ser una clave principal o una superclave) de cada
registro

No hay ninguna ordenacin de los registros


Generalmente slo hay un archivo por relacin

Organizaci
Organizacin de los Registros en los Archivos

51

C-222

Betanzos

700

C-305

Lugo

350

C-217

Monforte

750

C-215

Orense

700

C-101

Pontevedra

500

C-110

Pontevedra

600

C-201

Santiago

900

C-102

Santiago

400

C-218

Santiago

700

Organizaci
Organizacin de los Registros en los Archivos

50

52

Hash

Almacenamiento
con Diccionario
de Datos

En la organizacin asociativa (hash) de archivos


se calcula una funcin de asociacin de algn
atributo de cada registro
El resultado de la funcin de asociacin especifica el
bloque del archivo en el que se colocar el registro
Est muy relacionado con la creacin de ndices

Estructuras de Almacenamiento
Bases de Datos
Ingenier
Ingeniera T
Tcnica en Inform
Informtica de Sistemas
Organizaci
Organizacin de los Registros en los Archivos

53

Cat
Catlogo del Sistema

Adem
Adems

Un sistema de bases de datos relacional necesita


tener datos sobre las relaciones, como por ejemplo el
esquema

datos de los usuarios del sistema


Los nombres de los usuarios autorizados

Los nombres de las relaciones


Los nombres de los atributos de cada relacin
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

Almacenamiento con Diccionario de Datos

La informacin de las cuentas de los usuarios


Contraseas u otra informacin usada para
autentificar a los usuarios

55

Adem
Adems

Almacenamiento con Diccionario de Datos

Adem
Adems

datos de informacin estadstica y descriptiva

datos sobre los ndices de cada una de las relaciones

Nmero de tuplas de cada relacin

El nombre del ndice

Mtodo de almacenamiento utilizado para cada relacin

El nombre de la relacin para la cual se crea el ndice

La organizacin del almacenamiento (secuencial,


asociativa o con montculos)

Los atributos sobre los cuales se define el ndice

Almacenamiento con Diccionario de Datos

56

El tipo de ndice formado

57

Almacenamiento con Diccionario de Datos

58

Minibase de Datos
La informacin del catlogo constituye una base de datos
en miniatura
Algunos sistemas de bases de datos guardan esta
informacin utilizando estructuras de datos y cdigo
especial
Suele resultar preferible guardar los datos sobre la
base de datos en la misma base de datos

Almacenamiento con Diccionario de Datos

59

10