none
Que ventajas obtengo al relacionar dos tablas en Access? RRS feed

  • Pregunta

  • Hola

    Estoy aprendiendo a realizar relaciones entre tablas en Access, pero no entiendo muy bien que ventajas objtengo relacionado dos tablas.

    Hay tres tipos de relaciones:

    uno a muchos

    muchos a muchos

    muchos a uno

    Partamos de la relación más simple, uno a muchos.

    Digamos que tengo 2 bases de datos, una de autores de libros (escritores) y luego tengo otra base de datos solo de libros.

    Evidentemente, puedo relacionar la base de datos de autores (escritores) con la de libros, y se puede complir la condución de que un autor está relacionado con muchos libros que haya podido escribir (uno a muchos). Por tanto, es logico relacionar la tabla autores con la tabla libros.

    Bien, ahora que tengo relacionadas ambas tablas, que puedo hacer con esto?

    Imaginemos que NO TENGO las tablas relacionadas.

    Si no las tengo relacionadas, puedo hacer consultas de cada tabla y obtener información. Por ejemplo, puedo hacer una consulta para que me saque de la tabla autores, aquellos autores que tengan una determinada edad o sean de un determinado pais.

    En la tabla libros, también puedo hacer otra consulta. Podría consultar que libros son de ciencia ficción y que libros son de amor, por ejemplo.

    Al hacer consultas Y NO TENER RELACIONADAS LAS TABLAS, logicamente, puedo obtener información independientemente de cada table.

    Vale.

    Pero imaginemos ahora que yo hago una relación entre la tabla autores y la tabla libros.

    Ya tenemos la relación hecha.

    ¿Ahora que pasa?

    ¿Que ventajas puedo yo obtener de esto?

    A la hora de realizar una consulta, ¿puedo obtener información combinada de ambas tablas, o especial?

    ¿Que me aporta realizar una relación con respecto a las consultas y los informes?

    Si me pudierais poner un ejemplo sencillito, os lo agradeceria.

    Saludos

    domingo, 24 de noviembre de 2013 22:16

Todas las respuestas

  • Hola

    Por lo pronto, y sí lo configuras así, puedes eliminar en cascada, y evitar (siguiendo uno de tus ejemplos) que te metan libros que no tengan autor (a menos que dejes el valor de relación nulo).

    Te dejo un par de links donde te hablan un poco de las formas normales y del diseño de bases de datos relacionales.

    http://support.microsoft.com/kb/283878/es

    http://es.wikipedia.org/wiki/Base_de_datos_relacional

    Espero que te sirva para aclararte un poco los conceptos.

    Salu2,


    José Mª Fueyo [MS MVP Access]

    lunes, 25 de noviembre de 2013 9:10
  • Hola José Mª gracias por tu respuesta.

    Me he leido la documentación, pero sigo sin tener claro el propósito de relacionar.

    Vamos a ver si lo explico más sencillo y me confirmáis si llevo razón o no llevo razón.

    Tengo dos tablas la A y la B.

    La tabla A la quiero relacionar con la B por los motivos que sean, da igual. Tampoco importa si es uno a muchos, muchos a muchos, o muchos a uno, da igual, pensemos que relacionamos la tabla A con la B y ya está.

    ¿AHORA BIEN, PARA QUE HAGO YO LA RELACION?

    Pues yo entiendo que si relacionamos A con B es porque (a parte de por otras posibles razones) cuando saquemos datos con una consulta o con un informe, al tener relacionado A con B, la consulta o el informe, podrán sacar datos de ambos y encontrar registros relacionados. A parte de que al meter datos, si que podamos obtener una integridad referencial y evitar que se produzcan esos registros huérfanos de los que hablas... como libros sin autor. A parte de eso, entiendo que si relacionamos, también, también, es para poder extraer datos combinados de ambas tablas ¿correcto?

    AHORA, CUANDO LLEGA LA HORA DE RELACIONAR, YO PUEDO HACER DOS COSAS.

    ESTABLECER LA RELACION EN LA VISTA DE DISEÑO DE LA CONSULTA.

    Puedo relacionar las tablas, cuando haga una consulta, en la vista de diseño de las consultas.

    Esto está bien si yo tengo la tabla A y la B, y normalmente nunca necesito obtener datos combinados de ambas, en ese caso, como solo necesito obtener datos combinados en momentos concretos, en la vista de diseño de la consulta, puedo definir la relación y realizar la consulta. ¿Correcto?

    O BIEN ESTABLECER LA RELACION DE LAS TABLAS EN LA CREACION DE RELACIONES.

    Si la tabla A siempre tiene que estar relacionada con la tabla B, no tiene mucho sentido tener que definir una relación a la hora de hacer la consulta. Mejor dejar definida ya la relación, de esa forma, cuando haga la consulta, ya me evito crear la relación allí y puedo pasar directamente a la parrilla (grid) metiendo campos y haciendo preguntas.

    ¿Correcto?

    Mira me he leido de documentación lo mas horroroso, y hasta dos libros, pero quiero tener este concepto básico claro... porque cuanto más abundante es la información, mas se compacta y más confusa se vuelve. Si me pudieras confirmar si lo que digo aquí es correcto... os lo agradecía.

    Saludos

    lunes, 25 de noviembre de 2013 10:41
  • Hola

    Tus premisas son correctas. Pero para tus dudas, quizás lo mejor es que te busques un buen libro de teoría de bases de datos relacionales, nada relacionado con un producto en concreto (SQL Server, Oracle, ....)

    El establecer la relación a la hora de diseñar las tablas es sencillamente forzar la integridad relacional. Nada más. 

    Repito, te recomiendo busques un buen libro de teoría de bases de datos relacionales. 

    Suerte,


    José Mª Fueyo [MS MVP Access]

    martes, 26 de noviembre de 2013 9:06
  • Lo de las relaciones es importante y pongo solo un ejemplo sencillo para pensar.....

    Si tenemos una tabla paises y otra tabla con usuarios. un usuario vive en un pais, si tenemos 10 mil personas que viven en Chile y otros 10 mil en EEUU, que pasaria si EEUU se cambiara por otro nombre como FELIZLANDIA, ¿cambiarias los 10 mil registros de usuarios en EEUU por FELIZLANDIA? o simplemente cambias un registro en la tabla de paises :D por eso por lo bajo son buenas las relaciones...


    domingo, 26 de enero de 2014 21:32