Físico Es Un Conjunto de Bytes Que Se Transfieren Entre El Almacenamiento Volátil de
Físico Es Un Conjunto de Bytes Que Se Transfieren Entre El Almacenamiento Volátil de
Físico Es Un Conjunto de Bytes Que Se Transfieren Entre El Almacenamiento Volátil de
Un registro lógico más grande se puede dividir entre varios registros físicos.
Otra posibilidad es que los registros lógicos de más de una tabla se almacenen en
el mismo registro físico.
El tamaño de un registro físico es una potencia del número dos, tal como 1 024 (210)
o 4 096 (212) bytes.
(Mannino, 2007)
El DBMS y el sistema operativo trabajan de manera conjunta para satisfacer las
solicitudes de registros lógicos hechas por las aplicaciones. La figura 8.2 ilustra el
proceso de transferencia de registros físicos y lógicos entre un disco, búfers del
DBMS y búfers de la aplicación.
Cuando una aplicación hace una solicitud para un registro lógico, el DBMS ubica al
registro físico que lo contiene.
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:
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.
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
Concepto de Tablespace (espacio de tablas)
Cuando un objeto se crea dentro de un cierto tablespace, este objeto adquiere todas
las propiedades antes descritas del tablespace utilizado.
En este esquema podemos ver que, por ejemplo, la tabla ARTICULO se almacena
dentro del tablespace A, y que por lo tanto tendrá todas las propiedades del
tablespace A que pueden ser:
El tablespace SYSTEM es uno de los que se crear por defecto en todas las bases
de datos Oracle. En él se almacenan todos los datos de sistema, el catálogo y todo
el código fuente y compilado de procedimientos PL/SQL. También es posible utilizar
el mismo tablespace para guardar datos de usuario.
En el esquema también vemos que hay un tablespace Temporal (en gris oscuro).
Este representa las propiedades que tendrán los objetos que la base de datos cree
temporalmente para sus cálculos internos (normalmente para ordenaciones y
agrupaciones). Su creación difiere en una de sus cláusulas de creación.
El tablespace RO (en gris claro) difiere de los demás en que es de solo lectura (Read
Only), y que por lo tanto todos los objetos en él contenidos pueden recibir órdenes
de consulta de datos, pero no de modificación de datos. Estos puede residir en
soportes de sólo lectura, como pueden ser CDROMs, DVDs, etc.
Cuando se crea una tabla se debe indicar el espacio de tablas al que se destina.
Por defecto se depositan en el espacio de tablas SYSTEM, que se crea por defecto.
Este espacio de tablas es el que contiene el diccionario de datos, por lo que
conviene reservarlo para el uso del servidor, y asignar las tablas de usuario a otro.
Concepto de Datafile (archivo de datos)
Tiene un tamaño predefinido en su creación (por ejemplo 100Mb) y este puede ser
alterado en cualquier momento. Cuando creemos un datafile, este ocupará tanto
espacio en disco como hayamos indicado en su creación, aunque internamente esté
vacío. Oracle hace esto para reservar espacio continuo en disco y evitar así la
fragmentación. Conforme se vayan creando objetos en ese tablespace, se irá
ocupando el espacio que creó inicialmente.
Los datafiles tienen una propiedad llamada AUTOEXTEND, que se si está activa,
se encarga de que el datafile crezca automáticamente (según un tamaño indicado)
cada vez que se necesite espacio y no exista.
Al igual que los tablespaces, los datafiles también pueden estar en línea o fuera de
ella.
Podemos ver cómo el espacio que realmente se ocupa dentro del datafile es el
segment y que cada segmento pertenece a un objeto.
Si el objeto tiene muchas extensiones y éstas están muy separadas en disco, las
consultas pueden retardarse considerablemente, ya que las cabezas lectoras tienen
que dar saltos constantemente.
Concepto de Data block (bloque de datos)
Como es lógico, el tamaño de un data block tiene que ser múltiplo del tamaño de
una unidad de asignación, es decir, si cada unidad de asignación ocupa 4 K, los
data blocks pueden ser de 4K, 8K, 12K… para que en el sistema operativo ocupen
1, 2, 3… unidades de asignación.
Hay muchos problemas de almacenamiento que deben ser resueltos antes de que
un DBA pueda crear una base de datos. Uno de los temas más importantes es la
cantidad de espacio para permitir la base de datos.
3.5. Roles
Los privilegios son permisos que damos a los usuarios para que puedan realizar
ciertas operaciones con la base de datos. En Oracle hay más de cien posibles
privilegios. Se dividen en:
Privilegios de sistema. Son permisos para modificar el funcionamiento de la
base de datos. Son cambios, en definitiva, que afectan a todos los usuarios.
Privilegios de objeto. Son permisos que se aplican a un objeto concreto de la
base de datos.
Dentro de una base de datos, cada nombre de rol debe ser único, diferente de todos
los nombres de usuario y del resto de nombres de rol. A diferencia de todos los
objetos, los roles no se contienen en ningún esquema. Debido a ello, un usuario que
crea un rol puede eliminarse sin ningún efecto sobre el rol.
Los Roles constituyen la forma más segura y rápida de asignar recursos a los grupos
de usuarios. Es una tarea muy tediosa para cualquier DBA tener que asignar o
revocar permisos a todos los usuarios, de a uno por uno, y es por eso que
agrupando un conjunto de usuarios bajo las mismas características es posible
manejar sus permisos como un grupo.