Duda pregunta 75

Temas relacionados con el examen de test.
Cerrado
Avatar de Usuario
jfuentes
Usuario registrado
Mensajes: 453
Registrado: 30 May 2009, 17:34
Agradecido: 0
Agradecimiento recibido: 0

Duda pregunta 75

Mensaje por jfuentes »

En general, al pasar una relación 1:N con atributos propios, del modelo entidad - relación al modelo relacional:
a) Se crea una nueva tabla cuya clave principal es el atributo de la relación.
b) Se crea una nueva tabla cuya clave es la concatenación de las claves de las dos entidades y tiene un campo adicional
para el atributo de la relación.
c) La clave de la entidad que participa con cardinalidad N y el atributo de la relación, pasan a la tabla de cardinalidad 1.
d) La clave de la entidad que participa con cardinalidad 1 y el atributo de la relación, pasan a la tabla de cardinalidad N.
Alguien me podría explicar por qué la respuesta es la d? No lo termino de ver claro. Gracias!

cantimploro
PreparaTIC XXI
Mensajes: 1010
Registrado: 20 Jul 2010, 09:09
Agradecido: 0
Agradecimiento recibido: 0

Re: Duda pregunta 75

Mensaje por cantimploro »

Está en las reglas de transformación del modelo relacional. No recuerdo ahora mismo en qué temas venía, pero creo que viene en un par de ellos (el de metrica3, donde es una de las técnicas, y el de SGBD).

Supongamos la siguiente relación 1:n.

Madre - Hijos.

Por aquello de que madre no hay más que una. Como atributo propio de la relación podemos poner la fecha de nacimiento, y como atributos propios de las entidades, los nombres respectivos de la madre y los hijos. Para no liarlo, supongamos que los nombres no se pueden repetir y son las respectivas claves primarias.

Una forma de pasar esto a tablas sería con la regla genérica que se usa en las relaciones n:m, pero en este caso concreto sería ineficiente:

tabla madre (nombre_madre)
tabla tiene-hijos (nombre_madre, nombre_hijo, fecha de nacimiento). Su clave primaria es la concatenación de las claves ajenas nombre_madre y nombre_hijo.
tabla hijo (nombre_hijo)

Es más eficiente crear:

tabla madre (nombre_madre)
tabla hijo (nombre_hijo, nombre_madre, fecha de nacimiento).

Esa es la respuesta D.

Avatar de Usuario
jfuentes
Usuario registrado
Mensajes: 453
Registrado: 30 May 2009, 17:34
Agradecido: 0
Agradecimiento recibido: 0

Re: Duda pregunta 75

Mensaje por jfuentes »

Gracias cantimploro, me di cuenta a los dos minutos de haber preguntado. Debe de ser que estoy en shock desde el sábado.

maritere
Usuario registrado
Mensajes: 30
Registrado: 17 Abr 2009, 09:42
Agradecido: 0
Agradecimiento recibido: 0

Re: Duda pregunta 75

Mensaje por maritere »

Yo ahora mismo no veo claro nada, pero a mi lo que me mosqueó de esta pregunta es lo de "el atributo de la relación" en las respuestas, debería ser "la clave de la relación" en las respuestas a y b, o "los atributos de la relación", en plural, porque en el enunciado dice que la relación tiene "atributos propios" para las respuestas c y d. Pero lo dicho, ahora mismo no veo nada claro ni oscuro, no me acuerdo siquiera si la contesté.

chema_ar
Usuario registrado
Mensajes: 15
Registrado: 18 Ene 2010, 23:14
Agradecido: 0
Agradecimiento recibido: 0

Re: Duda pregunta 75

Mensaje por chema_ar »

Hola,

una pequeña explicación en estos apuntes [1], punto 3.4.2
conjunto de relaciones R (1-m) entre A y B
* columnas (B) = atribs(B) U llave primaria(A) U atributos(R)
[1] http://ict.udlap.mx/people/carlos/is341/bases03.html

Saludos,

upheka
Usuario registrado
Mensajes: 18
Registrado: 10 Sep 2009, 14:37
Agradecido: 0
Agradecimiento recibido: 0

Re: Duda pregunta 75

Mensaje por upheka »

Hola,

yo la verdad que sigo teniendo dudas con esta pregunta, porque tanto en los apuntes de ASTIC como en los que vienen en el CD de Preparatic se dice que cuando una relación tiene atributos, en el paso a tablas se convierte en una nueva tabla. ¿Alguien ha visto algo más sobre este tema? ¿Alguna fuente algo más oficial que pueda usarse para solicitar impugnación?

Gracias y un saludo

cantimploro
PreparaTIC XXI
Mensajes: 1010
Registrado: 20 Jul 2010, 09:09
Agradecido: 0
Agradecimiento recibido: 0

Re: Duda pregunta 75

Mensaje por cantimploro »

¿Donde lo has mirado? En el de ASTIC (tema "Análisis de SI - Modelo entidad-relación"):
Transformaciones de las entidades débiles.

Toda entidad débil incorpora una relación implícita con una entidad fuerte. Esta relación no necesita incorporarse como tabla en el modelo relacional. Sí se necesita incorporar la clave de la entidad fuerte como clave en la entidad débil. Es más, normalmente esa clave externa forma parte de la clave principal de la tabla que representa a la entidad débil.
En los apuntes de Preparatic, hay muchos, pero en general hablan de que es posible modelar las relaciones 1:n de dos formas: mediante propagación de clave ajena (que es lo que se hace aquí) o como en el caso general n:m creando una nueva relación. Como mucho he visto referencias a que lo segundo puede ser mejor cuando hay atributos propios.

Y en metrica 3 (documento de técnicas):
Relaciones 1:N

Se propaga el identificador de la entidad de cardinalidad máxima 1 a la que es N, teniendo en cuenta que:

− Si la relación es de asociación, la clave propagada es clave ajena en la tabla a la que se ha propagado.
− Si la relación es de dependencia, la clave primaria de la tabla correspondiente a la entidad débil está formada por la concatenación de los identificadores de ambas entidades

chema_ar
Usuario registrado
Mensajes: 15
Registrado: 18 Ene 2010, 23:14
Agradecido: 0
Agradecimiento recibido: 0

Re: Duda pregunta 75

Mensaje por chema_ar »

Hola,

consultando las reglas de transformación presentes en el documento de Técnicas y Prácticas de MV3, en su página 79, dice los siguiente:
Relaciones 1:N, existen varias posibilidades:
− Propagar el identificador de la clase de cardinalidad máxima 1 a la que es N, teniendo
en cuenta que:
1-Si la relación es de asociación, la clave propagada es clave ajena en la tabla a la
que se ha propagado.
2- Si la relación es de dependencia, la clave primaria de la tabla correspondiente a
la clase débil está formada por la concatenación de los identificadores de ambas
clases.
− La relación se transforma en una tabla de clave primaria sólo el identificador de la
clase de cardinalidad máxima N si:
1- La relación tiene atributos propios y se desea que aparezcan como tales.
2- Se piensa que en un futuro la relación puede convertirse en M:N.
3- El número de ocurrencias relacionadas de la clase que propaga su clave es muy
pequeño (y por tanto pueden existir muchos valores nulos).
En el caso que nos proponen estaríamos en "La relación se transforma en una tabla de clave primaria sólo el identificador de la clase de cardinalidad máxima N", la clave está en que en la pregunta dicen "b) Se crea una nueva tabla cuya clave es la concatenación de las claves de las dos entidades y tiene un campo adicional para el atributo de la relación."

La clave y nunca mejor dicho, es que la clave primaria de la tabla de la relación en caso de usarlo es sólo la de la entidad N y no la concatenación de claves.

Saludos,

upheka
Usuario registrado
Mensajes: 18
Registrado: 10 Sep 2009, 14:37
Agradecido: 0
Agradecimiento recibido: 0

Re: Duda pregunta 75

Mensaje por upheka »

Ok, ahora veo por qué la b) no es cierta.

Muchas gracias.

maritere
Usuario registrado
Mensajes: 30
Registrado: 17 Abr 2009, 09:42
Agradecido: 0
Agradecimiento recibido: 0

Re: Duda pregunta 75

Mensaje por maritere »

Yo sigo pensando que la pregunta está en cualquier caso mal redactada. No tengo ni los apuntes "oficiales" ni el libro de Métrica aquí pero por lo que recuerdo de cuando estudiaba estas cosas:
Se están mezclando dos conceptos distintos: una cosa es el tipo de correspondencia 1:N en este caso, y otra es la cardinalidad que se representa con paréntesis (1,1), (1,n) etc.
La cardinalidad aplica a cada tabla, así (x,y) indica el número mínimo y máximo de elementos de esa tabla que participan en la relación. Hay cardinalidad para cada una de las tablas.
El ejemplo típico es el de dos tablas EMPLEADO y DEPARTAMENTO con una relación DIRIGE o ES JEFE. Puede tener tipo de correspondencia 1:N, pero cardinalidades a elegir según el problema a resolver:
Para la tabla EMPLEADO, cardinalidad (0,1) significa que algunos empleados no dirigen departamentos (cardinalidad mínima 0) y que como máximo un empleado dirige un departamento (cardinalidad máxima 1). Pero según el problema concreto podríamos tener por ejemplo una cardinalidad máxima n (en minúscula) que significa que puede haber mas de un jefe que dirija un departamento, como un jefe de personal, jefe de ventas u otra cosa que sería un atributo de la relación, entonces la cardinalidad sería (0,n) y el tipo de correspondencia seguiría siendo 1:N. O la empresa puede nombrar a cada uno jefe de su pequeña parcela en su departamento además de tener otros jefes y entonces la cardinalidad sería (n,m).
La regla para transformar esto en tablas dice que depende de la cardinalidad. Si la entidad que participa en la relación en la parte del 1, tiene también cardinalidad mínima 1 no es necesaria otra tabla y la respuesta es la D aunque habría que añadir que hay que propagar la clave. Pero si la cardinalidad mínima es cero o n se necesita otra tabla para la relación, respuesta B y en este caso si que pone lo de la clave. Yo ahora me lio entre cardinalidades y tipo de correspondencia porque escribo de memoria pero lo podeis buscar.
En el enunciado solo habla de tipo de correspondencia (aunque sin nombrarlo, pero la notación 1:N es tipo de correspondencia), y luego en las respuestas habla de cardinalidad. Además habla de cardinalidad 1 y cardinalidad N, que tampoco es la notación adecuada, debería ser cardinalidad máxima o mínima 1 ó n. También se lía con claves y "atributo" cuando en el enunciado pone "atributos". Vamos, que a mi me pareció poco elaborada la redacción.
Yo también respondí la B que me parecía la menos mala y que vale para el caso general.

chema_ar
Usuario registrado
Mensajes: 15
Registrado: 18 Ene 2010, 23:14
Agradecido: 0
Agradecimiento recibido: 0

Re: Duda pregunta 75

Mensaje por chema_ar »

Hola, efectivamente la descripción que has hecho es correcta teniendo en cuenta las cardinalidades pero realmente pensaste en ello para contestar? En cualquier caso creo que la b) sería para un caso particular con ciertas características en las cardinalidades más bien.

Yo simplemente estudié y me ajusto a lo que dice mv3 como referencia oficial y por definición descarta la b).

Saludos,

maritere
Usuario registrado
Mensajes: 30
Registrado: 17 Abr 2009, 09:42
Agradecido: 0
Agradecimiento recibido: 0

Re: Duda pregunta 75

Mensaje por maritere »

Lo que pone en mis apuntes:

En principio, las relaciones se transforman en tablas, igual que las entidades. Si la relación es 1->1 ….. Para relaciones 1->N: Si la participación de una entidad es (1,1) entonces se traslada su identificador a la otra entidad como un atributo nuevo y no es necesario crear otra tabla. Si la participación de una entidad es (0,1) entonces se crea una nueva tabla con los identificadores de las dos entidades más los atributos de la relación si los tiene.

En el examen creo que todos vamos un poco de mosqueo e intentamos buscar alguna trampa en el enunciado. Yo la estuve buscando con lo de “el atributo de la relación” y ya no veas con lo de “En general” que ya no sabía si eso significaba “en el caso genérico” o sea, que valga para todos los casos, o “lo que se hace habitualmente” y entonces ni idea porque yo no trabajo con estas cosas. ¡cómo para pensar en cardinalidades máximas y mínimas!

Así que me puse un ejemplo y llegué al parecer a la respuesta errónea. Pero ahora con los apuntes en la mano insisto en que la solución puede ser la B o la D dependiendo de la participación de las entidades.

En el ejemplo que ha puesto cantimploro con entidades madre e hijo se llega a la respuesta D porque la semántica nos lleva a ciertas suposiciones, como que todas las madres tienen hijos (esa es precisamente la definición de madre), con lo que ya sabemos que la cardinalidad con la que participa la entidad madre en la relación es (1,1) pero si en la tabla borramos a los hijos que ya han muerto (por necesidades de nuestro negocio particular) podemos encontrarnos madres sin hijos, y si también borramos a las madres que ya han muerto al final tenemos madres sin hijos e hijos sin madre y vamos a necesitar la tabla intermedia. También podríamos cambiar el nombre de la entidad madre por mujer, y ya tenemos que no todas las mujeres tienen hijos, cardinalidad (0,1). Y la relación sigue siendo 1->N.
Se podría buscar otro ejemplo como eso de si un empleado tiene que pertenecer obligatoriamente a un departamento y todo departamento tiene que tener al menos un empleado. Pero yo ya no le voy a dar mas vueltas, yo no voy a impugnar nada y esto me distrae del inglés.

Cerrado

Volver a “PRIMER EXAMEN 2010”