Restricciones de Integridad y Cardinalidad en una Base de Datos

Unidad de Apoyo para el Aprendizaje

Iniciar

Introducción


Un activo muy valioso para las organizaciones es la información, la cual debe ser completa y consistente. Para lograrlo, las organizaciones deben contar con una serie de restricciones de integridad referencial en el diseño de la base de datos.

¿Conoces dichas restricciones?

¿Cuál es la manera en que las entidades y atributos de la información deben comportarse?

En este tema se desarrollarán los aspectos más importantes para añadir consistencia a los diseños de bases de datos bajo el modelo relacional como son las reglas de integridad, restricciones de integridad y cardinalidad.

Productos


El estudio de este tema te permitirá:

Identificar las restricciones de integridad y cardinalidad que se utilizan en el diseño de una base de datos bajo el modelo relacional, mediante el conocimiento de las reglas de integridad, para garantizar la consistencia de los datos en caso de actualizaciones o modificaciones.


De acuerdo con Rojas y Méndez (2016), una de las grandes ventajas del modelo relacional, frente a otros de los que han ido utilizándose o surgiendo con el tiempo, es el hecho de que la estructura de los datos no está preestablecida en un programa, ni es inamovible por la propia arquitectura del modelo.

En una base de datos relacional, lo que se conoce como el catálogo de datos meta-datos —información que describe la estructura de los datos— está almacenado también en la propia base de datos. Es más, ese catálogo debe aparecer como una parte más y por tanto, ser accesible mediante la misma mecánica.



El catálogo de una base de datos es, por ende, una descripción de la estructura de dicha base.



Dependiendo del RDBMS que se emplee, el nombre del catálogo en sí puede cambiar: será el método de acceso a su contenido y la información almacenada en él (nombre de tablas, nombres y tipos de columnas y otros atributos) mediante consultas SQL.

A las tablas que forman el catálogo se les conoce habitualmente como tablas de sistema, en contraposición a las tablas de datos propiamente dichas, que son conocidas como tablas de usuario.




Una de las reglas establecidas por Codd, en su definición de sistema relacional de bases de datos, indica que la integridad de la información debe ser mantenida en la propia base de datos, no en las aplicaciones que la utilicen. Los atributos necesarios para fijar esa integridad se almacenarán en el catálogo o diccionario de la base de datos, conjuntamente con la información de las tablas, índices, vistas y cualquier otro objeto que pudiera existir.

Básicamente encontraremos dos categorías que afectan a la integridad de la información: la integridad de dominio y la integridad referencial. La primera especifica el tipo de información que se puede alojar en cada columna, su longitud, si puede quedar o no sin completar, etc. Con la segunda se asegura que las referencias existentes entre tablas sean válidas y que, por ejemplo, una clave externa de una tabla no haga referencia a un código de editorial inexistente.

Los mecanismos expuestos por la base de datos para garantizar la integridad de la información deben ser, además, de aplicación obligatoria.

En la integridad de dominio son fundamentales aspectos como el tipo de datos asociados a una columna y los atributos derivados de dicho tipo: longitud máxima de una secuencia de caracteres, rango de valores permitidos en un número, lista de términos validos para una enumeración, posibilidad de que el dato quede como nulo, entre otros.

Se denomina integridad referencial a los mecanismos de la base de datos enfocados a garantizar que un dato referenciado, desde una cierta tabla, esté disponible en otra de esa misma base de datos. Por una parte están los atributos que establecen el enlace entre ambas tablas, vinculando una columna de la primera con la clave primaria de la segunda y, por otra, las comprobaciones internas que debe efectuar el propio RDBMS para asegurar que esa integridad se mantenga.

Tratamiento de valores nulos


En una base de datos relacional, el contenido de una determinada columna en una fila de una tabla puede presentar tres estados diferentes: contener un valor, estar vacía o ser nula. En realidad, los dos primeros son idénticos, la particularidad es que hay ciertos valores, como el 0 en el caso de los números, o la cadena “( )”, las secuencias de caracteres que pueden considerarse como vacías.

Los valores nulos, representados a menudo como Null, son un caso especial. La presencia de Null indica que el contenido de la columna es desconocido. Por ello no debe confundirse Null con 0 o “( )”. No es lo mismo una columna que contiene una secuencia vacía de caracteres, por ejemplo, al haber eliminado un contenido previo, que aquella que nunca tuvo contenido, por tanto, es Null.

El tratamiento de valores nulos es importante, pues condiciona la selección de datos, algo que es necesario tener en cuenta para no encontrar sorpresas o resultados inesperados. Si, por ejemplo, buscamos en la tabla Libros todas aquellas filas en las que la editorial sea 0, para corregir la asociación de cada libro con su editorial, no obtendríamos en el resultado aquellas filas cuya columna Editorial fuese Null, quedando así libros sin corregir esa asociación.



Figura 1.Tabla Libros : Ejemplo de integridad referencial Las imagen da un ejemplo de las tablas con integridad referencial y sin valores nulos.



Blázquez (2014) aporta los siguientes conceptos:



La entidad es cualquier clase de objeto o conjunto de elementos, presentes o no, en un contexto determinado, dado por el sistema de información o las funciones y procesos que se definen en un plan de automatización. Dicho de otra forma, las entidades las constituyen las tablas de la base de datos que permiten el almacenamiento de los ejemplares o registros del sistema, quedando recogidos bajo la denominación o título de la tabla o entidad.

La constituyen las tablas principales de la base de datos que contienen los registros principales del sistema de información, y que requieren de entidades o tablas auxiliares para completar su descripción o información. Por ejemplo, la tabla usuario es una entidad fuerte en relación con la tabla tipos de usuarios, que es una entidad débil dada su condición auxiliar para clasificar a los usuarios registrados en la biblioteca.

Son entidades débiles a las tablas auxiliares de una tabla principal a la que completan, o complementan, con la información de sus registros relacionados. Por ejemplo, también son consideradas entidades débiles las tablas intermedias que sirven para compartir información de varias tablas principales.

Son las características, rasgos y propiedades de una entidad, que toman como valor una instancia particular. Es decir, los atributos de una tabla son, en realidad, sus campos descriptivos, el predicado que permite definir lo que decimos de un determinado sujeto.

Vínculo que permite definir una dependencia entre los conjuntos de dos o más entidades. Esto es, la relación entre la información contenida en los registros de varias tablas. Las relaciones son definidas de forma natural en un diagrama relacional para expresar un modelo cognitivo que dará lugar, posteriormente, a las interrelaciones de las entidades.

Es el campo o atributo de una entidad o tabla que tiene como objetivo distinguir cada registro del conjunto, sirviendo sus valores como datos vinculantes de una relación entre registros de varias tablas. El concepto de clave suele ser utilizado como sinónimo de llave.

Llave primaria/Primary Key (PK). Permite identificar unívocamente cada registro de una tabla. Por ejemplo, campo autonumérico interno ID. El concepto de clave primaria suele ser utilizado como sinónimo de llave primaria.

Llave candidata/Alternative Key (AK). Campos que cumplen las condiciones de identificación única de registros, pero que no fueron definidos como principales por el diseñador. El concepto de clave candidata o alterna suele ser utilizado como sinónimo de llave alterna.

Llave externa/Foreign Key (FK). Campo clave conformado por el valor de una clave principal primaria de otra tabla. El concepto de clave externa o foránea suele ser utilizado como sinónimo de llave alterna.

Cardinalidad


La cardinalidad se representa en un diagrama ER (Entidad-Relación) como una etiqueta que se ubica en ambos extremos de la línea de relación de las entidades, que puede contener diversos valores, entre los que destacan comúnmente el 1 y el *, obteniendo los siguientes tipos:




Tratamiento de valores nulos


Con base en los conceptos anteriores, se puede entender de mejor manera lo expuesto por Kendall & Kendall (2005) al abordar el tema sobre restricciones de integridad: las restricciones de integridad son reglas que controlan el cambio y eliminación de registros, y ayudan a mantener los datos en la base de datos exacta. En una base de datos se aplican tres tipos de restricciones de integridad. Las restricciones de integridad son reglas que controlan la composición de reglas principales.




Establece que la clave primaria no puede tener un valor nulo, y si la clave primaria es una clave compuesta, ninguno de los campos de componentes en la clave puede contener un valor nulo.

La integridad referencial controla la naturaleza de los registros en una relación uno a muchos: la tabla que se conecta en el extremo uno de la relación se llama padre; la parte de la relación que se conecta en el extremo muchos de la relación se llamatabla hija.

•La integridad referencial significa que todas las claves externas de la tabla muchos (hija) deben tener un registro de coincidencia en la tabla padre.
•La última implicación de la integridad referencial es que no puede eliminar un registro padre que tenga registros hijos.

La integridad referencial se implementa de dos formas diferentes:



1

Una base de datos restringida, en la cual el sistema puede actualizar o eliminar un registro padre, sólo si no hay registros hijos de coincidencia.



2

Una base de datos en cascada eliminará o actualizará todos los registros hijos al eliminar o cambiar un registro padre (el padre activa los cambios).

Las reglas de integridad de dominio se usan para validar los datos, tales como la tabla, límite, rango y otras marcas de validación.

Actividad 1. La integridad referencial

Identificar los conceptos de los diferentes tipos de integridad en una base de datos te permitirá comprender mejor las reglas de integridad y cardinalidad, que son requeridas en la etapa de análisis y diseño de base de datos en un proyecto. Veamos tu comprensión sobre éstos.

Actividad 2. Identificando los tipos de claves

Identificar los tipos de claves en una base de datos y definir correctamente las relaciones de cardinalidad garantiza la unicidad en dicha base.

Autoevaluación. Garantizando la consistencia en un base de datos

En diseño de base de datos existen conceptos básicos con los cuales debes estar familiarizado, ya que conocer cada uno de ellos garantizará que se pueda realizar el diseño efectivo de una base de datos en una organización para la solución de problemas reales.

Fuentes de información

Básicas

Bibliografía

Kendall, K. E. y Kendall, J. E. (2005). Análisis y diseño de sistemas (6.ª ed.). México: Prentice-Hall.

Documentos electrónicos

Blázquez, M. (2014, 20 de febrero). Fundamentos y diseño de bases de datos. Consultado el 10 de octubre de 2017 de http://ccdoc-basesdedatos.blogspot.mx/2013/02/modelo-entidad-relacion-er.html

Rojas, A. y Méndez, C. (2016). Desarrollo de aplicaciones en Manejadores de bases de datos relacionales. (Apunte Electrónico.) México: UNAM. Consultado el 10 de octubre de 2017 de http://fcasua.contad.unam.mx/apuntes/interiores/docs/20172/informatica/5/apunte/LI_1547_18116_A_Desarrollo_aplicaciones_BD_v1.pdf

Rojas, A. y Méndez, C. (2006). Desarrollo de aplicaciones en Manejadores de bases de datos relacionales. (Apunte Electrónico.) Desarrollo de aplicaciones en manejadores de bases de datos relacionales. Cuaderno de actividades actividades [Versión electrónica]. Consultado el 10 de octubre de 2017 de http://fcasua.contad.unam.mx/apuntes/interiores/docs/20181/informatica/5/LI_1547_25057_C_Desarrollo_aplicaciones_BD_Rel_Plan2016.pdf

Rouse, M. (2015, enero). SQL o Lenguaje de consultas estructuradas. Consultado el 10 de octubre de 2017 dehttp://searchdatacenter.techtarget.com/es/definicion/SQL-o-lenguaje-de-consultas-estructuradas

Complementarias

Bibliografía

Mendelzon, A. (2000). Introducción a las bases de datos relacionales. México: Pearson Educación.

Cómo citar

Texto correspondiente a esta sección.