Ir al contenido principal

UNIDAD 3: CONFIGURACIÓN Y ADMINISTRACIÓN DEL ESPACIO EN DISCO.

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

  1. 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/
  2. ‌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

Entradas populares de este blog

UNIDAD 2.- ARQUITECTURA E INSTALACIÓN DE UN SGBD.

UNIDAD 6: MONITOREO Y AUDITORIA.