Restricciones de integridad en SQL

Sumergirse en el mundo de las bases de datos requiere una sólida comprensión de varios conceptos cruciales para gestionar los datos con eficacia. Uno de estos aspectos vitales son las Restricciones de Integridad en SQL, que garantizan la coherencia, precisión y fiabilidad de los datos almacenados en una base de datos. Esta completa guía pretende proporcionarte un conocimiento profundo de los distintos tipos de Restricciones de Integridad en SQL, como las Restricciones de Dominio, de Entidad y de Integridad Referencial. Además, aprende a implementar Restricciones de Integridad complejas y a mantener la coherencia de los datos mediante diversos métodos, como la Creación de Restricciones Personalizadas y el Uso de Activadores para Restricciones Complejas. Además, descubre cómo alterar y eliminar restricciones, así como mantener la integridad referencial durante las actualizaciones y eliminaciones. Sumérgete en este fascinante tema para mejorar tu competencia en la gestión de bases de datos y garantizar la protección de tus datos.

Restricciones de integridad en SQL Restricciones de integridad en SQL

Crea materiales de aprendizaje sobre Restricciones de integridad en SQL con nuestra app gratuita de aprendizaje!

  • Acceso instantáneo a millones de materiales de aprendizaje
  • Tarjetas de estudio, notas, exámenes de simulacro y más
  • Todo lo que necesitas para sobresalir en tus exámenes
Regístrate gratis
Tarjetas de estudio
Índice de temas

    Tipos de Restricciones de Integridad en SQL

    Las Restricciones de Integridad son una parte esencial de las bases de datos SQL, ya que garantizan la exactitud y coherencia de los datos almacenados. Definen reglas para mantener la integridad de los datos y protegen la base de datos de los problemas con los datos.

    Hay varios tipos de Restricciones de Integridad en SQL, cada una de las cuales sirve para un fin determinado. Si comprendes estas restricciones, podrás crear bases de datos fiables y eficaces. Profundicemos en estos tipos de restricciones.

    Restricciones de Integridad de Dominio en SQL

    Las restricciones de integridad de dominio definen los valores permitidos para una columna determinada. Aplicando estas restricciones, puedes restringir los datos introducidos en una columna concreta, garantizando valores de datos coherentes en toda tu base de datos.

    Algunas de las restricciones de integridad de dominio más utilizadas son:

    • Tipo de datos - La columna debe contener valores de un tipo de datos específico
    • Formato de datos - El formato de los valores de una columna debe seguir un patrón definido
    • Rango - Los valores deben estar dentro de un rango especificado
    • Enumeración - Los valores de la columna sólo pueden tomarse de un conjunto predefinido de valores

    Por ejemplo, si tienes una tabla que contiene información sobre los salarios de los empleados, podrías aplicar una restricción de integridad de dominio a la columna "salario" para asegurarte de que sólo se introducen valores numéricos dentro de un rango específico.

    Restricciones de integridad de entidad en SQL

    Las Restricciones de Integridad de Entidades implican identificar de forma única las filas de una tabla de base de datos, de forma que no haya valores duplicados o nulos en una columna de clave primaria. Una clave primaria es una columna única en una tabla que identifica de forma única cada fila de la tabla. Esta restricción ayuda a mantener la unicidad e integridad de los datos, impidiendo la existencia de filas duplicadas.

    Por ejemplo, en una tabla que almacena información sobre clientes, se puede asignar un número de identificación único ("customer_id") como clave primaria para identificar de forma única a cada cliente.

    Restricción de integridad referencial en SQL

    La restricción de integridad referencial garantiza que las relaciones entre tablas se mantengan de forma coherente. Se aplica utilizando claves externas, que son columnas de una tabla que hacen referencia a una clave primaria de otra tabla. La clave ajena ayuda a mantener la integridad referencial entre dos tablas relacionadas, asegurándose de que los cambios en la clave primaria de una tabla se reflejen en la clave ajena correspondiente de otra tabla.

    Hay dos reglas principales que hay que mantener cuando se trata de Restricciones de Integridad Referencial:

    • Si se actualiza o elimina un valor de clave primaria, también deben actualizarse o eliminarse los valores de clave externa correspondientes en la tabla relacionada.
    • Cualquier nuevo valor de clave ajena que se añada a la tabla relacionada debe tener un valor de clave ajena correspondiente en la otra tabla.

    Por ejemplo, imagina una base de datos con dos tablas: "Clientes" y "Pedidos". El campo "customer_id" de la tabla "Clientes" es la clave primaria, mientras que el mismo campo de la tabla "Pedidos" es una clave ajena. Si se elimina un cliente de la tabla "Clientes", la restricción de integridad referencial garantizará que también se eliminen todos los pedidos asociados. Del mismo modo, si se añade un pedido a la tabla "Pedidos", la restricción exigiría que el cliente asociado existiera en la tabla "Clientes".

    Implementación de restricciones de integridad complejas en SQL

    Las Restricciones de Integridad Complejas en SQL implican implementar restricciones personalizadas y utilizar desencadenadores para escenarios específicos. Estas restricciones permiten que la base de datos gestione requisitos de datos más complejos que los que permiten las restricciones estándar. Implementar restricciones complejas te permite mantener la integridad, coherencia y precisión de los datos en la base de datos de forma eficaz, al tiempo que abordas necesidades empresariales específicas.

    Crear restricciones personalizadas

    Crear Restricciones Personalizadas implica definir reglas basadas en requisitos específicos que no pueden abordarse utilizando las restricciones estándar predefinidas. Estas restricciones ayudan a mantener la validez y coherencia de los datos según la lógica empresarial específica. Las restricciones personalizadas pueden implementarse utilizando restricciones SQL CHECK.

    Aquí tienes algunos aspectos esenciales que debes tener en cuenta al crear restricciones personalizadas:

    • Las restricciones personalizadas deben basarse en columnas de la misma tabla.
    • La restricción debe consistir en una expresión lógica, no en una consulta SQL.
    • La restricción debe verificarse y mantenerse durante todas las operaciones INSERTAR, ACTUALIZAR y ELIMINAR en la tabla.

    Para crear una restricción personalizada en SQL, puedes utilizar la palabra clave CHECK seguida de la condición de restricción deseada.

    Por ejemplo, si tienes una tabla llamada "Empleados" con una columna "salario" y "fecha_incorporación", puedes crear una restricción personalizada que garantice que los empleados contratados después de una fecha determinada tengan un salario mínimo requerido:

    CREAR TABLA Empleados ( empleado_id INT PRIMARY KEY, salario NUMERIC(10,2), join_date DATE, CHECK (join_date > '2000-01-01' AND salario >= 20000) );

    Al crear restricciones personalizadas, puedes mantener la integridad de los datos y aplicar reglas empresariales específicas que no se pueden conseguir con las restricciones SQL estándar.

    Uso de desencadenadores para restricciones complejas

    Los desencadenantes son una potente herramienta de SQL que facilita la aplicación de restricciones de integridad complejas. Los desencadenantes SQL se adjuntan a eventos específicos como INSERTAR, ACTUALIZAR, ELIMINAR o incluso a múltiples eventos en tablas o vistas específicas. Los desencadenantes se invocan automáticamente cuando se producen los eventos definidos, lo que permite verificar las restricciones y aplicar alteraciones automáticamente.

    Cuando necesites aplicar restricciones complejas que impliquen varias tablas o cálculos complejos, los activadores se convierten en un método adecuado para mantener la integridad de los datos.

    Los desencadenantes pueden clasificarse en dos tipos:

    • Disparadores Antes - Estos disparadores se ejecutan antes del evento especificado. Son útiles para mantener restricciones complejas validando y manipulando los datos antes de que se almacenen permanentemente en la base de datos.
    • Disparadores Después - Estos disparadores se ejecutan después del evento especificado. Pueden utilizarse para mantener la integridad de los datos realizando acciones adicionales, como actualizar otras tablas o generar entradas de registro para mantener un registro de auditoría.

    He aquí un ejemplo de desencadenador que aplica una restricción compleja:

    Supón que tienes dos tablas, "Proyectos" y "Tareas", y quieres asegurarte de que no se supera el presupuesto de un proyecto al añadir nuevas tareas. Puedes crear un activador AFTER INSERT en la tabla "Tareas" que compruebe si el coste total estimado de todas las tareas relacionadas con un proyecto supera el presupuesto del proyecto y revierta la transacción si se infringe la restricción:

    CREATE TRIGGER check_project_budget AFTER INSERT ON tasks FOR EACH ROW BEGIN DECLARE project_total_cost NUMERIC(10,2); DECLARE project_budget NUMERIC(10,2); SELECT SUM(estimated_cost) INTO project_total_cost FROM tasks WHERE project_id = NEW.project_id; SELECT budget INTO project_budget FROM projects WHERE project_id = NEW.project_id; IF project_total_cost > project_budget THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '¡Se ha superado el presupuesto del proyecto!'; END IF; END;

    En resumen, el uso de desencadenadores te permite mantener restricciones complejas que implican múltiples tablas y cálculos, garantizando la integridad de los datos, la coherencia y el cumplimiento de las reglas empresariales. Si sabes cuándo y cómo utilizar restricciones y desencadenadores personalizados, podrás crear una base de datos robusta y optimizada para tus necesidades específicas.

    Garantizar la coherencia de los datos con restricciones de integridad en SQL

    Las restricciones de integridad desempeñan un papel vital a la hora de garantizar la coherencia de los datos en las bases de datos SQL, ya que aplican reglas para mantener la integridad de los datos, la unicidad y las relaciones referenciales entre tablas. Esta sección profundizará en los aspectos de la alteración y eliminación de restricciones y el mantenimiento de la integridad referencial durante las actualizaciones y eliminaciones.

    Modificar y eliminar restricciones

    Cuando trabajes con una base de datos en evolución, puede que necesites modificar o eliminar restricciones para adaptarlas a los cambios en la estructura de datos o a los requisitos de la empresa. En SQL, puedes hacerlo fácilmente utilizando la sentencia ALTER TABLE para alterar o eliminar restricciones.

    Sin embargo, al modificar o eliminar restricciones, es esencial seguir ciertos métodos y buenas prácticas para evitar comprometer la integridad y coherencia de tus datos. Exploremos cómo realizar estas acciones de forma segura y correcta con los siguientes pasos:

    1. Identifica la restricción que se va a modificar o eliminar - Normalmente puedes encontrar esta información en el esquema de la tabla o consultando el INFORMATION_SCHEMA.
    2. Garantiza la integridad de los datos - Antes de alterar o eliminar una restricción, asegúrate de que los datos existentes se ajustan a los nuevos requisitos de la restricción, o resuelve cualquier conflicto potencial si se elimina la restricción.
    3. Realiza la alteración o eliminación mediante la sentencia ALTER TABLE - Emite los comandos SQL adecuados para aplicar los cambios a las restricciones según sea necesario.
    4. Verifica los cambios - Confirma que las restricciones se han modificado o eliminado correctamente examinando el esquema actualizado de la tabla o ejecutando consultas de prueba.

    Considera el siguiente ejemplo: Tienes una tabla "Empleados" con una restricción en la columna "salario" para garantizar que el valor del salario es mayor o igual que 15.000. Si necesitas actualizar esta restricción para establecer el valor mínimo del salario en 18.000, puedes seguir estos pasos:

    1. Identifica la restricción
      :SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'Empleados'; 
    2. Asegúrate de que todos los valores de salario existentes son iguales o superiores a 18.000.
    3. Realiza la alteración utilizando la sentencia ALTER TABLE
      :ALTER TABLE Empleados DROP CONSTRAINT salario_restricción; ALTER TABLE Empleados ADD CONSTRAINT salario_restricción CHECK (salario >= 18000); 
    4. Verifica los cambios comprobando el esquema de la tabla y ejecutando consultas de prueba.

    Mantener la integridad referencial durante las actualizaciones y eliminaciones

    La integridad referencial, como ya se ha mencionado, es esencial para preservar la coherencia y fiabilidad de las relaciones entre las tablas de tu base de datos. Las actualizaciones y eliminaciones en las columnas de clave primaria o clave externa pueden romper potencialmente la integridad referencial si no se manejan con cuidado. Por lo tanto, es crucial tener en cuenta el impacto de estas operaciones en las tablas relacionadas.

    En SQL, puedes utilizar acciones referenciales para mantener la integridad referencial durante las actualizaciones y los borrados. Estas acciones definen cómo se propagan los cambios en una tabla a las tablas relacionadas. Las principales acciones referenciales son

    • CASCADE - Esta acción actualiza o borra automáticamente las filas de clave ajena correspondientes en la tabla relacionada cuando se actualiza o borra la clave primaria en la tabla padre.
    • SET NULL - Si se actualiza o elimina la clave primaria, esta acción establece en NULL los valores correspondientes de la clave externa en la tabla relacionada.
    • ESTABLECER POR DEFECTO - Esta acción establece los valores de las claves externas de la tabla relacionada a sus valores por defecto cuando se actualiza o borra la clave primaria de la tabla padre.
    • SIN ACCIÓN - No se realiza ninguna acción en la tabla relacionada cuando se actualiza o elimina la clave primaria en la tabla padre. Sin embargo, la norma SQL exige que se rechace la actualización o eliminación de la clave primaria si infringe la restricción de integridad referencial.

    Para mantener la integridad referencial, puedes elegir una de las acciones anteriores que mejor se adapte a tus requisitos específicos de datos. Define estas acciones mediante la definición de la restricción FOREIGN KEY en la sentencia CREATE TABLE o ALTER TABLE.

    Por ejemplo, imagina una base de datos con una tabla "Clientes" y una tabla "Pedidos", donde la columna "customer_id" de la tabla "Pedidos" es una clave foránea que hace referencia a la clave primaria "customer_id" de la tabla "Clientes". Puedes utilizar la acción referencial CASCADE para asegurarte de que cualquier actualización o eliminación en la clave primaria "Clientes" se refleje automáticamente en la clave foránea "Pedidos". Esto puede hacerse de la siguiente forma

    CREAR TABLA Pedidos ( order_id INT PRIMARY KEY, customer_id INT, product_id INT, quantity INT, FOREIGN KEY (customer_id) REFERENCES Customers(customer_id) ON UPDATE CASCADE ON DELETE CASCADE );

    Siguiendo estas directrices, puedes mantener eficazmente la integridad referencial durante las actualizaciones y los borrados, y garantizar la calidad y coherencia de los datos en tu base de datos SQL.

    Restricciones de integridad en SQL - Puntos clave

    • Restricciones de integridad en SQL: Garantizan la coherencia, precisión y fiabilidad de los datos en las bases de datos.

    • Restricciones de Integridad de Dominio: Restringen los valores permitidos en una columna para mantener la coherencia de los datos.

    • Restricciones de integridad de entidad: Imponen la unicidad de la columna de clave primaria de una tabla para evitar valores duplicados o nulos.

    • Restricción de integridad referencial: Mantienen la coherencia en las relaciones entre tablas utilizando claves primarias y foráneas.

    • Restricciones de Integridad Complejas en SQL: Creación de restricciones personalizadas y uso de desencadenadores para escenarios específicos con el fin de gestionar requisitos de datos complejos.

    Restricciones de integridad en SQL Restricciones de integridad en SQL
    Aprende con 15 tarjetas de Restricciones de integridad en SQL en la aplicación StudySmarter gratis

    Tenemos 14,000 tarjetas de estudio sobre paisajes dinámicos.

    Regístrate con email

    ¿Ya tienes una cuenta? Iniciar sesión

    Preguntas frecuentes sobre Restricciones de integridad en SQL
    ¿Qué son las restricciones de integridad en SQL?
    Las restricciones de integridad en SQL son reglas aplicadas a los datos en una base para asegurar su precisión y consistencia.
    ¿Cuáles son los tipos de restricciones en SQL?
    Los tipos son: PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK y NOT NULL.
    ¿Por qué son importantes las restricciones de integridad?
    Son importantes porque garantizan la fiabilidad de los datos y evitan inconsistencias.
    ¿Cómo se define una clave primaria en SQL?
    Una clave primaria se define usando 'PRIMARY KEY' y asegura que los valores sean únicos y no nulos.

    Pon a prueba tus conocimientos con tarjetas de opción múltiple

    ¿Qué son las restricciones de integridad en SQL?

    ¿Qué es una restricción de integridad de dominio en SQL?

    ¿Qué es una restricción de integridad de entidad en SQL?

    Siguiente

    Descubre materiales de aprendizaje con la aplicación gratuita StudySmarter

    Regístrate gratis
    1
    Acerca de StudySmarter

    StudySmarter es una compañía de tecnología educativa reconocida a nivel mundial, que ofrece una plataforma de aprendizaje integral diseñada para estudiantes de todas las edades y niveles educativos. Nuestra plataforma proporciona apoyo en el aprendizaje para una amplia gama de asignaturas, incluidas las STEM, Ciencias Sociales e Idiomas, y también ayuda a los estudiantes a dominar con éxito diversos exámenes y pruebas en todo el mundo, como GCSE, A Level, SAT, ACT, Abitur y más. Ofrecemos una extensa biblioteca de materiales de aprendizaje, incluidas tarjetas didácticas interactivas, soluciones completas de libros de texto y explicaciones detalladas. La tecnología avanzada y las herramientas que proporcionamos ayudan a los estudiantes a crear sus propios materiales de aprendizaje. El contenido de StudySmarter no solo es verificado por expertos, sino que también se actualiza regularmente para garantizar su precisión y relevancia.

    Aprende más
    Equipo editorial StudySmarter

    Equipo de profesores de Ciencias de la Computación

    • Tiempo de lectura de 14 minutos
    • Revisado por el equipo editorial de StudySmarter
    Guardar explicación

    Guardar explicación

    Sign-up for free

    Regístrate para poder subrayar y tomar apuntes. Es 100% gratis.

    Únete a más de 22 millones de estudiantes que aprenden con nuestra app StudySmarter.

    La primera app de aprendizaje que realmente tiene todo lo que necesitas para superar tus exámenes en un solo lugar.

    • Tarjetas y cuestionarios
    • Asistente de Estudio con IA
    • Planificador de estudio
    • Exámenes simulados
    • Toma de notas inteligente
    Únete a más de 22 millones de estudiantes que aprenden con nuestra app StudySmarter.

    Consigue acceso ilimitado con una cuenta gratuita de StudySmarter.

    • Acceso instantáneo a millones de materiales de aprendizaje.
    • Tarjetas de estudio, notas, exámenes de simulacro, herramientas de AI y más.
    • Todo lo que necesitas para sobresalir en tus exámenes.
    Second Popup Banner