Violación de restricciones en base de datos relacional

Aquí, aprenderemos sobre las violaciones que pueden ocurrir en una base de datos como resultado de cualquier cambio realizado en la relación.

Existen principalmente tres operaciones que tienen la capacidad de cambiar el estado de las relaciones, estas modificaciones se dan a continuación:

  1. Insertar:
    para insertar nuevas tuplas en una relación en la base de datos.
  2. Eliminar:
    para eliminar parte de la relación existente en la base de datos.
  3. Actualizar (Modificar) –
    Para realizar cambios en el valor de algunas tuplas existentes.
    Siempre que apliquemos la modificación anterior a la relación en la base de datos, las restricciones de la base de datos relacional no deberían violarse.

    Operación de inserción:
    Al insertar las tuplas en la relación, puede causar la violación de las restricciones de la siguiente manera:

    1. Restricción de
    dominio: la restricción de dominio se viola solo cuando un valor dado al atributo no aparece en el dominio correspondiente o en caso de que no sea del tipo de datos apropiado.

    Ejemplo:
    suponga que la restricción de dominio dice que todos los valores que inserte en la relación deben ser mayores que 10, y en caso de que inserte un valor menor que 10, se violará la restricción de dominio, por lo que será rechazado.

    2. Restricción de integridad de la entidad:
    al insertar valores NULL en cualquier parte de la clave principal de una nueva tupla en la relación, puede causar la violación de la restricción de integridad de la entidad.

    Ejemplo:

    Insert (NULL, ‘Bikash, ‘M’, ‘Jaipur’, ‘123456’) into EMP 

    La inserción anterior viola la restricción de integridad de la entidad ya que hay NULL para el
    EID de la clave principal, no está permitido, por lo que se rechaza.

    3. Restricciones Clave:
    Al insertar un valor en la nueva tupla de una relación que ya existe en otra tupla de la misma relación, puede causar la violación de las Restricciones Clave.

    Ejemplo:

    Insert (’1200’, ‘Arjun’, ‘9976657777’, ‘Mumbai’) into EMPLOYEE 

    Esta inserción viola la restricción de clave si EID=1200 ya está presente en alguna tupla en la misma relación, por lo que se rechaza.

    Integridad referencial:
    Al insertar un valor en la clave foránea de la relación 1, para el cual no existe un valor correspondiente en la clave Primaria a la que se hace referencia en la relación 2, en tal caso se viola la integridad referencial.

    Ejemplo:
    cuando tratamos de insertar un valor, digamos 1200 en EID (clave externa) de la tabla 1, para el cual no hay un EID (clave principal) correspondiente de la tabla 2, entonces se produce una violación, por lo que se rechaza.

La solución que es posible para corregir dicha violación es que si alguna inserción viola alguna de las restricciones, entonces la acción predeterminada es rechazar dicha operación.

Operación de borrado:
Al borrar las tuplas en la relación, puede causar solo la violación de las restricciones de integridad referencial.

    Restricciones de integridad referencial:
    causa una violación solo si se elimina la tupla en la relación 1 a la que hace referencia la clave externa de otras tuplas de la tabla 2 en la base de datos, si dicha eliminación tiene lugar, entonces los valores en la tupla de la clave externa en la tabla 2 quedará vacío, lo que eventualmente violará la restricción de integridad referencial.

Las soluciones que son posibles para corregir la violación a la integridad referencial debido a la eliminación se enumeran a continuación:

  1. Restringir –
    Aquí rechazamos la eliminación.
  2. Cascada:
    aquí, si se elimina un registro en la tabla principal (relación de referencia), los registros correspondientes en la tabla secundaria (relación de referencia) se eliminarán automáticamente.
  3. Establecer nulo o establecer predeterminado:
    aquí modificamos los valores de atributo de referencia que causan la violación y establecemos NULL o cambiamos a otro valor válido

Publicación traducida automáticamente

Artículo escrito por bikashdutta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *