mayo 29, 2006

Los cuatro puntos de la cardinalidad de la relación durante el diseño de la BD.

Hay una restricción importante que se declara gráficamente en las relaciones en el diagrama Entidad-Relación y se llama la cardinalidad, la cual representa qué tantos de una cosa se relacionan con otra. La cardinalidad de la relación es particularmente importante debido a que forma la base de muchas decisiones de diseño. La cardinalidad se expresa con un valor para un mínimo y para un máximo. El valor mínimo describe si la relación es opcional o requerida. El valor máximo describe si la relación es singular o plural. Debido a que las relaciones se indican en ambas direcciones entre las dos entidades, la cardinalidad mínima y máxima también debe ser indicada en ambas direcciones. Esto significa que para cada relación del modelo se requieren cuatro puntos de cardinalidad para expresar adecuadamente la naturaleza de la relación (mínimo y máximo en ambas direcciones).

A continuación veremos mediante un ejemplo el uso de las cuatro preguntas de la cardinalidad de la relación. Vamos a suponer que estamos elaborando una aplicación de facturación, para lo cuál vamos tomar las entidades de este modelo. Decimos que un Cliente compra Productos, entonces existe una relación entre ambas entidades.









Ahora identificamos la cardinalidad de la relación, para ello nos plantemos las siguientes cuatro preguntas –preguntas de la cardinalidad de la relación-

1. Debe un CLIENTE comprar un PRODUCTO? No. Para ser cliente efectivamente alguna vez nos compró, pero después no, así que ya es CLIENTE, pero no necesariamente debe comprarnos productos, después de la primera vez.

2. Puede un CLIENTE comprarnos más de un PRODUCTO? Si. Esto depende de la naturaleza de operación de la organización, pero lo común es que al levantar un pedido a un CLIENTE este puede solicitarnos a más de un PRODUCTO.

3. Debe un PRODUCTO ser comprador por un CLIENTE? No. Porque no podemos forzar a que un PRODUCTO sea comprador por un CLIENTE.

4. Puede un PRODUCTO ser comprador por más de un CLIENTE? Si. Esto es viendo desde el concepto de PRODUCTO y no como una pieza fisica.

Podemos observar que las dos primeras preguntas van enfocadas del CLIENTE al PRODUCTO y las otras dos preguntas del PRODUCTO al CLIENTE.

La pregunta 1 está diseñada para obtener la cardinalidad mínima.
La pregunta 2 está diseñada para determinar si la misma instancia de la entidad A puede participar en relaciones con varias instancias de la entidad B al mismo tiempo.

Cuando quedan determinadas las respuestas a las preguntas 1 y 2, el analista puede poner la cardinalidad mínima y máxima en el diagrama para expresar las reglas de negocio. La notación de la cardinalidad mínima es un cero que significa opcional, o un uno que significa requerida. La notación para la cardinalidad máxima es un uno, que significa solamente uno o un par de patas de gallo significa muchos.









La cardinalidad mínima y máxima debe ser expresada en ambas direcciones para definir adecuadamente la regla de negocio.



Así es como se ve nuestro modelo después de aplicar las cuatro preguntas de cardinalidad.



Pero como sabemos que las relaciones muchos a muchos no se soportan en un RDBMS, entonces nace debe crearse una nueva entidad asociativa que resuelva este tipo de cardinalidad y ésta es FACTURA.


Después de aplicar las cuatros preguntas de cardinalidad, nuestro modelo queda así:



Podemos observar que ahora ha aparecido otra relación muchos a muchos y que es necesario resolver, yo lo llamaré DETALLE_FACTURA. En la siguiente figura se expone el cómo se vería nuestro modelo Entidad-Relación terminado.





Una nota importante a la hora de aplicar las cuatro preguntas de la cardinalidad es el verbo que se nombra entre la relación de ambas entidades, por ejemplo el cliente compra, el producto se incluye, etc.

No hay comentarios.: