Bases de Datos - Modelo Conceptual -> Modelo Logico

 
Vista:

Modelo Conceptual -> Modelo Logico

Publicado por Agustin Tomas Larghi (3 intervenciones) el 09/12/2011 20:47:03
Hola, y antes que nada muchas gracias por detenerse a leer. Estudiando el pasaje de modelo conceptual a modelo lógico, del modelo ER, se me plantearon algunas dudas. Leí algunas bibliografías como Diseño de Bases de Datos de Carlos Batini y Fundamentos de las Bases de Datos de Navathe, pero tengo algunas dudas particulares que no pude responder. Por ejemplo, supongamos el siguiente modelo conceptual:

http://www.astinx.com.ar/paso1.JPG

Lo primero que tenemos que hacer para pasarlo al modelo lógico es encargarnos de las jerarquías, en este caso como la jerarquía es total superpuesta, la mejor opción es armar interrelaciones "es un" con las entidades hijas.

http://www.astinx.com.ar/paso2.JPG

Acá surge mi primera duda: ¿Que es lo correcto?, ¿combinar la clave externa con los identificadores de C o simplemente obviar los identificadores de C?. Para mí, lo mas lógico es como esta en la figura A, combinar los identificadores de C con el identificador externo del padre. Otra cuestión que me preguntaba es si siempre, sea total superpuesta, parcial superpuesta o parcial exclusiva; ¿La cardinalidad del lado de la relación del padre siempre va a ser (0,1)?, ¿y la relación del lado de los hijos siempre va a ser (1,1)?. Sé que lo que pregunto es un poco bobo, porque si uno se pone a pensarlo, si decimos que por ejemplo, que tenemos una jerarquía parcial exclusiva, podríamos decir que la cardinalidad del lado de las entidades hijas va a ser (0,1), porque puede que al ser parcial, haya entidades que no estemos modelando, bueno pero justamente por temas como este es que me confunde.

Lo próximo luego de eliminar las jerarquías es encargarnos de los atributos compuestos y polivalentes, en este caso los atributos polivalentes nos quedarían de la siguiente manera:

http://www.astinx.com.ar/paso3.JPG

Bueno, lo más sencillo, el atributo compuesto a10, simplemente lo descompuse.
En cuanto a los atributos polivalentes a2, a3 y a5, cree una entidad para cada uno de ellos relacionada por las relaciones RA2, RA3 y RA5, con sus respectivas entidades originales. La duda que me entra cuando llego a este paso es la siguiente; Obviamente toda entidad tiene que tener un identificador, pero en este caso, ¿Que me conviene hacer?, ¿Simplemente ponerles a cada entidad los identificadores del padre o hacer un identificador externo?, obviamente es lo mismo al fin y al cabo, pero quiero saber que sería lo más prolijo, me parece medio feo hacer un identificador externo, por ejemplo en el caso de A3, porque estaría haciendo un identificador externo, de una entidad que a su vez tiene un identificador externo, y no sé si esto se puede hacer.

Las alternativas que planteo son hacerlo con identificadores externos o simplemente colocar los identificadores como se muestra abajo.

http://www.astinx.com.ar/paso4.JPG

Con identificadores externos seria una cosa así:

http://www.astinx.com.ar/paso5.JPG

Obviamente esta otra alternativa me parece un poco más fea, pero también me causa duda la alternativa planteada anteriormente, puesto que en el caso, por ejemplo, de B y C, aun cuando tenemos los identificadores externos que hacen referencia al identificador id1 de A, no sé si es del todo correcto considerarlos como presentes en las entidades B y C y bajarlos a A3 y A5 respectivamente.

http://www.astinx.com.ar/paso6.JPG

El último paso sería eliminar los identificadores externos de modo que nos quedaría, para lo que tomamos el identificador al que el identificador externo hace referencia, lo copiamos en la entidad destino y lo agrupamos junto a los otros identificadores que había, por ultimo matamos la relación.

En el caso de D estoy seguro, puesto que he visto ejemplos en diversas bibliografías donde se hace del modo que yo lo hice, sin embargo en el caso de B y C, no estoy tan seguro por el tema de la cardinalidad ¿Podría cambiar en algo la manera como se mata un identificador externo la cardinalidad de la relación de donde parte el identificador externo?

Finalmente cuando pasamos al modelo físico, tome el camino que tome el resultado es el mismo, quedarían las siguientes tablas.

A2=(id1, a2) A=(id1,a1) D=(a8,a7,a6,id1) B=(id1,a4) C=(id1,id2,id3) (Puede variar dependiendo de qué camino hayamos elegido) A3=(id1,a3) A5=(id1,a5) R2=(id1,id4) E=(id4,a9,a10.1,a10.2)

Bueno, si llegaron a leer hasta acá, el doble de gracias por dedicar su tiempo a responder mi duda. Por favor, critiquen, si ustedes realizan algún paso como lo hago yo, confírmenlo y sino plantéenme como lo harían ustedes.

Muchas gracias y un cordial saludo!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Modelo Conceptual -> Modelo Logico

Publicado por Agustin Tomas Larghi (3 intervenciones) el 10/12/2011 14:39:27
Aca dejo algunas correcciones que fui sacando en base a la consulta con algunos compañeros:
-En el grafico del paso2.JPG, ninguna de las dos es correcta, ¿Porque?, Por que como C tiene identificadores no necesita de un identificador externo, es decir en la relacion Es_un (2), tendriamos el identificador del padre, que usariamos para identificar a los hijos.
-En el grafico del paso4.JPG o paso5.JPG, lo correcto a la hora de definir un identificador de una entidad que era un atributo polivalente, es, si se puede (es decir, si la cardinalidad origen en la relacion es de "muchos" y la cardinalidad destino, osea del lado de la entidad, es de 1,1) usar identificadores externos como en el paso5.JPG, sino hay que copiar el identificador como estaba en el paso4.JPG. Sin embargo yo solia pensar que todas las carinalidades de las entidades que solian ser atributos polivalentes por defecto, terminaban siendo 1 a N, pero si fuera verdad eso en todas las situaciones habria que copiar los identificadores.
-El paso6.JPG es correcto, pero hay que tener en cuenta los errores que cometi anteriormente.

Cualquier otro error que vean o alguna aclaracion que puedan tirar, sera agradecida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Modelo Conceptual -> Modelo Logico

Publicado por Agustin Tomas Larghi (3 intervenciones) el 10/12/2011 15:48:55
"Sin embargo yo solia pensar que todas las carinalidades de las entidades que solian ser atributos polivalentes por defecto, terminaban siendo 1 a N, pero si fuera verdad eso en todas las situaciones habria que copiar los identificadores".

-Se puede escojer entre 1 a N, 0 a N o 1 a 1, esto es, porque en este ejemplo, las entidades y los atributos son genericos, es recomendable escojer de 1 a 1, asi podemos utilizar identificadores externos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar