sql >> Base de Datos >  >> RDS >> Sqlserver

Migración de una base de datos de Microsoft Access a SQL Server

Introducción

Microsoft Access es un popular sistema de gestión de bases de datos de escritorio que incorpora herramientas de desarrollo de aplicaciones (Formularios, Informes, Consultas, macros VBA) con un DBMS relacional. MS Access es ideal para usuarios individuales o para pequeños grupos de trabajo donde algunos usuarios trabajan en los datos al mismo tiempo compartiendo un archivo de base de datos de MS Access a través de una red de área local.

Sin embargo, una vez que la cantidad de usuarios simultáneos crece por encima de un puñado, MS Access comienza a tener problemas para compartir los datos. Una solución a este problema de "ampliación" es dividir la base de datos de MS Access y alojar los datos en un servidor DBMS como Microsoft SQL Server.

Microsoft proporciona una herramienta útil llamada "Asistente de migración de Microsoft SQL Server para MS Access" (SSMA) para ayudar a mover las tablas de la base de datos de una base de datos de MS Access a SQL Server. Antes de entrar en los pasos reales de este proceso, es útil comprender la arquitectura de un sistema de base de datos de MS Access. Esta arquitectura se describe a partir de la página siguiente.

Requisitos previos

Antes de continuar con este tutorial, asegúrese de que el siguiente software esté instalado.

Este tutorial se escribió con Microsoft Access 2013 (de MS Office de 64 bits) que se ejecuta en un sistema operativo Windows 7 de 64 bits. MS Access 2010 y 2016 también pueden funcionar, pero no se han probado. Asegúrese de verificar MS Office ya que MS Access de 32 bits no tendrá el soporte adecuado para permitir que SSMA funcione.

Es posible que también deba instalar el software MS Access 2010 Runtime. Este software fue diseñado originalmente para leer archivos de base de datos de MS Access sin necesidad de instalar una versión completa de MS Access. El asistente de migración del servidor QL utiliza las partes de objetos de acceso a datos (DAO) en el tiempo de ejecución de MS Access 2010 para abrir archivos de MS Access.

Se proporciona un archivo de base de datos de MS Access de muestra (consulte las páginas siguientes para obtener enlaces a este archivo).

El sistema de gestión de la base de datos de destino será Microsoft SQL Server. Este tutorial requiere credenciales (nombre de usuario, contraseña, etc.) para una instancia de SQL Server. Puede instalar MS SQL Server en su propia PC o servidor, usar un servidor existente en su hogar o lugar de trabajo, o usar un servicio basado en la nube para alojar SQL Server por usted. Aquí se proporciona un tutorial sobre cómo configurar una instancia de SQL Server en GearHost:/introducción-a-gearhost-para-desarrollo-de-base-de-datos-de-servidor-sql/

Tenga en cuenta que a partir de 2021, GearHost ya no tiene una instancia de SQL Server de nivel gratuito. Es posible que desee intentar obtener una cuenta de estudiante en Microsoft Azure y usar Azure SQL Database.

También debe tener disponible Microsoft SQL Server Management Studio para explorar y trabajar directamente con SQL Server. Utilice SQL Server Management Studio para conectarse a su instancia de SQL Server y crear una base de datos vacía.

Para este tutorial se utiliza una instancia de SQL Server alojada por GearHost. Se creó una base de datos de muestra llamada testmssqldb1 como se muestra a continuación en el Explorador de objetos de SQL Server Management Studio.

Finalmente, asegúrese de hacer una copia de seguridad de todos los archivos de la base de datos de MS Access antes de migrarlos a SQL Server.

La siguiente sección presenta la arquitectura de una base de datos de Microsoft Access.

Arquitectura de base de datos de Microsoft Access

La mayoría de los sistemas de información que utilizan una base de datos para almacenar datos se pueden describir mediante cuatro componentes principales:

  1. Interfaz de usuario – Son los formularios, informes y consultas con los que interactúan los usuarios finales del sistema.
  2. Lógica empresarial – Este es un código de programación que implementa diferentes reglas comerciales por las que opera la organización. Por ejemplo, puede haber una regla comercial que indique que a ningún empleado se le pueden asignar más de 30 horas por semana en un solo proyecto. Esta regla se implementaría en el código de programación.
  3. Sistema de gestión de bases de datos – Este es el software utilizado para administrar los datos en la base de datos. También puede tener funciones como el control de concurrencia para permitir que varios usuarios trabajen de forma segura con los datos. Algunos ejemplos de DBMS incluyen MS Access, MS SQL Server, Oracle, MySQL y Postgres.
  4. Base de datos – Aquí es donde se almacenan los datos reales. Normalmente, los datos se organizan en un conjunto de tablas de base de datos. Cada tabla tiene columnas y registros de datos.

Una arquitectura de sistema de base de datos describe cómo se organiza cada uno de estos cuatro componentes. A menudo, el término "Front End" se utiliza para describir los componentes de la interfaz de usuario y la lógica empresarial. El "Back End" consiste en el DBMS y la base de datos.

Como DBMS de escritorio, MS Access almacena todos los componentes de la aplicación del sistema de base de datos en un solo archivo. El software DBMS se ejecuta en la computadora de escritorio. Los formularios de entrada de datos, los informes y las consultas interactúan con las tablas de la base de datos almacenadas en el mismo archivo de la base de datos de MS Access (archivo .accdb) como se muestra en la figura a continuación.

Para compartir datos de MS Access en una red de área local, podemos "dividir" el archivo de la base de datos en dos. Un archivo contendrá los formularios, informes, consultas y otras partes de la aplicación de la base de datos, mientras que el segundo archivo de la base de datos contendrá solo las tablas de la base de datos y sus datos. Los componentes de la aplicación (formularios, informes, etc.) utilizarán enlaces externos al segundo archivo de base de datos para recuperar y actualizar datos. Esto se muestra en la siguiente figura.

A medida que aumenta el número de usuarios, este método de compartir los datos se volverá limitante. En este caso podemos migrar las tablas de la base de datos a Microsoft SQL Server. De nuevo, se utilizarán enlaces externos para conectar los componentes de la aplicación (formularios, informes, etc.) a las tablas de la base de datos, como se muestra en la figura a continuación.

Este enfoque de "división" o "ampliación" de SQL Server es el enfoque de este tutorial.

La siguiente sección presenta una base de datos de MS Access de muestra que se usará para demostrar la migración de la base de datos.

La base de datos de empleados de ejemplo

Este tutorial utiliza una base de datos de empleados simple que se puede descargar desde este enlace. En esta base de datos hay 4 tablas principales:Departamento, Empleado, Proyecto y Project_Assignment.

Las relaciones entre tablas se muestran a continuación:

Hay 5 formularios de entrada de datos, una consulta y un informe.

Tómese unos minutos para explorar esta base de datos antes de continuar con el tutorial. Asegúrese de cerrar el archivo de la base de datos una vez que haya terminado de explorar. También haga una copia de seguridad del archivo en caso de que desee repetir este tutorial en el futuro.

En la siguiente sección de este tutorial, se descargarán e instalarán las utilidades del Asistente de migración de Microsoft SQL Server para MS Access.

Descargar e instalar el Asistente de migración de Microsoft SQL Server para MS Access

El Asistente de migración de Microsoft SQL Server para MS Access se puede descargar desde el siguiente sitio web de Microsoft:https://www.microsoft.com/en-us/download/details.aspx?id=54255

Haga clic en Descargar y luego guarde el nuevo archivo. El nombre del archivo debe ser similar a SSMA para Access.7.3.0.msi, aunque es posible que haya una versión más nueva disponible en el futuro. Haga doble clic en el archivo SSMA for Access.7.3.0.msi para iniciar el instalador.

Cuando aparezca la pantalla de bienvenida, haga clic en Siguiente para pasar al siguiente paso.

Lea el Acuerdo de licencia de usuario final, haga clic en Acepto el acuerdo botón de radio y luego haga clic en Siguiente botón para continuar.

Haga clic en Instalación personalizada y luego seleccione las características para instalar, así como la ubicación de instalación. Elija todas las funciones para instalar y elija un destino (generalmente la unidad C:). Haga clic en Siguiente botón para continuar.

En este punto, el producto está listo para instalar. Haga clic en Instalar botón para continuar.

El instalador tardará unos minutos en completar la instalación. Durante ese tiempo, aparecerá una pantalla de estado como se muestra a continuación.

Una vez completada la instalación de SSMA, haga clic en Finalizar botón.

El Asistente de migración de SQL Server para Access aparecerá en el menú Inicio de Windows. También habrá un asistente de migración de SQL Server para el grupo Access.

Ahora que SSMA está instalado, se puede migrar la base de datos de MS Access. Estos pasos se describen en la página siguiente.

Migración de una base de datos de MS Access

Asegúrese de tener una copia de seguridad de su base de datos de MS Access.

Localice el elemento de menú Asistente de migración de Microsoft SQL Server para Access en el menú Inicio de Windows y haga clic en él para iniciar SSMA.

Aparecerá el asistente de SSMA mostrando la pantalla de bienvenida. Tenga en cuenta el esquema de los 6 pasos que se completarán. En este punto, deberá tener disponible el archivo de la base de datos de empleados de MS Access, así como las credenciales para una base de datos de MS SQL Server. Haga clic en Siguiente para ir al primer paso del Asistente.

El primer paso es crear un nuevo Proyecto de Migración. Asigne un nombre al proyecto (Employee_Database_Migration_Project se usa para este ejemplo). Seleccione una carpeta para almacenar el proyecto. Finalmente, seleccione la versión de SQL Server para la base de datos de destino de SQL Server. En este ejemplo se utilizará SQL Server 2016. Una vez terminado, haga clic en Siguiente botón.

El siguiente paso es agregar bases de datos de MS Access para migrar. El formulario debería aparecer vacío en este punto. Haga clic en Agregar bases de datos botón.

Navegue a la carpeta que contiene el archivo employee.accdb y seleccione ese archivo. Haz clic en Abrir botón.

El archivo employee.accdb ahora debería aparecer en la lista. Haga clic en Siguiente botón para continuar.

Ahora que se ha abierto la base de datos de MS Access, el siguiente paso es seleccionar el contenido de la base de datos para migrar a SQL Server. En general, solo se migrarán las tablas y estas deben seleccionarse de forma predeterminada. Tenga en cuenta también que todos los índices y claves principales que forman parte de cada tabla también se migrarán. (Si no aparecen tablas, instale el software MS Access 2010 Runtime y vuelva a intentarlo).

Para este ejemplo, asegúrese de que todas las tablas de la base de datos estén seleccionadas como se muestra a continuación. Haga clic en Siguiente botón para continuar.

El siguiente paso en el Asistente es especificar las credenciales para la instancia de destino de SQL Server. Rellene los campos según su configuración de SQL Server. Para este ejemplo, se utiliza una instancia de SQL Server en Gearhost.

El nombre de host será el nombre de host de Internet o la dirección IP del servidor. Si SQL Server está instalado en su PC o servidor local, use localhost como el nombre del servidor.

El Puerto del servidor es el número de puerto para la escucha de SQL Server. Deje esto por defecto (a menos que haya cambiado esta configuración en su SQL Server).

La base de datos será el nombre de la base de datos residente en la instancia de SQL Server. Para este ejemplo, ya se creó una base de datos de muestra llamada testmssqldb1 en el servidor.

Seleccione el método de Autenticación para su instancia de SQL Server. Para este ejemplo, se utilizará la autenticación de SQL Server. Se debe proporcionar un nombre de usuario y una contraseña asociados con la instancia de SQL Server.

Complete las credenciales restantes, incluido un nombre de usuario y una contraseña, y seleccione las opciones adecuadas si la conexión se cifrará o no.

Una vez que haya ingresado todas las credenciales, haga clic en Siguiente botón.

En este punto, el Asistente de migración le pedirá que vincule la aplicación de base de datos (formularios, informes, etc.) a las tablas de base de datos de SQL Server resultantes. Esto es exactamente lo que se requiere en este caso. Asegúrese de que las Tablas de enlaces casilla de verificación está seleccionada y haga clic en Siguiente botón.

Aparecerá la pantalla Estado de la migración a medida que se analizan y preparan los datos de origen para cargarlos en SQL Server.

Después de la conversión, aparecerá un cuadro de diálogo que muestra una lista de todas las tablas y sus índices y disparadores asociados (si están presentes). En este ejemplo, todas las tablas y sus objetos asociados se migrarán a SQL Server. Haga clic en Aceptar para cerrar este cuadro de diálogo.

El Asistente continuará procesando los datos de la tabla y cargando los objetos convertidos en la base de datos.

Durante las tablas convertidas de enlaces paso, el Asistente puede pedirle que vuelva a ingresar las credenciales de SQL Server. Vuelva a proporcionar estas credenciales y haga clic en Conectar botón.

El asistente de migración continuará. Cuando se complete la migración, aparecerá una pantalla de resumen. Si hubo algún error, haga clic en el Informe asociado. botón para revisarlos. Cuando haya terminado, haga clic en Cerrar botón.

Aparecerá la pantalla principal de SSMA. Abra el Archivo menú y seleccione Guardar proyecto para guardar el proyecto actual. Seleccione el Empleado base de datos para extraer y guardar los metadatos.

En este punto, el trabajo de migración está completo y podemos salir del programa SSMA.

La sección final del tutorial demuestra cómo ejecutar la aplicación de base de datos de MS Access recién migrada.

Ejecutar la aplicación de base de datos de MS Access

Abra el archivo de base de datos employeedb.accdb en MS Access. Tenga en cuenta que ahora se ha cambiado el nombre de las tablas originales. Por ejemplo, la tabla de empleados original ahora se llama SSMA$employee$local. Esta tabla aún se almacena dentro del archivo de base de datos employeedb.accdb.

Cuatro nuevos enlaces de tablas de bases de datos ha sido creado. Todos los formularios, consultas e informes existentes que hacían referencia a estos nombres ahora harán referencia a los enlaces a cada tabla en la base de datos de SQL Server. Para probar esto, abra el formulario de ingreso de datos del departamento.

Es posible que reciba un mensaje de error de "Inicio de sesión" o "Error de conexión" como se muestra a continuación:

Haga clic en el botón Aceptar y luego proporcione las credenciales adecuadas para la instancia de SQL Server. Luego haga clic en Aceptar botón.

Desde la perspectiva del usuario final, no hay cambios en la forma en que se ve o funciona el formulario. El único problema menor que los usuarios pueden experimentar es un ligero retraso en la apertura de una gran colección de datos, ya que la solicitud debe enviarse a una instancia remota de SQL Server que luego necesita empaquetar los resultados y devolverlos a la aplicación de base de datos de MS Access.

Abra algunos de los formularios de ingreso de datos adicionales y asegúrese de que todos funcionen correctamente.

Una vez que se haya confirmado la funcionalidad de la base de datos migrada, las tablas originales (ahora renombradas) se pueden eliminar del archivo de base de datos employeedb.accdb. Después de este paso, el archivo de base de datos employeedb.accdb se puede distribuir a los usuarios para que puedan comenzar a trabajar con los datos que ahora están almacenados en una ubicación central en una instancia de SQL Server.