Modelado de datos con UML: Restricciones


NOMBRES DE ROL
Un nombre de rol es un nombre que identifica semánticamente un extremo de una asociación. Su uso es libre y opcional en cualquier asociación, pero se recomienda encarecidamente en las siguientes situaciones.
En las asociaciones reflexivas, para diferenciar claramente la semántica de los dos extremos. No es lo mismo ser mentor que mentorado. Cada extremo define un rol.
Cuando dos clases tienen dos o más asociaciones entre ellas, pero semánticamente distintas. Una persona que conduce un coche no tiene por qué ser su dueño y al revés.
RESTRICCIONES GRÁFICAS
La restricción {xor} se usa para indicar que dos relaciones son disjuntas entre ellas; es decir, que o bien se da una o bien se da la otra, pero nunca a la vez.
La restricción {subset} se usa para indicar que el conjunto de instancias que ocurren en la asociación es un subconjunto de otra asociación.
RESTRICCIONES TEXTUALES
Son conjuntos de reglas que el modelo conceptual datos debe cumplir pero que no se pueden representar de forma gráfica, o en caso de poder representarse, el diagrama genera ambigüedad.
Su objetivo es garantizar la integridad y la no ambigüedad de la información del modelo. Las restricciones textuales principalmente suelen aparecer en los siguientes escenarios:
  • Reglas y dependencias entre atributos.
  • Especificación de claves externas.
  • En cadenas de interrelaciones cíclicas, para garantizar la integridad de los datos.
  • En relaciones reflexivas para garantizar el cumplimiento o prohibición de las propiedades de reflexividad, simetría y transitividad.
Se redactan en lenguaje natural añadiéndolas como parte de los diagramas de clases.

En el modelo conceptual de arriba, nos podríamos encontrar la siguiente situación:
  • Brian Keaton es un médico especialista en traumatología.
  • Brian está asignado al equipo A.
  • El equipo A tiene especialidad en obstetricia.
¿Tiene sentido que Brian, traumatólogo, esté asignado a un equipo cuya especialidad no coincide con la suya? Al no indicarse nada en el modelo, nadie nos prohíbe que exista este caso concreto. Para evitar este caso conflictivo es necesario añadir la siguiente restricción al modelo:
Un médico no puede estar asignado a un equipo que pertenezca a una especialidad que el equipo no tiene.

Comentarios