Archivo de etiquetas relaciones

PorLucía Montero Rodríguez

Las relaciones entre elementos de PowerPivot

Una de las ventajas que nos ofrece PowerPivot es la posibilidad de añadir a un mismo modelo elementos con distintos orígenes. Aunque la afirmación anterior es  completamente cierta, para que dicho modelo funcione de manera correcta, es necesario que existan relaciones bien definidas entre los orígenes incorporados.

Relaciones automáticas

Cuando añadimos en PowerPivot tablas de una misma base de datos, Excel importará las relaciones definidas previamente. Vamos a comprobarlo con un modelo en el que hemos importado varias de un objeto de Access.

Para ver qué relaciones existen  en la actualidad, podemos actuar de dos formas distintas. Por un lado, tras acceder a Administrar, es posible emplear el botón Vista de diagrama de la cinta de Inicio. Entonces, Excel mostrará una representación gráfica muy parecida a la que nos ofrece Access. Por otro, con la cinta Diseño, y la opción Administrar relaciones, para obtener una tabla detalla entre los campos afectados.

Resultado de Administrar relaciones en PowerPivo

Como puedes comprobar en la imagen, desde este cuadro puedes Crear nuevas relaciones, así como EditarEliminar las actuales.

Relaciones entre elementos independientes

Ahora, partimos de un supuesto diferente, un modelo en el que hemos incorporado una pestaña con el contenido de una hoja de cálculo denominada Stores.xlsx y otra Geography.xlsx. Al tratarse de libros individuales, no existe ninguna relación, pero como nosotros conocemos el carácter de los datos, vamos a crear una manualmente.

Nos situamos, por ejemplo, en el encabezado del campo GeographyKey de la tabla Stores. Después, pulsamos el botón derecho del ratón y elegimos Crear relación. En el cuadro de diálogo que aparece sólo será necesario, escoger la tabla de destino en la parte inferior. Si ésta contiene un campo con el mismo nombre, Excel lo detectará automáticamente. De lo contrario, lo haremos nosotros.

Una vez establecida, los campos relacionados mostrarán un icono en la zona derecha del encabezado.

Vista de diagrama

La operación anterior también se puede realizar directamente en el acceso gráfico. Allí operaremos de manera similar. Es decir, hay que colocarse en uno de los campos a relacionar y en el menú contextual acceder a Crear relación. A continuación, proceder de la misma forma que en el apartado anterior.

Conclusiones

Para obtener resultados eficaces y/o evitar errores en el análisis de los datos, antes de comenzar a operar es necesario revisar que las relaciones están efectuadas y bien definidas.

PorLucía Montero Rodríguez

Cómo introducir datos en una tabla de Access

Puede que el titular parezca fácil a priori, y de hecho muchas personas con un conocimiento básico de Access, se lanzarían a abrir por ejemplo la primera tabla de la lista y empezar a picar datos; pero si no quieres provocar errores hay que aprender a efectuar la escritura de la información de manera correcta.

Antes de comenzar a escribir datos en una tabla

Nuestro punto de partida va a ser una base de datos sencilla, que controlará los exámenes que realizan los alumnos de un colegio, teniendo en cuenta que cualquier profesor puede vigilar o controlar un examen, pero que sólo puede impartir clases de una única asignatura.

Tras definir las tablas y hacer las relaciones como se indicaban en el post Tipo de relaciones, hemos obtenido un diagrama similar al siguiente:

Relaciones en la base de datos Colegio

¿Ya puedo introducir los datos?

Si las tablas están correctamente definidas y enlazadas, el siguiente paso natural es, precisamente, escribir la información que se debe almacenar, operación que podemos realizar directamente en la tabla.

Sin embargo, para no tener ningún problema deberemos comenzar SIEMPRE por las tablas auxiliares, que en este caso sólo hay una, (Asignaturas), luego seguir por las dependientes (Alumnos Profesores), hasta llegar a la principalExamenes.

Tablas de la base de datos Colegio

Vamos a comenzar con Asignaturas, por lo que simplemente hacemos un doble clic sobre el nombre de la tabla, para abrir la vista Hoja de datos.

Tabla en vista Hoja de datos

Como la clave principal de la tabla, el campo casig, se ha definido como de tipo Autonumeración, no es necesario indicar el código de la asignatura, sino que simplemente pulsaremos el tabulador y pasaremos a escribir las distintas denominaciones. El resultado final puede ser parecido al de la figura:

Tabla auxiliar de Access con datos

Una vez añadidos los datos en la tabla auxiliar, podemos introducir los correspondientes a las tablas Alumnos Profesores. El problema se plantea, por ejemplo, cuando tenemos que asignar una asignatura a un profesor; ya que a pesar de haber relacionado las dos tablas, la tarea no será fácil, porque si no indicamos nada en contra, DEBEREMOS ESCRIBIR directamente el código de la materia que imparte, ya que no aparecerá ninguna lista para elegirlo.

Tabla de Access con campos que se alimentan de otra distinta

En este caso, la situación ideal para el campo casig es que aparezca un desplegable que ofrezca al usuario directamente los datos de la tabla Asignaturas; y si no recuerdas cómo hacerlo, sólo tienes que consultar el artículo dedicado al Asistente de búsquedas.

¿Te ha quedado claro?

Espero que con esta explicación te haya quedado claro que el orden a la hora de introducir datos en una tabla de Access es muy importante para no cometer errores.

Hay que comenzar por las tablas auxiliares, seguir con las dependientes y acabar con la tabla principal.

Si, por ejemplo, hubiéramos comenzado con Profesores sin tener datos en Asignaturas, al existir integridad referencial provocaríamos un error al intentar grabar el registro; así que ten mucho cuidado y sigue los pasos correctos.

PorLucía Montero Rodríguez

Combos y listas desplegables una alternativa a las tablas pequeñas

Si en una base de datos tienes tablas con pocos registros y campos, puedes aprovechar la versatilidad del Asistente de búsquedas para optimizar la estructura y agilizar el acceso.

Vamos a partir del siguiente esquema en el que se muestra la relación de una tabla principal, denominada Empleados, con dos auxiliares: Tipos_Empleado y Calendario.

Muestra de relaciones entre tablas

El contenido de esta última se limita a dos campos (Código y Descripción) y 3 registros, uno por cada turno de trabajo posible:

Tabla de turnos de trabajo con pocos registros

Pues bien, Access nos permite sustituir este tipo de tablas pequeñas por campos asociados a determinadas expresiones, lo que nos servirá para aumentar la rapidez de proceso y eficiencia del sistema.

Para llevar a cabo la tarea, primero tenemos que deshabilitar el vínculo entre las tablas Empleados y Calendario, por lo que anularemos la unión entre las dos en la ventana Relaciones.

A continuación, abrimos Empleados en modo Diseño, y en el campo Calendario, iniciamos el Asistente para búsquedas.

Esta vez, a diferencia del post anterior, le vamos a decir Escribiré los valores que desee, pero tendremos que tener en cuenta que en dicho campo estaban almacenados los códigos correspondientes a los turnos de cada trabajador; por lo que para que la tabla siga siendo operativa tendremos que respetar esa estructura.

Para hacerlo, en el segundo paso del asistente, le vamos a decir que deseamos trabajar con 2 columnas, y a continuación escribimos el contenido que teníamos en la tabla Calendario, en la cuadrícula inferior:

Asistente de búsqueda para sustitucion de tablas con pocos registros

Después, marcaremos para enlazar Col1, ya que es donde hemos escrito el código asignado, y que es el dato que, realmente, nos interesa almacenar.

Si has efectuado la operación correctamente, al abrir la tabla Empleados en la vista Hoja de Datos, podremos desplegar Calendario y ver el contenido asociado, de la misma forma que hacíamos antes con la tabla.

Combo activado en la tabla

Comprueba el rendimiento, y si todo funciona perfectamente, ya puedes eliminar la tabla Calendario con total tranquilidad.

 

PorLucía Montero Rodríguez

El Asistente de Búsquedas: una ayuda real para el usuario

En el último artículo dedicado a Access, vimos los tipos de relaciones que se pueden establecer entre dos tablas.  Ahora veremos cómo aprovechar esas relaciones para facilitar la introducción de datos al usuario, siempre que tengamos una estructura clara de la base de datos, y nos interese aprovechar las oportunidades que Access nos ofrece durante la fase de creación de las tablas.

Tomaremos como ejemplo una estructura simple de librería, pero nuestro punto de partida se situará en el momento en que tenemos creadas las tablas auxiliares; a pesar de lo cual deberíamos tener claras qué relaciones finales nos van a interesar:

Relaciones de la base de datos libreria

Si te fijas en el esquema superior, la tabla Clientes “se alimenta” de la tabla Ciudades. Pues bien, a la hora de crear la primera, cuando lleguemos al campo codciudad, que es el que deseamos relacionar, vamos a indicar como tipo de campo Asistente para búsquedas…, y así dejar que Access nos guíe en el proceso.

Asistente para búsquedas

En el primer paso, especificaremos que los datos para el campo codciudad se tomen a partir de una tabla que ya está creada.  Tras pulsar Siguiente, elegiremos la tabla que se encuentra en el extremo uno; es decir, Ciudades, y volvemos a pulsar Siguiente.

A continuación, tenemos que elegir cuántos campos de la tabla Ciudades nos interesará ver en la lista desplegable o cuadro combinado de la tabla Clientes. Por costumbre, siempre escojo desde el primero hasta el último que me interese, ya que luego se pueden ocultar, y siempre como mínimo, dos.

Incluir dos campos como mínimo

Si la tabla está ordenada por el campo clave, y así quieres ver los datos, no tendrás que hacer nada en la siguiente etapa; de lo contrario, marca el orden que más te interese.

Después, el cuadro de diálogo nos propone que asignemos los anchos de las columnas del desplegable; yo siempre muestro la columna clave, porque si nos aprendemos los códigos más frecuentes, la inserción de datos se agiliza.

Ocultar campo clave en una búsqueda

Ya sólo queda señalar el campo con el que realmente queremos hacer la relación, y lo habitual es que sea el código, el primero de la lista; y si no deseamos modificar el nombre (no es necesario), podemos Finalizar el asistente con total tranquilidad.

Si todo el proceso se realiza correctamente, podrás observar que la ficha Búsqueda, situada en la parte inferior de la pantalla, ahora aparece con datos.

Ficha de búsqueda completa

De las propiedades que puedes ver en la figura superior, puedes modificar con total tranquilidad Ancho de columnas y Ancho de lista, para tener una visión correcta de los datos en la vista Hoja de datos. Además, al colocar el cursor en una de ellas, la zona azul de la derecha mostrará información relacionada que puede servirte de valiosa ayuda.

Otra ventaja adicional, es que Access establece la relación entre los dos campos, por lo que sólo te quedará indicar en la misma, las opciones relacionadas con la Integridad referencial.

Relación premarcada con el asistente de búsquedas

Tras terminar todo el diseño, personalizar las Relaciones  e introducir datos en las auxiliares, al añadir un cliente nuevo y definir su ciudad, podremos desplegar la lista, que se mostrará de manera similar a la de la imagen:

Cuadro combinado creado mediante el asistente de búsqueda

Si el aspecto no te parece bien, recuerda que puedes modificarlo manualmente en la ficha Búsqueda.

Pues bien, este proceso, tendremos que hacerlo en todas las tablas que se alimentan de otras auxiliares; concretamente, en los campos que vayan a representar los extremos varios –  de las relaciones.

 

PorLucía Montero Rodríguez

Tipos de relaciones en bases de datos

Access es un gestor de bases de datos relaciones, por lo que se hace imprescindible saber qué tipos de relaciones pueden darse entre dos tablas:

1 a 1

Aparece cuando un registro de la tabla A sólo puede relacionarse con 1 registro de la tabla B. Este modelo aparece en relaciones de tipo exclusivo, como por ejemplo Países-Banderas, ya que cada país tiene una única bandera oficial, y cada bandera sólo puede pertenecer a un país; otro ejemplo sería Matrículas de coches y Número de bastidor.

1 a varios

En este caso, un registro de la tabla A puede relacionarse con varios de la tabla B. Es el tipo más habitual y utilizado, y existen numerosos casos; por ejemplo, domicilios con personas que viven en el mismo, nombre de empresa con sus trabajadores, proveedores con productos que sirven…

varios a varios

Se da si varios registros de A pueden relacionarse con varios de B y viceversa. Es quizás la menos habitual de manera formal, aunque en futuras entradas veremos cómo podemos plantear una situación de este tipo para manejarla de forma efectiva.

El ejemplo clásico, es tener dos tablas, una de actores y otra de películas, ya que lo habitual es que cada actor haya trabajado en varias películas, y que éstas estén formadas por varios actores.

¿Cómo establecer relaciones entre tablas?

Para que Access reconozca las relaciones como tales tenemos que indicárselo; para lo cual, tras crear la estructura de la tabla y ANTES DE INTRODUCIR LOS DATOS haremos clic sobre el botón Relaciones situado en la cinta Herramientas de bases datos y después añadimos las tablas que vayamos a relacionar.

En la ventana que aparece, podemos mover dichas tablas y situarlas en la posición que nos interese. Por ejemplo, en el gráfico puedes ver que hemos incluido una tabla con todos los Alumnos de un colegio. Así como otra con todos los Exámenes que se realizan a lo largo del año.

Tablas sin relacionar

Tablas de una base de datos sin relacionar

Para hacer efectiva la relación, arrastramos el campo calumno de una tabla a otra. Los campos pueden tener nombres diferentes pero el tipo de datos debe coincidir.

Si te fijas en la parte inferior del cuadro de diálogo que aparece, Access ya reconoce el tipo de relación como de 1 a varios.

Cuadro modificar relaciones de Access

Cuadro Modificar relaciones de Access

La opción Integridad referencial, al activarse, no permitirá añadir en la tabla Examen ningún alumno que no se haya creado con anterioridad. Este hecho representa una medida de seguridad interesante.

Actualizar en cascada implica que al hacer algún cambio en la tabla de origen, dicha modificación se refleje en todas aquellas tablas con las que se relacione. Por lo tanto, también resulta práctica.

Eliminar en cascada, en cambio, puede ser muy peligrosa. Si se habilitara y borrásemos un alumno, también se eliminarían los exámenes que haya efectuado.

Tras marcar las opciones que te interesen, pulsa Crear. Así verás cómo Access reflejará con una línea la relación establecida. Además, debes tener en cuenta que la aplicación identifica los extremos de tipo varios con el símbolo de infinito.

Tablas de una base de datos con relación 1 a varios

Tablas  con relación 1 a varios