3.1. Definición de
espacio de almacenamiento
Almacenamiento físico
de bases de datos
La mayoría de las bases de datos se almacenan en las
llamadas memorias secundarias, especialmente discos duros, aunque, en
principio, pueden emplearse también discos ópticos, memorias flash, etc.
Las razones por las cuales las bases de datos se almacenan
en memorias secundarias son:
- En general, las bases de datos son demasiado grandes para
entrar en la memoria primaria.
- La memoria secundaria suele ser más barata que la memoria
primaria (aunque
- esta última tiene mayor velocidad)
- La memoria secundaria es más útil para el almacenamiento de
datos permanente, puesto que la memoria primaria es volátil.
En cuanto al respaldo de las bases de datos (ver Backus),
suelen emplearse tanto discos duros, como cintas magnéticas, discos ópticos o
similares.
Técnicas de
almacenamiento y recuperación de bases de datos
Las técnicas empleadas para almacenar bases de datos son
sumamente importantes para la velocidad de acceso y recuperación de datos. Las
técnicas dependen del tipo de almacenamiento, el uso que se le da o se le dará
a la base de datos, la estructura de la misma, el SGBD empleado, etc.
Esta dependencia no significa necesariamente que haya que
cambiar la estructura de la base de datos si se cambian las técnicas empleadas.
Las técnicas de almacenamiento son independientes de la base de datos, pero, de
todas maneras, las mejores técnicas muchas veces pueden determinarse viendo la
estructura de la base de datos, entre otras características
3.2. Definición y
creación del espacio asignado para cada base de datos
Las bases de datos se almacenan en ficheros o archivos.
Existen diferentes formas de organizaciones primarias de archivos que
determinan la forma en que los registros de un archivo se colocan físicamente
en el disco y, por lo tanto, cómo se accede a éstos.
Las distintas formas de organizaciones primarias de archivos
son:
Las distintas formas
de organizaciones primarias de archivos son:Archivos de montículos (o no ordenados): esta técnica coloca los registros en el disco sin un orden
específico, añadiendo nuevos registros al final del archivo.
- Archivos ordenados (o secuenciales): mantiene el orden de los registros con respecto a algún valor de algún campo (clave de ordenación).
- Archivos de direccionamiento calculado: utilizan una función de direccionamiento calculado aplicada a un campo específico para determinar la colocación de los registros en disco.
- Árboles B: se vale de la estructura de árbol para las colocaciones de registros.Existe una segunda forma de acceder a los datos llamada organización secundaria o estructura de acceso auxiliar. Estas permiten que los accesos a los registros de un archivo basado en campos alternativos, sean más eficientes que los que han sido utilizados para la organización primaria de archivos.
El DBMS asigna espacio de almacenamiento a las bases de
datos cuando los usuarios introducen create database o alter database. El
primero de los comandos puede especificar uno o más dispositivos de base de
datos, junto con la cantidad de espacio en cada uno de ellos que será asignado
a la nueva base de datos.
Si se utiliza la palabra clave default o se omite
completamente la cláusula on, el DBMS pone la base de datos en uno o más de los
dispositivos predeterminados de base de datos especificados en master.
sysdevices
Para especificar un tamaño (en este ejemplo, 4MB) para una
base de datos que se va a almacenar en una ubicación predeterminada, utilice on
default = size de esta forma:
create database newpubs on default = 4
3.3 Asignación de
cuotas de espacio para usuarios
Por defecto ningún usuario tiene cuota en los Tablespaces y
se tienen tres opciones para poder proveer a un usuario de una cuota
Sin limite, que permite al usuario usar todo el espacio
disponible de un Tablespace.
Por medio de un valor, que puede ser en kilobytes o
megabytes que el usuario puede usar. Este valor puede ser mayor o menor que el
tamaño del Tablespace asignado a él.
Por medio del privilegio UNLIMITED TABLESPACE, se
tiene prioridad sobre cualquier cuota dada en un Tablespace por lo que tienen
disponibilidad de todo el espacio incluyendo en SYSTEM y SYSAUX.
No se recomienda dar cuotas a los usuarios en los
Tablespaces SYSTEM y SYSAUX, pues tipicamente sólo los usuarios SYS y SYSTEM
pueden crear objetos en éstos. Tampoco dar cuotas en los Tablespaces Temporal o
del tipo Undo.
Ejemplo de la creación de usuario
CREATE USER nombre
IDENTIFIED BY contraseña
[DEFAULT TABLESPACE nombreTableSpace]
[TEMPORARY TABLESPACE nombreTemp]
[QUOTA INT {K|M} | UNLIMITED ON nombreTableSpace]
[PROFILE perfil]
[PASSWORD EXPIRE]
[ACCOUNT {LOCK | UNLOCK}]
CREATE USER: Nos permite especificar el nombre del usuario
IDENTIFIED BY: Nos permite especificar su contraseña
DEFAULT TABLESPACE: Definimos el tablespace por defecto. Si no se especifica se
asigna USERS. Para crear un nuevo tablespace.
TEMPORARY TABLESPACE: Definimos el tablespace temporal. Si no especificamos
ninguno se asigna TEMP.
QUOTA: Espacio que el usuario podrá utilizar en el sistema. Si no
se especifica el espacio por defecto es 0 con lo cual el usuario no podrá crear
nada.
PROFILE: Permite especificar el perfil por defecto. Si no se
especifica se asigna
DEFAULT. Es
utilizado para controlar el acceso a los recursos, por ejemplo, el número de
sesiones concurrentes, uso de CPU, etc.
PASSWORD EXPIRE: Especifica que la contraseña asignada al usuario expirará,
de esta forma, el propio usuario o el DBA deberá asignar una nueva antes de
acceder al sistema.
ACCOUNT LOCK/UNLOCK: Podemos decidir si el usuario tendrá la cuenta bloqueada o
no de forma inicial.
3.4. Espacios para
objetos de la base de datos
Una buena parte del trabajo del DBA implicará la
planificación para el almacenamiento real de la base de datos.
Nombres de objeto
Cada objeto de Active Directory es una instancia de una
clase definida en el esquema. Cada clase tiene atributos que aseguran lo
siguiente:
• La identificación única de cada objeto (instancia
de una clase) en un almacén de datos del directorio.
• La compatibilidad con los Id. de
seguridad utilizados en Windows Nt 4.0 y versiones anteriores.
• La compatibilidad con los estándar LDAP
para nombres de objetos del directorio.
El cálculo espacial debe tener en cuenta no sólo tablas,
índices, sino también, y dependiendo del DBMS, el registro de transacciones.
Cada una de estas entidades probablemente requerirá un archivo separado o
conjunto de datos, para el almacenamiento persistente.
El DBA debe separar en diferentes discos a los archivos
para:
- Mejorar el rendimiento
- Separar índices de datos
- Aislar los logros en otro disco
3.5 Roles
Finalmente,
los Roles, que son simplemente un conjunto de privilegios que se pueden otorgar
a un usuario o a otro Rol. De esa forma se simplifica el trabajo del DBA en
esta tarea.
Por
default cuando creamos un usuario desde el Enterprise Manager se le asigna el
permiso de connect, lo que permite al usuario conectarse a la BD y crear sus
propios objetos en su propio esquema. De otra manera, debemos asignarlos en
forma manual.
Para
crear un Rol y asignarlo a un usuario se hace de la siguiente manera:
SQL> CREATE
ROLE appl_dba;
Opcionalmente,
se puede asignar una clave al Rol:
SQL> SET
ROLE appl_dba IDENTIFIED BY app_pwd;
Para
asignar este Rol a un usuario:
SQL> GRANT
appl_dba TO jperez;
Otro
uso común de los roles es asignarle privilegios a nivel de Objetos, por ejemplo,
en una Tabla de Facturas en donde sólo queremos que se puedan hacer Querys e
Inserts:
SQL> CREATE
ROLE consulta;
SQL> GRANT
SELECT,INSERT on analista.factura TO consulta;
Y
finalmente asignamos ese rol con este “perfil” a distintos usuarios finales:
SQL>
GRANT consulta TO ahernandez;
Nota:
Existen algunos roles predefinidos, tales como:
CONNECT, CREATE
SESSION, CREATE TABLE, CREATE VIEW, CREATE SYNONYM, CREATE SEQUENCE, CREATE
DATABASE LINK, CREATE CLUSTER,
ALTER SESSION,
RESOURCE, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER, CREATE TYPE,
CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR SCHEDULER, CREATE ANY JOB,
CREATE JOB, EXECUTE ANY CLASS, EXECUTE ANY PROGRAM, MANAGE SCHEDULER, etc.
DBA:
Tiene la mayoría de los privilegios, no es recomendable asignarlo a usuarios
que no son administradores.
SELECT_CATALOG_ROLE:
No tiene privilegios de sistema, pero tiene cerca de 1600 privilegios de
objeto.
Para
consultar los roles definidos y los privilegios otorgados a través de ellos,
utilice las vistas:
SQL> select
* from DBA_ROLES;
SQL> select
* from DBA_ROLE_PRIVS order by GRANTEE;
Importancia al momento de crear una
base de datos
Es
importante que a la hora de crear una BD el DBA configure y asigne el espacio
de disco que ocupara la BD para que así no haya complicaciones en caso de que
la cantidad de información almacenada sea en volumen muy grande y llegara a
faltar espacio en el disco para ese volumen de información, así como la
importancia de tener bien administrada la BD ya que de no ser así pueden
existir errores que causarían el colapso de dicha BD.
Porque el administrador debe contemplar
la configuración y administración del espacio
El
DBA debe de contemplar estos aspectos ya que de lo contrario no estaría bien el
BD ya que no se tiene considerado el espacio de disco que se ocupara y en dado
caso que se requiera más espacio no se podría tener más espacio ya que en un
principio no se consideró ni la configuración ni la administración del espacio
en disco, se tendría que volver a generar un BD con las especificaciones
necesarios para empresa causando perdidas de dinero y tiempo para dicha empresa
Referencias
.
Jorge Alberto Silva Muñoz
MUY BUENO, GRACIAS
ResponderEliminar