Base de datos | Transformación de un modelo de entidad relación a un modelo relacional.

in #stem-espanol6 years ago (edited)


Hola mi querida comunidad, en el espacio de hoy compartiré los grados y relaciones que debemos tener en cuenta para nuestras entidades, la transformación de los MER a un MR y sus claves. Para entender un poco más de este post dejaré aquí en enlace del anterior:

Base de datos | Creando modelos de entidad relación básico I


El grado de relación se denotara con el número de entidades que se establezcan en las relaciones de nuestro diagrama. Normalmente quienes diseñan estos diagramas podrían explicar que en el grado de las relaciones existen 4 y esto tiene su porque, ya que la representación de una relación es la figura de un rombo y esta posee 4 puntas en las cuales las líneas que unen nuestras relaciones con las entidades posaran sobre cada una de estas.

Y si al verlo de esta forma tendría mucha lógica, sin embargo para muchos de nosotros es bastante sobrecargado e innecesario que una relación posea más de 3 relaciones. Si bien como todo en la informática es extraer del mundo real lo que se ve y se hace, tomaré de ejemplo las relaciones de parejas para este caso:

Es muy bien visto en la calle la relación de dos personas, podría decirse que es armonioso. Pero existen otras relaciones en las que tres personas son las involucradas, para algunos será normal y para otros no tanto. Y por último muy pero muy pocas veces hemos presenciado parejas en las que intervengan 4 personas, porque si bien es dicho que con dos es suficiente y con tres ya es un exceso. Así mismo pasa con las relaciones en nuestros diagramas de MER.

Grado 1: Cuenta con una sola entidad relacionándose con sí misma. Se el caso de un profesor donde a su vez es jefe de un departamento de una área en específica, donde otros profesores son delegados por este.

Grado 2: Cuenta con dos entidades relacionándose una con otra. Sea el caso de una tienda de ropa donde posee empleados.




Grado 3: Cuenta con tres entidades dentro de una misma relación. Sea el caso de un concesionario de automóviles donde esta tiene clientes y empleados.



- 1:1 Uno a uno: A solo un ente u objeto de la primera entidad le corresponde un único ente de la segunda entidad. Sea el caso de un alumno que asiste a clases, un solo alumno se podrá sentar en un único pupitre durante todo el año escolar. En el diseño del diagrama sus líneas serán rectas sin ningún agregado, véase en el ejemplo:


- 1:N Uno a muchos: A un único ente de la primera entidad le corresponde varios elementos de la segunda entidad. Sea el caso de una persona que va al supermercado y desea comprar varios artículos de la cesta básica de comida. En el diseño del diagrama la línea que apunta a la cardinalidad mayor será dibujado con una flecha, mientras que la menor se dibujara con una línea sin agregado, véase en el ejemplo:


- N:M Muchos a muchos: A uno o muchos entes de la primera entidad le corresponden uno o muchos entes de la segunda entidad o viceversa. Sea el caso de un banco donde existen 4 casillas de depósito y a cada una de estas le corresponde 1 cajero donde los clientes pueden ser atendidos por al menos uno de estos cajeros o varios, viéndolo de la otra forma los cajeros atenderán al menos un cliente o a muchos en el día. Como en ambas entidades su resultado es N, en el diseño del diagrama ambas líneas serán dibujadas con flechas, véase en el ejemplo:




El modelo relacional es simplemente la transformación a tabla de un esquema MER para que los usuarios puedan ver de forma mucho más clara las relaciones, claves, entidades y todos los atributos que estos conlleven.

- Relaciones: En el modelo relacional estas son representadas por una tabla llena de datos. Estas se diferencian por su nombre y por los atributos que estas tengan.
- Atributos: En el modelo relacional estas son las columnas de nuestras tablas, que llevaran por nombre las características que el ente posea.
- Tuplas: En el modelo relacional están son nuestras filas en la tabla, la cual está llena por datos acerca de los atributos de los entes.


En nuestro modelo relacional las claves no pueden repetirse en ninguna tupla, esta debe ser única y cada fila deberá estar vinculada con una de esta. Estas claves deben de cumplir 2 requisitos en específicos:

1. Debe tener una identificación univoca, es decir, tener un solo valor.
2. No puede tener redundancia, no podrá quedar ninguna fila sin un atributo clave.

Para transformar un MER con cardinalidades 1:N y N:M

Se puede hacer de 2 formas:

1. Se convierte la relación en tabla: Se resuelve de esta manera cuando estamos conscientes de que nuestra relación podría convertirse en N:M y la misma posee atributos propios. Al crear nuestra nueva tabla esta tendrá como clave la entidad que apunta con el N.

2. Se propaga la clave: Se aplica cuando nuestras cardinalidades sean (1:1), (0:M) o (1:M), esta debe ser obligatoria para realizar la transformación de esta forma. Se va a propagar el atributo clave de la entidad que posee 1 a la entidad que posee M, si la relación posee atributos propios estos deberán propagarse también.

Véase en el ejemplo:


Para transformar un MER con cardinalidad 1:1

Se puede realizar de 2 maneras, para esto se deben tomar en cuenta las cadinalidades de cada entidad:
1. Se convierte en una tabla: Si la entidad posee la cardinalidad (0:1)

2. Se propaga la clave: Si una entidad posee la cardinalidad (0:1) y la otra (1:1) es conveniente realizar esta forma, siendo la clave propagada de la (1:1) a la (0:1). Si ambas entidades poseen la cardinalidad (1:1) se propaga la clave a cualquiera de las dos entidades.

Véase en el ejemplo:


Bibliografía consultada:

Silberschatz Abraham. "Fundamentos de bases de datos". Editorial S.A. Mcgraw-Hill. Cuarta edición 2002.

Silberschatz Abraham. "Fundamentos de bases de datos". Editorial S.A. Mcgraw-Hill. Quinta edición 2006.

Imágenes, separadores y banner:

  • Todos los ejemplos utilizados en este post son de mi autoria.
  • Las imágenes son propiedad de @Stefanyo.
  • Las imágenes fueron creadas en power point 2013.

Fuente de imágenes:


Hojas de papel
Caja de datos

Sort:  

¡Felicitaciones!



Estas participando para optar a la mención especial, que se efectuará el domingo 16 de septiembre del 2018 a las 8:00 pm (hora de Venezuela); donde el autor del artículo seleccionado recibirá la cantidad de 1 SBD transferidos a su cuenta.

Si estás interesado(a) en tener la oportunidad de ganar 1,5 Steems te invitamos a participar en nuestro 1er concurso ENTROPÍA.

Te participamos que puedes invertir en el PROYECTO ENTROPÍA mediante tu delegación de Steem Power y así comenzar a recibir ganancias de forma semanal transferidas automáticamente a tu monedero todos los lunes. Entra aquí para más información sobre cómo invertir en ENTROPÍA.

Contáctanos en Discord: https://discord.gg/hkCjFeb

Apoya al trail de entropía y así podrás ganar recompensas de curación de forma automática, entra aquí para más información sobre nuestro TRAIL.

Puedes consultar el reporte diario de curación visitando @entropia

Atentamente

El equipo de curación del PROYECTO ENTROPÍA

Gracias a ustedes por tomarme en cuenta, saludos!

I usually just scroll through and press the vote buton, but this was a good read. Thanks for not wasting my time!

Este post fue votado por la comunidad y trail @developspanish, comunidad encargada de curar a los programadores, traductores de software y bloggers de informática y tecnología de habla hispana.

¿Quieres recibir mejores recompensas en tus post de informática, tecnología o programación, ayúdanos delegando algo de SP:
1 SP, 5 SP, 10 SP

¡Felicidades, #proconocimiento te valoró!


Has sido reconocido(a) por tu buen post por el Comité de Arbitraje y Valoración del Proyecto Conocimiento @proconocimiento.

Apoyamos y valoramos tu esfuerzo...

gif proconocimiento 2.gif


Proyecto Conocimiento es parte de la comunidad @provenezuela.

Pioneros en la plataforma #steemit en el reconocimiento y valoración a la Producción Intelectual en habla hispana.



This post has been voted on by the steemstem curation team and voting trail.

There is more to SteemSTEM than just writing posts, check here for some more tips on being a community member. You can also join our discord here to get to know the rest of the community!

Hi @stefanyo!

Your post was upvoted by utopian.io in cooperation with steemstem - supporting knowledge, innovation and technological advancement on the Steem Blockchain.

Contribute to Open Source with utopian.io

Learn how to contribute on our website and join the new open source economy.

Want to chat? Join the Utopian Community on Discord https://discord.gg/h52nFrV