Configura y administra el espacio en disco y memoria del servidor para que el funcionamiento del SGBD sea congruente con la infraestructura existente.
3.1. Definición de espacio de almacenamiento.
Las bases de datos suelen ser creadas para almacenar grandes cantidades de datos de forma permanente. Por lo general, los datos almacenados en éstas suelen ser consultados y actualizados constantemente.
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.
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.
Estos conceptos son:
- Bloque de datos
- Extensiones
- Segmentos
- Espacios de tablas
Bloque de datos (Data blocks):
Se trata de la unidad más pequeña de almacenamiento en una base de datos.
Generalmente debe ser múltiple del tamaño de bloque del sistema operativo, ya que es la unidad mínima que va a pedir la BD 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. Generalmente se especifica mediante el parámetro DB_BLOCK_SIZE.
Extensiones (Extents):
Se forma con uno o más bloques. Cuando se aumenta tamaño de un objeto en la base de datos, se usa una extensión para incrementar el espacio.
Segmentos (Segments):
- Grupo de extensiones que forman un objeto de la base de datos, como por ejemplo una tabla o un índice
- El segmento de datos es una colección de extensiones que mantiene todos los datos para una tabla cluster.
- El segmento de índices mantiene todos los datos para un índice.
- El segmento temporal es una colección de extensiones que mantiene datos pertenecientes a objetos temporales.
Espacio de tablas (Tablespaces):
Formado por uno o más archivos de datos (datafiles) del SO, donde
cada datafile solo puede pertenecer a un determinado tablespace y una base de datos. Representan un nivel medio entre la BD y los datafiles.
El SGBD tiene estructuras lógicas y físicas que el administrador ha de gestionar.
Las estructuras físicas son aquellas se pueden ver en el sistema operativo como son los archivos; mientras que las estructuras lógicas
sólo se pueden ver desde el manejador de base de datos, como son por ejemplo los tablespaces.
3.2. Definición y creación del espacio asignado para cada base de datos.
Una base de datos se divide en unidades lógicas denominadas TABLESPACES. Un tablespace no es un archivo físico en el disco, simplemente es el nombre que tiene un conjunto de propiedades de almacenamiento que se aplican a los objetos (tablas, secuencias, etc) que se van a crear en la base de datos bajo el tablespace indicado (tablas, secuencia, etc):
- Un espacio de tablas puede pertenecer sólo a una BD.
- Un objeto en la base de datos debe estar almacenado obligatoriamente dentro de un tablespace.
- Cuando se crea una tabla se debe indicar el espacio de tablas (Tablespace) al que se destina.
- Por defecto se depositan en el espacio de tablas SYSTEM.
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:
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 Ordenados (o Secuenciales):
Mantiene el orden de los registros con respecto a algún valor de algún campo (clave de ordenación).
Árboles B:
Se vale de la estructura de árbol para las colocaciones de registros.
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.
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 límite, 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
típicamente 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.
Tablespace
Es una ubicación de almacenamiento donde pueden ser guardados los datos correspondientes a los objetos de una base de datos. Este provee una capa de abstracción entre los datos físicos y lógicos y sirve para asignar espacio para todos los segmentos administrados del sistema de gestión de base de datos (en inglés DBMS).
Un
segmento es un objeto de la base de datos el cual ocupa espacio físico, como
por ejemplo los datos de una tabla y los índices. Una vez creado, un tablespace
puede ser referido por su nombre cuando se crean segmentos de la base de datos.
Características
tablespace
- ·
Nombre: MiTablespace
- ·
Tamaño máximo 300MB
- · Creamos un nuevo usuario aitor con contraseña
P@ssw0rd. Este usuario será el que trabajará con este nuevo tablespace.
Ejemplo
- ·
CREATE TABLESPACE MiTablespace DATAFILE
- · 'D:\tabspace\mitablespace.DBF' SIZE 300M;
- CREATE USER aitor IDENTIFIED BY P@ssw0rd DEFAULT TABLESPACE MiTablespace;
- ·
GRANT
dba, connect, resource TO aitor;
- ·
GRANT
CREATE ANY VIEW TO aitor WITH ADMIN OPTION;
//Al
acceder al sistema con el usuario aitor y contraseña P@ssw0rd, ya podremos
trabajar con el nuevo tablespace creado.
3.4. Espacios para objetos de la base de datos.
PANORAMAGENERAL
En el nivel de
almacenamiento, una base de datos está formada de registros físicos(también
conocidos como bloques o páginas) organizados en archivos. Un
Registro físico
es un
conjunto de bytes que se transfieren entre el almacenamiento volátil dela
memoria principal y el almacenamiento fijo de un disco.
Un archivo
es un conjunto de registros físicos organizados para conseguir unacceso
eficiente. La figura 8.1 ilustra las relaciones entre los
registros
lógicos
(filas
de una tabla) y
registros físicos almacenados en un archivo.
Normalmente el DBMS y la aplicación tienen áreas de memoria separadas
Conocidas
Como Buffers
.Cuando
una aplicación hace una solicitud para un registro lógico, el DBMS ubicaal
registro físico que lo contiene. En el caso de una operación de lectura, el sistema
operativo transfiere el registrofísico del
disco al área de memoria del DBMS. Después el DBMS transfiere elregistro
lógico al búfer de la aplicación.El proceso de transferencia se invierte
en el caso de una operación de escritura.
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 dela base de datos, sino que se hace a través de estructuras lógicas dealmacenamiento
que tienen por debajo a esos archivos físicos.
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. Una base de datos Oracle se compone lógicamente deTables
paces
, y físicamente de datafiles
Tablespace
(espacio de tablas)Una
base de datos se divide en unidades lógicas denominadas
TABLESPACE. No es un archivo físico en el disco, simplemente es el nombre que tiene
un conjunto de propiedades de almacenamiento que se aplican a los
objetos (tablas,secuencias) que se van a crear en la base de datos bajo el
tablespace indicado(tablas, secuencias).Un objeto en base de datos debe estar
almacenado obligatoriamente dentro de untablespace.
Datafile
(archivo de datos)Un datafile es la
representación física de un tablespace
. Son los "archivosde datos" donde se almacena la información físicamente. Un datafile está asociado a un solo tablespace y, a su vez, un tablespace está asociado a uno o varios datafiles. Es decir, la relación lógica entre tablespaces y datafiles es de 1-N.
Segment
(segmento, trozo, sección)Es
aquel espacio reservado dentro de un datafile, para ser utilizado por un
solo objeto. Físicamente,
todo objeto en base de datos no
es más que un segmento
(segmento,trozo, sección) dentro
de un datafile.
El segmento es la representación física
del objeto en base de datos
(el
objeto no es más
que una definición lógica).El espacio que realmente se ocupa dentro
del datafile es el segment. Existen cuatro tipos de segmentos
(principalmente):
Segmentos de TABLE: aquellos que
contienen tablas
Segmentos de INDEX: aquellos que
contienen índices
Segmentos
de ROLLBACK: aquellos se usan para almacenar información de la transacción activa.
Segmentos TEMPORALES: aquellos que se usan para realizar operacionestemporales que no pueden realizarse en memoria, tales como ordenaciones oagrupaciones de conjuntos grandes de
datos.
Extent
(extensión)Un segmento, a su vez,
se compone de distintas
extensiones
. Un segmento, puede ser reservado de
una sola vez (10 Mb de golpe),o de varias
veces (5 Mb hoy y 5 Mb mañana). Cada una de las veces que se reserva
espacio se denomina
“extensión”
INITIAL:
estas son las extensiones que se reservan durante la creación del
objeto.
NEXT: toda
extensión reservada después de la creación del objeto.
Data block
(bloque de datos) Representa la mínima unidad de almacenamiento que
es capaz de manejar Oracle. Igual que la mínima unidad de almacenamiento de un disco duro es la
unidad de
asignación
, la mínima unidad de almacenamiento de
Oracle es el data block.
En
un disco duro no es posible que un fichero pequeño ocupe menos de lo que indique la unidad
de asignación, así si la unidad de asignación es de 4 Kb, un fichero que ocupe1
Kb, en realidad ocupa 4 Kb. Cada segmento (o
cada extensión) se almacena en uno ovarios bloques de datos.
3.5 Roles.
Utilice roles de base de datos para
gestionar con mayor facilidad los privilegios de los grupos de usuarios.
Los roles de base de datos
simplifican el proceso de gestión de privilegios, ya que se pueden otorgar
privilegios a un rol y luego otorgar el rol a usuarios. Cuando desee revocar
privilegios para un usuario, simplemente tiene que revocar la autorización de
rol del usuario, en vez de revocar cada privilegio individual.
Los roles se crean y se descartan
utilizando el mismo proceso que para realizar cualquier cambio de objeto de
base de datos. Para obtener más información, consulte Gestión de los cambios en
los objetos de base de datos mediante la vista Propiedades.
También se puede ver la pertenencia
de un rol en la vista Pertenencia a rol. Pulse con el botón derecho del ratón
en el rol en la Lista de objetos o el Explorador de orígenes de datos y, a
continuación, pulse Ver pertenencia. Si el menú Ver pertenencia no está
disponible, esta acción no estará disponible para el servidor de base de datos.
Para administrar con facilidad los
permisos en las bases de datos, SQL Server proporciona varios roles, que son las entidades de
seguridad que agrupan a otras entidades de seguridad. Son como los grupos del
sistema operativo Microsoft Windows. Los roles de nivel de base de datos se
aplican a toda la base de datos en lo que respecta a su ámbito de permisos.
Para agregar y quitar usuarios en
un rol de base de datos, use las opciones ADD
MEMBER y DROP MEMBER de la
instrucción ALTER ROLE. Almacenamiento
de datos paralelos y Azure Synapse no admiten este uso de ALTER ROLE. En su
lugar, use los procedimientos sp_addrolemember y sp_droprolemember anteriores.
Existen dos tipos de roles en el
nivel de base de datos: los roles fijos de base de datos que están predefinidos
en la base de datos y los roles de base de datos definidos por el usuario que
el usuario puede crear.
Los roles fijos de base de datos se
definen en el nivel de base de datos y existen en cada una de ellas. Los
miembros de los roles de base de datos db_owner pueden administrar la
pertenencia a roles fijos de base de datos. También hay algunos roles de base
de datos con fines especiales en la base de datos msdb.
Puede agregar cualquier cuenta de
la base de datos y otros roles de SQL Server a los roles de nivel de base de
datos.
Roles fijos de base de datos.
En la tabla siguiente se muestran
los roles fijos de base de datos y sus funcionalidades. Estos roles existen en
todas las bases de datos. A excepción del rol de base de datos public, no se
pueden cambiar los permisos asignados a los roles fijos de base de datos.
El concepto de rol es bastante
interesante en sitios con muchos usuarios, ya que permite simplificar la gestión
de los diferentes perfiles.
Se deben definir los diferentes roles en la utilización de la base de datos y en las aplicaciones existentes y a continuación clasificar los usuarios por rol. A cada persona nueva que llegue, tan solo hay que crear el usuario y asignarle un rol.
Video sobre los ROLES:
Referencias Bibliográficas:
[1] IBM Docs. (2021, March
17). Ibm.com. https://www.ibm.com/docs/es/data-studio/4.1.1?topic=management-database-roles
[2] VanMSFT. (2020, June 3). Roles de nivel de base de
datos - SQL Server. Microsoft.com.
https://docs.microsoft.com/es-es/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver15
- VHugoBarnes. (2020, April 24). Configuración y administración del espacio en disco. Víctor Hugo; Víctor Hugo. https://vhugobarnes.wordpress.com/2020/04/24/configuracion-y-administracion-del-espacio-en-disco/
- 3.3 Asignación de cuotas de espacio para usuarios - 2016_08_ABD_02. (2016). 3.3 Asignación de cuotas de espacio para usuarios - 2016_08_ABD_02. Google.com. https://sites.google.com/site/201608abd02/unidad-3/3-3-asignacion-de-cuotas-de-espacio-para-usuarios
Comentarios
Publicar un comentario