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

Relaciones circulares

Estas en el tema de Relaciones circulares en el foro de Bases de Datos General en Foros del Web. Hola a todos: Se que teoricamente no se pueden crear relaciones circulares pero dado el siguiente problema que se puede hacer: Tenemos usuarios de bibliotecas, ...
  #1 (permalink)  
Antiguo 30/09/2009, 17:56
Avatar de juankcres  
Fecha de Ingreso: septiembre-2009
Mensajes: 88
Antigüedad: 14 años, 6 meses
Puntos: 2
Relaciones circulares

Hola a todos:
Se que teoricamente no se pueden crear relaciones circulares pero dado el siguiente problema que se puede hacer:

Tenemos usuarios de bibliotecas, y cada usuario puede tener o no acceso a bibliotecas, y cada una de las bibliotecas tiene libros. Como puedo guardar el registro de los libros que utiliza el usuario sin tener que usar relaciones circulares???

tablas:

Usuarios: ID_Usuario,
Acceso_Biblioteca: ID_Usuario, ID_Biblioteca
Biblioteca: ID_Biblioteca
Libros_Biblioteca: ID_Biblioteca,ID_ Libro
Libros: ID_Libro


Tendria que crear una relacion circular para guardar los libros ocupados por el usuario, de la siguiente forma:

Registro: ID_Usuario, ID_Biblioteca, ID_Libro
que no es lo optimo.

Se agradece cualquier ayuda
  #2 (permalink)  
Antiguo 30/09/2009, 18:27
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
Respuesta: Relaciones circulares

Te falta una tabla de Préstamos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 01/10/2009, 07:30
Avatar de juankcres  
Fecha de Ingreso: septiembre-2009
Mensajes: 88
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Relaciones circulares

Si pero si te fijas la tabla que llamo registro cumple esa funcion y de todas formas queda una relacion circular.
  #4 (permalink)  
Antiguo 01/10/2009, 07: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
Respuesta: Relaciones circulares

Cita:
Registro: ID_Usuario, ID_Biblioteca, ID_Libro
Es ineficiente y no cumple con lo que necesitas.
No cubre la posibilidad de que un usuario pida un libro más de una vez.
La tabla Registro debe tener una relación N:N con Usuarios y Libro, pero no con Biblioteca (en tanto la biblioteca sea solo una organización).
Para que esta tabla sea funcional le faltan muchas cosas: Fecha_Entrega, Fecha_Devolucion, (Estado_entrega, Estado_devuelto), como mínimo, donde (Usuario_ID, Libro_ID y Fecha_Entrega) podrían ser PK.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 01/10/2009, 07:50
Avatar de juankcres  
Fecha de Ingreso: septiembre-2009
Mensajes: 88
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Relaciones circulares

gnzsoloyo, gracias por tu respuesta, pero todavia persiste el problema ya que al crear esa tabla tenemos una relación circular, debido a que:

Usuarios: ID_Usuario,
Acceso_Biblioteca: ID_Usuario, ID_Biblioteca /* Se relacionan Usuarios se Relaciona con Biblioteca
Biblioteca: ID_Biblioteca
Libros_Biblioteca: ID_Biblioteca,ID_ Libro /* Se relacionan Biblioteca con libros
Libros: ID_Libro
Registro: ID_Usuario, ID_Biblioteca, ID_Libro / Se relacionan Usuarios, Biblioteca y libros

Por lo tanto seguimos en presencia de una relacion circular o no?????
  #6 (permalink)  
Antiguo 01/10/2009, 08:57
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
Respuesta: Relaciones circulares

¿A qué exactamente le estás llamando "relación circular"?

Por lo que se ve:

Usuarios: Tabla primaria, sin dependencias.
Libro: Tabla primaria, sin dependencias.
Biblioteca: Tabla primaria, sin dependencias.

Acceso_Biblioteca: Tabla secundaria. Valores como FK dependientes de Usuario y Biblioteca. Relación N:N con cada una.

Libros_Biblioteca; Tabla secundaria. Valores como FK dependientes de Libro y Biblioteca. Relación N:N con cada una.

Registro: Tabla secundaria. Valores como FK dependientes de Usuario y Biblioteca y Libro. Relación N:N con cada una. Tabla incompleta por falta de un discriminante de PK.

Es un sistema con tres tablas primarias y tres relaciones N:N, una con atributos discriminantes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 01/10/2009, 09:48
Avatar de juankcres  
Fecha de Ingreso: septiembre-2009
Mensajes: 88
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Relaciones circulares

mira te muestro el a grandes rasgos el modelo, esa relacion que se da es una relacion circular?
Favor revisar mi foto de perfil.

De todas formas muchas gracias
  #8 (permalink)  
Antiguo 01/10/2009, 10:41
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
Respuesta: Relaciones circulares

Eso no es una relación circular.
No existe interdependencia 1 -> 2 -> 3 -> 4 -> 5 -> 1.
Eso es exactamente lo que dije: Un sistema con tres tablas primarias y tres relaciones N:N, el problema es que estás viendo el modelo físico, y no el modelo lógico, en done solamente se verían las tres tablas primarias.
Desde el punto de vista del diseño estructurado, lo que tienes son tres entidades débiles dependiendo de tres entidades fuertes, desde la optica del modelo ER: Tres entidades con dos relaciones de cardianlidad N:N y una N:N:N
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 01/10/2009, 10:59
Avatar de juankcres  
Fecha de Ingreso: septiembre-2009
Mensajes: 88
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Relaciones circulares

Muchas gracias por tu ayuda, entonces puedo estar tranquilo aunque en el modelo logico parece que fuera circular en realidad no lo es por temas de que las dependencias de las tablas no crean una relacion circular. es decir no tenemos en caso que A depende de B que B de C y que A depende de C.
  #10 (permalink)  
Antiguo 01/10/2009, 11:26
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
Respuesta: Relaciones circulares

Exacto.
En el modelo que planteas lo que hay es una dependencia así:
A->M
A->N
A->O

B->M
B->N

C->M
C->O
Pero como no hay relación entre A, B y C, ni tampoco entre M, N y O, no hay cierre de las relaciones.
El corazón del asunto es que las tablas primarias no deben depender de ninguna otra...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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




La zona horaria es GMT -6. Ahora son las 16:27.