¿Cuál es una definición clara de restricción de base de datos? ¿Por qué son importantes las limitaciones para una base de datos? ¿Cuáles son los tipos de restricciones?
¿Cuál es una definición clara de restricción de base de datos? ¿Por qué son importantes las limitaciones para una base de datos? ¿Cuáles son los tipos de restricciones?
Respuestas:
Las restricciones son parte de una definición de esquema de base de datos.
Una restricción generalmente se asocia con una tabla y se crea con una instrucción CREATE CONSTRAINT
o CREATE ASSERTION
SQL.
Definen ciertas propiedades que deben cumplir los datos de una base de datos. Pueden aplicarse a una columna, una tabla completa, más de una tabla o un esquema completo. Un sistema de base de datos confiable asegura que las restricciones se mantengan en todo momento (excepto posiblemente dentro de una transacción, para las llamadas restricciones diferidas).
Los tipos comunes de restricciones son:
Para comprender por qué necesitamos restricciones, primero debe comprender el valor de la integridad de los datos.
La integridad de los datos se refiere a la validez de los datos. ¿Son válidos tus datos? ¿Sus datos representan para qué los ha diseñado?
Qué preguntas extrañas que les hago, podrían pensar, pero lamentablemente con demasiada frecuencia, las bases de datos están llenas de datos basura, referencias inválidas a filas en otras tablas, que se han ido hace mucho tiempo ... y valores que no significan nada para la lógica empresarial de su solución por más tiempo.
Toda esta basura no es por sí sola propensa a reducir su rendimiento, sino que también es una bomba de tiempo bajo la lógica de su aplicación que eventualmente recuperará datos que no están diseñados para comprender.
Las restricciones son reglas que crea en tiempo de diseño que protegen sus datos para que no se corrompan. Es esencial para la supervivencia a largo plazo de su hijo del corazón de una solución de base de datos. Sin restricciones, su solución definitivamente se deteriorará con el tiempo y el uso intensivo.
Debe reconocer que diseñar el diseño de su base de datos es solo el nacimiento de su solución. En lo sucesivo debe vivir (con suerte) mucho tiempo y soportar todo tipo de comportamiento (extraño) por parte de sus usuarios finales (es decir, aplicaciones cliente). ¡Pero esta fase de diseño en desarrollo es crucial para el éxito a largo plazo de su solución! Respételo y préstele el tiempo y la atención que requiere.
Un hombre sabio dijo una vez: "¡Los datos deben protegerse a sí mismos!" . Y esto es lo que hacen las limitaciones. Son las reglas las que mantienen los datos de su base de datos lo más válidos posible.
Hay muchas formas de hacer esto, pero básicamente se reducen a:
sys.check_constraints
vista en la base de datos de muestra de AdventureWorksComo he insinuado aquí, se necesitan algunas consideraciones minuciosas para construir el mejor enfoque de restricción y más defensivo para el diseño de su base de datos. Primero necesita conocer las posibilidades y limitaciones de los diferentes tipos de restricciones anteriores. La lectura adicional podría incluir:
Restricciones FOREIGN KEY - Microsoft
Restricción de clave externa - w3schools
¡Buena suerte! ;)
Las restricciones no son más que reglas sobre los datos. Los datos que son válidos y los que no lo son se pueden definir mediante restricciones. Por lo tanto, se puede mantener la integridad de los datos. Las siguientes son las restricciones más utilizadas:
NOT NULL
. Aquí podemos especificar qué datos podemos ingresar para esa columna en particular y qué no se espera para esa columna.Las restricciones se pueden utilizar para hacer cumplir propiedades específicas de los datos. Un ejemplo simple es limitar una columna int a valores [0-100000]. Esta introducción se ve bien.
Las restricciones dictan qué valores son válidos para los datos en la base de datos. Por ejemplo, puede hacer que un valor no sea nulo (una NOT NULL
restricción), o que exista como una restricción única en otra tabla (una FOREIGN KEY
restricción), o que sea único dentro de esta tabla (una UNIQUE
restricción o tal vez una PRIMARY KEY
restricción según sus requisitos ). Se pueden implementar CHECK
restricciones más generales utilizando restricciones.
La documentación de MSDN para las restricciones de SQL Server 2008 es probablemente su mejor punto de partida.
UNIQUE
restricción (de la cual una PRIMARY KEY
restricción es una variante). Comprueba que todos los valores de un campo determinado sean únicos en la tabla. Esta es la X
restricción del eje (registros)
CHECK
restricción (de la cual una NOT NULL
restricción es una variante). Comprueba que se cumple una determinada condición para la expresión sobre los campos del mismo registro. Esta es la Y
restricción del eje (campos)
FOREIGN KEY
restricción. Comprueba que el valor de un campo se encuentre entre los valores de un campo en otra tabla. Esta es la Z
restricción del eje (tablas).
CHECK
restricciones, entonces, ¿por qué clasificarlas de manera diferente? es decir, " Y
-eje" (lo que sea que eso signifique).
FOREIGN KEY
uso de una CHECK
restricción?
SELECT
consulta. No puede usar subconsultas (o cualquier otra construcción que se refiera a valores fuera del registro actual) en CHECK
restricciones en SQL Server
.
Una base de datos es la representación lógica computarizada de un modelo conceptual (o comercial), que consta de un conjunto de reglas comerciales informales. Estas reglas son el significado de los datos comprendido por el usuario. Debido a que las computadoras comprenden solo representaciones formales, las reglas comerciales no se pueden representar directamente en una base de datos. Deben asignarse a una representación formal, un modelo lógico, que consta de un conjunto de restricciones de integridad. Estas restricciones, el esquema de la base de datos, son la representación lógica en la base de datos de las reglas comerciales y, por lo tanto, son el significado de los datos entendido por el DBMS. De ello se desprende que si el DBMS desconoce y / o no aplica el conjunto completo de restricciones que representan las reglas comerciales, tiene una comprensión incompleta de lo que significan los datos y, por lo tanto,
Nota: El significado "entendido" de DBMS - restricciones de integridad - no es idéntico al significado entendido por el usuario - reglas de negocio - pero, a pesar de la pérdida de algún significado, obtenemos la capacidad de mecanizar inferencias lógicas a partir de los datos.
"Una vieja clase de errores" por Fabian Pascal
Básicamente, existen 4 tipos de restricciones principales en SQL:
Restricción de dominio: si uno de los valores de atributo proporcionados para una nueva tupla no es del dominio de atributo especificado
Restricción clave: si el valor de un atributo clave en una nueva tupla ya existe en otra tupla en la relación
Integridad referencial: si un valor de clave externa en una nueva tupla hace referencia a un valor de clave principal que no existe en la relación referenciada
Integridad de la entidad: si el valor de la clave principal es nulo en una nueva tupla
las restricciones son condiciones que pueden validar una condición específica. Las restricciones relacionadas con la base de datos son la integridad del dominio, la integridad de la entidad, la integridad referencial, las restricciones de integridad definidas por el usuario, etc.