DBMS distribuido - Control de base de datos

El control de la base de datos se refiere a la tarea de hacer cumplir las regulaciones para proporcionar datos correctos a los usuarios y aplicaciones auténticos de una base de datos. Para que los datos correctos estén disponibles para los usuarios, todos los datos deben cumplir con las restricciones de integridad definidas en la base de datos. Además, los datos deben protegerse de usuarios no autorizados para mantener la seguridad y privacidad de la base de datos. El control de la base de datos es una de las tareas principales del administrador de la base de datos (DBA).

Las tres dimensiones del control de la base de datos son:

  • Authentication
  • Derechos de acceso
  • Restricciones de integridad

Autenticación

En un sistema de base de datos distribuida, la autenticación es el proceso mediante el cual solo los usuarios legítimos pueden obtener acceso a los recursos de datos.

La autenticación se puede aplicar en dos niveles:

  • Controlling Access to Client Computer- En este nivel, el acceso del usuario está restringido mientras inicia sesión en la computadora cliente que proporciona una interfaz de usuario al servidor de la base de datos. El método más común es una combinación de nombre de usuario y contraseña. Sin embargo, se pueden utilizar métodos más sofisticados como la autenticación biométrica para datos de alta seguridad.

  • Controlling Access to the Database Software- En este nivel, el software / administrador de la base de datos asigna algunas credenciales al usuario. El usuario obtiene acceso a la base de datos utilizando estas credenciales. Uno de los métodos es crear una cuenta de inicio de sesión dentro del servidor de la base de datos.

Derechos de acceso

Los derechos de acceso de un usuario se refieren a los privilegios que se le otorgan al usuario con respecto a las operaciones de DBMS, como los derechos para crear una tabla, soltar una tabla, agregar / eliminar / actualizar tuplas en una tabla o consultar sobre la tabla.

En entornos distribuidos, dado que hay un gran número de tablas y un número aún mayor de usuarios, no es factible asignar derechos de acceso individuales a los usuarios. Entonces, DDBMS define ciertos roles. Un rol es una construcción con ciertos privilegios dentro de un sistema de base de datos. Una vez que se definen los diferentes roles, a los usuarios individuales se les asigna uno de estos roles. A menudo, una jerarquía de roles se define de acuerdo con la jerarquía de autoridad y responsabilidad de la organización.

Por ejemplo, las siguientes instrucciones SQL crean un rol "Contable" y luego asigna este rol al usuario "ABC".

CREATE ROLE ACCOUNTANT; 
GRANT SELECT, INSERT, UPDATE ON EMP_SAL TO ACCOUNTANT; 
GRANT INSERT, UPDATE, DELETE ON TENDER TO ACCOUNTANT; 
GRANT INSERT, SELECT ON EXPENSE TO ACCOUNTANT; 
COMMIT; 
GRANT ACCOUNTANT TO ABC; 
COMMIT;

Control de integridad semántica

El control de integridad semántica define y refuerza las restricciones de integridad del sistema de base de datos.

Las restricciones de integridad son las siguientes:

  • Restricción de integridad del tipo de datos
  • Restricción de integridad de la entidad
  • Restricción de integridad referencial

Restricción de integridad del tipo de datos

Una restricción de tipo de datos restringe el rango de valores y el tipo de operaciones que se pueden aplicar al campo con el tipo de datos especificado.

Por ejemplo, consideremos que una tabla "HOSTAL" tiene tres campos: el número de albergue, el nombre del albergue y la capacidad. El número de albergue debe comenzar con la letra mayúscula "H" y no puede ser NULL, y la capacidad no debe ser superior a 150. El siguiente comando SQL se puede utilizar para la definición de datos:

CREATE TABLE HOSTEL ( 
   H_NO VARCHAR2(5) NOT NULL, 
   H_NAME VARCHAR2(15), 
   CAPACITY INTEGER, 
   CHECK ( H_NO LIKE 'H%'), 
   CHECK ( CAPACITY <= 150) 
);

Control de integridad de la entidad

El control de integridad de la entidad hace cumplir las reglas para que cada tupla se pueda identificar de forma única de otras tuplas. Para esto se define una clave primaria. Una clave principal es un conjunto de campos mínimos que pueden identificar de forma única una tupla. La restricción de integridad de la entidad establece que no hay dos tuplas en una tabla que puedan tener valores idénticos para las claves primarias y que ningún campo que sea parte de la clave primaria puede tener un valor NULO.

Por ejemplo, en la tabla de albergue anterior, el número de albergue se puede asignar como la clave principal a través de la siguiente declaración SQL (ignorando los cheques):

CREATE TABLE HOSTEL ( 
   H_NO VARCHAR2(5) PRIMARY KEY, 
   H_NAME VARCHAR2(15), 
   CAPACITY INTEGER 
);

Restricción de integridad referencial

La restricción de integridad referencial establece las reglas de las claves externas. Una clave externa es un campo en una tabla de datos que es la clave principal de una tabla relacionada. La restricción de integridad referencial establece la regla de que el valor del campo de clave externa debe estar entre los valores de la clave principal de la tabla referenciada o ser completamente NULL.

Por ejemplo, consideremos una mesa para estudiantes donde un estudiante puede optar por vivir en un albergue. Para incluir esto, la clave principal de la tabla del albergue debe incluirse como clave externa en la tabla del estudiante. La siguiente declaración SQL incorpora esto:

CREATE TABLE STUDENT (  
   S_ROLL INTEGER PRIMARY KEY, 
   S_NAME VARCHAR2(25) NOT NULL, 
   S_COURSE VARCHAR2(10), 
   S_HOSTEL VARCHAR2(5) REFERENCES HOSTEL 
);