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

Entidad sin clave foránea

Estas en el tema de Entidad sin clave foránea en el foro de Bases de Datos General en Foros del Web. Estoy representando un diagrama entidad relación y en él aparece una entidad que almacenará datos temporales. Por ejemplo, supongamos una entidad para almacenar temporalmente datos ...
  #1 (permalink)  
Antiguo 04/03/2015, 12:59
 
Fecha de Ingreso: enero-2013
Mensajes: 10
Antigüedad: 11 años, 9 meses
Puntos: 0
Entidad sin clave foránea

Estoy representando un diagrama entidad relación y en él aparece una entidad que almacenará datos temporales. Por ejemplo, supongamos una entidad para almacenar temporalmente datos de una una persona.

¿Sería correcto representar el diagrama Entidad-Relación con esa clase suelta, sin ninguna interrelación con otra entidad?

¿Y en el modelo relacional, teniendo en cuenta que no tendrá ninguna clave foránea?
  #2 (permalink)  
Antiguo 04/03/2015, 13:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Entidad sin clave foránea

Una tabla temporal no existe en el modelo de datos. Es una representación del funcionmiento de los procesos del sistema, y la base sólo contiene los objetos persistentes.
Más alla de que no tenga una FK, si no tiene persistencia, ni relación con el resto de las entidades, no pertenece a la base.
Es lo mismo que plantearse si las tablas creadas en un SP y destruidas lueg de su terminación corresponden a la base: NO. No son parte del ssitema sino de un proceso, y la base no representa procesos.
__________________
¿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 04/03/2015, 13:31
 
Fecha de Ingreso: enero-2013
Mensajes: 10
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Entidad sin clave foránea

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Una tabla temporal no existe en el modelo de datos. Es una representación del funcionmiento de los procesos del sistema, y la base sólo contiene los objetos persistentes.
Más alla de que no tenga una FK, si no tiene persistencia, ni relación con el resto de las entidades, no pertenece a la base.
Es lo mismo que plantearse si las tablas creadas en un SP y destruidas lueg de su terminación corresponden a la base: NO. No son parte del ssitema sino de un proceso, y la base no representa procesos.

Respecto a lo de temporal, no me refiero a que no tenga persistencia, si que la tendría, durante un par de días por ejemplo. La idea es usar una tabla "JugadorTemp" que almacene los datos de un jugador que se registre en una plataforma hasta que este se valide, durante este periodo la información es persistente. Cuando el jugador se valide, la información del jugador en "JugadorTemp" se borrará y se guardará en la tabla "Jugador".

¿Aún especificando esto último no se consideraría la clase "JugadorTemp" como parte del modelo de datos?

Muchas gracias.
  #4 (permalink)  
Antiguo 04/03/2015, 13:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Entidad sin clave foránea

Lo que no debería existir es la tabla JugadorTemp, sino un atributo en Jugador que establezc su validación o su baja por falta de validación...
A mi entender lo estás planteando mal, incluso procedimentalmente, porque la eliminacion de la primera etapa de datosimpediría cualquier trazabilidad posterior de los registros y actividades de ese jugador.
__________________
¿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 04/03/2015, 13:41
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Entidad sin clave foránea

aqui lo que se podria sugerir es que la tabla temporal no se elimine de la base de datos, sino que simplemente se borren los datos que tiene, estarias usando una famosa tabla de "stage" :P aunque la idea de gnzsoloyo me parece mejor
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 04/03/2015, 13:46
 
Fecha de Ingreso: enero-2013
Mensajes: 10
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Entidad sin clave foránea

Lo que comentas, fue mi primer opción pero la deseche cuando pensé que tendría que añadir dos atributos a la entidad "Jugador", uno sería el código de verificación y otro uno que establezca su validación. El problema es que cuando se fueran validando los jugadores tendría multitud de registros con dos atributos nulos, quizás reservando de alguna forma espacio.

De la forma que te comentaba tendría la tabla "Jugador" con dos atributos menos, y la tabla "JugadorTemp" solo con los jugadores no validados.

En cuando a la trazabilidad no sería problema, primero se registra la información del jugador en la tabla "Jugador" y luego se borra el registro de la tabla "JugadorTemp".

Entiendo tú respuesta, y me está ayudando mucho a pensar, pero en aras de aprender, sigo con la duda de que si lo que planteo es posible, o por mucho que me empeñe es inviable. Funcionar funciona, el problema sería a la hora de "documentar".
  #7 (permalink)  
Antiguo 04/03/2015, 13:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Entidad sin clave foránea

En primer lugar, los datos indicados serían numéricos, por lo que el espacio usado no representa un problema, ni aunque tengas 20 millones de asociados.
En segundo, no serían nulos en ningún momento, por cuando si están validados sería 1, y si no, 0. Con un campo BIT alcanza y sobra para ese estado, que además permitiría otro tipo de reportes. El de fecha, adiciona trazabilidad, y sería un DATE (3 bytes), con lo que no afecta la performance.
La verdad me parece innecesria la tabla tempora, porque no agrega nada de ventajas, y sólo sirve para complicar las consutlas y procesos que existan.
El que se agregue o no al diagrama es irrelevante en ese punto, y contraproducente porque adiciona un riesgo de consistencia si hay fallas de procesamiento eventuales, pro las razones que fuesen.
Entre otras objeciones, cualquier alta requiererá una doble valdiación, una apra cada tabla, porque no podrías asegurar que el nuevo jugador no se haya registrado sin validar todavía anteriormente...
Como dije, no le encuentro utilidad, y si muchos riesgos para la performance y la consistencia.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 04/03/2015, 14:03
 
Fecha de Ingreso: enero-2013
Mensajes: 10
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Entidad sin clave foránea

Pues viéndolo así con mas detalle, no tengo nada más que decir, tienes toda la razón del mundo.

Me has ayudado mucho, muchísimas gracias.

Etiquetas: clave, ejemplo, entidad
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 12:44.