You are on page 1of 11

Combina Access y MySQL

2
Sumario

1. PASO 1. INSTALA MYSQL, EL DRIVER ODBC Y LA HERRAMIENTA DE


MIGRACIÓN
2. PASO 2. EJECUTA LA HERRAMIENTA DE MIGRACIÓN
3. PASO 3. ENLAZA LAS NUEVAS TABLAS DESDE TU APLICACIÓN ACCESS
4. PASO 4. RECONSTRUYE LAS RELACIONES ENTRE TABLAS EN MYSQL
5. LA CONSOLA DE COMANDOS DE LA HERRAMIENTA DE SUN
6. INTERFAZ MYSQL MÁS AMIGABLE

MySQL es una base de datos gratuita que te permitirá manejar sin problemas cientos de
megas de información, pero que carece de las facilidades de Access a la hora de crear tablas
y consultas o programar formularios de acceso a los datos.
Esta última, por su parte, presenta importantes problemas de rendimiento cuando el tamaño
de las bases de datos supera los 20 o 30 megas, e incluso antes, dependiendo del poco o
mucho cuidado que hayamos puesto en la manipulación de los datos. El mejor de los
mundos sería, por tanto, almacenar los datos en MySQL y acceder a ellos desde Access,
que es exactamente lo que vamos a hacer en este artículo.

Si nos mantenemos dentro del mundo de Microsoft, la alternativa sería migrar la base de
datos a SQLServer 2008 Express (www.microsoft.com/sqlserver), que es gratuita
mientras la base de datos no supere los 4,5 Gbytes. Las aplicaciones pueden desarrollarse
en Microsoft Visual Studio 2008 y la migración es muy sencilla con el asistente que
incorpora el propio Access. Si estamos hablando de un proyecto nuevo y nuestra
experiencia es un entorno Windows, la solución más adecuada será sin duda SQLServer.

Si lo que se trata es de «remozar» un proyecto antiguo en Access, la alternativa de MySQL


se vuelve muy atractiva. La migración es un poco más laboriosa, pero, a cambio, no
tendremos límite de capacidad… Y probaremos algo distinto.

El proceso es sencillo: instalaremos MySQL en nuestro sistema Windows, migraremos la


estructura y datos de nuestra base de datos al nuevo entorno y, luego, la enlazaremos con
nuestra base de datos actual en Access para que las aplicaciones que hemos desarrollado
sigan funcionando sin cambios.

PASO 1. INSTALA MYSQL, EL DRIVER ODBC Y LA


HERRAMIENTA DE MIGRACIÓN
Accedemos a la página principal de MySQL en www.mysql.com o al DVD que acompaña
a la versión más completa de PC Actual 221 para descargarnos el software. La versión más
reciente de la base de datos que nos ofrece es la 5.1.35, de la que descargaremos el archivo
correspondiente al enlace Windows Essentials (x86) si nuestro sistema operativo Windows
es de 32 bits. Si es de 64 bits, elegiremos la opción del epígrafe Windows x64 downloads.
Para nuestro ejemplo, usaremos la versión de 32 bits.
Una vez descargado el archivo, lo ejecutamos y seguimos los pasos del instalador.
Elegimos la instalación típica y marcamos la casilla de configurar MySQL. En el
asistente de configuración, tenemos que tener cuidado de elegir las siguientes opciones:
Standard Configuration (si nuestro PC no tiene una instalación previa de MySQL, este
asistente es mucho más sencillo y práctico que el detallado), Include Bin Directory in
Windows PATH (nos permitirá acceder a MySQL desde la línea de comandos, sea cual
sea la carpeta con la que estemos trabajando) y Modify Security Settings (password con el
que accederemos a MySQL).
Con esto ya tenemos instalado MySQL. A continuación, emplazaremos el driver ODBC,
que nos permitirá acceder a los datos desde nuestra aplicación Access. Éste se descarga
desde la misma página de MySQL, accediendo a las opciones
Download/Connectors/Connectors ODBC/5.1/Windows.

La instalación, escogiendo la opción Típica, no tiene ninguna particularidad reseñable. Por


último, descargaremos e instalaremos la herramienta de migración BullZip – Access to
MySQL desde www.bullzip.com. Este proceso tampoco conlleva ninguna dificultad.

PASO 2. EJECUTA LA HERRAMIENTA DE


MIGRACIÓN
Bullzip dispone de un asistente que facilita la migración. La arrancamos y nos pedirá, en
primer lugar, el archivo Access con nuestra base de datos y, en caso de que estuviera
protegido por contraseña, el usuario y password.

En el siguiente paso, indicamos el usuario y contraseña de nuestra base de datos


MySQL. Utilizaremos el usuario root y la clave que hayamos indicado durante la
instalación. Elegimos la opción Direct transfer para traspasar la información directamente
a la base de datos.

La alternativa Create dump file nos permite generar un fichero de texto con las
instrucciones SQL necesarias para generar la base de datos, que, luego, tendríamos que
procesar en MySQL. Tiene la ventaja de que el archivo queda como copia de seguridad,
pero, en nuestro caso, aparte de ser más lento, puede presentar problemas con caracteres
especiales como la ñ o las comillas simples. También debemos dar un nombre a nuestra
base de datos en MySQL y el tipo de tabla, que será siempre InnoDB.

A continuación, nos pide que elijamos las tablas que queremos migrar, que, en principio,
serían todas. En el paso siguiente, nos pregunta qué elementos deseamos transferir:
estructura y datos, solo datos, etc. Para una migración completa, dejaremos marcadas
todas las opciones. Hacemos clic sobre el botón Run Now y se ejecutará la migración.

Podemos tener problemas si en el diseño de nuestra base de datos no hemos sido


cuidadosos con los índices, por ejemplo, Access nos permite mezclar en una misma clave
principal de tabla campos autonuméricos y de otro tipo, mientras que MySQL exige que los
campos autonuméricos sean únicos en cada índice.
Estos problemas ocurren porque los productos Microsoft, en general, no son nada exigentes
con la sintaxis o la ortodoxia en la programación. Lo hagamos como lo hagamos, casi todo
funciona en Access. Si tenemos problemas con los índices, podemos elegir no migrarlos.

Los índices no son la única posible fuente de error, aunque sí la más común. Los mensajes
de error de la migración son bastante autoexplicativos y deberíamos poder corregirlos con
facilidad.

PASO 3. ENLAZA LAS NUEVAS TABLAS DESDE TU


APLICACIÓN ACCESS
Abrimos nuestra base de datos Access por la pestaña Tablas y elegimos la opción de menú
Insertar/Tabla/Vincular tabla y, en el desplegable que nos muestra en la parte inferior de
la ventana, optamos como tipo de archivo por Base de datos ODBC, ya que éste es el
driver que instalamos en el Paso 1 para acceder a MySQL.

En la ventana que se abre, escogemos la pestaña Origen de datos de equipo, que nos
muestra todos los orígenes de datos ODBC que tenemos configurados en nuestro equipo.
Como nuestra base de datos está recién creada, tenemos que añadirla a la lista mediante el
botón Nuevo.
En la ventana que aparece, elegimos el tipo de datos Origen de datos de sistema, a fin de
que la base de datos esté accesible con cualquier usuario que entremos en el PC y,
seguidamente, escogeremos el driver MySQL ODBC 5.1 Driver.

Este solicitará los parámetros de conexión a nuestra base de datos. Los primeros campos
son el nombre con el que identificaremos al nuevo origen de datos en nuestro equipo y los
demás son específicos de MySQL: el servidor, que será siempre localhost, el usuario root y
nuestro password.

Elegiremos también la base de datos que acabamos de migrar. Esto nos lleva de vuelta a la
lista de orígenes de datos, donde ahora ya sí podemos elegir nuestra base de datos. Nos
mostrará la lista de tablas que componen nuestra base de datos, las marcamos todas y se
incorporarán a nuestra base de datos como tablas nuevas con el icono de un mundo, que
indica que están fuera de nuestro Access.
Lo único que queda por hacer es borrar las tablas originales y renombrar las vinculadas con
los nombres de las primeras. Para hacerlo, puede ser necesario borrar las relaciones que
existan entre las tablas originales. Estas no pueden establecerse entre tablas vinculadas, por
lo que, si nuestra aplicación las necesita, tendremos que establecerlas en MySQL, como se
explica en el paso siguiente.

Una vez tengamos solo las tablas vinculadas, es conveniente que accedamos a la opción
Herramientas/Utilidades de la base de datos/Compactar y reparar bases de datos, a fin
de asegurarnos de que hemos liberado el espacio de disco y nuestro Access ha reducido su
tamaño.
PASO 4. RECONSTRUYE LAS RELACIONES ENTRE
TABLAS EN MYSQL
Este paso puede no ser necesario, depende de cómo hayamos programado nuestra
aplicación Access. Para construir una relación entre tablas en MySQL, entramos en la
consola de comandos de MySQL (ver apartados) y escribimos una instrucción parecida a la
siguiente:

ALTER TABLE `tabla1` ADD CONSTRA INT `nombrerelacion` FOREIGN KEY


(`campoclave1`, `campoclave2`) REFE RENCES
`tablamaestra`(`campoclavemaestra1`, `campoclavemaestra2`) ON DE LETE
CASCADE ON UPDATE CASCADE;

Esta instrucción enlaza la tabla1, obligando a que los campos campoclave1 y


campoclave2 coincidan con los campos campoclavemaestra1 y campoclavemaestra2 de
la tabla tablamaestra. Si se modifica o borra un registro de tablamaestra se producirá lo
mismo en tabla1. O sea, se establece una relación 1:n entre tablamaestra y tabla1.

Añadiremos todas las relaciones que queramos dando un nombre diferente a cada una. Para
que MySQL empiece a aplicar estas reglas, escribiremos la instrucción

SET FOREIGN_KEY_CHECKS=0;

Y esto es todo. Desde este momento, nuestra aplicación Access debería funcionar mejor
que antes, más rápido y sin problemas.

LA CONSOLA DE COMANDOS DE LA
HERRAMIENTA DE SUN
Hay algunas herramientas que facilitan el uso de MySQL pero, en general, la utilizaremos
desde la línea de comandos. Accedemos a Inicio/Ejecutar y tecleamos cmd, lo que abre
una ventana de comandos MS-DOS. Tecleamos el comando

Mysql –u root –p

Root es el nombre del usuario administrador. Nos pide la clave que escogimos durante la
instalación y vemos cómo el prompt cambia para indicarnos que estamos ya en MySQL.

Las instrucciones se pueden escribir en varias líneas y terminan (salvo pocas excepciones)
en punto y coma. Lo primero que tenemos que hacer es ejecutar la instrucción:

USE nombrebasededatos;
De esa forma, todas las operaciones que se ejecuten a continuación lo harán sobre las tablas
de esa base de datos. Podemos ejecutar cualquier sentencia SQL. Para ver las tablas de
nuestra base de datos ejecutaríamos:

SHOW TABLES;

Para crear elementos se usa:

CREATE [DATABASE | TABLE | …] nombrelemento;

Y, para borrar cualquier cosa, la instrucción es la misma sustituyendo CREATE por


DROP. Para salir de la consola de MySQL, se usa la instrucción EXIT.

Cuando creamos relaciones entre tablas o realizamos otras operaciones complejas, es muy
conveniente escribir las instrucciones en un fichero de texto (que suele nombrarse con la
extensión SQL, pero no es obligatorio) y, luego, lo cargamos desde la consola de comandos
de MySQL. Se utiliza la instrucción:

SOURCE nombrefichero;

En la web de MySQL, se encuentra un completo tutorial sobre las instrucciones de la base


de datos.

INTERFAZ MYSQL MÁS AMIGABLE


La consola de comandos es muy potente, pero poco amigable. Existe una aplicación
gratuita que nos permite tener un interfaz mucho más agradable para manejar MySQL, sin
llegar a la sofisticación de los asistentes de Access. Se trata de DBTools Manager
Standard. Se puede descargar de www.dbtools.com.br y ofrece un periodo de prueba de
20 días, terminado el cual proporciona la misma funcionalidad pero solo para un tipo de
base de datos, en nuestro caso MySQL.

La parte izquierda de la aplicación permite navegar por la estructura de base de datos de


forma similar a como hacemos en Access: tablas, vistas (equivalente a consultas), etc.
Establecer las relaciones entre tablas desde DBTools, por ejemplo, desde la pestaña
Foreign Keys es bastante más sencillo que desde la línea de comandos.

Galería de imágenes


You might also like