Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Migration d'une base de données Microsoft Access vers SQL Server

Présentation

Microsoft Access est un système de gestion de base de données de bureau populaire qui intègre des outils de développement d'applications (formulaires, rapports, requêtes, macros VBA) avec un SGBD relationnel. MS Access est idéal pour les utilisateurs individuels ou pour les petits groupes de travail où quelques utilisateurs travaillent sur les données en même temps en partageant un fichier de base de données MS Access sur un réseau local.

Cependant, une fois que le nombre d'utilisateurs simultanés dépasse une poignée, MS Access commence à rencontrer des problèmes de partage des données. Une solution à ce problème de "mise à l'échelle" consiste à diviser la base de données MS Access et à héberger les données dans un SGBD basé sur un serveur tel que Microsoft SQL Server.

Microsoft fournit un outil pratique appelé "Assistant de migration Microsoft SQL Server pour MS Access" (SSMA) pour aider à déplacer les tables de base de données d'une base de données MS Access vers SQL Server. Avant d'entrer dans les étapes réelles de ce processus, il est utile de comprendre l'architecture d'un système de base de données MS Access. Cette architecture est décrite à partir de la page suivante.

Prérequis

Avant de poursuivre ce didacticiel, assurez-vous que le logiciel suivant est en place.

Ce didacticiel a été écrit à l'aide de Microsoft Access 2013 (à partir de MS Office 64 bits) exécuté sur un système d'exploitation Windows 7 64 bits. MS Access 2010 et 2016 peuvent également fonctionner mais n'ont pas été testés. Assurez-vous de vérifier MS Office car MS Access 32 bits n'aura pas le support approprié pour permettre à SSMA de fonctionner.

Vous devrez peut-être également installer le logiciel MS Access 2010 Runtime. Ce logiciel a été conçu à l'origine pour lire les fichiers de base de données MS Access sans qu'il soit nécessaire d'installer une version complète de MS Access. L'assistant de migration de QL Server utilise les parties Data Access Objects (DAO) dans MS Access 2010 Runtime pour ouvrir les fichiers MS Access.

Un exemple de fichier de base de données MS Access est fourni (voir les pages suivantes pour les liens vers ce fichier).

Le système de gestion de base de données cible sera Microsoft SQL Server. Ce didacticiel nécessite des informations d'identification (nom d'utilisateur, mot de passe, etc.) pour une instance SQL Server. Vous pouvez installer MS SQL Server sur votre propre PC ou serveur, utiliser un serveur existant chez vous ou sur votre lieu de travail, ou utiliser un service basé sur le cloud pour héberger SQL Server pour vous. Un tutoriel sur la configuration d'une instance SQL Server sur GearHost est fourni ici :/getting-started-with-gearhost-for-sql-server-database-development/

Notez qu'à partir de 2021, GearHost n'a plus d'instance Free-Tier SQL Server. Vous pouvez essayer d'obtenir un compte Étudiant sur Microsoft Azure et d'utiliser la base de données SQL Azure.

Vous devez également disposer de Microsoft SQL Server Management Studio pour explorer et travailler directement avec SQL Server. Utilisez SQL Server Management Studio pour vous connecter à votre instance SQL Server et créer une base de données vide.

Une instance SQL Server hébergée par GearHost est utilisée pour ce didacticiel. Un exemple de base de données nommé testmssqldb1 a été créé comme indiqué dans l'explorateur d'objets SQL Server Management Studio ci-dessous.

Enfin, assurez-vous de faire une sauvegarde de tous les fichiers de base de données MS Access avant de les migrer vers SQL Server.

La section suivante présente l'architecture d'une base de données Microsoft Access.

Architecture de base de données Microsoft Access

La plupart des systèmes d'information qui utilisent une base de données pour stocker des données peuvent être décrits par quatre composants principaux :

  1. Interface utilisateur – Il s'agit des formulaires, des rapports et des requêtes avec lesquels les utilisateurs finaux du système interagissent.
  2. Logique métier - Il s'agit d'un code de programmation qui implémente différentes règles métier selon lesquelles l'organisation fonctionne. Par exemple, il peut y avoir une règle métier selon laquelle aucun employé ne peut être affecté plus de 30 heures par semaine sur un seul projet. Cette règle serait implémentée dans le code de programmation.
  3. Système de gestion de base de données – Il s'agit du logiciel utilisé pour gérer les données dans la base de données. Il peut également avoir des fonctionnalités telles que le contrôle de la concurrence pour permettre à plusieurs utilisateurs de travailler en toute sécurité avec les données. Quelques exemples de SGBD incluent MS Access, MS SQL Server, Oracle, MySQL et Postgres.
  4. Base de données – C'est ici que les données réelles sont stockées. Généralement, les données sont organisées dans un ensemble de tables de base de données. Chaque tableau comporte des colonnes et des enregistrements de données.

Une architecture de système de base de données décrit comment chacun de ces quatre composants est agencé. Souvent, le terme "Front End" est utilisé pour décrire les composants de l'interface utilisateur et de la logique métier. Le "Back End" se compose du SGBD et de la base de données.

En tant que SGBD de bureau, MS Access stocke tous les composants de l'application du système de base de données dans un seul fichier. Le logiciel SGBD s'exécute sur l'ordinateur de bureau. Les formulaires de saisie de données, les rapports et les requêtes interagissent avec les tables de base de données stockées dans le même fichier de base de données MS Access (fichier .accdb), comme indiqué dans la figure ci-dessous.

Pour partager des données MS Access sur un réseau local, nous pouvons "diviser" le fichier de base de données en deux. Un fichier contiendra les formulaires, les rapports, les requêtes et d'autres parties de l'application de base de données, tandis que le second fichier de base de données contiendra uniquement les tables de la base de données et leurs données. Les composants de l'application (formulaires, rapports, etc.) utiliseront des liens externes vers le deuxième fichier de base de données pour récupérer et mettre à jour les données. Ceci est illustré dans la figure ci-dessous.

À mesure que le nombre d'utilisateurs augmentera, cette méthode de partage des données deviendra limitée. Dans ce cas, nous pouvons migrer les tables de la base de données vers Microsoft SQL Server. Encore une fois, des liens externes seront utilisés pour connecter les composants de l'application (formulaires, rapports, etc.) aux tables de la base de données, comme indiqué dans la figure ci-dessous.

Cette approche de "fractionnement" ou "augmentation de la taille" de SQL Server est au centre de ce didacticiel.

La section suivante présente un exemple de base de données MS Access qui sera utilisé pour démontrer la migration de la base de données.

L'exemple de base de données des employés

Ce didacticiel utilise une simple base de données d'employés qui peut être téléchargée à partir de ce lien. Dans cette base de données, il y a 4 tables principales :Département, Employé, Projet et Project_Assignment.

Les relations entre les tables sont présentées ci-dessous :

Il existe 5 formulaires de saisie de données, une requête et un rapport.

Prenez quelques minutes pour explorer cette base de données avant de passer au didacticiel. Assurez-vous de fermer le fichier de base de données une fois que vous avez terminé l'exploration. Faites également une sauvegarde du fichier au cas où vous souhaiteriez répéter ce didacticiel à l'avenir.

Dans la section suivante de ce didacticiel, les utilitaires Microsoft SQL Server Migration Assistant for MS Access seront téléchargés et installés.

Téléchargement et installation de l'assistant de migration Microsoft SQL Server pour MS Access

L'assistant de migration Microsoft SQL Server pour MS Access peut être téléchargé à partir du site Web Microsoft suivant :https://www.microsoft.com/en-us/download/details.aspx?id=54255

Cliquez sur Télécharger puis enregistrez le nouveau fichier. Le nom du fichier doit être quelque chose comme SSMA pour Access.7.3.0.msi bien qu'une version plus récente puisse être disponible à l'avenir. Double-cliquez sur le fichier SSMA pour Access.7.3.0.msi pour lancer le programme d'installation.

Lorsque l'écran de bienvenue s'affiche, cliquez sur Suivant bouton pour passer à l'étape suivante.

Lisez le contrat de licence utilisateur final, cliquez sur J'accepte le contrat bouton radio puis cliquez sur Suivant bouton pour continuer.

Cliquez sur Installation personnalisée puis sélectionnez les fonctionnalités à installer ainsi que l'emplacement d'installation. Choisissez toutes les fonctionnalités à installer et choisissez une destination (généralement le lecteur C:). Cliquez sur Suivant bouton pour continuer.

À ce stade, le produit est prêt à être installé. Cliquez sur Installer bouton pour continuer.

Le programme d'installation prendra quelques minutes pour terminer l'installation. Pendant ce temps, un écran d'état apparaîtra comme indiqué ci-dessous.

Une fois l'installation de SSMA terminée, cliquez sur Terminer bouton.

L'assistant de migration SQL Server pour Access apparaîtra dans le menu Démarrer de Windows. Il y aura également un groupe Assistant de migration SQL Server pour Access.

Maintenant que SSMA est installé, la base de données MS Access peut être migrée. Ces étapes sont décrites à la page suivante.

Migration d'une base de données MS Access

Assurez-vous d'avoir une copie de sauvegarde de votre base de données MS Access.

Localisez l'élément de menu Microsoft SQL Server Migration Assistant for Access dans le menu Démarrer de Windows et cliquez dessus pour lancer SSMA.

L'assistant SSMA apparaîtra et affichera l'écran de bienvenue. Notez le plan des 6 étapes qui seront complétées. À ce stade, vous devrez disposer du fichier de base de données MS Access Employee ainsi que des informations d'identification pour une base de données MS SQL Server. Cliquez sur Suivant pour passer à la première étape de l'assistant.

La première étape consiste à créer un nouveau projet de migration. Donnez un nom au projet (Employee_Database_Migration_Project est utilisé pour cet exemple). Sélectionnez un dossier dans lequel stocker le projet. Enfin, sélectionnez la version de SQL Server pour la base de données SQL Server cible. SQL Server 2016 sera utilisé dans cet exemple. Une fois terminé, cliquez sur Suivant bouton.

L'étape suivante consiste à ajouter les bases de données MS Access à migrer. Le formulaire doit apparaître vide à ce stade. Cliquez sur Ajouter des bases de données bouton.

Accédez au dossier contenant le fichier employee.accdb et sélectionnez ce fichier. Cliquez sur Ouvrir bouton.

Le fichier employee.accdb devrait maintenant être répertorié. Cliquez sur Suivant bouton pour continuer.

Maintenant que la base de données MS Access a été ouverte, l'étape suivante consiste à sélectionner le contenu de la base de données à migrer vers SQL Server. Généralement, seules les tables seront migrées et celles-ci doivent être sélectionnées par défaut. Notez également que tous les index et clés primaires faisant partie de chaque table seront également migrés. (Si aucune table n'est répertoriée, installez le logiciel d'exécution MS Access 2010 et réessayez).

Pour cet exemple, assurez-vous que les tables de la base de données sont toutes sélectionnées comme indiqué ci-dessous. Cliquez sur Suivant bouton pour continuer.

L'étape suivante de l'assistant consiste à spécifier les informations d'identification pour l'instance cible de SQL Server. Remplissez les champs en fonction de votre configuration SQL Server. Pour cet exemple, une instance SQL Server sur Gearhost est utilisée.

Le nom d'hôte sera le nom d'hôte Internet ou l'adresse IP du serveur. Si SQL Server est installé sur votre PC ou serveur local, utilisez localhost comme nom de serveur.

Le port du serveur est le numéro de port de l'écouteur SQL Server. Laissez ceci par défaut (sauf si vous avez modifié cette configuration sur votre serveur SQL).

La base de données sera le nom de la base de données résidant sur l'instance SQL Server. Pour cet exemple, un exemple de base de données nommé testmssqldb1 a déjà été créé sur le serveur.

Sélectionnez la méthode d'authentification pour votre instance SQL Server. Pour cet exemple, l'authentification SQL Server sera utilisée. Un nom d'utilisateur et un mot de passe associés à l'instance SQL Server doivent être fournis.

Remplissez les informations d'identification restantes, y compris un nom d'utilisateur et un mot de passe, et sélectionnez les options appropriées si la connexion doit être cryptée ou non.

Une fois toutes les informations d'identification saisies, cliquez sur Suivant bouton.

À ce stade, l'assistant de migration vous demandera de lier l'application de base de données (formulaires, rapports, etc.) aux tables de base de données SQL Server résultantes. C'est exactement ce qu'il faut dans ce cas. Assurez-vous que les tables de liens case à cocher est cochée et cliquez sur Suivant bouton.

L'écran État de la migration s'affiche au fur et à mesure que les données source sont analysées et préparées pour le chargement dans SQL Server.

Après la conversion, une boîte de dialogue apparaîtra montrant une liste de toutes les tables et leurs index et déclencheurs associés (le cas échéant). Dans cet exemple, toutes les tables et leurs objets associés seront migrés vers SQL Server. Cliquez sur OK pour fermer cette boîte de dialogue.

L'assistant continuera à traiter les données de la table et chargera les objets convertis dans la base de données.

Au cours de la Lier les tables converties étape, l'assistant peut vous demander de ressaisir les informations d'identification SQL Server. Fournissez à nouveau ces informations d'identification et cliquez sur Se connecter bouton.

L'assistant de migration va continuer. Une fois la migration terminée, un écran récapitulatif s'affiche. S'il y a eu des erreurs, cliquez sur le Rapport associé bouton pour les consulter. Lorsque vous avez terminé, cliquez sur Fermer bouton.

L'écran principal SSMA apparaîtra. Déroulez le Fichier menu et sélectionnez Enregistrer le projet pour enregistrer le projet en cours. Sélectionnez l'Employé base de données pour extraire et enregistrer les métadonnées.

À ce stade, la tâche de migration est terminée et nous pouvons quitter le programme SSMA.

La dernière section du didacticiel montre comment exécuter l'application de base de données MS Access nouvellement migrée.

Exécuter l'application de base de données MS Access

Ouvrez le fichier de base de données employeedb.accdb dans MS Access. Notez que les tables d'origine ont maintenant été renommées. Par exemple, la table des employés d'origine s'appelle désormais SSMA$employee$local. Cette table est toujours stockée dans le fichier de base de données employeedb.accdb.

Quatre nouveaux liens de table de base de données a été créé. Tous les formulaires, requêtes et rapports existants qui faisaient référence à ces noms feront désormais référence aux liens vers chaque table de la base de données SQL Server. Pour tester cela, ouvrez le formulaire de saisie de données du département.

Vous pouvez recevoir un message d'erreur "Connexion" ou "Échec de la connexion", comme indiqué ci-dessous :

Cliquez sur le bouton OK, puis fournissez les informations d'identification appropriées pour l'instance SQL Server. Cliquez ensuite sur OK bouton.

Du point de vue de l'utilisateur final, il n'y a aucun changement dans l'apparence ou le fonctionnement du formulaire. Le seul problème mineur que les utilisateurs peuvent rencontrer est un léger retard dans l'ouverture d'une grande collection de données puisque la demande doit être envoyée à une instance distante de SQL Server qui doit ensuite regrouper les résultats et les renvoyer à l'application de base de données MS Access.

Ouvrez certains des formulaires de saisie de données supplémentaires et assurez-vous qu'ils fonctionnent tous correctement.

Une fois la fonctionnalité de la base de données migrée confirmée, les tables d'origine (maintenant renommées) peuvent être supprimées du fichier de base de données employeedb.accdb. Après cette étape, le fichier de base de données employeedb.accdb peut être distribué aux utilisateurs afin qu'ils puissent commencer à travailler avec les données qui sont maintenant stockées dans un emplacement central dans une instance SQL Server.