martes, 11 de octubre de 2011

Cardinalidad, Tipos de Relaciones

Semana7
LA CARDINALIDAD
Es Simplemente la forma en que se relacionan las Entidades, o expresa cuantas entidades se
Relacionan con otras entidades. Hay varias maneras de mostrar las cardinalidades:
Poner etiquetas en las líneas que unen las relaciones con las entidades, consiste en un mínimo y máximo que contiene un cero (varios a varios) y lo usual es poner una “M” en un
Existen 4 tipos de relaciones que pueden establecerse entre entidades, las cuales establecen con cuantas ocurrencias de entidad de tipo B se puede relacionar una ocurrencia de entidad de tipo A:
4. Relación uno a uno.
5. Relación uno a varios (n).
3. Relación varios (n) a uno.
4. Relación varios a varios (n)- (n)
TIPOS DE RELACIONES

Relaciones entre bases de datos

·         General
Si bien este tema es objeto de numerosos teóricos y asignatura fundamental en las más importantes escuelas de informática del mundo, afrontemos el diseño relacional de nuestras bases de datos desde un punto de vista ameno y práctico, plagado de ejemplos, sin renunciar en nungún caso al rigor.
Table of Contents
4.     Conclusión
Las diferentes formas de relación entre diversas bases de datos que podemos encontrar son:
Relaciones "uno a uno"
Estas relaciones entre bases de datos se dan cuando cada campo clave aparece sólo una vez en cada una de las tablas.
Tomando un ejemplo del mundo real, una clara relación de "uno a uno" podría ser, el nombre de cualquier persona y su número de teléfono. Si partimosdel supuesto en que cada persona tiene un solo número de teléfono, se podría hablar de una relación "uno a uno".
Gráficamente, se podría representar de la siguiente manera:

Este tipo de relaciones se caracteriza poque cad uno de los campos define a aquél con el que se relaciona. Es decir, conociendo el nombre de una persona podemos conocer su número telefónico. O si sabemos su número telefónico, podemos identificar al dueño. En estos cases, se suele aconsejar incluir todos los datos dentro de una sola tabla.
Relaciones de "uno a varios"
El ejemplo del caso anterior (cada persona, un teléfono), si bien es correcto teóricamente, es muy improbable desde el punto de vista de la realidad. Conla gran expansión de los teléfonos, por lo general, cada persona tiene un número de teléfono fijo, y además del teléfono móvil. Debemos tener en cuenta que de el de su casa también tendrá un número de teléfono de empresa, y que quizá también sus móviles estén divididos en ocio y trabajo.
Por ello, debemos tener nuestras bases de datos preparadas para ello. Este tipo de relaciones es conocido como "uno a varios", y se podría representar de la siguiente manera:

En este caso, lo aconsejable no es almacenar todos los datos en una sola tabla, sino lo eficiente es hacerlo en tablas separadas, utilizando el identificador ID para relacionarlas.

Echemos un vistazo a la figura anterior. En la taba Nombre almacenamos el nombre y apellido, con su ID o número identificador. En la otra tabla, Teléfonos, almacenamos únicamente números de teléfono, con su correspondiente número identificador, en este caso TID. La manera en que se relaciona una con otra es mediante el identificador ID, que está presente en ambas tablas.
A simple vista podemos advertir que la primera de las personas de la tabla nombres, Juan Timaná, tiene 2 números telefónicos, pues su ID, que en este caso es 1, aparece en dos de los teléfonos de la otra tabla.
De este modo será mucho mas sencillo cambiar, eliminar o ampliar los números de teléfono en la misma tabla.
Si estas tablas están creadas en MySQL, la sentencia que nos ayudaría a encontrar todos los teléfonos de una determinada persona sería:
SELECT n.nombre, t.telfFROM nombre nINNER JOIN telefonos t ON n.id = t.idWHERE n.nombre = "Juan Timaná"
Relaciones de "varios con varios"
La última de la relaciones que podemos encontrar es la de "varios con varios". Dado que en la vida las cosas rara vez son sencillas, éste será el tipo de relación que nos encontraremos más a menudo.
Volviendo al tema de los teléfonos, hemos encontrado la manera de relacionar cada una de las personas con sus diversos teléfonos: el de su casa, el de su empresa, el móvil. Pero no será extraño tener en nuestra base de datos diversas personas que trabajen en la misma empresa, por lo que el número de su trabajo será el mismo, o miembros de una misma familia, por lo que compartirán el mismo teléfono de su hogar.
¿Cómo tratar este tipo de relaciones? Si nos limitamos a repetir dicho número de tablas, estaremos creando problemas de redundancia de datos, que a largo plazo lastrarán la rapidez y eficacia de nuestras tablas.

Este tipo de relaciones podría ilustrarse de la siguiente manera:

Como vemos, cada elemento de la base de datos puede relacionarse libremente con uno o varios miembros de las distintas tablas.
En estos casos no hay una regla fija a la que podamos acogernos, pero lo aconsejable es aproximarse lo más posible a la realidad, y no dudar en establecer tablas intermedias que nos ayuden a asociar mejor los datos.
Volviendo al tema de los teléfonos, imaginemos que varias personas de nuestra tabla trabajan en la misma empresa ACME Productions tiene varias líneas, por lo que los números de teléfono de trabajo de estas personas serían varios. ¿Cómo representarlo en nuestra base de datos?

En este caso hemos creado una tabla intermedia llamada "empresas". En la tabla "nombres" incluimos un nuevo campo TID, que se relaciona con la tabla "empresas", y es esta tabla la que se relaciona directamente con los teléfonos. De esta manera, podemos almacenar todos los datos con facilidad sin tener que repetir un sólo número telefónico.

 Se pueden distinguir tres tipos de relaciones:
Relación Uno a Uno: Cuando un registro de una tabla sólo puede estar relacionado con un único registro de la otra tabla y viceversa.
Por ejemplo: tenemos dos tablas una con los datos de diferentes poblaciones y otra con una lista de Alcaldes, una población sólo puede tener un alcalde, y un alcalde lo será únicamente de una población.
Relación Uno a Varios: Cuando un registro de una tabla (tabla secundaria) sólo puede estar relacionado con un único registro de la otra tabla (tabla principal) y un registro de la otra tabla (tabla principal) puede tener más de un registro relacionado en la primera tabla (tabla secundaria).
Por ejemplo: tenemos dos tablas una con los datos de diferentes poblaciones y otra con los habitantes, una población puede tener más de un habitante, pero un habitante pertenecerá (estará empadronado) en una única población.
Relación Varios a Varios: Cuando un registro de una tabla puede estar relacionado con más de un registro de la otra tabla y viceversa.
Por ejemplo: tenemos dos tablas una con los datos de clientes y otra con los artículos que se venden en la empresa, una cliente podrá realizar un pedido con varios artículos, y un artículo podrá ser vendido a más de un cliente.
Las relaciones varios a varios se suelen representar definiendo una tabla intermedia entre las dos tablas. Siguiendo el ejemplo anterior sería definir una tabla líneas de pedido relacionada con clientes y con artículos.



39 comentarios:

  1. excelente articulo es uno de los mejores y mas claros que he visto en la red, gracias por tomarte el tiempo para explicar y compartir. saludos.

    ResponderEliminar
  2. Muy buen articulo muy bien explicado. Gracias!

    ResponderEliminar
  3. Me encanto este artículo , muchas gracias --!

    ResponderEliminar
  4. Estoy desacuerdo con todos en buena hora tío

    ResponderEliminar
  5. Me encanto,muy bien explicado,muchas felicidades y gracias por la ayuda.

    ResponderEliminar
  6. Esta muy bien explicado, lastima que no entiendo nada xp

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
  7. sergioo,,,como estamos hasta alla?

    ResponderEliminar
  8. que chingue a su madre el ámerica :v

    ResponderEliminar
  9. Gracias por el aporte hay una palabras que no están escritas bien pero esta bien explicado.

    ResponderEliminar
  10. Muy Buena explicación, gracias!.

    ResponderEliminar
  11. ESTA MUY B8IEN EXPLICADO

    ResponderEliminar
  12. Muy buena esta muy bien explicado gracias.

    ResponderEliminar
  13. Respuestas
    1. No hables mamadas padre, llevaba varios meses sin recordar esa mamada.

      Eliminar
  14. NO ME SIRVIO NI MADRES LA INFORMACION

    ResponderEliminar
  15. Muchas gracias por la informacion, me gusto mucho los enlaces explicativos y los colores de la pagina principal ademas de toda la buena informacion que tiene. Te lo agradezco recién estoy empezando mis pinitos en los fundamentos de la programación

    ResponderEliminar