Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/12/2011, 09:55
shilen79
 
Fecha de Ingreso: octubre-2007
Mensajes: 118
Antigüedad: 16 años, 5 meses
Puntos: 11
Cardinalidad mínima - transformación de interrelaciones

Buenas tardes:

Estoy estudiando los diagramas entidad - relación y como realizar la simplificación y transformación al modelo relacional.

Llevo varios días con la misma duda, que el profesor me la expone de un modo, yo de otro , da el mismo resultado pero la lógica la aplicamos al revés.

Me explico:

Según definición de participación obligatoria: una entidad A en una relación es obligatoria si la existencia de cada una de sus ocurrencias necesita como mínimo de una ocurrencia de la entidad B.

Cardinalidad mínima -> si la participación es obligatoria su valor es 1, si es opcional es 0.

Yo me he creado el siguiente ejemplo con conjuntos.

Sean 2 conjuntos (entidades EMPLEADOS y PUESTOS con la interrelación ocupa , que represento así.

PUESTO ocupa EMPLEADO

puesto1 ----------------------- pedro
puesto2 ---------------------- juan
puesto3

Voy a asignar la cardinalidad mínima según definición:

¿ PUESTO en todas sus ocurrencias necesita como mínimo una ocurrencia de la entidad EMPLEADO ?

No, la ocurrencia puesto3 en PUESTO no necesita de una ocurrencia en EMPLEADO.

Pero claro, aquí no es que no la necesite, es que de momento no se ha asignado la relación en sí, en el momento que hubiera otro EMPLEADO, si se le asignaría ese puesto seguramente, así que en cierto modo si necesita de esa ocurrencia.

Según wikipedia, otra forma de definir cardinalidades:
"0" si cada instancia de la entidad no está obligada a participar en la relación.
"1" si toda instancia de la entidad está obligada a participar en la relación y, además, solamente participa una vez.
"N" , "M", ó "*" si cada instancia de la entidad no está obligada a participar en la relación y puede hacerlo cualquier número de veces.

Aquí se explica algo mejor conforme lo que vemos:
EMPLEADO si necesita ocupar un PUESTO para trabajar, es decir, está obligada a participar en la relación.

PUESTO no tiene porque estar ocupado por un EMPLEADO, por tanto no está obligado a participar en la relación.

Es decir :
PUESTO (0,1)
EMPLEADO (1,1)

la cardinalidad de la relación es 1:1.

Para realizar la transformación según la teoria:
Se propaga la clave de la entidad con cardinalidad (1,1) a la tabla resultante con cardinalidad (0,1)

Si lo hiciera así:

PUESTO (cod_puesto (PK), cod_empleado (FK) )

Para la ocurrencia puesto 3, tendría un valor nulo en el campo cod_empleado.

Por lo tanto veo más optimo asignar a EMPLEADO, la clave de PUESTO de ese modo
todo empleado en sus ocurrencias, tendrá un valor de puesto asignado y no contendrá valores nulos.

Pero yo realizo la conversión al revés, de cardinalidad (0,1) a (1,1)

----------------------------------------------------------------------

Pero este ejercicio mi profesor lo vé así:

Para A... : dado un elemento de B cuantos corresponden como mínimo y como máximo en A.
Para B...: dado un elemento de A cuantos corresponden como mínimo y como máximo en B.

Ejemplo: Empleados (?,?) ----- tiene ------- (?,?) Puestos

Para Empleados: dado un puesto tenemos como mucho un empleado o ninguno (0,1)
Para Puestos: dado un empleado tendremos siempre un y solo un puesto (1,1)


Como veis el resultado es el mismo, de hecho el conforme la teoria lo realiza bien ... pero yo es que conforme la teoria primero ,
para mi empleados es (1,1).


¿en que me equivoco, según la comprensión que hice, por favor?

PD-> Pregunto aquí porque es que llevamos varios dias con lo mismo y ya me da verguenza seguir argumento y explicandome :(



Dando más vueltas como llevo ya días creo que he dado con el problema.

En muchos sitios las cardinalidades, en el diagrama las ponen en un lado u otro de la relación y al estudiarlas me ha liado cosa malisima.

Si decimos:

Empleado ocupa un puesto y un Puesto puede estar ocupado o no por un Empleado.

Cuando yo veía:

Empleado (0,1) ------------- ocupa ------------- (1,1) Puesto

Como en algunos sitios lo ponen así:

Empleado (1,1) ------------ ocupa ----------------- (0,1) Puesto

Yo me quede con que la cardinalidad de empleado era (1,1), cuando es realmente (0,1) porque se lee conforme el ejemplo que me puso mi profesor.

¿Es así?

Aún así yo siempre me quedaré con la mosca de conforme las definiciones , yo llegaba de otro modo a lo mismo jeje, pero lo habré interpretado mal las definiciones en sí imagino :(.

Última edición por shilen79; 12/12/2011 a las 10:29 Razón: aclaración