3.1 Estructuras Lógicas de Almacenamiento
Para la gestión del almacenamiento de una base de datos
existen 4 conceptos bien definidos que deben ser conocidos para poder
comprender la forma en la que se almacenan los datos. Vamos a ver la diferencia
entre bloque, extensión, segmento y espacio de tablas.
Bloques: Se tratan de la unidad más pequeña. Generalmente
debe múltiple del tamaño de bloque del sistema operativo, ya que es la unidad
mínima que va a pedir Oracle al sistema operativo. Si no fuera múltiple del
bloque del sistema se añadiría un trabajo extra ya que el sistema debería
obtener más datos de los estrictamente necesarios. Se especifica mediante
DB_BLOCK_SIZE
Extensiones: Se forma con uno o más bloques. Cuando se
aumenta tamaño de un objeto se usa una extensión para incrementar el espacio.
Segmentos: Grupo de extensiones que forman un objeto
de la base de datos, como por ejemplo una tabla o un índice.
Espacio de Tablas: Formado por uno o más datafiles,
cada datafile solo puede pertenecer a un determinado tablespace
En general, el almacenamiento de los objetos de la base de
datos (tablas e índices fundamentalmente) no se realiza sobre el archivo o
archivos físicos de la base de datos, sino que se hace a través de estructuras
lógicas de almacenamiento que tienen por debajo a esos archivos físicos, y que
independizan por tanto las sentencias de creación de objetos de las estructuras
físicas de almacenamiento. Esto es útil porque permite que a esos
"espacios de objetos " les sean asociados nuevos dispositivos físicos
(es decir, más espacio en disco) de forma dinámica cuando la base de datos
crece de tamaño más de lo previsto. Posibilita además otra serie de operaciones
como las siguientes:
·
Asignar cuotas específicas de espacio a
usuarios de la base de datos.
·
Controlar la disponibilidad de los datos de la
base de datos, poniendo fuera de uso alguno de esos espacios de tablas
individualmente.
·
Realizar copias de seguridad o recuperaciones
parciales de la base de datos.
·
Reservar espacio para almacenamiento de datos
de forma cooperativa entre distintos dispositivos.
El administrador de la base de datos puede crear o borrar
nuevos espacios lógicos de objetos, añadir o eliminar ficheros físicos de
soporte, utilizados como espacio temporal de trabajo, definir parámetros de
almacenamiento para objetos destinados a ese espacio de datos, todos los
gestores relacionales que venimos introduciendo como ejemplos siguen esta
filosofía. En el caso de Oracle, sobre los ficheros físicos de datos
(datafiles) se definen los tablespaces. Por lo tanto, una base de datos Oracle
se compone lógicamente de tablespaces, y físicamente de datafiles. Su creación
es sencilla, con la sentencia GREAT'', TABLESPACE:
CREATE TABLESPACE usuarios
DATAFILE `datal.ora' SIZE 50M
También es sencillo ampliar el espacio destinado a un
tablespace utilizando el comando ALTER TABLESPACE:
ALTER TABLESPACE usuarios ADD DATAFILE 'data2.ora' SIZE 25M
Para hacer más grande una base de datos, las opciones
disponibles son tres:
Cada base de datos contiene un tablespace llamado SYSTEM
que es creado automáticamente al crear la base de datos. Contiene las tablas
del diccionario de datos para la base de datos en cuestión. Es recomendable no
cargar datos de usuario en SYSTEM, para dejarlos como espacio de objetos del
sistema.
Si además los datos de usuario están en tablespaces sitos
en otros dispositivos, el rendimiento mejorará porque las tablas del
diccionario de datos se acceden frecuentemente y por lo tanto son un cuello de
botella potencial desde el punto de vista del acceso a disco. A la hora de
estimar el espacio necesario para cl tablespace sys-nsm hay que tener en cuenta
que las unidades de programación PL-SQL (entorno de programación SQL
proporcionado por Oracle) almacenadas en la base de datos (procedimientos,
paquetes, disparos y funciones) almacenan sus datos en SYSTEM.
Comentarios
Publicar un comentario