UTNianos

Versión completa: [AdS] [DER] ¿Relación de dependencia o asociación?
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenos días, tardes, noches.
Voy directo a la pregunta para el que no quiere perder mucho tiempo:

Si no me dicen, ¿cómo se si una relación es de asociación o dependencia? ¿Cómo saber si la clave forma parte del identificador de la otra entidad?

Contexto para el que quiera:
En la virtualidad, como sabrán, los parciales de DER consisten en un múltiple choice, así que no existe consideración alguna de cualquier desvío que exista en la resolución de un estudiante y la determinada como correcta por los profesores. El tema es que, contrario a la ejercitación que se hace durante el año, casi no se habla sobre los atributos de las entidades que aparecen en el enunciado del parcial, así que siento que la decisión recae medio sobre el alumno como quiera encararlo. Dejo una ilustración por si no se me entiende.
[Imagen: descarga.jpg]

Desde ya, muchísimas gracias.
Holii

Antes que nada, quiero darte la razón, en este tipo de ejercicios por lo general depende mucho de cómo lo encares vos y qué haya pensado el profesor cuando lo redactó.
Ahora, yendo al tema:
Como sabrás, una dependencia es más fuerte que una asociación. Es decir, una dependencia implica una asociación, pero una asociación no necesariamente implica una dependencia. Sabiendo esto, y ante la duda, sería un error menos grave marcar una asociación cuando hablamos de una dependencia y no al revés; en el caso que se pueda justificar.
Por otro lado, y también sería cuestión de preguntar a quien te evalúe, es mucho más seguro en todo sentido luego en la práctica que uses un identificador único para cada tabla y las referencias las tomes como claves foráneas. En tu ejemplo no es aplicable, pero no está de más tenerlo en cuenta para futuras ocasiones cuando hablamos de PK compuestas.
Volviendo a tu caso, me gusta analizarlo así: el "cerito" o asociación se utiliza cuando no necesariamente tiene que existir un registro de la tabla referenciada como FK en el registro que estás analizando. Por ejemplo, un perro "puede" tener un dueño, pero no le hace falta para existir como registro en su propia tabla. Entonces Dueño ||----o< Perro. Por el contrario, cuando un registro debe tener sí o sí un registro como FK en la tabla de la cual se hace referencia, ahí se aplica la dependencia. Este es el caso que mostrás, donde un edificio tiene varios pisos y cada uno de ellos tiene varios departamentos. Cada departamento tiene sí o sí un piso, de lo contrario no se podría identificar. Un caso diferente serían las construcciones (no me acuerdo el nombre) que tienen varios departamentos pero están todos en planta baja unidos por un pasillo. No importa cómo identifiques a cada departamento, porque cada uno va a ser único en ese contexto.

Besis y éxitos love
(19-02-2022 20:14)nicolasAM escribió: [ -> ]Holii

Antes que nada, quiero darte la razón, en este tipo de ejercicios por lo general depende mucho de cómo lo encares vos y qué haya pensado el profesor cuando lo redactó.
Ahora, yendo al tema:
Como sabrás, una dependencia es más fuerte que una asociación. Es decir, una dependencia implica una asociación, pero una asociación no necesariamente implica una dependencia. Sabiendo esto, y ante la duda, sería un error menos grave marcar una asociación cuando hablamos de una dependencia y no al revés; en el caso que se pueda justificar.
Por otro lado, y también sería cuestión de preguntar a quien te evalúe, es mucho más seguro en todo sentido luego en la práctica que uses un identificador único para cada tabla y las referencias las tomes como claves foráneas. En tu ejemplo no es aplicable, pero no está de más tenerlo en cuenta para futuras ocasiones cuando hablamos de PK compuestas.
Volviendo a tu caso, me gusta analizarlo así: el "cerito" o asociación se utiliza cuando no necesariamente tiene que existir un registro de la tabla referenciada como FK en el registro que estás analizando. Por ejemplo, un perro "puede" tener un dueño, pero no le hace falta para existir como registro en su propia tabla. Entonces Dueño ||----o< Perro. Por el contrario, cuando un registro debe tener sí o sí un registro como FK en la tabla de la cual se hace referencia, ahí se aplica la dependencia. Este es el caso que mostrás, donde un edificio tiene varios pisos y cada uno de ellos tiene varios departamentos. Cada departamento tiene sí o sí un piso, de lo contrario no se podría identificar. Un caso diferente serían las construcciones (no me acuerdo el nombre) que tienen varios departamentos pero están todos en planta baja unidos por un pasillo. No importa cómo identifiques a cada departamento, porque cada uno va a ser único en ese contexto.

Besis y éxitos love

Hola Nico. Muchas gracias por tu respuesta, entiendo lo que me decís y tiene sentido, pero acá por ejemplo tengo algo que no termino de entender.

Cita:Un anunciante puede publicar varios avisos clasificados, pero cada aviso clasificado pertenece solo a un anunciante. Estos Avisos pueden publicarse en varios diarios. Todos los anunciantes publicaron alguna vez. Todos los diarios tienen avisos clasificados. Es de interés conocer el día que cada aviso clasificado es publicado en cada diario.

Yo a esto armé algo así:
Anunciante -|-|-----|-< Aviso Clasificado |-|-----|-< Aviso por diario >-|-----|-| Diario

Si me preguntás a mí, todas las relaciones son de dependencia. Pero las respuestas correctas marcan que hay 2 de dependencia y una de asociación. Entiendo que siempre que se rompe la relación, son de dependencia, así que la que me genera dudas es la primera (yendo de izquierda a derecha). No se puede tener aviso clasificado sin un anunciante, y además, si pienso como implementaría esto en un sistema de clases, haría que cada anunciante contenga a sus avisos. ¿Ves algo que yo me esté pasando por alto?

Una vez más, gracias.
Holii

Tratamos temas complejos, así que la respuesta que debería darte es la que muchos profesores dan: "Todo depende del contexto", y cómo después pienses implementarlo con tu análisis. Sin embargo, esto es horrible y deja dudas; procedo a contarte cómo lo veo:

Enunciado: Un anunciante puede publicar varios avisos clasificados, pero cada aviso clasificado pertenece solo a un anunciante. Estos Avisos pueden publicarse en varios diarios. Todos los anunciantes publicaron alguna vez. Todos los diarios tienen avisos clasificados. Es de interés conocer el día que cada aviso clasificado es publicado en cada diario.
Tu respuesta: Anunciante -|-|-----|-< Aviso Clasificado |-|-----|-< Aviso por diario >-|-----|-| Diario

A priori, sí, cuando se rompe una relación, las tablas que van a contener las FK tienen dependencia. No pasa lo mismo con las entidades fuertes.
Luego, y al margen, si, en un DDC cada anunciante tendría sus avisos.
Ahora sí, imaginemos esto como un típico sistema de ABM, muy normal:
Podés dar de alta un anunciante sin que haya hecho un aviso? Si, PERO el enunciado deja explícito que todos los anunciantes publicaron alguna vez. Por esta razón hay dependencia.
Lo mismo dice con los diarios. Sin embargo, realmente no deja en claro las relaciones que aquí existen. Podrían existir diarios que tengan avisos publicados que no pertenezcan a tus anunciantes, por lo que tendría sentido una asociación. Eso sería algo a preguntar durante el examen.

De todas formas, estaría de acuerdo con tu respuesta en una primera instancia; siendo lo más lógico, al menos con el contexto acá presente. Pero fuerzo un poco al modelo con la respuesta que te dan como correcta.

Besis love

EDIT: Para que no quede incompleto, el modelo al que me refiero como final sería el siguiente:
Anunciante -|-|-----|-< Aviso Clasificado |-|-----|-< Aviso por diario >-|-----o-| Diario
URLs de referencia