COLEGIO SANTA ANA – ZARAGOZA TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN BASES DE DATOS RELACIONALES – Microsoft Access Primeros Conceptos Bases de datos Muchas empresas e instituciones manejan grandes volúmenes de información, con la que, de forma resumida, hace las siguientes operaciones: • • • • • Altas: incorporar nuevos datos. Modificaciones (edición) de los datos. Búsquedas y consultas de determinada información. Listados, resúmenes, algún tipo de cálculo… muchas veces impresos en papel. Bajas: eliminar o borrar determinados datos. La información, por ser compleja, puede almacenarse físicamente siguiendo diferentes estructuras. Una de ellas es la correspondiente a las bases de datos relacionales. Bases de datos relacionales Access es un gestor de bases de datos relacionales bajo un entorno Windows. Un gestor de bases de datos es una herramienta que permite organizar un alto volumen de datos de diversa naturaleza, de modo que puedan realizarse las operaciones típicas (altas, bajas, modificaciones, consultas y listados) de forma rápida y segura. Para Access, una base de datos es un único archivo (de extensión .mdb o .accdb) y está formada, entre otros, por: • • • • • • Una o más TABLAS de datos relacionadas entre sí. Diversas CONSULTAS que muestran cierta información referida a una o más tablas de la base de datos. FORMULARIOS para visualizar, introducir o modificar los datos. INFORMES para presentar e imprimir la información, muchas veces referida a un grupo de datos. Macros que realizan acciones repetitivas de forma automática. Módulos, que contienen el código en Visual Basic para programar instrucciones asociadas a diversos eventos. Elaborado por Alfredo García COLEGIO SANTA ANA – ZARAGOZA TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN Tablas • • • Todos los datos que se manejan en Access se guardan en tablas. Una tabla de Access contiene información de determinadas características de cada uno de los elementos de un grupo homogéneo de objetos. Visualmente se muestra como un rectángulo dividido en filas y columnas: cada fila corresponde a un elemento u objeto, y se denomina registro (record); cada columna corresponde a una característica y se denomina campo (field). Todos los registros tienen exactamente los mismos campos (aunque puedan estar en blanco). Se podrían introducir datos directamente en la tabla, al visualizar la Hoja de Datos (doble clic sobre la tabla), pero es más habitual y recomendable utilizar los formularios. Además de ver el contenido de la tabla podemos ver su estructura desde la vista de Diseño. Relaciones La estructura "rectangular" de las tablas obliga a que determinados datos de un mismo objeto se repartan entre varias tablas. Por ejemplo, la lista de películas que ha alquilado un socio y los datos del socio: no tiene sentido que estén juntos. Si en una tabla aparecen los datos de los socios de un vídeo club (nombre, dirección, etc), la lista de películas alquiladas debe guardarse en otra tabla. De lo contrario, tendríamos que repetir muchas veces la misma información (con cada película, el nombre, dirección y demás datos del socio). No obstante, las dos tablas no son independientes, guardan cierta relación. ¿Cómo se concretar esto? Lo más recomendable es: • • • En cada tabla, debe haber un campo clave, es decir, uno que permita identificar cada registro (no puede haber dos registros con el mismo contenido en el campo clave). El DNI de la persona podría ser la clave en la tabla de socios. En las tablas donde aparezcan referencias a elementos de otras tablas, se guardará únicamente su clave en un cierto campo. En la ventana de relaciones, se crean todas las relaciones lógicas entre las distintas tablas. A ser posible, exigiendo integridad referencial con actualización en cascada. Acceso multiusuario y seguridad • • En un entorno de red, varias personas pueden abrir y trabajar simultáneamente en la misma base de datos. Los datos de las tablas quedan guardados al instante, sin necesidad de ninguna operación especial (simplemente, salir del registro que se estaba modificando Elaborado por Alfredo García COLEGIO SANTA ANA – ZARAGOZA • TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN sin pulsar Escape, que anularía las modificaciones). En cambio, los diseños (de tablas, de formularios, etc.) sí hay que guardarlos de forma semejante a como se hace con documento de Word. Las bases de datos de las prácticas puede abrirlas cualquier usuario. Sin embargo, es frecuente restringir el acceso obligando a los usuarios a identificarse al abrir la base de datos. Entonces podrán consultar y/o modificar determinados datos o no, según se hayan definido los permisos en el sistema de control de la seguridad que el propio Access posee. Pero este punto, tan importante en un control de datos "sensibles" se escapa a esta primera aproximación a Access. Algunas cuestiones prácticas Diseño de tablas • • • • • Hay campos de distintos tipos (Texto, Número, Fecha/hora...). Los campos autonuméricos no se pueden modificar: es Access el que asigna de forma automática un número cada vez que se añade un nuevo registro. Son muy utilizados para crear códigos (campos clave) sin que el usuario tenga que escribirlos ni saberlos. Listas: Se puede hacer que al colocarnos sobre un campo aparezca un desplegable (cuadro combinado). Esto se puedo lograr directamente en el diseño de la tabla. En la parte inferior de la pantalla, en la pestaña Búsqueda, aquí aparecen las opciones del cuadro combinado. Para indicar que un campo (o varios) es la clave principal, pulsa sobre el botón de la llave amarilla. Estamos en una base de datos relacional: va a ser frecuente que en una tabla utilicemos un campo por el que identifiquemos los datos de un registro de otra tabla (ejemplo: Socios del videoclub y alquileres de películas; en la tabla de alquileres hay que indicar el socio). Entonces, los campos deben ser del mismo tipo. Si la clave en la tabla principal (Socios) es un campo autonomérico, entonces en la secundaria (Alquileres) debe ser numérico de tipo entero largo. NOTA: Aunque Access permite utilizar tildes y espacios en el nombre de campos, tablas, etc., por varios motivos se recomienda evitar ambos. Las relaciones entre tablas Elaborado por Alfredo García COLEGIO SANTA ANA – ZARAGOZA • • • TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN Es recomendable indicar a Access cómo se relacionan las tablas entre sí. Por ejemplo, la tabla de Socios y de Alquileres estarán relaciondas por el campo ‘socio’: En la tabla principal (Socios) arrastraremos su clave hacia la tabla secundaria (Alquileres) sobre el campo que guarda ese dato (‘socio’). Siempre que se pueda, marca ‘exigir integridad referencial’. De esta forma, Access no permitirá que introduzcas un dato que no exista en la tabla principal. (Cuando se exige integridad referencial aparece en la pantalla marcada con 1 e ∞. Para eliminar una relación, pulsa sobre la línea que une los campos. Puede ser que una relación no se visualice en la pantalla de Relaciones, pero sí exista. Hay un botón en la barra de herramientas que permite mostrar todas las relaciones existentes. Los primeros formularios 1. Como se ha dicho, la forma habitual de consultar o modificar los datos es a través de los respectivos formularios. 2. Un formulario muestra etiquetas, el contenido de campos o el resultado de cálculos, utilizando diversas formas (cuadros de texto, listas desplegables, cuadros combinados, casillas de verificación, etc.). En el diseño del formulario, todos sus elementos se denominan "controles". Así por ejemplo, para mostrar el nombre de un socio se utilizan dos controles: una etiqueta con el rótulo "Nombre" y un cuadro de texto dentro del cual se leerá el campo [Nombre] del registro de Socios en el que nos encontremos. 3. Al abrir un formulario (doble clic) veremos los datos del primer registro. Podemos cambiar de registro usando los botones de navegación que suelen mostrarse en la parte inferior de la pantalla. También podemos situarnos en un campo y utilizar el botón Buscar (prismáticos) para visualizar el registro que nos interese. 4. Los formularios más sencillos, los de las tablas principales (como Socios) se pueden crear con facilidad con el asistente ‘Formulario’ después de elegir la tabla. Se creará un formulario sin preguntarnos nada. 5. En otros casos conviene abrir el Asistente para formularios. Entonces iremos eligiendo paso a paso aquello que queremos: • Los campos que realmente queremos que se vean en pantalla (no tienen porqué ser todos los campos de una tabla). Si las tablas están relacionadas, tiene sentido también elegir campos de distintas tablas. • Si queremos ver un solo registro (distribución "en columnas" o “justificado”) o varios a la vez (“tabular”). • El nombre del propio formulario. 6. En ocasiones podemos crear un formulario con la ayuda de un asistente pero después introducir cambios o mejoras. Es el caso de tablas relacionadas con otras principales: se guarda la clave de identificación pero se muestra información más “agradable” a través de un cuadro combinado (ejemplo: en la Elaborado por Alfredo García COLEGIO SANTA ANA – ZARAGOZA TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN tabla de Alquileres se guarda el número de socio pero se elige el socio en un cuadro combinado donde se listan nombre y apellidos de los socios). • Utilizamos primero el asistente para formularios. • Dentro del diseño del formulario, comprobamos que están activados los asistentes (botón varita mágica). • Seleccionamos el control de tipo cuadro combinado, activamos la Lista de campos y arrastramos el campo sobre el formulario. • Al abrirse el asistente para campos combinados, elegimos “Deseo que el cuadro combinado busque los valores en una tabla” y después elegimos la tabla cuyos datos se van a listar • Es importante asegurarnos de que el dato que se elija en el cuadro combinado se guarda en la tabla. Para ello, en el asistente, debemos optar por “Almacenar el valor en el campo:” y elegir el campo. Informes Principales características • • • • Si los formularios son la manera habitual de ver los datos en la pantalla, los informes están pensados, sobre todo, para ser impresos. Con todo, disponemos de la vista preliminar para visualizarlos por pantalla. Los informes tiene muchas características en común con los formularios, se diseñan de forma muy parecida. Sin embargo, la principal diferencia radica en que los informes permiten mostrar fácilmente información AGRUPADA y ORDENADA, por ejemplo, para elaborar resúmenes. Usaremos las secciones del informe para colocar el encabezado y pie de página, pero también para imprimir los datos comunes de un agrupamiento (en el encabezado de grupo) o totalizar datos de un resumen (en el pie del grupo o del informe). Ordenar y agrupar • • • Aparece en la parte inferior de la pantalla. Podemos agrupar en uno o más niveles y también ordenar por uno o más criterios de ordenación. Al agrupar, normalmente se crean "encabezado de grupo" y/o "pie de grupo". Por ejemplo, si agrupamos por código postal, en vez de mostrar una columna con el C.P. repetido durante varios registros, podemos mostrar el C.P. a modo de encabezamiento y así el informe resulta más claro. Elaborado por Alfredo García COLEGIO SANTA ANA – ZARAGOZA • • TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN Agrupando registros, podemos colocar campos en el encabezado o en el pie del grupo en vez de en el detalle. Así, sin datos en el detalle, en vez de listar todos los registros se puede conseguir una información agrupada, un resumen. No será entonces extraño emplear controles que contengan funciones que cuentan registros, suman cantidades numéricas o calculan parámetros estadísticos. Algunas de ellas pueden conseguirse con el asistente para informes. Elaborado por Alfredo García COLEGIO SANTA ANA – ZARAGOZA TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN Consultas Principales características • • • • • • Hay varios tipos de consultas. Con las consultas de SELECCION, podemos combinar datos de distintas tablas y filtrar los registros según unas condiciones. El resultado tiene la apariencia de una nueva tabla. Las consultas de selección también pueden agrupar y totalizar (contar registros, sumar campos numéricos...). Otros tipos de consultas sirven para actualizar campos de una tabla de forma masiva, crear tablas nuevas, añadir registros a tablas ya existentes a partir de datos de otras tablas, eliminar registros que cumplan ciertas condiciones, etc. Las posibilidades son enormes. Se pueden crear consultas permanentes, desde la ventana principal de Access. Estas consultas se guardan con un nombre y pueden usarse como si fueran tablas, por ejemplo para formularios o informes basados en ellas. Pero se pueden crear consultas en otros lugares, como en la propiedad "origen del registro" de formularios e informes, o en la propiedad "origen de la fila" de los cuadros combinados. Propiamente las consultas consisten en instrucciones escritas con un lenguaje que se denomina SQL (Structured Query Language). Sin embargo, no es necesario conocerlo ahora, ya que Access nos muestra la cuadrícula de diseño, en la que se trabaja de una forma más visual. La cuadrícula de diseño • • • • • En la parte superior veremos las tablas. Si hay más de una, deben estar relacionadas. La relación puede establecerse ahora si aún no está definida, pero sólo quedarán relacionadas en la consulta. Para añadir más tablas, pulsa sobre el botón "Mostrar tabla". Arrastra sobre la cuadrícula o haz doble clic sobre el campo que quieras que aparezca o al que vas a imponer alguna condición. Usa el asterisco (*) para indicar que se muestren todos los campos de la tabla. Si indicas Orden en más de un campo, el primer criterio que se aplica para ordenar es el que esté más a la izquierda. Las condiciones se escriben a partir de la fila de criterios. Si dos condiciones están escritas en la misma fila, se entiende que han de cumplirse las dos (están unidas por el nexo lógico Y -AND-). Si se escriben en filas distintas, se entiende que ha de cumplirse una, otra o ambas (nexo O -OR-). Las condiciones pueden ser de distintos tipos; destaquemos los siguientes: 1. Un valor o texto: significa que el campo debe ser igual a ese valor. 2. Comparación simple con los signos <, <=, >, >=, =, <> (distinto) Elaborado por Alfredo García COLEGIO SANTA ANA – ZARAGOZA TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN 3. De la forma "ENTRE ... Y ... " indicando en los "..." los dos valores extremos. 4. En campos de texto, indicando el principio del texto. Por ejemplo: "COMO B*" listaría todos los registros salvo los que empiezan por A. 5. Condiciones compuestas, formadas por expresiones simples unidas por nexos lógicos (básicamente: Y, O). Por ejemplo: "< 3 O > 15" 6. Ver ejemplo de consulta de selección con condiciones. Consultas con totales • • • • Son consultas de selección en la que en vez de mostrar registros de las tablas efectúan agrupamientos. Pulsa sobre el botón "Totales" de la barra de herramientas del diseño de la consulta; aparecerá la fila "Total" en la cuadrícula. Debe haber al menos un campo cuya fila Total sea "Agrupar por". Por ejemplo, podemos agrupar en una sola línea todos los registros de un mismo código postal. Normalmente, además de agrupar querremos realizar alguna operación con cada grupo de registros, como contar el número de registros agrupados, sumar todos sus importes, obtener la media aritmética de un cierto campo... Hay que tener en cuenta que si un campo está en blanco ("nulo") no se contará ni intervendrá en la estadística. Si se quieren poner condiciones a los registros, en la fila Total elegiremos "dónde" y después escribiremos la condición en las filas Criterios. Elaborado por Alfredo García COLEGIO SANTA ANA – ZARAGOZA TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN Subformularios y subinformes Principales características • • • • Se utilizan para mostrar (y gestionar) datos relacionados de dos tablas, de modo que por un registro de una tabla encontramos una cantidad variable de registros de la otra. Por ejemplo, en el caso del video club, podríamos querer ver las películas (DVDs) alquilados por un cierto cliente; o los ejemplares (cartuchos) de que se dispone de un determinado videojuego. Se tiene entonces un formulario o informe principal (en el ejemplo, para los clientes) y dentro de él se visualiza el subformulario o subinforme (de las películas) que realmente se guarda igual que los restantes. La característica más importante del control subformulario/subinforme son las propiedades "vincular campos...". En el subformulario se mostrarán sólo los registros cuyos campos ("secundarios") coincidan con el contenido de los campos ("principales") del formulario que lo contiene. Aspectos prácticos • • • • • Es posible utilizar el asistente pero, antes de iniciarlo, las tablas que vamos a utilizar deben estar relacionadas. Elegiremos campos de varias tablas y en el paso siguiente, elegiremos la tabla que vamos a considerar como principal, con la opción "Formulario con subformulario" Podemos utilizar el pie del subformulario para totalizar los registros del subformulario, con funciones Cuenta( ), Suma( ), u otras estadísticas. Puede haber varios subformularios dentro del principal. Por ejemplo, para mostrar los datos de un cliente (directamente en el principal) y además las películas (en un subformulario) y los videojuegos alquilados (en otro subformulario). Access permite tener un doble anidamiento, esto es, un subformulario que, a su vez contenga otro subformulario. Elaborado por Alfredo García