Comencé a usar el Workbench y estaba realizando un modelo de base de datos, pero me aparecen esas dos relaciones en las tablas, ¿Cuál es la diferencia?
"identifying" :
Comencé a usar el Workbench y estaba realizando un modelo de base de datos, pero me aparecen esas dos relaciones en las tablas, ¿Cuál es la diferencia?
"identifying" :
Una relación identifying se usa para dar sentido a una entidad débil. Una entidad débil no puede ser identificada unequívocamente con sus atributos, por lo que necesita de otra entidad que actúa como identificador.
Por ejemplo: Tenemos una entidad Edificio,y otra Despacho
El despacho se identifica por su número y su planta. Sin embargo, no podemos identificarlo completamente sin saber a que edificio pertenece. Por lo tanto, necesitamos una relación identificadora, en la que Edificio actua como identificador y la planta y el número de despacho actuan como discriminantes. Si juntamos esta información se puede identificar unequívocamente cualquier despacho.
Relación IDENTIFYING
Su representación gráfica es una línea sólida entre dos entidades.
Definición según los docs de mySQL: Una relación IDENTIFICATIVA es una en la que la tabla hija no puede tener identificadores únicos sin su tabla padre. Generalmente sucede cuando una tabla intermedia es creada para resolver una relación many-to-many. En dichos casos, la clave primaria se compone a partir de las claves primarias de las dos tablas originales.
Ejemplo: Tenemos una aplicación que registra la llegada de trabajadores a la oficina con el siguiente modelo:
usuario { id_usuario, nombre, departamento, puesto }
llegadas_log { id_usuario, hora_llegada, departamento }
Cada entrada de llegadas_log requiere la especificación de una id de usuario. Sin la id de usuario no sabríamos quién ha llegado a las oficinas. En este caso, la entidad llegadas_log es considerada "débil" porque depende de la existencia de otras entidades (usuario) para funcionar.
Relación NON-IDENTIFYING
Su representación gráfica es una línea punteada entre dos entidades.
Definición: Una relación no-identificativa es una donde el "hijo" puede ser identificado independientemente del "padre".
Ejemplo:
flor( id_flor, origen_nombre_latin, id_tipo_flor )
tipo_flor( id_tipo_flor, nombre, descripcion )
La relación entre flor y tipo_flor es no-identificativa (non-identifying) porque cada tipo de flor puede ser identificado sin necesidad de que éste exista en la tabla flor.