Ver Mensaje Individual
  #47  
Antiguo 06-11-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 27
Delphius Va camino a la fama
¿Porqué no existe la relación muchos a muchos en base de datos?

Buen día, buenas tardes, y/o buenas noches a todos.

Hace poco he dado una respuesta en YR y considero, a mi entender, que posiblemente lo dicho en aquella oportunidad sería un buen complemento a lo expuesto en este extenso hilo.
Me pareció justo exponerlo aqui pues puede que a alguien le sirva. No creí conveniente iniciar un nuevo hilo debido a que algo del tema puede estar relacionado con esto...

Bueno... se que no soy de las mejores palabras. No me creo dueño de la verdad, pero en fin... si no suena tan tonto lo que digo, algo de sentido debe tener. Aqui vá:

¿Porqué no existe la relación muchos a muchos en base de datos?

Cita:
Una relación M:M siempre puede romperse con la ayuda de una tabla intermedia. Esta tabla intermedia aunque no lo creas existe en el dominio del problema pero en un nivel de abstracción mayor que el visto inicialmente.

A ver si se me entiende:
El diseño de un DER responde a un estudio o análisis de un problema, de una realidad. A lo que en la jerga denominamos dominio. Tanto en la POO como en el diseño de un DER seguimos una simple regla: designación de responsabilidades. Esto es un paradigma que se ajusta muy bien en la gran mayoría de las veces cuando uno estudia un problema. A cada entidad (una tabla, o un objeto si estamos en POO) se le asocia la responsabilidad de suministrar la información que le compete, como sucede en la mayoría de las veces la información está ligada y dispersada por distintas entidades. Y esí como uno va formando relaciones entre las distintas entidades hasta responder a las necesidades del problema o dominio a resolver.
El problema de M:M debe verse como un suceso general (en una expresión del tiempo a futuro) Futuro entendido como un resumen de varios sucesos que sucedieron en distintos instantes del tiempo (la tabla intermedia). Es decir que el modelo que se entiende por M:M es un resumen realizado auna parte del dominio. Este resumen (la relación 1:M entre alguna la tabla A y la intermedia) hace referencia entonces a una situación que abarca diferentes valores en distintos momentos. La tabla intermedia está alli para mantener guardado detalladamente cada instancia o suceso. Cada posible combinación entre ambas entidades. En objetos diríamos que un suceso M:M está formado por una colección de INSTANCIAS de dos o más entidades. Cada instancia es un suceso único. Recuerda que una instancia existe por un período de tiempo relativamente breve.
Velo así: su muchos vendedores pueden vender muchos muebles y muchos muebles pueden ser vendidos, pero esto no quiere decir que en un MISMO INSTANTE de tiempo TODOS los vendedores van a vender TODOS los muebles.
Aquella parte del problema que ha sido expresada en forma genérica debe ser detallada. Uno se pregunta ¿Pero como es posible concebir que todos venden a la misma vez? ¿No será que un instante del tiempo un vendedor vende x muebles? Ahora si... Aquello que se ha entendido en el dominio como algo genérico está formado por una serie de sucesos que unidos entre si responden a una situación global.
Se ha necesitado cambiar el nivel de abstracción para entender cada suceso del problema. En algunas ocasiones es fácil encontrar el nombre adecuado para dicha tabla intermedia (mejor dicho encontrar el nombre para ese nivel de abstracción del dominio), en otras ocasiones no es tan sencillo. Pero siempre es posible llegar a entender la entidad que hace a cada instancia de A y B única en un instante de tiempo.
En fin: una relación M:M no es más que un caso especial en el que se desea conocer la información global entre tres entidades (A, B y la intermedia)

No se si se me entienda. Sólo quiero hacerte saber que a pesar de que el mundo real existan asociacones de M:M, existe una particularidad en dicha relación general.
El tema original lo pueden ver aquí.

Ojo. No es por hacerme publicidad, me pareció que puede ser útil. Si no es conveniente exponer el contenido borro el mensaje.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 06-11-2007 a las 19:10:00.
Responder Con Cita