Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Relaciones N a N

Estas en el tema de Relaciones N a N en el foro de Mysql en Foros del Web. Vuelvo a intentarlo por tercera vez, a ver si esta si que se queda el mensaje aquí. Sobre bases de datos MySQL: Alguien sabría explicarme ...
  #1 (permalink)  
Antiguo 01/01/2008, 14:17
 
Fecha de Ingreso: junio-2002
Mensajes: 57
Antigüedad: 21 años, 10 meses
Puntos: 0
Relaciones N a N

Vuelvo a intentarlo por tercera vez, a ver si esta si que se queda el mensaje aquí.

Sobre bases de datos MySQL:
Alguien sabría explicarme de que van las relaciones N a N? Es que he buscado algo de info y ando algo pez.

No necesito una explicación en profundidad pero sí el concepto para poder entender a qué se refiere ya que no encuentro nada por ahí.

Gracias y un saludo.



PD
: No estoy preguntando por nada referente al código php que luego sirva para extraer los datos, eso lo haré en cuanto sepa de que van este tipo de relaciones en bases de datos MySQL, lo especifico para que no lo vuelva a borrar ningún moderador ya que es una cuestión que solo encaja en el foro MySQL por ser una pregunta sobre MySQL.
  #2 (permalink)  
Antiguo 01/01/2008, 14:30
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Relaciones N a N

Si son conceptos lo que buscas...

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 01/01/2008, 16:59
 
Fecha de Ingreso: junio-2002
Mensajes: 57
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Relaciones N a N

Cita:
Iniciado por BrujoNic Ver Mensaje
Si son conceptos lo que buscas...

Función de la sección de Base de Datos
No entiendo exactamente, pero lo mio es una pregunta sobre una función de bases de datos, MySQL en concreto, y creo que está en el foro que toca, sino hazmelo saber.

Gracias, un saludo y feliz año nuevo.
  #4 (permalink)  
Antiguo 01/01/2008, 19:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: Relaciones N a N

Cuando estás pregundando sobre relaciones N a N, estás entrando más en los fundamentos de las bases de datos, que en los motores de bases de datos en sí, por lo que el tema, si bien es base de nuestro trabajo, su desconocimiento pone en evidencia falta de conocimientos ni siquiera informales sobre el asunto.
Si pretender con lo anterior menoscabar tu ego u ofender (perdona si fue demasiado brutal), trataré de resumir de alguna forma lo que estás preguntando, pero te advierto que es algo abstracto e impica el conocer VARIAS cosas antes de ello.

Relaciones N a N refieren a la cardinalidad de las relaciones entre entidades según el modelo Entidad-Relación propuesto por Teory, Fry y Yang en 1986, cuyo paper puedes descargar de http://www.fe.up.pt/~jmoreira/wwwsi/2000-01/eerm.pdf. En el se describen qué son las entidades, cómo se clasifican, qué son las relaciones y cuáles son sus propiedades.
En este sentido la pregunta está en niveles muy básicos de Base de Datos.
Respecto de las N a N y la cardianlidad entre relaciones, ésta se considera:
- 1 a 1, cuando a cada instancia de la entidad E1 corresponde una y sólo una instancia de la E2.
- 1 a N, cuando a cada instancia de la entidad E1 puede corresponder de 0 a N de la E2, y a su vez N instancias de la E2 se relacionan con solo una de E1.
- N a N, cuando de 0 a N instancias de la entidad E1 puede corresponder de 0 a N de la E2.

Este galimatías afecta el desarrollo de las bases de datos a nivel modelo físico, porque tienen directa implicancia en la definición de las claves primarias, foráneas y restricciones de dependencias, normalizaciones y determinantes.

Para acercarte a una visión muy parcializada, piensa esto: Considerando que las entidades sean las tablas de la base (no es totalmente así en el modelo E-R, pero es parte de eso), ¿cómo haces para que un sólo registro de una tabla T1 se vincule a varios de la tabla T2? Simple: Poniendo una clave externa en T2 que sea clave primaria en T1.

Pensarás, por ejemplo: "Bueno, simplemente le AGREGO un valor numérico a la tabla T1 y otro a T2 y listo...".

No. No es exactamente así la cosa.

En primer lugar porque el diseño en ese nivel (E-R) no es arbitrario. No estás programando bases de datos en ese momento, estás modelado un sistema real que estás analizando, ya que estás haciendo las funciones de Analista de Sistemas.
En segundo lugar, porque todavía falta mucho para llegar al SQL.

Cuando estás en ese nivel recién estás analizando qué conjunto de datos determina que existe una relación entre una entidad llamada CLIENTES, con otra entidad llamada CONTRATOS. ¿Qué lo determina? ¿Cuándo empieza a existir el cliente?: ¿Cuando hace una cita? ¿Cuando pide una reserva, cuando la paga, cuando la seña? ¿Y si cancela antes de la seña, es un cliente o no? ¿La existencia del cliente hace que la existencia del contrato sea mandatoria o no? ¿Cuando se inicia y cuándo se extingue el contrato? Y así se puede seguir casi hasta el infinito... o hasta que el analista tenga claro cómo debe crearse el esquema inicial (denominado DER o Diagrama Entidad - Relación) que es el primer paso para la construcción de una base de datos... Algo así como 2 a 18 meses antes de comenzar a programar (no estoy exagerando, en el proyecto en que estoy empezamos el análisis el 03/2007 y recién empezamos a implementar la base a partir del 07/2007... y todavía recibimos ajustes al modelo de tanto en tanto).

Con esto quiero decirte que si bien el tema de las relaciones N a N se reflejará finalmente en la construcción de la base física, es un tema de conceptualizaciones de análisis y no de SQL, por eso los post anteriores que no resolvieron tu duda.

Sugerencias:
- Ullman/Widom . "Introducción a los sistemas de bases de datos" - Ed. Prentice Hall
- Mendelzon/Ale. "Introducción a las bases de datos relacionales" - Ed. Prentice Hall
- H. F. Korth y A. Silberschatz. "Fundamentos de Bases de Datos". - Ed. Mc Graw Hill
- C. J. Date. "Introducción a los Sistemas de Bases de Datos" - Ed. Addison Wesley

Como punto final, las relaciones N a N, al estar en el fundamento de Análisis de Sistemas y no ser específicos de Bases de Datos, aparecen en varios puntos de la ingenería de sistemas. Incluso vas a encontrar el concepto en POO (que trabajas si haces PHP en POO). Y es esencialmente lo mismo.

Última edición por gnzsoloyo; 01/01/2008 a las 20:01
  #5 (permalink)  
Antiguo 01/01/2008, 21:01
 
Fecha de Ingreso: junio-2002
Mensajes: 57
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Relaciones N a N

Muchas gracias gnzsoloyo, de lo expuesto en tu texto extraeré simplemente la pregunta y la pondré de forma que otra persona que no tenga mucha idea de por donde van los tiros pueda entenderla.

Cita:
Una relación de n a n es una forma de relacionar los registros de dos tablas mediante otra tabla que utiliza identificadores únicos de cada una de estas para así luego poder relacionarlas entre sí.
Gracias también por el pdf este al cual voy a pegar un vistazo.

Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 01:59.