Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo configurar la integridad de la tabla en SQL?

¿Cómo configurar la integridad de la tabla en SQL?

3.1 Restricciones de integridad en SQL

SQL contiene varias restricciones de integridad como parte de la definición del esquema de la base de datos. Esto puede prevenir eficazmente daños accidentales a la base de datos, mejorar la eficiencia de las comprobaciones de integridad y reducir la carga de los programadores.

SQL utiliza diferentes métodos para establecer y detectar tres restricciones de integridad diferentes. Estos métodos se describen a continuación.

3.1.1 Integridad de la entidad y código principal

La integridad de la entidad estipula que cualquier atributo del código principal no puede estar vacío, porque en el modelo conceptual se pueden distinguir entidades y asociaciones, ellas se identifican de forma única mediante un código. Si el valor del atributo del código principal puede ser nulo, esto significa que hay entidades en el modelo conceptual que el código no puede identificar de forma única. Esto es claramente inconsistente.

Entonces, ¿cómo garantizar la integridad de la entidad? La integridad de la entidad en SQL se implementa a través del código principal. Una vez que un atributo o conjunto de atributos se define como código maestro, cada atributo del código maestro no puede estar vacío y no hay dos tuplas en la relación que puedan tener exactamente el mismo valor de código maestro.

La definición del código principal se puede lograr utilizando la palabra clave de clave principal en la instrucción CREATE TABLE. Hay dos formas de hacer esto:

a) Agregar la clave principal de la palabra clave después de la definición del atributo;

b) Agregar una cláusula adicional que defina la clave principal después de la definición de la tabla de atributos: Clave principal (lt; tabla de atributos de clave principal gt;)

Nota: si la clave principal contiene solo un atributo, puede definir cualquiera de los dos métodos anteriores. Si la clave principal consta de dos o más atributos, solo se puede definir utilizando el segundo método anterior. Para códigos candidatos, puede usar Unique para indicar que los valores de los atributos no se pueden repetir, similar a las claves primarias. Sólo puede haber una definición de clave principal en una tabla, pero puede haber varias descripciones únicas. En SQL, no es necesario especificar un código principal para cada relación, pero normalmente es mejor especificar un código principal para cada relación. (Porque especificar el código principal puede garantizar la integridad de la entidad de la relación).

3.1.2 Restricciones de integridad referencial y códigos externos

La integridad referencial es una restricción de los datos de referencia entre relaciones. Es decir, si el grupo de atributos A es la clave foránea de la relación básica R1, que corresponde a la clave primaria K de la relación básica R2, entonces el valor de cada tupla de A en R1 debe: tomar un valor nulo , o ser igual al valor en R2 El valor de la clave principal de la tupla.

I. Descripción de restricciones de código externo:

SQL utiliza la descripción de código externo para implementar restricciones de integridad referencial para limitar los valores de ciertos atributos en la tabla. Hay dos formas de describir el código externo:

1. Ingrese "REFERENCIAS lt; nombre de la tabla; (lt; nombre del atributo;)" directamente después de la palabra clave que describe el atributo, donde el nombre de la tabla es una relación de referencia. Nombre, nombre del atributo es el código principal de la relación de referencia.

2. En la instrucción de creación de tabla, agregue la cláusula de descripción del código externo después de la lista de atributos, el formato es

FOREIGN KEY lt; AttributeNameTable1gt; AttributeNameTable2gt ;)

En la fórmula anterior, puede haber más de un atributo en AttributeNameTable1 y AttributeNameTable2, puede haber más de un atributo en AttributeNameTable1 y AttributeNameTable2, y puede haber más de un atributo en AttributeNameTable1 y NombreDeAtributoTabla2. Puede haber múltiples atributos en 2, pero deben ser consistentes.

Estrategia de implementación de restricciones de integridad referencial

Como se mencionó anteriormente, solo hay dos situaciones para el valor del código externo: tomar un valor nulo o tomar el valor del código principal. en la relación de referencia. Pero, ¿cómo mantener esta restricción cuando las acciones del usuario violan esta regla?

SQL proporciona tres opciones:

1. RESTRICT (política de restricción):

Cuando la tabla insertada, eliminada o modificada por el usuario viola las restricciones de integridad anteriores. y condiciones, el sistema niega la operación.

2. CASCADE (estrategia en cascada):

Cuando la relación de referencia para eliminar y modificar el programa la proporciona SQL. En esta estrategia, cuando se elimina o modifica el valor del código principal de una tupla en una relación de referencia, aquellas tuplas con ese valor en la relación de referencia que tienen códigos externos también se eliminarán o modificarán para garantizar la integridad referencial.

3. SET NULL (estrategia vacía):

La estrategia nula también es una operación de eliminación o modificación de relaciones de referencia. Según esta política, cuando se elimina una tupla en una relación de referencia o se modifica el valor del código principal de una tupla, se anulará el valor de la tupla cuyo valor del código principal en la relación de referencia sea igual al valor de la tupla en el código externo. p>

Descripción:

Cuando el usuario no especifica una estrategia de implementación de integridad referencial, generalmente usa RESTRICT (estrategia restrictiva) de forma predeterminada. La descripción de la política de implementación generalmente se adjunta a la descripción del código externo en el siguiente formato: ON DELETE SET NULL ON UPDATE CASCADE.

3.1.3 Restricciones de integridad definidas por el usuario

Para las restricciones de integridad definidas por el usuario, SQL proporciona restricciones no nulas, restricciones de CHECK de atributos, restricciones de CHECK de tupla, activadores, etc. para implementar restricciones de integridad definidas por el usuario.

1. Restricción no nula:

Agregue la palabra clave NOT NULL después de definir el atributo en CRETE TABLE, es decir, el atributo definido no puede tomar un valor nulo.

2. Restricciones CHECK basadas en atributos

El uso de la cláusula CHECK (verificación) puede garantizar que el valor del atributo cumpla con ciertos requisitos previos. Su formato general es

CHECK (lt; condiciones gt;)

Puede seguir la definición del atributo o especificarse en otra cláusula de la declaración de definición.

Por ejemplo: CHECK (agegt; =18 AND agelt; =65);

CHECK (sexo IN ("masculino", "femenino")); p >CHECK (dno IN(select dno from departament));

Como puede verse en el ejemplo anterior, la condición de la cláusula CHECK también puede contener subconsultas.

3. Restricciones CHECK basadas en tuplas

Las restricciones CHECK basadas en tuplas a menudo implican varios campos en la tabla. Por tanto, es una restricción de tupla. Después de completar la inserción o modificación de toda la tupla, el sistema verificará automáticamente si una tupla satisface la expresión condicional CHECK. Si no se cumplen las condiciones, el sistema rechazará la operación de inserción o modificación.

La forma de especificar una restricción CHECK basada en tupla es agregar una cláusula CHECK después de la descripción de la tabla de propiedades, el código principal y el código externo en la instrucción CREATE TABLE.

3.1.4 Actualizar restricciones

Las restricciones, como tablas y vistas en la base de datos, se pueden actualizar agregando, eliminando o cambiando operaciones. Para cambiar y eliminar restricciones, debe nombrarlas cuando las defina. Simplemente agregue la palabra clave CONSTRAINT y el nombre de la restricción antes de la descripción de las distintas restricciones.

Por ejemplo, en la instrucción de creación de tabla de la tabla de empleados:

eno char(4) CONSTRAINT PK_employee PRIMARY KEY,

dno char(4) CONSTRAINT FK_employee REFERENCIAS DE CLAVE EXTRANJERA departamento(dno);

Después de nombrar varias restricciones, puede usar la instrucción ALTER TABLE para actualizar varias restricciones relacionadas con atributos o tablas. Por ejemplo:

ALTER TABLE empleado DROP CONSTRAINT FK_employee;

ALTER TABLE Salario ADD CONSTRAINT RightSalary CHECK(Insure Fundlt; Rest

Las restricciones agregadas anteriormente son); en realidad, una forma de definir restricciones mediante la declaración ALTER TABLE.

SQL no puede modificar las restricciones directamente; la modificación de una restricción en realidad se logra eliminando primero la restricción mediante una instrucción ALTER TABLE y luego agregando una nueva restricción con el mismo nombre que la restricción.