Validación de Datos con Constraints en SQL

Clase 16 de 31Curso de Optimización de Bases de Datos en SQL Server

Resumen

¿Qué son los constraints en las bases de datos?

Los constraints son mecanismos cruciales en las bases de datos para asegurar la integridad y validez de los datos antes de que se inserten o actualicen. Estos se implementan para establecer reglas de negocio, tales como impedir la duplicación de información en una columna, establecer valores predeterminados al ingresar valores nulos o vacíos, y aplicar fórmulas específicas. Este enfoque te permite garantizar que los datos en tus tablas sean congruentes y estén alineados con las necesidades y normativas de tu negocio.

¿Cómo agregar un constraint para valores nulos o vacíos?

Para ejemplificar el uso de constraints, se utilizará la base de datos Platzi y particularmente la tabla UsuarioSource. Supongamos que queremos validar que, cuando se ingrese un valor nulo o vacío en la columna puntos, automáticamente se asigne un cero. Para lograr esto, primero se debe eliminar el trigger que impide la modificación de la estructura de la base de datos. Una vez hecho esto, podemos proceder de la siguiente forma:

ALTER TABLE UsuarioSource
ADD CONSTRAINT UsuarioSource
DEFAULT 0 FOR puntos;

A continuación, se realiza un INSERT en la tabla y se verifica que el constraint se ha aplicado correctamente:

INSERT INTO UsuarioSource VALUES (7, DEFAULT);

Esto asegurará que cualquier entrada vacía en la columna puntos se llene automáticamente con el valor cero.

¿Cómo asegurar nombres únicos en una columna?

Otro uso fundamental de los constraints es garantizar que no haya duplicados en ciertas columnas cuando las condiciones del negocio así lo exigen. Si queremos que los nombres en la columna nombre sean únicos, podemos establecer un constraint de tipo UNIQUE:

ALTER TABLE UsuarioSource
ADD CONSTRAINT C_UsuarioSource_Nombre UNIQUE(nombre);

Al intentar insertar un nuevo usuario con un nombre ya existente, como "Carlos Álvarez", el sistema debería generar un error indicando la violación de la clave única.

¿Cómo establecer constraints más complejos?

Además de los ejemplos anteriores, los constraints también se pueden usar para validar combinaciones de condiciones más complejas mediante el uso de CHECK. Por ejemplo, si deseamos establecer que:

  • Los valores en la columna puntos deben ser mayores o iguales a cero.
  • El nombre debe ser diferente de "María Solís".

Podríamos configurar el siguiente constraint:

ALTER TABLE UsuarioSource
ADD CONSTRAINT C_UsuarioSource_Validaciones CHECK (puntos >= 0 AND nombre <> 'María Solís');

Este constraint garantizará que cualquier registro añadido o modificado cumpla con estas reglas, proporcionando una capa adicional de integridad y calidad a nuestros datos.

Es impresionante cómo los constraints pueden ser una herramienta tan poderosa para mantener nuestras bases de datos ordenadas y útiles para los fines de nuestro negocio. Si estás interesado en continuar mejorando tus habilidades en gestión de bases de datos, no dudes en seguir explorando y aplicando estos conceptos en situaciones reales. ¡El camino hacia el dominio de bases de datos es largo pero sumamente gratificante!