Noticias Weblogs Foros Wiki Código

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

jordisan.net blog: sobre lo humano, lo divino... y lo técnico: desarrollo

Microsoft Access: cinco consejos para tus bases de datos

Febrero 17th, 2008 - [Enlace local]

Después de desarrollar varias aplicaciones utilizando Microsoft Access, uno descubre que existen algunas prácticas y formas de trabajo que simplifican su desarrollo y el mantenimiento, sobre todo cuando la aplicación empieza a crecer más de lo que tenías previsto (cosa que suele pasar casi siempre).

Seguramente Access no es una base de datos que pueda soportar una gran aplicación con multitud de usuarios accediendo al mismo tiempo, que maneje una gran cantidad de datos, o con requisitos complejos de rendimiento o seguridad. Pero como herramienta que permite implementar una aplicación completa (desde las tablas de datos hasta interfaces de pantalla o informes impresos) para unos pocos usuarios de manera rápida, hay que reconocer que tiene pocos rivales. Los desarrollos con Access son tan rápidos que puede utilizarse como una herramienta de prototipado que ayude a definir claramente los requisitos de usuario antes de pasar a un sistema más potente.

1. Define bien las tablas y sus relaciones

Los desarrolladores conocen lo importante que es tener un buen modelo de datos en su aplicación. Y en Access, eso se convierte en la pantalla de Relaciones (dentro del menú Herramientas):

Pantalla de Relaciones de Microsoft Access

Es decir, define globalmente los campos de cada tabla y las relaciones entre tablas, para toda la aplicación, tal como son en la realidad (no como deberían ser). No definas tablas, campos y relaciones para necesidades puntuales que puedas tener en un formulario o informe concreto.

En concreto, evita las listas de valores y conviértelas en tablas. Si vas a guardar todos tus CD y libros en la base de datos, no introduzcas el "tipo de objeto" como una lista de valores en un campo de la tabla "Objetos" o de un formulario; mejor crea una tabla "Tipos de objeto" y guarda los valores "libro" y "CD" como registros. Si más adelante quieres añadir un nuevo tipo de objeto (como "DVD"), bastará añadirlo a la tabla y te evitarás tener que buscar todos los puntos donde está especificada la lista de valores.

[Actualización 03-mar-2008]

Detalle de diseño de un campo en AccessTal como indica javieran en un comentario, es conveniente crear las relaciones desde el diseño de tablas. Para eso, basta con seleccionar la pestaña "Búsqueda" y la opción "Mostrar control" > "Cuadro combinado", seleccionando una tabla como "Origen de la fila"; todo esto cuando se defina un campo que obtiene los valores de otra tabla previamente creada (lo que se conoce como "clave externa").

Siguiendo con el ejemplo anterior, se trataría de utilizar esa opción cuando se defina, dentro de la tabla "Objetos", el campo "Tipo de objeto" para que indique si cada registro es un libro, un CD o un DVD.

Esta acción tiene dos efectos:

2. Evita el código

Sí, se puede programar en Access usando Visual Basic como si fuera un entorno de programación "tradicional". Pero seguro que al menos el 90% de las funciones de tu aplicación las puedes realizar definiendo tablas, consultas, formularios, etc. Evita en lo posible introducir código Visual Basic en tu base de datos; puede ser difícil de entender, su mantenimiento es complicado (sobre todo porque puede estar disperso en diferentes objetos de la base de datos), y es una posible fuente de problemas a la hora de manejar diferentes versiones de Access.

3. Usa consultas en vez de campos calculados

Es muy probable que ese campo calculado que necesitas en un determinado formulario te sea también útil en otro formulario, en un informe, … Es más práctico que definas una consulta y añadas, además de los campos de la tabla, ese tipo de campos calculados; después, basa tu formulario o informe en la consulta, en vez de hacerlo directamente sobre la tabla.

En concreto, yo utilizo una única consulta de ese tipo para cada tabla; si la tabla es "Personas", la consulta toma por nombre "Personas+", y le añado todos los datos asociados a "Personas" que me puedan ser útiles. Por ejemplo, si la persona incluye su código postal, puedo añadir como campo calculado el literal de la provincia a la que pertenece ese código. Luego, los formularios e informes se basan en "Personas+" y sólo tengo que añadir el campo calculado para mostrar la provincia de modo automático.

NOTA 1: Las "consultas" de Access engloban, además de otro tipo de objetos, lo que en sistemas de bases de datos se conocen normalmente como "vistas".

NOTA 2: Es posible que utilizar las consultas de ese modo no sea un modo óptimo de recuperar los datos (y, en concreto, de aprovechar los índices). Pero dados el pequeño volumen de datos y las necesidades que se suelen manejar en este tipo de aplicaciones, mi experiencia es que la claridad y la facilidad de mantenimiento compensa un posible peor rendimiento. Y para mejorar el rendimiento (casi) siempre se está a tiempo.

4. Reutiliza los objetos

No definas un nuevo objeto (formulario, informe, consulta, …) para cada necesidad que tengas. Piensa si puedes reutilizar alguno de los que ya existen, por ejemplo añadiéndole nuevos campos. O utilizando uno general y aplicando filtros.

Por ejemplo, si tu base de datos almacena los libros que le has prestado a tus amigos, no definas una consulta para obtener qué libros tiene Alberto, otra diferente para saber qué libros tiene Eva, etc. Define una única consulta que devuelva todos los libros, permitiendo filtrar por la persona que los tiene.

5. Haz copias de seguridad. A menudo.

Ya sabemos que Microsoft Access no es un sistema pensado para ser especialmente robusto; no olvidemos que todo (datos, interfaces, etc.) está almacenado normalmente en un único fichero. Y si hay algún problema con ese fichero (y tarde o temprano los hay), podemos fácilmente perder toda la información que tenemos.

Hacer una copia de un único fichero es sencillo. Hazlo frecuentemente con tu fichero Access.

Y con todo eso…

Seguir esos consejos te permitirá mantener más o menos controlada y organizada la base de datos. Y, si es necesario, hará más fácil la migración a un gestor de bases de datos más "serio". Incluso en ese caso te puedes plantear mantener la interfaz de usuario en Access, simplemente sustituyendo sus tablas por vínculos a tablas en el gestor de bases de datos elegido.

» Leer más, comentarios, etc...

Información legal y técnica