Una base de datos Oracle es una colección de datos tratada como una
unidad. El propósito general es almacenar y recuperar información relacionada.
Una instancia Oracle consta de una estructura de memoria, llamada Área
Global del Sistema (SGA), y de unos procesos background utilizados por el
servidor Oracle para manejar una base de datos. Cada instancia Oracle puede
abrir y utilizar sólo una base datos en cualquier punto y momento.
Fig. 1 Estructura lógica y física de
base de datos
Estructura de una Base de Datos Oracle
La base de datos ORACLE esta subdivida en dos:
·
Estructura Lógica.
·
Estructura Física.
1.
ESTRUCTURA LÓGICA:
a.
Esquemas y objetos del esquema:
Un esquema es una
colección de objetos de la base de datos. Los objetos del esquema son
estructuras lógicas que hacen referencia directa a datos de la base de datos
(tablas, vistas, secuencias, procedimientos almacenados, sinónimos, índices, clusters
y enlaces con otras bases de datos).
b.
Data Base:
Es un conjunto de
datos que tienen un representan una información captada del mundo real, con
ellos se puede realizar diversos procesos.
c.
Tablespace:
Una base de datos
está formada por una o varias unidades lógicas llamadas tablespaces. Un
tablespace es la unidad de almacenamiento lógico. Además, cada una de estos
tablespaces está formada por uno o varios ficheros físicos que son los
datafiles. Un datafile solamente puede pertenecer a un tablespace. Por lo
tanto, los datafiles de una base de datos son todos los datafiles que forman
parte de todos los tablespaces de la base.
Cuando se crea una
base de datos, hay que crear al menos un tablespace, por lo que durante el
proceso de creación de la base de datos siempre se indica el tablespace
principal de ésta, que se llama SYSTEM.
El Tablespace System
Cuando se crea una
base de datos es obligatorio crear un tablespace inicial en el que se van a
crear los usuarios SYS y SYSTEM automáticamente. Estos usuarios
son los que tienen la información necesaria para que funcione nuestra base de
datos y podamos hacer todo tipo de operaciones como, por ejemplo, crear nuevos
usuarios o crear nuevos tablespaces y tablas en esos nuevos tablespaces.
Este tablespace
inicial se llama por defecto SYSTEM. Es una pieza clave para un buen
funcionamiento de la base de datos ya que en él residen todos los objetos de
los usuarios SYS y SYSTEM.
Es muy recomendable
crear al menos otro tablespace nuevo distinto al SYSTEM. Así, todos los nuevos
usuarios que creemos en nuestra base de datos, junto con todas sus tablas e
índices se almacenarán en un tablespace diferente a SYSTEM. Se realiza esta
separación para evitar que se bloquee toda la base de datos si ocurre algo
grave en el tablespace SYSTEM. Suele ser habitual que para nuestras
aplicaciones creemos usuarios y tablas en las que introducimos información y
que sin darnos cuenta se llene de información el tablespace en el que están
estas tablas. Si no hemos sido previsores, podemos haber llenado el tablespace
SYSTEM con lo que es posible que se paralice toda la base de datos.
d.
Segment:
Un segmento almacena
la información de una estructura lógica de Oracle dentro de un Tablespace. Está
formado por una o más extensiones y, a medida que va creciendo el segmento se
van asignando nuevas extensiones al mismo. Hay cuatro tipos de segmentos: de
datos, de índices, temporales y de rollback.
Tendremos segmentos
de datos para tablas o clusters, segmentos de índices para índices, segmentos de
rollback para poder deshacer o rehacer cambios por transacciones y segmentos
temporales.
Un segmento de datos
es el lugar donde se almacenan todos los datos de una tabla que no esté
particionada o que no forme parte de un cluster, de una partición de una tabla
particionada o, de un cluster de tablas. Se crea el segmento de datos a la hora
de ejecutar la sentencia create que crea la tabla, cluster o partición. En
dicha sentencia se indican también los valores de la cláusula storage, en el
cuál se va a determinar la forma en que dicho segmento va a ir asignando y
desasignando las extensiones.
El nivel de
almacenamiento de base de datos lógica por encima de un punto que se llama un
segmento. Un segmento de es un conjunto de extensiones asignadas a una
estructura lógica determinada. Por ejemplo, los diferentes tipos de segmentos
incluyen los siguientes:
·
Data Segment
Cada uno no agrupado
tabla tiene un segmento de datos. Todos los de la tabla de los datos se
almacenan en las extensiones de su segmento de datos. Cada grupo tiene un
segmento de datos. Los datos de cada tabla en el grupo son almacenados en el
segmento de datos del cluster.
·
Index Segment
Cada índice tiene una
serie de sesiones de índice que almacena todos sus datos.
·
Rollback Segment
Uno o más segmentos
rollback son creados por la base de datos administrador de una base de datos
para almacenar temporalmente "deshacer" la información. Esta
información se utiliza:
·
para generar la información base de datos de lectura consistente
·
durante la recuperación de la base de datos comprometido a revertir las
transacciones para los usuarios.
·
·
Temporary Segment
Se crean cuando un
Oracle SQL declaración de las necesidades de un área de trabajo temporal para
completar la ejecución.
Cuando la instrucción
termine su ejecución, el temporal use extensiones segmento son devueltos al
sistema para su uso futuro.
Oracle asigna
dinámicamente el espacio, cuando las extensiones existentes de un segmento se
lleno. Por lo tanto, cuando las extensiones existentes de un segmento están
llenas asigna otra medida de ese segmento, según sea necesario. Debido a que
las extensiones están asignadas como necesarias, las extensiones de un segmento
pueden o no ser contiguo en el disco.
e.
Extent:
Una extensión es una
unidad lógica de almacenamiento que está formada por un número determinado de
bloques de datos contiguos. La agrupación de una o varias extensiones forman un
segmento que puede ser una tabla, un índice, un segmento de rollback o un
segmento temporal. Por lo tanto, datos de una tabla, sabemos que están en un
solo segmento de tipo tabla, que a su vez estará formado por una o varias
extensiones y que, cada una de esas extensiones está formada por un número
determinado de bloques de datos.
Cuando se crea un
segmento nuevo, es decir, una tabla, un índice o un segmento de rollback, se
crea obligatoriamente una extensión en dicho segmento (en el caso de los
rollback se crean dos). El tamaño de esta extensión inicial viene dado por el
valor parámetro "initial" que se indica en el momento de crear el
segmento.
El siguiente nivel de
espacio de base de datos lógica se llama un punto. Una medida concreta es un a
número de bloques contiguos de bloques de datos, obtenidos en una dotación
única, que sirve para almacenar una tipo específico de información.
Cuando se crea una
tabla, Oracle asigna al segmento de datos de la tabla inicial alcance de un
número determinado de bloques de datos. Aunque no hay registros han sido
insertados. Sin embargo, los bloques de datos de Oracle que corresponden a la
medida inicial, se reservan para que filas de tabla.
Si los bloques de
datos de la extensión inicial de un segmento se completan y más espacio
necesario para mantener los nuevos datos, Oracle asigna automáticamente un
grado elemental de Una medida elemental es una medida posterior de la misma o
mayor tamaño que la medida previamente asignado en ese segmento. (La siguiente
sección explica los factores que controlan el tamaño de las extensiones
adicionales.)
Para fines de
mantenimiento, el bloque de cabecera de cada segmento contiene un directorio de
las extensiones en ese segmento.
f.
Data Block:
Un bloque es la
unidad mínima de almacenamiento de información de Oracle. A los bloques también
se les conoce como "bloques de datos", "bloques lógicos" o
"bloques oracle". Cada uno de estos bloques está formado por un
número determinado de bloques del sistema operativo. A la hora de crear una
nueva base de datos se debe indicar cuántos bloques de sistema operativo
formarán un bloque de datos o bloque oracle. Es muy importante decidir bien
este valor de antemano ya que una vez creada la base de datos ya no se puede
modificar más que en migraciones a versiones más actuales del producto.
Un bloque de datos es
la mínima unidad de Lectura / Escritura en una base de datos Oracle, es decir, Oracle
no lee y escribe en bloques del sistema operativo sino que lo hace en unidades
lógicas que son los bloques de datos y que varían de una base de datos a otra
en la misma máquina ya que es un valor que se debe indicar en la creación de
cada base de datos Oracle.
Oracle recomienda que
el tamaño de un bloque de datos o, data block, sea siempre un múltiplo del
bloque de datos del sistema operativo.
De Oracle administra
el espacio de almacenamiento en los archivos de datos de una base de datos en
unidades llamadas de datos bloques. Un bloque de datos es la menor unidad de E
/ S utilizados por una base de datos. En cambio, en el físico, nivel de sistema
operativo, todos los datos se almacenan en bytes. Cada una de ellas sistema
tiene lo que se llama un tamaño de bloque. Peticiones de datos de Oracle en
múltiplos de Oracle bloques de datos, que no operan los bloques del sistema.
Puede establecer el
tamaño de bloque de datos para cada base de datos de Oracle al crear la base de
datos.
Este tamaño de bloque
de datos debe ser un múltiplo del tamaño de bloque del sistema operativo dentro
de el máximo (puerto específico) para evitar el límite de lo necesario / O.
Oracle data blocks are Bloques de datos de Oracle las más pequeñas unidades de
almacenamiento que Oracle puede utilizar o asignar
Fig. 2 Formato bloque
de datos
Fig. 3 Estructuras Lógicas De
Almacenamiento
2.
ESTRUCTURA FÍSICA:
a.
Data File:
Los datafiles son los
ficheros físicos en los que se almacenan los objetos que forman parte de un
tablespace. Un datafile pertenece solamente a un tablespace y a una instancia
de base de datos. Un tablespace puede estar formado por uno o varios datafiles.
Cuando se crea un datafile, se debe indicar su nombre, su ubicación o
directorio, el tamaño que va a tener y el tablespace al que va a pertenecer.
Además, al crearlos, ocupan ya ese espacio aunque se encuentran totalmente
vacíos, es decir, Oracle reserva el espacio para poder ir llenándolo poco a
poco con posterioridad. Por supuesto, si no hay sitio suficiente para crear un
fichero físico del tamaño indicado, se producirá un error y no se creará dicho
fichero.
Cuando se van creando
objetos en un tablespace, éstos físicamente se van almacenando en los datafiles
asignados a dicho tablespace, es decir, cuando creamos una tabla y vamos
insertando datos en ella, estos datos realmente se reparten por los ficheros
físicos o datafiles que forman parte del tablespace. No se puede controlar en
qué fichero físico se almacenan los datos de un tablespace. Si un tablespace está
formado por 2 datafiles y tenemos una tabla en ese tablespace, a medida que
vamos insertando filas éstas se almacenarán en cualquiera de los dos datafiles
indistintamente, es decir, unas pueden estar en un datafile y otras en otro.
El espacio total disponible
en un tablespace es lógicamente la suma de los tamaños que ocupan los ficheros
físicos o datafiles que lo forman. Como hemos indicado estos datafiles, al
crearlos, están totalmente vacíos, simplemente es un espacio reservado y
formateado por Oracle para su uso. A medida que se van creando objetos en ellos
como tablas, índices, etc. y se van insertando registros en estas tablas, los
datafiles se van llenando o, lo que es lo mismo, el tablespace se va llenando.
Tienen las siguientes
características:
·
Un fichero sólo puede estar asociado con una base de datos.
·
Los ficheros de datos tienen atributos que permiten reservar
automáticamente para ellos extensiones cuando se acaba el espacio.
·
Uno o más ficheros de datos forman una unidad lógica de almacenamiento
llamada tablespace
b.
Os Block:
Conocidos como Disk Block, estos mapean a los data blocks. A la hora de
crear una nueva base de datos se debe indicar cuántos bloques de sistema
operativo formarán un bloque de datos o bloque oracle.





No hay comentarios.:
Publicar un comentario